mysql 添加约束条件_MySQL-约束条件

"""判断表与表之间关系的时候 前期不熟悉的情况下 一定要按照我给你的建议

换位思考 分别站在两张表的角度考虑

员工表与部门表为例

先站在员工表

思考一个员工能否对应多个部门(一条员工数据能否对应多条部门数据)

不能!!!

(不能直接得出结论 一定要两张表都考虑完全)

再站在部门表

思考一个部门能否对应多个员工(一个部门数据能否对应多条员工数据)

能!!!

得出结论

员工表与部门表示单向的一对多

所以表关系就是一对多"""foreign key1一对多表关系 外键字段建在多的一方2在创建表的时候 一定要先建被关联表3在录入数据的时候 也必须先录入被关联表#SQL语句建立表关系

create table dep(

id int primary key auto_increment,

dep_name char(16),

dep_desc char(32)

);

create table emp(

id int primary key auto_increment,

name char(16),

gender enum('male','female','others') default 'male',

dep_id int,

foreign key(dep_id) references dep(id)

);

insert into dep(dep_name,dep_desc) values('sb教学部','教书育人'),('外交部','多人外交'),('nb技术部','技术能力有限部门');

insert into emp(name,dep_id) values('jason',2),('egon',1),('tank',1),('kevin',3);#修改dep表里面的id字段

update dep set id=200 where id=2; 不行#删除dep表里面的数据

delete fromdep; 不行#1 先删除教学部对应的员工数据 之后再删除部门

操作太过繁琐#2 真正做到数据之间有关系

更新就同步更新

删除就同步删除"""级联更新 >>> 同步更新

级联删除 >>> 同步删除"""create table dep(

id int primary key auto_increment,

dep_name char(16),

dep_desc char(32)

);

create table emp(

id int primary key auto_increment,

name char(16),

gender enum('male','female','others') default 'male',

dep_id int,

foreign key(dep_id) references dep(id)

on update cascade#同步更新

on delete cascade #同步删除

);

insert into dep(dep_name,dep_desc) values('sb教学部','教书育人'),('外交部','多人外交'),('nb技术部','技术能力有限部门');

insert into emp(name,dep_id) values('jason',2),('egon',1),('tank',1),('kevin',3);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值