SQL进阶

⼀ 、 M y S Q L 函 数

数 据 分 析 的 基 础

1 . 排 序

1 . m a x

2 . m i n

2 . 汇 总

1 . c o u n t

2 . s u m

3 . a v g

3 . 数 制

1 . ⼆ 进 制

1 . 0 0

2 . 1 1

3 . 2 1 0

4 . 3 1 1

5 . 4 1 0 0

2 . ⼋ 进 制

3 . ⼗ 进 制

4. ⼗六进制

5. AA 27

1、聚合函数

只有 select ⼦句和 having ⼦句、order by ⼦句中能使⽤聚合函 数,where ⼦句不能使⽤聚合函数。当使⽤聚合查询以后,不能 使⽤where条件,如果要添加条件,就使⽤having

2、其他常⽤函数

(1)⽇期函数

(2)数字函数

(3)字符串函数

⼆、MySQL 分组查询

语法:

select 聚合函数(表头名 1),表头名 2 from 数据表名 group by 表 头名;

select 聚合函数(表头名) 临时表头名,真实表头名 from 数据表名 group by 真实表头名;

若⽤ group by 分组查询语句,必须加⼊聚合函数,否则报错 (踩坑)

下⾯实例:

三、MySQL ⼦语句查询

⼦查询是指⼀个查询语句嵌套在另⼀个查询语句内部的查询;

该查询语句可以嵌套在⼀个 SELECT、SELECT...INTO、 INSERT...INTO 等语句中。

在执⾏查询时,⾸先会执⾏⼦查询中的语句,再将返回的结果作 为外层查询的过滤条件。

在⼦查询中通常可以使⽤⽐较运算符和 IN、EXISTS、ANY、 ALL 等关键字。

例如:select * from class where cid=(select classid from student where sname='张三');

1、⽐较运算符的⼦查询

也就是⽤"="、"、">"这类⽐较运算符

2、exists 关键字的⼦查询

exists 关键字后⾯的参数可以是任意⼀个⼦查询, 它不产⽣任 何数据只返回 true 或 false。⽽当返回值为 true 时外层查询才会 执⾏。

相当于内层句⼦是⼀个判断句式。

四、MySQL 多表联合查询

1、交叉连接查询

交叉连接返回的结果是被连接的两个表中所有数据⾏的笛卡尔 积;

⽐如:集合A={a,b},集合B={0,1,2},则集合A和B的笛卡尔积为 {(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)。所以,交叉连接也被称为笛卡 尔连接。

语法:

select * from 表1 cross join 表2;

2、多表联合查询

语法:select 查询字段1,查询字段2, ... from 表1 join 表2 join ... on 表1.关系字段=表2.关系字段=...;

join:联合

on:条件

五、MySQL 授权

1、MySQL 基础权限

2、权限语法

grant all on test.user

客户机地址可以有以下表现形式:

%:表示所有地址

192.168.33.%:表示 33 ⽹段下所有主机,⼀般为你想为哪个⽹ 段授权,或为⾃⼰⽹段下的主机授权

六、MySQL 触发器

1、概念

触发器是⼀种特殊的存储过程,它在插⼊,删除或修改特定表中 的数据时触发执⾏,它⽐数据库本身标准的功能有更精细和更复 杂的数据控制能⼒

  1. 例如在某⼀个时间触发什么事情

  2. 例如不允许股票价格的升幅⼀次超过%10

  3. 审计功能,某⼀个⼈登录会记录所有的操作

2、触发器语法

create trigger 触发器名称 触发的时机 触发的动作 on 表名 for each row 触发器状态

  1. 语法的红字为固定格式

  2. 触发器名称:⾃定义 mysql> drop user haha@'192.168.100.%'; # 删除⽤户 Query OK, 0 rows affected (0.00 sec) mysql> show grants for haha@'192.168.100.%'; ERROR 1141 (42000): There is no such grant defined for user 'haha' on host '192.168.100.%'

  3. 触发的时机:before(之前) 或 after(之后),在执⾏动作之前还是 之后

  4. 触发的动作:指的激发触发程序的语句类型(插⼊、更新、删除表或数据等)

  5. each row:操作的每⼀⾏都会被监控 6. 触发器状态:在触发的动作之前或之后做什么事情,⽐如当我删 了表 1 的某条数据后,⾃动清空表 2。

3、触发器创建的四要素

(1)监视地点:table(表)

(2)监视事件:insert(插⼊)、update(更新)、delete(删除) 等动作

(3)触发时间:before(之前)、after(之后)

(4)触发事件:在监视事件之前或之后,对当前表或其他表的插 ⼊、更新、删除等动作

4、触发器实例

七、MySQL 基本优化操作

1、忘记 MySQL 密码

2、MySQL 存储引擎

相关推荐
LJianK112 分钟前
关系型数据库和非关系型数据库
sql
巨龙之路20 分钟前
什么是时序数据库?
数据库·时序数据库
蔡蓝26 分钟前
binlog日志以及MySQL的数据同步
数据库·mysql
是店小二呀1 小时前
【金仓数据库征文】金融行业中的国产化数据库替代应用实践
数据库·金融·数据库平替用金仓·金仓数据库2025征文
炒空心菜菜2 小时前
SparkSQL 连接 MySQL 并添加新数据:实战指南
大数据·开发语言·数据库·后端·mysql·spark
专注于大数据技术栈2 小时前
Mac上安装Mysql的详细步骤及配置
mysql
多多*2 小时前
算法竞赛相关 Java 二分模版
java·开发语言·数据结构·数据库·sql·算法·oracle
爱喝酸奶的桃酥2 小时前
MYSQL数据库集群高可用和数据监控平台
java·数据库·mysql
数据库幼崽2 小时前
MySQL 8.0 OCP 1Z0-908 61-70题
数据库·mysql·ocp
进击的CJR2 小时前
MySQL 8.0 OCP 英文题库解析(四)
mysql