本文使用到的关键字
- CREATE 创建
- TABLE 表
- INT 数据类型-整数
- VARCHAR(20) 数据类型-字符串
- NOT NULL 非空
- PRIMARY KEY 主键
- SELECT 选择
- FROM 从
- INSERT INTO 插入
- VALUES 值
- UNIQUE 唯一
- DEFAULT 默认
- AUTO_ INCREMENT 自动编号
语句
非空约束NOT NULL
创建表时,在列名、数据类型后设置NOT NULL可以约束该列值非空
CREATE TABLE `student`(
`student_id` INT,
`name` VARCHAR(20) NOT NULL,
`major` VARCHAR(20),
PRIMARY KEY(`student_id`)
);
尝试插入一行数据
INSERT INTO `student` VALUES(1,NULL,'历史');
这样就会报错,因为建表时设置了name列非空,因此不能写入NULL值
在尝试插入一行数据
INSERT INTO `student`(`major`,`student_id`) VALUES('历史',1);
同样也会报错,原因一样
唯一约束UNIQUE
创建表时,在列名、数据类型后设置UNIQUE可以约束该列值唯一性
CREATE TABLE `student2`(
`student_id` INT,
`name` VARCHAR(20) NOT NULL,
`major` VARCHAR(20) UNIQUE,
PRIMARY KEY(`student_id`)
);
尝试插入两行数据
INSERT INTO `student2` VALUES(1,'张三','历史');
INSERT INTO `student2` VALUES(2,'李四','历史');
在运行第二行插入语句时就会报错,原因是建表时已经设定了major列各值是唯一的,不能重复,因此major列不能出现第二次‘历史’
INSERT INTO `student2` VALUES(2,'李四','英语');
这样major不重复就可以运行成功了
默认值约束DEFAULT
创建表时,在列名、数据类型后设置DEFAULT可以规定该列的默认值
CREATE TABLE `student3`(
`student_id` INT,
`name` VARCHAR(20) NOT NULL,
`major` VARCHAR(20) DEFAULT '历史',
PRIMARY KEY(`student_id`)
);
写入一行数据,并查看表
INSERT INTO `student3`(`student_id`,`name`) VALUES(1,'张三');
SELECT * FROM `student3`;
可以看到写入的数据不仅有1,‘张三’,major被默认填入了‘历史’
自动编号AUTO_INCREMENT
创建表时,在列名、数据类型后设置AUTO_INCREMENT可以规定该列的值自动编号
CREATE TABLE `student4`(
`student_id` INT AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
`major` VARCHAR(20) DEFAULT '历史',
PRIMARY KEY(`student_id`)
);
写入一行数据,并查看表
INSERT INTO `student4`(`name`,`major`) VALUES('张三','英语');
SELECT * FROM `student4`;
可以看到写入的数据不仅有’张三’,‘英语’,student_id被默认自动编号为1