sql

数据库启动,连接,创建表
# 启动mysql服务
suto service mysql start
# 连接mysql
mysql -u root
# 显示所有数据库
show databases;
# 选择数据库,显示数据库 所有表
use 数据库名
show tables;
# 创建一个表
  CREATE TABLE   employee(
id int(10),
name char(20),
phone int(12));

CREATE TABLE department(
dpt_name CHAR(20), dpt_phone INT(12));

# 删除数据库
drop database 数据库名;
数据常用类型
数据类型 大小(字节) 用途 格式
INT 4 整数
FLOAT 4 单精度浮点型
DOUBLE 8 双精度浮点型
ENUM -- 单选,比如性别 ENUM(‘a', 'b','c')
SET -- 多选 SET('1', '2', '3')
DATA 3 日期 YYYY-MM-DD
TIME 3 时间 HH:MM:SS
YEAR 1 年份值 YYYY
CHAR 0~255 定长字符串
VARCHAR 0~255 变长字符串
TEXT 0~ 65535 长文本数据
  • 整数除了 INT 外,还有 TINYINT、SMALLINT、MEDIUMINT、BIGINT。
  • CHAR 和 VARCHAR 的区别: CHAR 的长度是固定的,而VARCHAR 的长度是可以变化的,比如,存储字符串 “abc",对于VHAR(10),表示存储的字符将占 10 个字节(包括 7 个空字符),而同样的 VARCHAR(12) 则只占用 4 个字节的长度,增加一个额外字节来存储字符串本身的长度,12 只是最大值,当你存储的字符小于 12 时,按实际长度存储。
  • ENUM 和 SET 的区别: ENUM 类型的数据的值,必须是定义时枚举的值的其中之一,即单选,而 SET 类型的值则可以多选。
插入数据
INSERT INTO   employee (id,name,phone)  VALUES(01,'Tom",110110110)
INSERT INTO employee VALUES(02,'Jack' 119119119);
INSERT INTO employee(id,name) VALUES(03,'Rose');
  • 创建数据库,表实例
# 加载文件中的数据
source /home/XXXXX.sql;

CREATE DATABASE mysql_shiyan;

use mysql_shiyan;

CREATE TABLE department
(
  dpt_name   CHAR(20) NOT NULL,
# 设定约束值 default 
  people_num INT(10) DEFAULT '10',

  CONSTRAINT dpt_pk PRIMARY KEY (dpt_name)
 );

CREATE TABLE employee
(#  PRIMARY KEY 主键  或者 CONSTRAINT 
  id      INT(10) PRIMARY KEY,
  name    CHAR(20),
  age     INT(10),
  salary  INT(10) NOT NULL,
  phone   INT(12) NOT NULL,
  in_dpt  CHAR(20) NOT NULL,
  UNIQUE  (phone),
  CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES department(dpt_name)
 );
 
CREATE TABLE project
(
  proj_num   INT(10) NOT NULL,
  proj_name  CHAR(20) NOT NULL,
  start_date DATE NOT NULL,
  end_date   DATE DEFAULT '2015-04-01',
  of_dpt     CHAR(20) REFERENCES department(dpt_name),
# 定义复合 主键
  CONSTRAINT proj_pk PRIMARY KEY (proj_num,proj_name)
 );
  • 默认值约束 DEFAULT
    定义约束值
  people_num INT(10) DEFAULT '10',

DEFAULT 会在INSERT 语句提现出来

# 正常插入数据
INSERT INTO  department(dpt_name,people_num) VALUES('dpt1',11);

# 新数据 people_num为空,使用默认值
INSERT INTO department(dpt_name) Values('dpt2');

查询表,select * from department ,可见第二行,people_num被默认值填充


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容