MySQL中数据库的约束,表的设计和CRUD的一些进阶操作

1.数据库的约束

约束:数据库针对数据进行一系列的校验,如果发现数据不符合约束中描述的校验规则,就会插入失败,主要是为了提高数据的正确性。

约束类型:

1》NOT NULL - 指示某列不能存储 NULL 值。
在这里插入图片描述
在这里插入图片描述
2》 UNIQUE - 保证某列的每行必须有唯一的值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3》 DEFAULT - 规定没有给列赋值时的默认值。
在这里插入图片描述
在这里插入图片描述
4》 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保证主键不重复,可以借助数据库自动生成“auto_increment"。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
建议直接把自增部分写为null,若表中没有任何记录,会从1开始,若存在,会从上一条记录开始自动增加。
在这里插入图片描述

注意,如果把之前某个数据删除了,再次插入,刚才删除掉的自增主键的值不会被重复利用。
在这里插入图片描述

5》 FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。

有时插入的数据并不合理,但也能插入成功。
在这里插入图片描述
在这里插入图片描述

加入外键后,这样再往student 里面插入数据时,MySQL就会自动检查classId里面的字段值是否再class中的id列出现过,如果没有,就会插入失败。
在这里插入图片描述
在这里插入图片描述
由于这个外键,直接删除class是不行的,因为他被其他表关联着。
在这里插入图片描述

6》 CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略 CHECK子句

2.表的设计

MySQL中是不存在数组类型的

1》一对一

2》一对多

3》多对多

这里的studentId和courseId最好设置成外键。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.进阶CRUD操作

1》新增
查询结果可作为被插入的对象插入到表中(查询得到的列的数目,顺序,类型需要和被插入的表的列的数目,顺序,类型一样)
在这里插入图片描述
2》查询
聚合查询(一般需要搭配MySQL中的一些内置函数)

count:计算结果的行数
(是不算null的个数的)
在这里插入图片描述
在这里插入图片描述

聚合函数:

COUNT([DISTINCT] expr) 返回查询到的数据的 数量
SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义
在这里插入图片描述
AVG([DISTINCT] expr) 返回查询到的数据的 平均值,不是数字没有意义
在这里插入图片描述
MAX([DISTINCT] expr) 返回查询到的数据的 最大值,不是数字没有意义
在这里插入图片描述
MIN([DISTINCT] expr) 返回查询到的数据的 最小值,不是数字没有意义
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lhj_loveFang_1105

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

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

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

打赏作者

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

抵扣说明:

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

余额充值