SQL 约束简介
对表中的数据进行进一步的限制
保证数据的正确性、有效性、完整性
违反约束的不正确数据无法插入到表中
常见的约束
- 主键:PRIMARY KEY
- 非空:NOT NULL
- 唯一:UNIQUE
- 默认:DEFAULT
- 外键:FOREIGN KEY
一、主键约束
主键:一列(或一组列),其值能够唯一标识表中每一行
特点:不可重复,唯一,非空
语法:列名 字段类型 PRIMARY KEY
1.1、添加主键约束
-- 给存在的表添加主键
CREATE TABLE emp2(
eid INT ,
ename VARCHAR(20),
sex CHAR(1)
);
-- 通过 DDL 语句进行设置
ALTER TABLE emp2 ADD PRIMARY KEY(eid);
1.2、创建主键自增的表
- AUTO_INCREMENT:表示自动增长(字段类型必须是整数类型)
-- 创建主键自增的表
CREATE TABLE emp3(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20),
sex CHAR(1)
);
1.3、修改主键自增的起始值
-- 创建主键自增的表,自定义自增其实值
CREATE TABLE emp4(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20),
sex CHAR(1)
)AUTO_INCREMENT=100;
1.4、删除主键约束
-- 删除表中的主键
ALTER TABLE 表名 DROP PRIMARY KEY;
-- 使用 DDL 语句删除表中的主键
ALTER TABLE emp2 DROP PRIMARY KEY;
-- 查看表结构
DESC emp2;
1.5、选择主键原则
- 针对业务设计主键,往建议每张表都设计一个主键
- 主键可以没有业务意义,只需要保证不重复
二、非空约束
2.1、非空约束
- 非空约束特点: 某一列不予许为空
- 语法:
列名 字段类型 NOT NULL
2.2、添加非空约束
-- 添加非空约束
CREATE TABLE emp5(
eid INT PRIMARY KEY AUTO_INCREMENT,
-- ename 字段不能为空
ename VARCHAR(20) NOT NULL,
sex CHAR(1)
);
三、唯一约束
3.1、唯一约束
- 唯一约束: 表中的某一列的值不能重复
- 对 NULL 不做唯一的判断
- 语法:
列名 字段类型 UNIQUE
3.2、添加唯一约束
-- 创建带有唯一约束的表
CREATE TABLE emp6(
eid INT PRIMARY KEY AUTO_INCREMENT,
-- 为 ename 字段添加唯一约束
ename VARCHAR(20) UNIQUE,
sex CHAR(1)
);
3.3、主键约束与唯一约束的区别
- 主键约束,唯一且不能够为空
- 唯一约束,唯一但是可以为空
- 一个表中只能有一个主键,但是可以有多个唯一约束
四、默认值
4.1、默认值
- 默认值约束:用来指定某列的默认值
- 语法:
列名 字段类型 DEFAULT 默认值
4.2、字段指定默认值
-- 创建带有默认值的表
CREATE TABLE emp7(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20),
-- 为 sex 字段添加默认值
sex CHAR(1) DEFAULT '女'
);