完整性约束是指数据库的内容必须遵守的规则
如果定义了数据完整性约束,MySQL会负责数据的完整性
每次更新数据时,MySQL都会测试新的数据内容是否符合相关的完整性约束条件,只有符合完整性约束条件的更新才被接受
1.创建course表来记录每门课程的学生学号,姓名,课程号,学分和毕业日期,其中学号,课程号和毕业日期构成复合主键。P54
2.因为MySQL会自动为主键创建一个索引,所以我们可以吧这个索引进行重命名 P55 (复合主键+索引重命名)
因为保证记录的唯一性,所以同样在赋值的时候,不能赋重复的值
(因为一个表只能有一个主键,当一个表有多个列需要建立唯一性约束时,替代键是没有被选作主键的候选键)
1 create table tb3( 2 id smallint unsigned auto_increment primary key, 3 username varchar(30) not null 4 );
后面只需要给username赋值就行(id字段因为有了主键,所以无法赋重复的值,所以得继续加一加一下去,自动编号效果达成,当然这是我无聊时候的小想法)
1 sex enum(‘1‘,‘2‘,‘3‘)default ‘3‘ /*有1,2,3这3个选项,其中默认值为3,没赋值就会写3*/
1 create table users( 2 id smallint unsigned primary key auto_increment, 3 pid smallint unsigned, 4 foreign key(pid) references provinces(id) 5 );
provinces应该是父表表名,子表是users
pid外键列,id参照列(参照列与外键列具有相似的数据类型,其中数字的长度或是否有符号位必须相同,而字符的长度则可以不同)
可以查看表的所以信息,包括一些字段类型,字段的约束,外键,主键,索引及字符编码等
加上\G似乎比较直观呈现数据
创建表student,只考虑学号和性别两列,性别只能包含男或女两项。
1 create table student( 2 学号 char(6) not null, 3 性别 char(2) not null check(性别 in(‘男‘,‘女‘)) 4 );
指定了性别(列)允许哪个值,列完整性约束
原文:https://www.cnblogs.com/Copycatxsym/p/13089488.html