作者回复: 完整的SELECT语句内部执行顺序是:
1、FROM子句组装数据(包括通过ON进行连接)
2、WHERE子句进行条件筛选
3、GROUP BY分组
4、使用聚集函数进行计算;
5、HAVING筛选分组;
6、计算所有的表达式;
7、SELECT 的字段;
8、ORDER BY排序
9、LIMIT筛选
作者回复: 正确
作者回复: 多谢支持,不同企业使用的DBMS会有不同,所以在竞争激烈的环境下掌握不同的RDBMS的使用有时候会是一种优势。
我们知道数据库都有自己的“方言”,同时也都遵循一定的规范标准,所以对规范标准的掌握有时候更重要,“方言”在实际使用中查阅相应的RDBMS文档,当然日常积累也很重要
专栏里不同人所处的阶段不同,所以需要先交付基础,当然即使是基础篇也需要了解底层原理,这样对后续的SQL优化很有必要。
赞下总结笔记的习惯,我接触很多同学,一般来说经常写总结笔记的同学收获更大,在实际工作中也会游刃有余。
作者回复: 对的 就是讲解下如果支持全外连接的数据库是怎样的结果。Oracle支持全外连接 FULL JOIN,而MySQL不支持,不过想要写全外连接的话,可以用 左外连接 UNION 右外连接,比如:
SELECT * FROM player LEFT JOIN team ON player.team_id = team.team_id
UNION
SELECT * FROM player RIGHT JOIN team ON player.team_id = team.team_id
作者回复: 加油~
作者回复: 对的,我们需要先了解都有哪些写法,然后在正确性的基础上提升SQL优化的能力,这部分会在后面陆续讲到。
SQL优化有很多维度,最常用的考虑可以从两方面入手:如何建立有效的索引策略(包括主键),以及不要在WHERE的字段中做函数运算。
在此基础上,我们还会了解事务处理,锁的机制,不同RDBMS的特点和使用等等。
作者回复: JOIN 就是默认的 INNER JOIN,LEFT JOIN是左连接
左连接:以左表为主,关联上右表
内连接:左表和右表的交集
作者回复: SQL查询语句是面向集合的思维方式,你需要思考你想提取的数据是什么?不论是一对多,一对一,还是多对多的关系,关注的都应该是你想提取的数据是什么。
不过在建数据表的时候,你需要考虑到这些关系的特性,比如一张数据表是一对多的关系,可以将1端设置为主键,这样在查询的时候效率更高。
作者回复: 加油Krison,SQL写的不错
作者回复: 正确