1、主键约束(唯一标识)***非空***, ***唯一***, ***被引用***;
- 当表的某一列被指定为主键后,该列不能为空,不能有重复值出现。
- 创建表时制定主键的两种方式:
create table stu(
sid char(6) primary key,
sname varchar(20),
);
指定sid列为主键列,即为sid列添加主键约束:
create table stu (
sid char(6),
sname varchar(20)
primary key(sid)
);
- 修改表时指定主键:alter table stu add primary key(sid);
- 删除主键:alter table stu drop primary key;
2、主键自增长
create table stu(
sid int primary key auto_increment,
sname varchar(20)
);
添加列的时候设置主键自增长:alter table stu add id int primary key auto_increment;
修改表时设置主键自增长:alter table stu change id id int auto_increment;
修改表时删除主键自增长:alter table stu change id id int;
3、非空约束
create table stu(
sid int primary key auto_increment,
sname varchar(20) not null
);
4、唯一约束
create table stu(
sid int primary key auto_increment,
sname varchar(20) unique
);
5、外键约束
外键必须是另一表的主键值(外键引用主键),外键可以重复,外键可以为空,一张表中可以有多个外键。
create table stu(
empno int primary key auto_incerment,
ename varchar(20),
dno int,
constraint fk_stu_dept foreign key(dno) references dept表(deptno) //指定外键列
);
alter table stu add constraint fk_stu_dept foreign key(dno) references dept(deptno);
6、一对一关系:在表中建立一对一关系比较特殊,需要让其中一张表的主键作为外键,即是主键又是外键。
8、一对多关系:外键是另一张表的主键
7、多对多关系:在表中建立多对多关系,需要使用中间表,即需要三张表,在中间表使用俩外键,分别引用其他两个表的主键。