为什么要保证数据库完整性:
防止垃圾数据产生,提高执行效率。可靠性+准确性=数据完整性
数据库完整性分类:
1.实体完整性
1.主键约束:primary key ----后+auto_increment 主键自增长,从0开始,每次增加1,+auto_increment=10--表示从10开始增加。主键不能为null,不能重复,一个表只能有一个主键。
2.唯一约束:unique 指定列的值必须唯一,不能重复。
2.域完整性
1.非空约束:not null。
2.默认约束:default。
3.检查约束:
3.引用完整性
保证引用编号是有效的。
外键约束:foreign key....references
4.用户自定义完整性
保证自定义规则。
例:
create table userinfo(
info_id int primary key auto_increment, /*设置info_id为主键,并且自增*/
info_name varchar(20) ,
info_age int not null, /*设置info_age非空*/
info_gender int ,
info_address varchar(50),
info_phone varchar(20) unique, /*设置info_phone值唯一*/
register int,
constraint FK_userinfo_register foreign key(register) REFERENCES users(user_id) /*设置register为外键,引用users表的user_id*/
)