完整性约束 检查数据是否符合要求
-
主键
Primary key 每一条记录的一个身份证号 不重复
定义主键的方法:
- Id int primary key,
- CONSTRAINT 自命名主键 primary key(列名)
双主键 单个可以重复 但是两个组合起来就不能重复
-
非空
代表的是不能为空指针 但是可以为空字符串
Not NULL
- 默认值 default
- 唯一性约束 unique
-
检查约束 check
在MySQL中不起作用 但是语法上支持
Age int check(age>0 and age<160)
-
外键约束
两个表关联的时候 一个表中的字段要参照另一个表中的字段
Foreign key(class_id)references classes(id);
设置完外键之后会发现并不起作用 是因为数据库默认引擎的问题
因此在建表的时候需要两个地方设置为默认
- ENGINE=InnoDB
- DEFAULT CHARSET=utf8;
外键存在的问题 :外键关系一旦建立 不易删除 导致非常的麻烦