续:
实体完整性:针对某列数据判断其正确性
唯一约束:指定的列的数据不能重复,但可以为空
create table person1 (id bigint,name varchar(50) unique);
自动增长列约束:指定的列的数据将会自动增长(被删掉的内容永远记录在增长中)
*一般都会把主键设置为自动增长列
create table person3(id bigint primary key auto_increment,name varchar(50) unique );
域完整性:针对某单元格的数据判断其正确性
域:代表当前单元格
分类:数据类型约束;非空约束;默认值约束
数据类型约束:包括数值型、日期型、字符串型
非空约束:not null
create table person4(id bigint primary key auto_increment,name varchar(50) unique not null );
默认值约束:default
create table person5(id bigint primary key auto_increment,name varchar(50) unique not null,gender varchar(2) default ‘男’ ); (关键信息:主键、自动增长、唯一、不为空、默认值)
引用完整性:是指表于表之间的对应关系,通过设置两表之间的主键、外键的关系,或者编写两表之间的触发器来实现;有对应参照完整性的两张表,对其进行插入、删除、修改的过程中,系统都会将被修改的表格与令一张表格进行对照,从而阻止一些不正确的操作。
对两张表 设置参照完整性的要求:两个表必须是innodb类型;
数据库主键和外键的类型必须一致
创建两个参照完整表:法一:create table student3(id bigint primary key,name varchar(50),age int);
create table score3( studentid bigint, score int,kemu varchar(50),id int, constraint sc_st_fl foreign key (studentid) references student3(id));
法二:在需要设置外键的表格的字段页找到外键,设置相应内容
法三:在已有表的情况下,修改表结构
alter table score3 add CONSTRAINT key1 foreign key (studentid) references student3(id);
*查看表格信息:在navicat中,选中表格,右键,选择对象信息,点击DDL(定义语言)
查看结果: CREATE TABLE `person5` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`gender` varchar(2) DEFAULT '男',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
*int类型一般不指定长度
*navicat设置唯一约束:进入表格字段设置页面,点击索引, 在字段中选择要约束的字段点击确定,在索引类型中选择unique,ctrl+s进行保存。
建立两张表的关系:在student表中,id为主键;在score表中,id为主键,studentid 为外键,通过id与studentid之间的关系,把成绩与学生信息联系起来。
出现的错误:[Err] 1215 - Cannot add foreign key constraint
解决:https://blog.csdn.net/bluestar628/article/details/60480339 -Cannot add foreign key constraint常见原因总结