MySQL数据库高阶操作

本文详细介绍了MySQL数据库中的约束,包括非空约束、主键约束、外键约束、检查约束、唯一约束、默认值约束和自增约束,探讨了它们的优缺点。接着,文章深入讲解了多表连接,如交叉连接、内连接、左连接、右连接和全连接,提供了实际的查询示例。最后,列举并解释了一些常用的MySQL函数,如绝对值、平均值、随机数等,是学习MySQL数据库操作的实用教程。
摘要由CSDN通过智能技术生成

这篇博客我本来准备只讲一个多表连接,但是吧。。。。。我整理了以后发现光约束就有很多,所以这篇主讲约束,也讲连接,按照我的习惯,我的博客不会写的很长,但是这篇是个例外,所以请耐心看完

约束篇

  1. 非空约束 not null
  2. 主键约束 primary key
  3. 外键约束 foreign key
  4. 检查约束 CHECK
  5. 唯一约束 unique key
  6. 默认值约束 default
  7. 自增加约束 AUTO_INCREMENT

1.约束的好处
1.通过创建唯一缩影,可以保证数据库的每一行数据的唯一性
2.可以大大加快数据的检索速度,这也是创建索引的最主要的原因
3.可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义
4.使用分组和排序子句进行数据检索时,同样可以显著减少查询中的分组和排序的时间
2.约束的坏处
1.索引占用了物理空间
2.索引也要动态维护,降低了数据的维护速度
3.约束的分类
1.非空约束
2.主键约束
3.外键约束
4.默认值约束
5.检查约束(check约束)
6.自增加约束
4.非空约束
什么是非空约束(not null)
听名字就知道了,被非空约束的列,在插入值时必须非空,就是必须要插入值,不能插入空值,在MySQL中,违反了非空约束,不会报错,只会有警告。

5.主键约束
主键(PRIMARY KEY)是用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。主键要求这一行的数据不能有重复且不能为空。

还有一种特殊的主键——复合主键。主键不仅可以是表中的一列,也可以由表中的两列或多列来共同标识
复合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引
6.外键约束
外键(FOREIGN KEY)既能确保数据完整性,也能表现表之间的关系。
一个表可以有多个外键,每个外键必须参考另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。
在INSERT时,如果被外键约束的值没有在参考列中有对应,比如以下命令,参考列(department表的dpt_name)中没有dpt3,则INSERT失败
7.Check约束(检查约束)
用于指定需要检查的限定条件
在更新表数据的时候,系统会检查更新后的数据行是否满足 CHECK 约束中的限定条件
MySQL 可以使用简单的表达式来实现 CHECK 约束,也允许使用复杂的表达式作为限定条件,例如在限定条件中加入子查询。
若将 CHECK 约束子句置于表中某个列的定义之后,则这种约束也称为基于列的 CHECK 约束。
若将 CHECK 约束子句置于所有列的定义以及主键约束和外键定义之后,则这种约束也称为基于表的 CHECK 约束。该约束可以同时对表中多个列设置限定条件。
简而言之,就是约束插入数据是否满足条件,就像你输入省份证时,多输入一个数子,就告诉你输入错误这种
8.唯一约束(unique)
unique约束的字段,具有唯一性,不可重复,但可以为null,一个表可以有多个唯一约束,一个约束可以只有一列,当然也可以有多列。
推个一个很实用的链接
w3c讲这一节链接:http://www.w3school.com.cn/sql/sql_unique.asp
9.默认值约束
“默认值(Default)”的完整称呼是“默认值约束(Default Constraint)”。MySQL 默认值约束用来指定某列的默认值。
例如女同学较多,性别就可以默认为“女”,如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为“女”。
10.自增加约束AUTO_INCREMENT
1、AUTO_INCREMENT可以约束任何一个字段,该字段不一定是PRIMARY KEY字段,也就是说自增的字段并不等于主键字段。
2、但是PRIMARY_KEY约束的主键字段,一定是自增字段,即PRIMARY_KEY 要与AUTO_INCREMENT一起作用于同一个字段。
3、当插入第一条记录时,自增字段没有给定一个具体值,可以写成DEFAULT/NULL,那么以后插入字段的时候,该自增字段就是从1开始,没插入一条记录,该自增字段的值增加1。当插入第一条记录时,给自增字段一个具体值,那么以后插入的记录在此自增字段上的值,就在第一条记录该自增字段的值的基础上每次增加1。
4、也可以在插入记录的时候,不指定自增字段,而是指定其余字段进行插入记录的操作。
简而言之,自增加就是自动增加的意思,设置了自增加约束,系统会默认多一个唯一性约束,应为不可能说自动增加了两个相同的东西吧。。。。。
好了,至此我们的约束篇玩劫了,接下来我们就开始我们的正文,多表联查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值