create table stu
(
sno int primary key,
sname VARCHAR(5),
cno int,
FOREIGN key(cno) REFERENCES class(cno)
);
不然会报错:
正确删除方式:
3.主键:非空且唯一
==========
主键一个表中只能有一个,可以有表级约束,也可以有列级约束。
主键就是非空约束(not null) 和 唯一性约束(unique)两者的结合
表级约束就是两个或者多个字段连起来 满足 上述要求!
主键的定义语句
sno int primary key;//列级约束,对学号这一字段(列,columu)进行约束,要求不为空且不能重复!
primary key(sno);//一个字段也可以这样使用表级约束,但是意义不大
primary key(name,id);//姓名和身份证号连起来,作为主键
尽管支持多个字段联合起来作为联合主键。
但是顺嘴提一句,并不推荐这样,实际业务中
第一范式就要求非主键不能对主键存在部分依赖。复合主键完美破解第一范式!
主键常用两种:
1,业务主键 业务主键是和业务挂钩的,数据重用效率低,业务发生变更太复杂,和业务有关,
2,自然主