MysqL中的约束

Mysql常用五类约束:
not null:非空约束,指定某列不为空
unique: 唯一约束,指定某列和几列组合的数据不能重复
primary key:主键约束,指定某列的数据不能重复、唯一
foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据
check:检查,指定一个表达式,用于检验指定数据
其中 外键约束只有InnoDB引擎支持。
外键 约束两张表的关系
出现数据冗余问题
把字段数据出现比较高冗余的字段 单独放到一张表中
员工表当中 部门 信息 这个时候时候就可以吧部门信息单独设计一张表
主表:约束别人的表被称为主表
副表 被别人约束的表被称为附表
一般情况下 外键约束在附表当中
举例来说建立一张员工表 emp并且插入数据:

    CREATE  TABLE emp(
   id  INT  PRIMARY KEY,
    empname VARCHAR(20), -- 员工姓名
    deptname VARCHAR(20) -- 员工部门编号
    );

数据如图
建立一张部门表并且插入数据:

CREATE TABLE depart(
	id INT  PRIMARY KEY AUTO_INCREMENT ,
	depart_name VARCHAR(20)
	)DEFAULT CHARSET = utf8;

插入的数字
期初在没有 外键约束的条件下我们可以看出 删除副表某一部门id 并不会影响,主表中的员工的所在的部门id;
这是实际不符和 员工坐在的部门都已经不存在了,主表中员工的部门id需要做出调整。
这是我们就需要添加外键约束来实现

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值