本次学习内容
一.函数
指一段可以直接被另一段程序调用的程序或代码
1.字符串函数
常用的几个如下
例.
select lpad('01',5,'_');
-- 结果:___01
2.数值函数
例子.
select round(3.44,1);-- 四舍五入
-- 结果:3.4
-- 通过数据库的函数,产生一个六位数的随机验证码
select rpad(round(rand()*1000000,0),6,'0');
3.日期函数
例.
select date_add(now(),INTERVAL 7 day);
-- 结果:2023-02-10 18:06:35
select datediff('2023-02-03','2023-10-03');
-- 结果:-242
4.流程函数
例.
select if(false,'Ok','Error');-- Error
select ifnull('z','y');-- z
select ifnull('','y');--
select ifnull(null,'y');-- y
二.约束
概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据
目的:保证数据库中数据的正确,有效性和完整性
分类:
注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束
例.
1.外键约束
概念:外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性
- 语法
例.
哪点不懂看这个
黑马程序员MySQL2022版-------外键约束
删除/更新行为
例.
三.多表查询
多表查询是指从多张表中查询
- 笛卡尔积:笛卡尔积是指在数学中,两个集合A集合和B集合的所有组合情况.(在多表查询时,需要消除无效的笛卡尔积)
分类:
1.多表关系介绍
项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,以各个表结构之间也存在着各种联系,基本上分为三种:
- 一对多(多对一)
- 多对多
- 一对一
(1).一对多(多对一)
(2).多对多
(3).一对一
2.内连接
内连接查询的是两张表交集的部分
语法:
演示.
3.外连接
语法.
演示.
4.自连接
语法.
演示.
5.联合查询
对于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集
语法.
注意.
- 对于联合查询的多张表的列数必须一致,字段类型也需要保持一致
- union all会将全部的数据直接合并在一起,union会对合并之后的数据去重
6.子查询
概念:SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询
- 根据子查询结果不同,分为:
- 根据子查询的位置不同,分为:WHERE之后,FROM之后,SELECT之后.
(1).标量子查询
概念:子查询返回的结果是单个值(数字,字符串,日期等),最简单的形式,这种子查询称为标量子查询
常用的操作符: = <> > >= < <
演示.
(2).列子查询
概念:子循环返回的结果是一列(可以是多行),这种子查询称为列子查询
常用的操作符: IN , NOT IN , ANY , SOME , ALL
演示.
(3).行子查询
概念:子查询返回的结果是一行(可以是多列),这种子查询称为行子查询
常用的操作符: = , <> , IN , NOT IN
演示.
(4).表子查询
概念:子查询返回的结果是多行多列,这种子查询称为表子查询
常用的操作符: IN
演示.
四.事务
概念:事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败
例.
操作.
一.
二.
演示看黑马P52
四大特性.
并发事务问题.
事务隔离级别.
注意:事务的隔离级别越高,数据越安全,但是性能越低