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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值