糊涂了?是的,我也是 。我们再回过头来看点浅显的东西吧 。
我们学到了什么?
SELECT 语句可能是 SQL 语句中最难的部分了,尽管他看上去很简单 。其他语句的作用其实就是对表的不同形式的引用 。而 SELECT 语句则把这些引用整合在了一起,通过逻辑规则将源表映射到目标表,而且这个过程是可逆的,我们可以清楚的知道目标表的数据是怎么来的 。
想要学习好 SQL 语言,就要在使用 SELECT 语句之前弄懂其他的语句,虽然 SELECT 是语法结构中的第一个关键词,但它应该是我们最后一个掌握的 。
10、 SQL 语句中的几个简单的关键词:DISTINCT,UNION,ORDER BY 和 OFFSET
在学习完复杂的 SELECT 豫剧之后,我们再来看点简单的东西:
集合运算( DISTINCT 和 UNION )
排序运算( ORDER BY,OFFSET…FETCH)
集合运算( set operation):
集合运算主要操作在于集合上,事实上指的就是对表的一种操作 。从概念上来说,他们很好理解:
DISTINCT 在映射之后对数据进行去重
UNION 将两个子查询拼接起来并去重
UNION ALL 将两个子查询拼接起来但不去重
EXCEPT 将第二个字查询中的结果从第一个子查询中去掉
INTERSECT 保留两个子查询中都有的结果并去重
排序运算( ordering operation):
排序运算跟逻辑关系无关 。这是一个 SQL 特有的功能 。排序运算不仅在 SQL 语句的最后,而且在 SQL 语句运行的过程中也是最后执行的 。使用 ORDER BY 和 OFFSET…FETCH 是保证数据能够按照顺序排列的最有效的方式 。其他所有的排序方式都有一定随机性,尽管它们得到的排序结果是可重现的 。
OFFSET…SET是一个没有统一确定语法的语句,不同的数据库有不同的表达方式,如 MySQL 和 PostgreSQL 的 LIMIT…OFFSET、SQL Server 和 Sybase 的 TOP…START AT 等 。具体关于 OFFSET..FETCH 的不同语法可以参考这篇文章
(http://www.jooq.org/doc/3.1/manual/sql-building/sql-statements/select-statement/limit-clause/) 。
让我们在工作中尽情的使用 SQL!
正如其他语言一样,想要学好 SQL 语言就要大量的练习 。上面的 10 个简单的步骤能够帮助你对你每天所写的 SQL 语句有更好的理解 。另一方面来讲,从平时常见的错误中也能积累到很多经验 。
【十步完全理解 SQL】
推荐阅读
- Paxos算法为什么说是Raft,Zab协议的鼻祖,及原理解析
- 深入理解Linux IO复用之epoll
- 看都不懂的三层架构,到底要怎么理解?
- 共识算法Raft为什么这么流行,及原理解析
- 活死人意思 活死人的理解
- 看母树大红袍 加深理解武夷山茶文化
- 理解Spring:IOC的原理及手动实现
- PHP中钩子的理解与实例教程
- 这几点行为完全不会伤车,8成车主却坚信不疑,不懂的快来看看
- Linux 虚拟内存和物理内存的理解