对《SQL基础教程》的笔记(9)
-
第8章 SQL 高级处理
olap rank dense_rank row_number rank over()
partition by order by
rows preceding following
grouping rollup cube grouping sets
-
第2章 查询基础
其实这是 SQL 中特有的情况。这时真值是除真假之外的第三种值——不确定(UNKNOWN) 。一般的逻辑运算并不存在这第三种值。 SQL 之外的语言也基本上只使用真和假这两种真值。与通常的逻辑运算被称为二值逻辑相对,只有 SQL 中的逻辑运算被称为三值逻辑。
-
第91页
使用GROUP BY子句可以像切蛋糕那样将表分割。通过使用聚合函数和 GROUP BY子句,可以根据“商品种类”或者“登记日期”等将表分割后再 进行汇总。 ● 聚合键中包含NULL时,在结果中会以“不确定”行(空行)的形式表现出来。 ● 使用聚合函数和GROUP BY子句时需要注意以下4点。 ① 只能写在SELECT子句之中 ② GROUP BY子句中不能使用SELECT子句中列的别名 ③ GROUP BY子句的聚合结果是无序的 ④ WHERE子句中不能使用聚合函数
-
第95页
SELECT 并用时 WHERE 和 GROUP BY的执行顺序 FROM → WHERE → GROUP BY → SELECT
-
第100页
但其实这个问题本身就是本末倒置的,我们应该考虑的是该 SELECT 语句是否 满足需求。选择的标准其实非常简单,在“想要删除选择结果中的重复记录”时 使用 DISTINCT,在“想要计算汇总结果”时使用 GROUP BY。 不使用COUNT等聚合函数,而只使用GROUP BY子句的SELECT语句,会让人 觉得非常奇怪,使人产生“到底为什么要对表进行分组呢?这样做有必要吗?”等 疑问。
-
第106页
虽然条件分别写在 WHERE 子句和 HAVING 子句当中,但是条件的 内容以及返回的结果都完全相同。因此,大家可能会觉得两种书写方式都 没问题。 如果仅从结果来看的话,确实如此。但笔者却认为,聚合键所对应的 条件还是应该书写在 WHERE 子句之中。 理由有两个。 首先,根本原因是 WHERE 子句和 HAVING 子句的作用不同。如前 所述, HAVING 子句是用来指定“组”的条件的。因此,“行”所对应的 条件还是应该写在 WHERE 子句当中。这样一来,书写出的 SELECT 语 句不但可以分清两者各自的功能,理解起来也更加容易。 WHERE 子句 = 指定行所对应的条件 HAVING 子句 = 指定组所对应的条件 其次,对初学者来说,研究 DBMS 的内部实现这一话题有些深奥, 这里就不做介绍了,感兴趣的读者可以参考随后的专栏——WHERE 子句 和 HAVING 子句的执行速度。
WHERE子句和HAVING子句的执行速度 在 WHERE 子句和 HAVING 子句中都可以使用的条件,最好写在 WHERE 子 句中的另一个理由与性能即执行速度有关系。由于性能不在本书介绍的范围之内, 因此暂不进行说明。通常情况下,为了得到相同的结果,将条件写在 WHERE 子句 中要比写在 HAVING 子句中的处理速度更快,返回结果所需的时间更短。 为了理解其中原因,就要从 DBMS 的内部运行机制来考虑。使用 COUNT 函 数等对表中的数据进行聚合操作时,DBMS 内部就会进行排序处理。排序处理是 会大大增加机器负担的高负荷的处理 A。因此,只有尽可能减少排序的行数,才能 提高处理速度。 通过 WHERE 子句指定条件时,由于排序之前就对数据进行了过滤,因此能够 减少排序的数据量。但 HAVING 子句是在排序之后才对数据进行分组的,因此与 在 WHERE 子句中指定条件比起来,需要排序的数据量就会多得多。虽然 DBMS 的内部处理不尽相同,但是对于排序处理来说,基本上都是一样的。 此外, WHERE 子句更具速度优势的另一个理由是,可以对 WHERE 子句指定条 件所对应的列创建索引,这样也可以大幅提高处理速度。创建索引是一种非常普遍 的提高 DBMS 性能的方法,效果也十分明显,这对 WHERE 子句来说也十分有利。
-
第155页
之前我们说过,在 SELECT 语句中视图可以和表一样使用。那么, 对于 INSERT、 DELETE、 UPDATE 这类更新语句(更新数据的 SQL) 来说,会怎么样呢? 实际上,虽然这其中有很严格的限制,但是某些时候也可以对视图进 行更新。标准 SQL 中有这样的规定:如果定义视图的 SELECT 语句能够 满足某些条件,那么这个视图就可以被更新。下面就给大家列举一些比较 具有代表性的条件。 ① SELECT 子句中未使用 DISTINCT ② FROM 子句中只有一张表 ③ 未使用 GROUP BY 子句 ④ 未使用 HAVING 子句
-
第196页
COALESCE 是 SQL 特有的函数。该函数会返回可变参数 A 中左侧开 始第 1个不是 NULL 的值。参数个数是可变的,因此可以根据需要无限增加。 其实转换函数的使用还是非常频繁的。在 SQL 语句中将 NULL 转换 为其他值时就会用到转换函数(代码清单 6-19、代码清单 6-20)。就像之 前我们学习的那样,运算或者函数中含有 NULL 时,结果全都会变为 NULL。能够避免这种结果的函数就是 COALESCE。
-
第242页
这正是外联结的关键点。多出的 2 条记录是高压锅和圆珠笔,这 2 条 记录在 ShopProduct 表中并不存在,也就是说,这 2 种商品在任何商 店中都没有销售。由于内联结只能选取出同时存在于两张表中的数据,因 此只在 Product 表中存在的 2 种商品并没有出现在结果之中。 相反,对于外联结来说,只要数据存在于某一张表当中,就能够读取 出来。在实际的业务中,例如想要生成固定行数的单据时,就需要使用外 联结。如果使用内联结的话,根据 SELECT 语句执行时商店库存状况的 不同,结果的行数也会发生改变,生成的单据的版式也会受到影响,而使 用外联结能够得到固定行数的结果。 虽说如此,那些表中不存在的信息我们还是无法得到,结果中高压锅 和圆珠笔的商店编号和商店名称都是 NULL(具体信息大家都不知道,真 是无可奈何)。外联结名称的由来也跟 NULL 有关,即“结果中包含原表 中不存在(在原表之外)的信息”。相反,只包含表内信息的联结也就被 称为内联结了。
的其他笔记 · · · · · · ( 全部1108条 )
- 人类死亡史
- 3
- 请教机长
- 2
- 预期收益:在不确定市场创造非凡回报
- 9
- 經濟學.INFOGRAPHICS視覺資訊大繪解
- 6
- 民族与民族主义
- 18
- 共產主義
- 2
- On Java 中文版 基础卷
- 1
- 预期收益
- 15
- 阿尔法经济学
- 5
- CFA一级中文教材
- 3
- 我畢業五年,用ETF賺到400萬
- 16
- 人为何需要仪式
- 3
- 投资的常识
- 5
- 图解棒球规则
- 3
- 生存还是毁灭
- 2
- 因子投资
- 6
- 像大师一样投资
- 1
- 致命的海滩
- 1
- FOF投资的量化分析
- 1
- 决战股市终极方案
- 1
- 男权的神话
- 4
- 小乌龟投资智慧2
- 2
- 股票魔法师
- 2
- 每个人的经济学
- 11
- 投资精要
- 3
- 估值:难点、解决方案及相关案例
- 1
- 手把手教你港股打新
- 2
- 从投票到暴力
- 2
- 巴菲特与索罗斯的投资习惯
- 2
- 股市进阶之道
- 7
- 中国股神林园炒股秘籍
- 1
- 彼得·林奇的成功投资
- 8
- 价值的力量
- 1
- 投资至简
- 7
- 债券投资实战
- 1
- 徐远的投资课
- 27
- 原则
- 1
- 從地理看經濟的44堂公開課
- 6
- 完全圖解 從海洋看世界經濟: 從海上貿易、領海攻防, 到石油、天然氣、水產資源的爭奪戰, 看懂世界經濟全貌
- 5
- 慢慢变富
- 3
- 癌症
- 1
- 您厉害,您赚得多
- 4
- 投资中不简单的事
- 9
- 投资中最简单的事
- 7
- 超额收益
- 2
- 股市真规则
- 11
- 股市长线法宝(原书第5版)
- 13
- 大钱细思
- 5
- 共同基金常识
- 8
- 散户自救法则
- 1
- 买入大牛股的9个关键
- 3
- 指数基金投资指南
- 4
- 七堂课穿越牛熊
- 4
- 低风险投资十八种武器
- 6
- 低风险投资之路 (第二版)
- 1
- 投资大白话
- 4
- 你的第一本保险指南
- 6
- 躺着赚钱
- 3
- ETF全球投资指南
- 9
- 投资最重要的事
- 14
- 定投十年财务自由
- 19
- 投资
- 1
- 现代世界的诞生
- 1
- 全球不平等逸史
- 8
- 好好赚钱
- 1
- 有效资产管理
- 4
- 毒家企業
- 1
- how to如何不切实际地解决实际问题
- 1
- 迈向财富自由之路
- 5
- 美国政党与选举
- 6
- 领导力
- 1
- 戏剧
- 1
- 經濟學.視覺資訊全解讀
- 12
- 好的资本主义,坏的资本主义
- 5
- 太阳系三环到四环搬迁纪要
- 1
- 埃及的革命考古學
- 1
- 經濟學人109個世界常識: 藏在5G通訊、表情符號和酒杯尺寸背後的祕密
- 2
- 重构
- 1
- 为什么不平等至关重要
- 1
- 白板
- 7
- 邻人之妻
- 3
- 秘境
- 1
- 白话大数据与机器学习
- 1
- 深度学习入门
- 1
- 怎样玩转信息
- 1
- 民族主义
- 2
- 码农翻身
- 2
- 数据密集型应用系统设计
- 2
- 自闭症
- 2
- 瘋狂世界
- 1
- 万物起源
- 1
- 码出高效:Java开发手册
- 4
- 做二休五
- 1
- 民主
- 2
- Java Web轻量级开发面试教程
- 1
- 海盗经济学
- 3
- 法医的眼泪
- 1
- 生活中的经济学
- 2
- 纪录片
- 5
- 数字游戏
- 3
- 程序员面试金典(第5版)
- 2
- 上一堂最好玩的日本学
- 1
- Java程序员成功面试秘籍
- 15
- 程序员面试手册
- 2
- Spring 3.x企业应用开发实战
- 3
- Spring+MyBatis企业应用实战
- 12
- 扫地出门
- 10
- 数据结构与算法经典问题解析
- 2
- 深入分析Java Web技术内幕
- 3
- 东京酷玩之旅
- 1
- 日本.铁道旅行途中
- 1
- Java程序性能优化
- 8
- 宅人的东京
- 1
- Spring实战(第4版)
- 4
- Spring实战(第3版)
- 1
- Java Persistence with MyBatis 3
- 1
- Effective java 中文版(第2版)
- 15
- 疯狂Java讲义
- 13
- 銀座媽媽桑教的,男人就是吃這套!
- 1
- Java Web技术及应用
- 1
- 塑造世界经济的50项伟大发明
- 1
- Java 8实战
- 2
- MySQL技术内幕
- 1
- 吴琼琼的彩妆教室
- 1
- 风格感觉
- 1
- 培養與鍛鍊程式設計的邏輯腦(第二版)
- 2
- 明解Java
- 3
- 无神论
- 8
- 經濟學A-Z速查指南
- 6
- 高手
- 1
- 经济学语境下的法律规则
- 4
- 精通Git(第2版)
- 3
- 千年金融史
- 1
- 创造性破坏
- 10
- 移动的帝国
- 4
- 搭地铁游曼谷(第3版)
- 1
- 乡下人的悲歌
- 3
- 如何有效阅读一本书
- 1
- co-Trip小游趣:东京
- 1
- 这就是日本
- 8
- 东京攻略完全制霸(第5版)
- 1
- 算法图解
- 14
- HTTP/2基础教程
- 2
- 政治是什么?
- 19
- 为什么有的国家富裕,有的国家贫穷
- 1
- 认识管理(第4版)
- 4
- Web应用安全权威指南
- 22
- 图解基础设施设计模式
- 4
- PHP7内核剖析
- 2
- 经济学的思维方式(原书第13版)
- 2
- 图解Java多线程设计模式
- 1
- 经营战略全史
- 4
- 图解密码技术
- 10
- 图解TCP/IP (第5版)
- 5
- 斯坦福极简经济学
- 1
- 图解HTTP
- 5
- 经济学通识课
- 2
- Web应变之道
- 1
- SQL进阶教程
- 5
- 技术之瞳——阿里巴巴技术笔试心得
- 2
- 深入理解ES6
- 11
- 文案创作完全手册
- 2
- 收获,不止SQL优化
- 8
- 卧底经济学4
- 7
- 知识分子与社会
- 1
- Pretty Good Number One
- 13
- 网络是怎样连接的
- 5
- 图解设计模式
- 1
- JavaScript权威指南(第6版)
- 1
- JavaScript高级程序设计(第3版)
- 2
- Web性能权威指南
- 6
- JavaScript模式
- 7
- 高性能网站建设进阶指南
- 12
- AV男優Q&A
- 1
- 黑客攻防技术宝典(第2版)
- 11
- 程序员面试攻略(原书第3版)
- 1
- jQuery基础教程(第3版)
- 5
- jQuery 技术内幕
- 1
- 李安哲学
- 1
- 编写高质量代码
- 1
- HTML5数据推送应用开发
- 2
- 酷玩经济学
- 10
- JavaScript忍者秘籍
- 6
- Ruby on Rails Tutorial
- 5
- Modern PHP(中文版)
- 1
- Web前端黑客技术揭秘
- 5
- 性存在
- 5
- 好色
- 1
- MongoDB权威指南
- 4
- 谜男启示录
- 2
- 賣淫的倫理學探究
- 2
- 嗨翻C语言
- 1
- 艺术的疗效
- 1
- 高效能程序员的修炼
- 2
- 独裁者手册
- 2
- 我的涼山兄弟
- 2
- 哈利·波特的哲学世界
- 4
- 如何高效学习
- 3
- 无聊的魅力
- 2
- Web之困:现代Web应用安全指南
- 1
- 程序员的思维修炼
- 1
- 苦水音乐
- 1
- 大转变
- 1
- 《生活大爆炸》粉丝升级手册
- 3
- 像经济学家一样思考
- 1
- 打工女孩
- 3
- 经济学常识
- 1
- 美国底层生存方式揭秘
- 1
- 时尚的哲学
- 1
- 被掩盖的经济真相
- 2
- 读人
- 4
- 平壤水族馆
- 1
- 人生的意义
- 3
- 浪潮之巅
- 15
- 论剽窃
- 1
- 你以为你以为的就是你以为的吗?2
- 5
- 加图决策者手册
- 4
- 不要讓床冷掉
- 2
- 社会主义
- 1
- 足球经济学
- 14
- 享受吧!一個人的SEX
- 1
- 快感
- 2
- 漫步华尔街
- 4
- 一件T恤的全球经济之旅
- 4
- 一切皆有价
- 6
- 白老虎
- 3
- 市场经济:大师们的思考
- 23
- 写给无神论者
- 3
- 理性乐观派
- 10
- 怪诞行为学
- 5
- 为什么常识会撒谎
- 2
- 价格理论及其应用
- 9
- 被捆绑的欲望
- 2
- 反对爱情
- 5
- 百辩经济学
- 8
- 诡辩与真相
- 57
- 亲爱的卧底经济学家
- 4
- 头条新闻背后的哲学
- 1
- 社会学与生活
- 1
- 把妹達人之誘惑藝術
- 3