MySQL的约束
1、约束的概念和分类:
① 约束的概念:
约束是作用于表中列上的规则,用于显示加入表中的数据
约束的存在保证了数据库中数据的正确性、有效性、完整性
② 约束的分类:
约束名称 |
描述 |
关键字 |
非空约束 |
保证列中所有数据不能有NULL值 |
NOT NULL |
唯一约束 |
保证列中所有数据各不相同 |
UNIQUE |
主键约束 |
主键是一行数据中的唯一标识,要求非空且唯一 |
PRIMARY KEY |
检查约束 |
保证列中的值满足某一条件(MySQL不支持) |
CHECK |
默认约束 |
保存数据时,未指定值则采用默认值 |
DEFAULT |
外键约束 |
外键用来让两个表的数据之间建立连接,保证数据的一致性和完整性 |
FOREIGN KEY |
自动增长 |
当列是数字类型并且唯一约束 |
auto_increment |
提示:MySQL不支持检查约
2、约束的运用
1、约束用于在创建表单的时候使用,如下图:
提示:
① 创建表后添加非空约束:ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;
删除已有的非空约束:ALTER TABLE 表名 MODIFY 字段名 数据类型;
② 创建表后添加唯一约束:ALTER TABLE 表名 MODIFY 字段名 数据类型 UNIQUE;
删除已有的唯一约束:ALTER TABLE 表名 DROP INDEX 字段名;
③ 创建表后添加主键约束:ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
删除已有的主键约束:ALTER TABLE 表名 DROP PRIMARY KEY;
④ 创建表后添加默认约束:ALTER TABLE 表名 ALTER 列名 SET DEFAILT 默认值;
删除已有的默认约束:ALTER TABLE 表名 ALTER 列名 DROP DEFAILT;
3、通过插入数据来验证各个约束的功能:
外键约束
概念:外键用来让两个表的数据之间建立连接,保证数据的一致性和完整性
语法:
1、创建表时添加外键约束:
2、创建表后添加外键:
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段名) REFERENCES 主表名称(主表列名);
ALTER TABLE emp ADD CONSTRAINT fk_emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id);
3、删除外键约束:
ALTER TABLE 表名DROP FOREIGN KEY 外键名称;
ALTER TABLE emp DROP FOREIGN KEY fk_emp_dept;