转至:推荐微信公号(IT牧场) MySql学习笔记 https://mp.weixin.qq.com/s/kR44s2A5bSYpzqwQeC2c0g
1.case..when 用法:
https://www.cnblogs.com/chenduzizhong/p/9590741.html
2.MySql 关键字
书写顺序: select -> from -> where -> group by -> having -> order by limit [offset,] (rows)
注意: limit m,n 代表(m,m+n],左开右闭,如(0,10],就是1到10
执行顺序:from -> where -> group by -> having -> select -> order by limit
或 from →join →on →where →group by→having→select→order by→limit
from:需要从哪个数据表检索数据
join:联合多表查询返回记录时,并生成一张临时表
on:在生成临时表时使用的条件
where:过滤表中数据的条件
group by:如何将上面过滤出的数据分组
having:对上面已经分组的数据进行过滤的条件
select:查看结果集中的哪个列,或列的计算结果
order by :按照什么样的顺序来查看返回的数据
limit:限制查询结果返回的数量
注意:
1)from后面的表关联,解析是自右向左解析的(最后面的那个表为驱动表,尽量将数据量小的表放在后面来进行关联,即用小表去匹配大表)。
2)where子句的执行顺序不同数据库顺序不同:Oracle自右向左,mysql则是自左向右,但同样的思想:把能筛选出小量数据的条件先执行,同样用小表去匹配大表。
3)having语句,很耗资源。
4)select语句中,需指明要查询的字段,少用*号。
5)order by,很耗资源,其执行顺序为自左向右
3.Mysql 存储过程
存储过程:数据库 SQL 语言层面的代码封装与重用
可参考:https://www.runoob.com/w3cnote/mysql-stored-procedure.html
4.Mysql 触发器
触发器:一张表发生了某件事(插入、删除、更新操作),然后自动触发了预先编写好的若干条SQL语句的执行
可参考:https://blog.csdn.net/tonysong111073/article/details/99286229
https://www.cnblogs.com/geaozhang/p/6819648.html
https://www.cnblogs.com/fps2tao/p/10400936.html
5.MySql 索引
索引:大大提高了查询速度,同时却会降低更新表的速度,建立索引会占用磁盘空间的索引文件