目录
(一).。。。。。。。。概述:
1.1为什么需要约束
1.保证了数据的完整性,精确性,可靠性。
2.防止数据库中存在不符合寓意规定的数据和防止因错误信息的输入输出造成的无效操作、
3.sql规范以约束的方式对标数据进行额外的条件限制,从以下四个方面考虑:
(1)实体完整性:同一个表中不能存在两条完全无法区分的记录
(2)域完整性(比如:年龄0-120性别男/女)
(3) 引用完整性(如:员工所在部门,在部门表中要能找到这个部门)
(4)用户自定义完整性:用户名唯一,密码不能为空等
1.2什莫是约束
约束是表级的强制规定,可以在创建表时规定约束,也可以通过alter table语句增加约束
1.3约束的分类
1.3.1根据列的限制:
单列约束:只约束一列
多列约束:约束多列
1.3.2根据约束的作用范围:
列级约束:跟在列后面,对列进行约束的
表级约束:可以作用在多个列上,不与列一起,单独定义。
1.3.3根据约束的作用:
NOT NULL 非空约束,规定某个字段不能为空
UNIQUE 唯一约束,某个字段在整个表中是唯一的
primary key 主键(非空且唯一)约束
FOREIGN KEY外键约束
CHECK检查约束
DEFAULT默认约束
查询约束:
SELECT * FROM information_schema.table_constraints
WHERE table_name = '表名称';
(二)非空约束(NOT NULL)
2.1作用:
限定某个字段/某列的值不允许为空
2.3特点:
1.默认,所有的类型值都可以是NULL,包括INT,FLOAT等数据类型
2.非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空
3.一个表可以由很多列都分别限定非空
4。空字符串不等于NULL,0也不等于NULs
2.4添加非空约束
建表时:
CREAT TABLE 表名称(
字段名 数据类型 NOT NULL
);
例如:
CREAT TABLE student(
student_id INT NOT NULL
);
此时:
INSERT INTO student
values(null);
添加null值时就会报错。
2.5删除非空约束
ALTER TABLE 表名称
MODIFY 字段名 数据类型 NULL;