mysql中表的约束,主键外键唯一键

表的约束

空属性(NULL)

在这里插入图片描述

此时 name 的 Null 被置为 No

默认值

在这里插入图片描述

列描述

没有实际含义,专门用来描述字段,相当于注释

在这里插入图片描述

zerofill

没有啥实际用处,就是一个用来展示的

在这里插入图片描述
在这里插入图片描述

主键

在这里插入图片描述

可以看到key中多了PRI字符,即代表主键,主键不能为空

主键属性

定义的时候,可以给列的属性当中增加 priary key 来定义为主键
①当前被定义为主键的列,不能为空,不能重复
测试:
	发现插入时如果未插入主键会自动填入并发出警告
	如果插入相同的主键则会报错无法插入数据

在这里插入图片描述

②一张表当中只能有一个主键

在这里插入图片描述

复合主键

一张表当中只能有一个主键,但是可以由多个列作为复合主键

在这里插入图片描述

追加主键

当表创建好后,可以追加主键

在这里插入图片描述
在这里插入图片描述

删除主键

alter table [表名] drop primary key;

在这里插入图片描述

自增长

auto_increment:当相应的字段,不给值时会被系统自动触发,系统会对当前字段中已经有的最大值进行+1操作,通常和主键搭配使用,作为逻辑主键

特点:
	任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)
	自增长字段必须是整数
	一张表最多只能有一个自增长

在这里插入图片描述
在这里插入图片描述

唯一键

唯一键可以解决表中有多个字段需要唯一性约束的问题
唯一键允许为空,且可以有多个为空,空字段不做唯一性比较

在这里插入图片描述

如果不想为空可以在后面加上not null

在这里插入图片描述
在这里插入图片描述

如果一个数据表中有列被设为唯一键的同时被设置为非空,那么第一个设为唯一键并非空的列会被设为主键

外键

外键用于定义主表和从表之间的关系

在这里插入图片描述

此时有两张表,一张代表了学生,一张代表班级
此时如果想添加学生,就要在班级下添加,即学生受班级的约束,班级表可以当做基础表,学生受clss_id的外键约束
班级表为主表,学生表为从表

设置外键为:
foreign key (此表中需要被外键关联的列名) references [主表名](外键关联名);
例如刚才的学生作为从表班级作为主表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时尝试往学生表中插入不属于班级表中的班级信息

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值