SQL沉思录
正版,绝版好书
¥
30
6.1折
¥
49
九品
仅1件
作者[美]塞科 著;马树奇 译
出版社人民邮电出版社
出版时间2009-11
版次1
装帧平装
上书时间2023-04-07
商品详情
- 品相描述:九品
图书标准信息
-
作者
[美]塞科 著;马树奇 译
-
出版社
人民邮电出版社
-
出版时间
2009-11
-
版次
1
-
ISBN
9787115213952
-
定价
49.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
270页
-
字数
414千字
-
正文语种
简体中文
-
原版书名
Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL
-
丛书
图灵程序设计丛书·数据库系列
- 【内容简介】
-
《SQL沉思录》通过大量的实例,详细说明了为提高SQL编程技术而必须面对的思想方法上的根本转变——由以过程式编程方式思考转变为以数据集的方式来思考。此外,《SQL沉思录》还讨论了关于SQL编程中查找表、视图、辅助表、虚拟表的应用,并独到地阐明了如何在SQL系统中正确地处理时间值以及SQL编程中的其他技术难点。
《SQL沉思录》适合广大数据库编程人员和SQL程序员学习参考。
- 【作者简介】
-
JoeCelko,世界著名的数据库专家,曾担任ANSISQL标准委员会成员达10年之久,他也是世界上读者数量最多的SQL图书作者之一。他曾撰写过一系列专栏,并通过他的新闻组支持和推动了数据库编程技术以及ANSI/ISO标准的发展。除本书外,他还撰写了多部SQL经典著作,包括《SQL编程风格》、《SQL解惑》和《SQL权威指南》,上述作品的中文版均已经或即将由人民邮电出版社出版。
- 【目录】
-
第1章SQL是声明式语言,不是过程式语言1
1.1不同的编程模型1
1.2不同的数据模型3
1.2.1“列”不是“字段”4
1.2.2行不是记录6
1.2.3表不是文件9
1.2.4关系键不是记录定位器11
1.2.5键的类型12
1.2.6关系键的理想属性14
1.2.7唯一,但并非不变15
1.3表作为实体15
1.4表作为关系16
1.5语句不是过程16
1.6分子、原子和亚原子型数据元素17
1.6.1分割表17
1.6.2分割列18
1.6.3时间值的分割19
1.6.4假造的非第一范式数据19
1.6.5分子型数据元素21
1.6.6异构数据元素21
1.6.7检验分子型数据22
第2章硬件、数据量和维护数据库23
2.1并行处理技术23
2.2廉价的主存储器25
2.3固态磁盘25
2.4更廉价的二级存储器和三级存储器25
2.5数据也在改变26
2.6思维方式并未改变26
第3章数据访问和记录29
3.1顺序访问29
3.2索引30
3.2.1单表索引31
3.2.2多表索引31
3.2.3索引的类型32
3.3散列32
3.3.1数字选择33
3.3.2除法散列33
3.3.3乘法散列33
3.3.4合并33
3.3.5表的查找33
3.3.6冲突34
3.4位向量索引34
3.5并行访问34
3.6行和列存储35
3.6.1基于行的存储35
3.6.2基于列的存储35
3.7联结算法36
3.7.1嵌套循环联结算法37
3.7.2排序合并联结算法37
3.7.3散列联结算法37
3.7.4Shin算法38
第4章查找表39
4.1数据元素的名称40
4.2多参数查找表42
4.3常量表43
4.4OTLT或MUCK表问题45
4.5正确表的定义48
第5章辅助表49
5.1序列表49
5.1.1创建序列表51
5.1.2序列构造器51
5.1.3替换迭代循环52
5.2排列54
5.2.1通过递归进行排列54
5.2.2通过CROSSJOIN进行排列55
5.3函数57
5.4通过表实现加密59
5.5随机数60
5.6插值63
第6章视图66
6.1Mullins视图使用原则66
6.1.1高效访问和计算67
6.1.2重命名列68
6.1.3避免增生68
6.1.4视图同步原则68
6.2可更新视图和只读视图69
6.3视图的类型71
6.3.1单表投影和限制71
6.3.2计算列71
6.3.3转换列72
6.3.4分组视图72
6.3.5联合视图73
6.3.6视图的联结74
6.3.7嵌套视图75
6.4用表构建类模型76
6.4.1SQL中类的层次结构77
6.4.2通过ASSERTION和TRIGER工作的子类79
6.5数据库系统如何处理视图79
6.5.1视图列的列表79
6.5.2视图的物化80
6.6嵌入式文本扩展80
6.7WITHCHECKOPTION子句81
6.8删除视图86
6.9过时的视图用法87
6.9.1域的支持87
6.9.2表表达式视图88
6.9.3表级CHECK()约束的视图88
6.9.4每个基表一个视图88
第7章虚拟表90
7.1派生表90
7.1.1列的命名规则91
7.1.2作用域规则91
7.1.3公开的表名93
7.1.4LATERAL()子句94
7.2CTE96
7.2.1非递归CTE96
7.2.2递归CTE97
7.3临时表98
7.3.1ANSI/ISO标准99
7.3.2厂商的模型99
7.4信息模式99
7.4.1INFORMATION_SCHEMA声明100
7.4.2视图及其用途的快速列表101
7.4.3域的声明102
7.4.4定义模式102
7.4.5INFORMATION_SCHEMA断言105
第8章用表实现的复杂函数106
8.1没有简单公式的函数106
8.2用表实现校验位107
8.2.1校验位的定义107
8.2.2检错与纠错的对比108
8.3算法的分类109
8.3.1加权和算法109
8.3.2幂和校验位111
8.3.3Luhn算法112
8.3.4DihedralFive校验位113
8.4声明不是函数,不是过程114
8.5用于辅助表的数据挖掘118
第9章时态表120
9.1时间的本质120
9.1.1时间段,不是时间子121
9.1.2细分程度122
9.2ISO半开放时间模型123
9.2.1用NULL表示永远125
9.2.2单时间戳表125
9.2.3重叠的时间间隔127
9.3状态转换表134
9.4合并时间间隔138
9.4.1游标和触发器139
9.4.2OLAP函数解决方案140
9.4.3CTE解决方案141
9.5Calendar表142
9.5.1用表提供星期值142
9.5.2节假日列表143
9.5.3报告期145
9.5.4自更新视图145
9.6历史表147
第10章用非第一范式表清理数据149
10.1重复的组149
10.2设计清理表155
10.3清理操作使用的约束157
10.4日历清理158
10.5字符串清理159
10.6共享SQL数据161
10.6.1数据的发展162
10.6.2数据库162
10.7提取、转换和加载产品163
10.7.1加载数据仓库164
10.7.2全部用SQL来完成165
10.7.3提取、转换并加载166
第11章以SQL的方式思考168
11.1热身练习168
11.1.1整体,不是部分169
11.1.2特征函数169
11.1.3尽早锁定解决方案171
11.2启发式方法172
11.2.1将规范表达为清晰的语句172
11.2.2在名词前面添加“所有……的集合”几个字172
11.2.3删除问题语句中的行为动词173
11.2.4仍然可以使用存根173
11.2.5不要担心数据的显示174
11.2.6第一次尝试需要专门处理175
11.2.7不要害怕抛弃自己在DDL中的首次尝试175
11.2.8克制使用DML的冲动176
11.2.9不要以方框和箭头的方式思考176
11.2.10画圆和数据集示意图177
11.2.11学习具体的产品178
11.2.12把WHERE子句看做“超级变形虫”178
11.2.13使用新闻组、博客和因特网178
11.3不要在SQL中使用BIT或BOOLEAN标记179
11.3.1标记位于错误的层179
11.3.2标记使用不当使正确属性难以理解181
第12章组特征184
12.1并不是按是否相等来分组185
12.2使用组,不看里面是什么186
12.2.1半面向数据集的方式187
12.2.2分组的解决方案188
12.2.3解决方案总结189
12.3根据时间分组190
12.3.1渐进式解决方案190
12.3.2整体数据解决方案192
12.4其他使用HAVING子句的技术192
12.5GROUPING、ROLLUP和CUBE194
12.5.1GROUPINGSET子句194
12.5.2ROLLUP子句195
12.5.3CUBE子句196
12.5.4关于超级组的脚注196
12.6WINDOW子句196
12.6.1PARTITIONBY子句197
12.6.2ORDERBY子句198
12.6.3RANGE子句198
12.6.4编程技巧199
第13章将技术规范变为代码200
13.1不良SQL的标志200
13.1.1代码的格式是否像另一种语言200
13.1.2顺序访问假设201
13.1.3游标201
13.1.4糟糕的内聚度201
13.1.5表值函数202
13.1.6同一数据元素有多个名称202
13.1.7数据库中的格式202
13.1.8将日期保存到字符串中203
13.1.9BIT标记、BOOLEAN及其他计算列203
13.1.10跨列的属性分割203
13.1.11跨行的属性分割203
13.1.12跨表的属性分割203
13.2解决方法204
13.2.1基于游标的解决方案204
13.2.2半面向数据集的解决方案205
13.2.3完全面向数据集的解决方案207
13.2.4面向数据集代码的优点207
13.3解释含糊的说明207
13.3.1回归到DDL209
13.3.2修改问题说明211
第14章使用过程及函数调用213
14.1清除字符串中的空格213
14.1.1过程式解决方案#1213
14.1.2函数解决方案#1214
14.1.3函数解决方案#2217
14.2聚合函数PRD()218
14.3在过程和函数中使用长参数列表220
第15章对行编号223
15.1过程式解决方案223
15.2OLAP函数226
15.2.1简单的行编号226
15.2.2RANK()和DENSE_RANK()227
15.3节228
第16章保存计算数据231
16.1过程式解决方案231
16.2关系式解决方案232
16.3其他种类的计算数据233
第17章约束类触发器234
17.1计算类触发器234
17.2通过CHECK()和CASE约束实现的复杂约束235
17.3通过视图实现复杂约束237
17.4用约束实现视图操作239
17.4.13个基本操作239
17.4.2WITHCHECKOPTION子句240
17.4.3WITHCHECKOPTION与CHECK()子句243
17.4.4视图的行为244
17.4.5联合视图246
17.4.6简单的INSTEADOF触发器247
17.4.7关于INSTEADOF触发器的告诫250
第18章过程式解决方案和数据驱动的解决方案251
18.1删除字符串中的字母251
18.1.1过程式解决方案252
18.1.2纯粹的SQL解决方案252
18.1.3不纯粹的SQL解决方案253
18.2数独的两种求解方法254
18.2.1过程式解决方案254
18.2.2数据驱动的解决方法254
18.2.3处理已知数字255
18.3数据约束方法257
18.4装箱问题261
18.4.1过程式解决方法261
18.4.2SQL方式262
18.5库存成本随时间的变化264
18.5.1库存中使用的UPDATE语句267
18.5.2回到装箱问题268
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价