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 存储引擎

相关推荐
时差95318 分钟前
【面试题】Hive 查询:如何查找用户连续三天登录的记录
大数据·数据库·hive·sql·面试·database
让学习成为一种生活方式19 分钟前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
Mephisto.java26 分钟前
【大数据学习 | kafka高级部分】kafka的优化参数整理
大数据·sql·oracle·kafka·json·database
秋意钟1 小时前
MySQL日期类型选择建议
数据库·mysql
山海青风1 小时前
第七篇: BigQuery中的复杂SQL查询
sql·googlecloud
Dxy12393102162 小时前
python下载pdf
数据库·python·pdf
ac-er88882 小时前
MySQL如何实现PHP输入安全
mysql·安全·php
桀桀桀桀桀桀2 小时前
数据库中的用户管理和权限管理
数据库·mysql
lzhlizihang3 小时前
【Hive sql 面试题】求出各类型专利top 10申请人,以及对应的专利申请数(难)
大数据·hive·sql·面试题
superman超哥3 小时前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba