加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_常德站长网 (https://www.0736zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

这张思维导图帮你快速自查 SQL 简单查询

发布时间:2022-10-23 23:01:36 所属栏目:MsSql教程 来源:网络
导读: 如果想快速了解自己对于 SQL 知识点的掌握是否全面、以及是否有遗漏,那么可以参考我做的这个思维导图,快速自查,看到相关的主题如果回忆不起来对应的细节,那么马上去查看对应的知识点。

如果想快速了解自己对于 SQL 知识点的掌握是否全面、以及是否有遗漏,那么可以参考我做的这个思维导图,快速自查,看到相关的主题如果回忆不起来对应的细节,那么马上去查看对应的知识点。思维导图是一个帮助总结、复习的好学习方法! I LOVE IT!

快速生成insert语句_mssql 语句快速参考_伊利股份2011年财务分析报告 参考参考

SQL 基本查询知识点一览推荐一个检验你 SQL 水平的好地方

如果学了很久的 SQL,但是又不知道自己到底理解到哪个程度,那么可以去下面这个网站做一下题目,看看自己真实水平到底如何。

此网站的优点:

1、难度由小到大,循序渐进,遇到比较复杂的查询还会给提示。

2、做题结果错误时,会给出具体的提示,同时还可以查看正确答案mssql 语句快速参考,进行比对,纠错十分方便。做对了的时候,看到 smile face,简直很开心。

3、网站侧边栏进度条给人以闯关的游戏即视感,把任务拆分成一阶阶,十分有利于坚持到底。

我把全部题目做了一到两遍, SQLZOO 里面稍微复杂点的题目的答案我放到了 Github,有需求的可以自取。

说几个题目

SQL 语句的书写顺序

1、SELECT \rightarrow 2、FROM \rightarrow 3、WHERE \rightarrow 4、GROUP BY \rightarrow 5、HAVING \rightarrow 6、ORDER BY

SQL 语句的执行顺序

1、FROM \rightarrow 2、ON \rightarrow 3、JOIN \rightarrow 4、WHERE \rightarrow 5、GROUP BY \rightarrow 6、HAVING \rightarrow 7、HAVING \rightarrow 8、SELECT \rightarrow 9、DISTINCT\rightarrow 10、ORDER BY

选择条件写在 WHERE 还是 GROUP BY?

SQLZOO 里面 SUM and COUNT 中的第 7 题 跟 第 8 题。两者问题表述的不同在于,前者的筛选条件针对单个的 country,后者的筛选条件要求 continent 的 所有country 合起来人口超过 100 million。聚合函数不能写在 WHERE 语句,这跟 SQL 里面语句的执行顺序有关。

快速生成insert语句_伊利股份2011年财务分析报告 参考参考_mssql 语句快速参考

比如下面的这个语句就有错误,因为 SUM 是聚合函数,不能写在 WHERE 语句中。

伊利股份2011年财务分析报告 参考参考_快速生成insert语句_mssql 语句快速参考

其实这个错误就在这里有提到,所以大家只要对着思维导图去回忆、强化,这种错误就不会犯。

快速生成insert语句_mssql 语句快速参考_伊利股份2011年财务分析报告 参考参考

各种 JOIN 有什么区别?

The JOIN operation 里面的13题:

伊利股份2011年财务分析报告 参考参考_mssql 语句快速参考_快速生成insert语句

Answer:

mssql 语句快速参考_伊利股份2011年财务分析报告 参考参考_快速生成insert语句

筛选出的结果(截图未截全):

快速生成insert语句_mssql 语句快速参考_伊利股份2011年财务分析报告 参考参考

快速生成insert语句_mssql 语句快速参考_伊利股份2011年财务分析报告 参考参考

这题主要强调的是对 JOIN 和 LEFT JOIN 区别的注意,插播一句,之前面试阿里的时候,面试官就问到了「JOIN 跟 LEFT JOIN 有什么区别,这里统一解释一下我的理解,如果有错误之处,还请指出。

伊利股份2011年财务分析报告 参考参考_mssql 语句快速参考_快速生成insert语句

SQL JOIN 语句的种类以及区别

同样的筛选条件,放在 ON 还是 放在 WHERE 子句中效率更高?

首先,SQL 语句的执行顺序如下:

1、FROM \rightarrow 2、ON \rightarrow 3、JOIN \rightarrow 4、WHERE \rightarrow 5、GROUP BY \rightarrow 6、HAVING \rightarrow 7、HAVING \rightarrow 8、SELECT \rightarrow 9、DISTINCT\rightarrow 10、ORDER BY

如果只是 JOIN (INNER JOIN),那么第3步,JOIN 不会进行任何附加操作,也就是 ON 之后就是 WHERE,所以此时筛选条件放在 ON 或者 WHERE,结果都是一样的。

如果是 OUTER JOIN(LEFT JOIN/RIGHT JOIN),那么在第3步,JOIN 操作会补齐主表的数据行,非主表所在行如果不存在数据,那么用 NULL 补齐,然后才会进行 WHERE 条件的筛选,所以条件放在 ON 跟 WHERE,结果会不一样。

所以,如果是OUTER JOIN,那么筛选条件放在 ON,SQL 的执行效率会更高,因为这样在前面就减少了 WHERE 所要进行的操作。

下面这两个栗子我觉得说的很清楚,可以参考一下。

特殊字符的处理

Q:

伊利股份2011年财务分析报告 参考参考_快速生成insert语句_mssql 语句快速参考

A:

快速生成insert语句_mssql 语句快速参考_伊利股份2011年财务分析报告 参考参考

要使用的字符串里面有单引号时,可以多写一个单引号进行转义。

Q:

mssql 语句快速参考_快速生成insert语句_伊利股份2011年财务分析报告 参考参考

A:

快速生成insert语句_伊利股份2011年财务分析报告 参考参考_mssql 语句快速参考

这题把 CASE 语句拿来做排序依据,可以实现,'Physics',和 'Chemistry' 的得奖排在后面。这个在第六章里的思维导图里也有提到:

伊利股份2011年财务分析报告 参考参考_mssql 语句快速参考_快速生成insert语句

关于 SQL,我有两点想谈:

第一,编写 SQL 语句时,除了了解这些基本语法、原则,最重要的就是逻辑思维。个人认为,SQL 非常考验人的逻辑,而逻辑跟一个人在平时的生活、做事方式、思维方式是离不开的,这是需要锻炼的。

第二,一番题目做下来,最深刻的感受大概就是,RDBMS 之所以是 R 开头,就是因为不同的数据集之间是有关系的,不是孤立的,而我们在工作生活中需要的信息往往不能只从一个表中获得,写到后面,简单查询都比较少,涉及最多的是复杂查询,即需要用到大量的 JOIN,所以对于 JOIN 的彻底理解和熟练使用非常重要。另外,还有一些小技巧要靠做题、经验来获得,实践多了,写 SQL 语句自然就有了感觉。

伊利股份2011年财务分析报告 参考参考_快速生成insert语句_mssql 语句快速参考

(编辑:应用网_常德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!