SQL进阶教程 第2版
全新正版 极速发货
¥
36.7
4.1折
¥
89.8
全新
库存113件
作者(日)MICK 著 吴炎昌,侯振龙 译
出版社人民邮电出版社
ISBN9787115609762
出版时间2023-02
装帧平装
开本16开
定价89.8元
货号1202822344
上书时间2024-12-01
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
MICK(作者)
日本资历深厚的数据库工程师,就职于某系统集成商,致力于数据仓库和商业智能的开发。日常除了在其个人主页“关系数据库的世界”中分享数据库和SQL的相关技术信息外,还为翔泳社的网络媒体CodeZine和日本IT技术杂志WEB+DB PRESS撰写技术文章,同时还是《SQL解惑(第2版)》和《SQL权威指南(第4版)》日文版的译者
吴炎昌(译者)
毕业于西北工业大学软件工程专业。曾供职于日本多家软件公司,从事系统开发工作。2015年回国后加入美团点评,现任系统研发工程师。爱好旅行、电影,以及品尝各种美食,有一位志趣相投的伴侣。
侯振龙(译者)
管理科学与工程专业硕士,日语一级,软件开发工程师,具有十年以上对日软件开发经验,现就职于某日本独资企业。
目录
第1章神奇的SQL1
1-1CASE表达式2
在SQL里表达条件分支
写在前面2
CASE表达式的写法2
将已有编号方式转换为新的方式并统计4
用一条SQL语句进行多条件统计7
用CHECK约束定义多个列的条件关系11
在UPDATE语句里进行条件分支12
表之间的数据匹配15
在CASE表达式中使用聚合函数17
本节小结20
练习题22
1-2必知必会的窗口函数25
顺序编程的复活
什么是窗口26
一张图看懂窗口函数27
使用帧子句将其他行移至当前行29
窗口函数的内部动作34
本节小结37
练习题39
1-3自连接的用法41
从物理到逻辑的跳跃
可重排列、排列、组合41
删除重复行45
查找局部不一致的列48
本节小结50
练习题55
1-4三值逻辑和NULL56
SQL的温柔陷阱
写在前面56
理论篇57
实践篇61
本节小结71
练习题78
1-5EXISTS谓词的用法79
SQL中的谓词逻辑
写在前面79
理论篇79
实践篇85
本节小结95
练习题96
1-6HAVING子句的力量99
将世界看作集合
寻找缺失的编号99
用HAVING子句进行子查询:求众数105
查询不包含NULL的集合107
特征函数的应用110
使用HAVING语句表达全称量化113
单重集合与多重集合116
用关系除法运算进行购物篮分析120
本节小结123
练习题128
1-7用窗口函数进行行间比较130
告别关联子查询
写在前面130
增加、减少、没有变化130
时间轴有间断时:和过去最临近的时间进行比较135
窗口函数与关联子查询137
查询重叠的时间区间140
本节小结145
练习题145
1-8外连接的用法147
SQL的弱点及其趋势和对策
写在前面147
用外连接进行行列转换(1)(行→列):制作交叉表147
用外连接进行行列转换(2)(列→行):汇总重复项于一列151
在交叉表里制作嵌套式表侧栏153
作为乘法运算的连接158
全外连接160
用外连接进行集合运算163
用外连接求差集:A-B163
用外连接求差集:B-A164
用全外连接求异或集165
本节小结166
练习题168
1-9用SQL进行集合运算170
SQL和集合论
写在前面170
导入篇:集合运算的几个注意事项170
比较表和表:检查集合相等性之基础篇172
比较表和表:检查集合相等性之进阶篇175
用差集实现关系除法运算177
寻找相等的子集180
用于删除重复行的高效SQL183
本节小结185
练习题187
1-10用SQL处理数列188
用SQL处理有序数据——集大成
写在前面188
生成连续编号188
求全部的缺失编号192
3个人能坐得下吗194
有换排的数列197
单调递增和单调递减199
本节小结202
练习题204
1-11让SQL飞起来205
简单的SQL性能优化
写在前面205
使用高效的查询205
避免排序208
真的用到索引了吗213
减少中间表216
本节小结218
1-12SQL编程方法220
确立SQL的编程风格
写在前面220
表的设计222
编程的方针223
SQL编程方法230
本节小结234
第2章关系数据库的世界237
2-1关系数据库的近现代史238
数据库有过两次破坏性创新吗
关系数据库的历史238
破坏性创新会重复吗243
NoSQL的类型和解决方案245
性能问题的解决方案245
本节小结247
2-2为什么叫“关系”模型250
为什么不叫“表”模型
关系的定义250
定义域的忧虑253
关系值和关系变量254
存在“关系的关系”吗255
2-3开始于关系,结束于关系257
关于封闭世界的幸福
从运算角度审视集合257
实践和原理259
2-4地址:巨大的怪物261
为什么关系数据库里没有指针
写在前面261
关系模型是为摆脱地址而生的262
编程中泛滥的地址263
不曾远去的老将——约翰·巴克斯的梦想265
2-5关于顺序的冒险266
SQL的中心法则
迟来的主角266
行应该有顺序吗267
2-6GROUPBY和PARTITIONBY271
物以“类”聚
二者的区别271
2-7从面向过程思维向声明式思维、面向集合思维转变的7个关键点276
画圆
写在前面276
1.用CASE表达式代替IF语句和CASE语句。SQL更像一种函数式语言277
2.用GROUPBY和窗口函数代替循环278
3.表中的行没有顺序279
4.将表看成集合280
5.理解EXISTS谓词和“量化”的概念280
6.学习HAVING子句的真正价值281
7.不要画长方形,去画圆282
2-8人类的逻辑学284
浅谈逻辑学的历史
适当地抛开命题的真假吧284
逻辑学的革命286
人类的逻辑学287
2-9SQL和递归集合288
SQL和集合论的紧密关系
实际工作中的递归集合288
冯·诺依曼的前辈们288
数是什么290
SQL的魔术与科学293
2-10消灭NULL委员会294
全世界的数据库工程师团结起来
表明决心:告全体数据库工程师书294
为什么NULL如此惹人讨厌294
并不能完全消除NULL296
编号:使用异常编号297
名字:使用“无名氏”297
数值:用0代替298
日期:用最大值或最小值代替298
本节小结299
2-11SQL中的层级300
严格的等级社会
谓词逻辑中的层级、集合论中的层级300
为什么聚合后不能再引用原表中的列300
单元素集合也是集合304
第3章附录307
3-1习题解答308
3-2参考文献331
SQL整体331
数据库设计332
性能333
集合论和谓词逻辑三值逻辑333
后记335
内容摘要
本书是热销书《SQL基础教程》的作者MICK为志在向中级进阶的数据库工程师编写的一本SQL技能提升指南。全书可分为两大部分。第一部分介绍了SQL语言不同寻常的使用技巧,带领读者重新认识CASE表达式、窗口函数、自连接、EXISTS谓词、HAVING子句、外连接、行间比较、集合运算、数列处理等SQL常用技术,发掘它们的新用法。这部分不仅穿插讲解了这些技巧背后的逻辑和相关知识,而且辅以丰富的示例程序,旨在帮助读者从面向过程的思维方式转换为面向集合的思维方式。第二部分介绍了关系数据库的发展史,并从集合论和逻辑学的角度讲述了SQL和关系模型的理论基础,旨在帮助读者加深对SQL语言和关系数据库的理解。此外,本书很多节的末尾设置有练习题,并在书末提供了解答,方便读者检验自己对书中知识点的掌握程度。本书适合具有半年以上SQL使用经验、已掌握SQL基础知识和技能、希望提升自己编程水平的读者阅读。
主编推荐
1.进阶中级实用指南!160张图表+412段代码,掌握面向集合思维,发掘SQL常见技术的新用法
2.基于标准SQL编写,示例程序均可下载
3.深入浅出,示例丰富,转变面向过程语言思维定式,切实提升SQL编程水平
4.解析经典文献,导入逻辑学与集合论,深刻理解SQL底层逻辑
5.基于各DBMS新版本新升级,内容更新更全面,详解现代SQL新功能
— 没有更多了 —
以下为对购买帮助不大的评价