9203 0409 随堂

非空约束

新建一个表

在表中定义一个列,让它非空

在这里插入图片描述

插入数据

正常的插入
在这里插入图片描述

只给name数据,不给id数据

在这里插入图片描述

只给id数据,不给name数据

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

删除表中某个列的非空约束

在这里插入图片描述

删除了非空约束后,再次尝试插入数据不给值

在这里插入图片描述

小结

非空约束定了列后

这个列在插入数据的时候一定给值

不给值的话,它也不会为空

根据数据类型的不同,系统会给他一个默认值

但一定不会让它为null

唯一约束演练

新建表

让电话唯一

在这里插入图片描述

插入数据

在这里插入图片描述

插入重复数据

在这里插入图片描述
弹出报错

删除唯一约束的索引

注:如果给一个列添加了唯一约束

mysql会自动的给他创建一个索引

索引是用于帮我们提高查询效率的一个好东西

在这里插入图片描述

追加唯一约束

给已经成功的创建了的表中的普通列,添加唯一约束

目标:

给名称添加唯一约束

在这里插入图片描述
相当于重新给列定义类型和约束

小结

唯一约束不同于非空约约

非空约束的定义和取消,都可以直接通过修改列的约束来实现

唯一约束不同

给一个列添加唯一约束

mysql会自动的给它创建一个索引(索引的用途是帮助我们提高查询效率的)

如果要定义的话,可以在建表时定义,也可以通过修改表中的列来定义

如果要取消,只能是通过丢弃索引的方式来取消

主键约束演练

删除ys表

在这里插入图片描述

新建表 添加主键约束

在这里插入图片描述

添加数据

正常的添加数据

两个列都给值

在这里插入图片描述

再插一条数据

让id重复,sname不重复

在这里插入图片描述
因为主键id不允许重复

插入数据 不给id赋值

验证主键是否可以为null

在这里插入图片描述

删除主键

在这里插入图片描述

主键删除后

原本的主键列它就不再受到非空和唯一的约束了

追加主键

主键添加前的表结构

在这里插入图片描述

主键添加后的表结构

添加主键实际就是在修改表的列,设置列为主键

在这里插入图片描述

查看表结构

在这里插入图片描述

小结 主键约束

非空

唯一

一个表中只有一个主键

主键也是索引,可以提高查询效率

自动增长演练

新建表

在这里插入图片描述

添加数据

让id自动增长

添加数据的时候不给id赋值,使用null来触发自动增长

在这里插入图片描述

继续添加数据

在这里插入图片描述

给自动增长的列 强制赋值

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

删除自动增长的列

在这里插入图片描述

效果,失去自动增长的效果

我们不能够再通过null给它值

因为主键是非空的

在这里插入图片描述

追加自动增长

给一个普通的主键列,追加自动增长的效果

在这里插入图片描述

小结 自动增长

普通列不可以自动增长
主键列可以设置自动增长
一般是整数类型可以自动增长

外键约束

外键相关的表

学生与老师

一个老师带多个学生

多个学生对应一个老师

学生与班级

一个班级对应多个学生

多个学生属于一个班级

老师与班级

一个老师带多个班级

一个级有一个老师带

为什么要使用外键

用于约束,防止数据出错

学生与老师为例

在学生表中登记的老师工号,一定是老师中存在的工号

为了实现这样的两个表的数据关联

需要使用外键约束

外键的设计规则

外键的列要放在多方

要放在从表的一方

创建老师表 主表

在这里插入图片描述

创建学生表 从表

在这里插入图片描述

定义外键 追加方式

让学生表与老师表产生关联

在这里插入图片描述

创建一个班级表 建表时定义外键

在这里插入图片描述

产生外键的预期效果

外键列的数据,必需是主键列中存在的

删除外键

删除班级表中tid这个外键

删除前

在这里插入图片描述

删除

在这里插入图片描述

查看删除外键后的效果

查看建表语句

fk_ct没有关联另一个表了

CREATE TABLE `classtab` (
  `id` int(11) NOT NULL auto_increment,
  `cname` varchar(4) default NULL,
  `tid` int(11) default NULL,
  PRIMARY KEY  (`id`),
  KEY `fk_ct` (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值