SQL 约束:
- 对表中的数据进行进一步的限制
- 保证数据的正确性、有效性、完整性
- 违反约束的不正确数据无法插入到表中
- 常见的约束
- 主键:PRIMARY KEY
- 非空:NOT NULL
- 唯一:UNIQUE
- 默认:DEFAULT
- 外键:FOREIGN KEY
主键约束:
- 主键:一列(或一组列),其值能够唯一标识表中每一行
- 特点:不可重复,唯一,非空
- 语法:
列名 字段类型 PRIMARY KEY
添加主键约束:
-- 创建一个带主键的表
CREATE TABLE emp1(
-- 设置主键 唯一 非空
eid INT PRIMARY KEY,
ename VARCHAR(20),
sex CHAR(1)
);
-- 给存在的表添加主键
CREATE TABLE emp2(
eid INT ,
ename VARCHAR(20),
sex CHAR(1)
)
-- 通过 DDL 语句进行设置
ALTER TABLE emp2 ADD PRIMARY KEY(eid);
创建主键自增的表:
- AUTO_INCREMENT:表示自动增长(字段类型必须是整数类型)
当删除自增表中的数据后再插入数据时,自增列的数值会因删除方式有所差异:
- delete 删除 新插入数据会使用最新的自增数值(例如插入一条自增列为10的数据之后删除,再插入一条新数据,新数据的自增列为11)
- truncate 删除 新插入数据会从1开始自增(不会使用最新的自增数值,同时设置的自增起始值失效)
-- 创建主键自增的表
CREATE TABLE emp3(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20),
sex CHAR(1)
);
修改主键自增的起始值:
-- 创建主键自增的表,自定义自增起始值
CREATE TABLE emp4(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20),
sex CHAR(1)
)AUTO_INCREMENT=100;
删除主键约束:
-- 删除表中的主键
ALTER TABLE 表名 DROP PRIMARY KEY;
-- 使用 DDL 语句删除表中的主键
ALTER TABLE emp2 DROP PRIMARY KEY;
-- 查看表结构
DESC emp2;
选择主键原则:
- 针对业务设计主键,往建议每张表都设计一个主键
- 主键可以没有业务意义,只需要保证不重复
非空约束:
- 非空约束特点: 某一列不予许为空
- 语法:
列名 字段类型 NOT NULL
添加非空约束:
-- 创建带有非空约束的表
唯一约束:
- 唯一约束: 表中的某一列的值不能重复
- 对 NULL 不做唯一的判断
- 语法:
列名 字段类型 UNIQUE
添加唯一约束:
-- 创建带有唯一约束的表
主键约束与唯一约束的区别:
- 主键约束,唯一且不能够为空
- 唯一约束,唯一但是可以为空
- 一个表中只能有一个主键,但是可以有多个唯一约束
默认值:
-
默认值约束:用来指定某列的默认值
- 语法:
列名 字段类型 DEFAULT 默认值
字段指定默认值:
-- 创建带有默认值的表