一、SQL的select语句完整的执行顺序
- from子句组装来自不同数据源的数据
- where子句基于指定的条件对记录行进行筛选
- group by子句将数据划分为多个分组
- 使用聚集函数进行计算
- 使用having子句进行筛选分组
- 计算所有的表达式
- select字段
- 使用order by 对结果集进行排序
二、SQL值聚合函数
聚合函数是对一组值进行计算并返回单一的值的函数,它经常与select语句中的gruop by 子句一同使用
- avg():返回的是指定组中的平均值,空值被忽略.
- count():返回的是指定组中的项目个数
- max():返回指定数据中的最大值
- min():返回指定数据中的最小值
- sum():返回指定数据的和,只能用于数字列,控制忽略
- group by():对数据进行分组,对执行完group by之后的组进行聚合函数的运算,计算每一组的值。最后用having去掉不符合条件的 组,having子句中的每一个元素必须出现在select列表中
三、SQL之连接查询
- 外连接:
左连接(左外连接):以左表为基准进行查询,左表数据会全部显示出来,右表如果和左表匹配的数据则显示对应字段的数据,如果 不匹配则显示为null
右连接(忧外链接):以右表为基准进行查询,右表数据会全部显示出来,左表如果和右表匹配的数据则显示对应的字段数据,如果 不匹配则显示为null
全连接:先以左表进行左外连接,再以右表进行右外连接。
- 内连接:显示表之间有连接匹配的所有行
四、Mysql的性能优化
- 当只要一行的数据时使用limit 1
- 选择正确的数据库引擎
- 用not exists 代替 not in
- 对操作符的优化,尽量不采用不利于索引的操作符
五、sql面试题
给大家推荐一篇非常好的博客,该博客中收集了最常见的 Mysql 常见面试题和笔试题。
博客链接: http://www.cnblogs.com/qixuejia/p/3637735.html