主键用来区分数据,联系各个表,不能为空且在表中数据是唯一的
create table t_8(
id int(20) primary key, // 定义主键
name varchar(30)
);
?可以添加组合键(复合主键),但扩展性不行,一张表里可以有多个组合键,但是可能在非特殊的情况下实际的意义不大,添加复合主键要先把原主键删除
alter table tablename add primary key (字段,字段...); // 添加复合主键
唯一键限定范围是在一张表中,它不会用作来关联其他的数据,它也可以为空,在这张表中一定是唯一的,用来保证在这个表中这个数据不重复。
// 添加唯一键,两种方法,
create table t(
id int primary key,
phone varchar(20) unique // 唯一键
);
alter table tablename add unique (字段,字段...);
主键与唯一键的区别
外键是指引用另外一个表中的一列或多列数据,被引用的列应该具有主键约束或者唯一性约束(简单来说外键是另一个表的主键或者唯一约束)。外键可以有重复的, 可以是空值,用来建立和加强两个表数据之间的连接
左边信息表为主表,右边成绩表为从表
1.当主表中没有对应的记录时,不能将记录添加到子表(学生成绩表中不能出现学生信息表中没有的学号)
2.不能更改主表中的值而导致子表中的记录孤立(学生信息表中的id变化了,学生成绩表中的id也要随着发生改变)
3.子表存在与主表对应的记录,不能从主表中删除该行(不能把部门表中的数据删除)
4.删除主表前,先删子表