SQL沉思录
SQL沉思录封面图

SQL沉思录

(美) 塞科 (Celko,J.) , 著

出版社:人民邮电出版社

年代:2009

定价:49.0

书籍简介:

本书通过大量实例说明了为提高SQL编程技术而必须面对的思想方法上的根本转变——由以过程式编程方式思考转变为以数据集的方式来思考。书中还讨论了SQL中查找表、视图、辅助表、虚拟表的应用,并独到地阐明了如何正确地处理时间值以及其他技术难点。

书籍目录:

第1章SQL是声明式语言,不是过程式语言

1.1不同的编程模型

1.2不同的数据模型

1.2.1“列”不是“字段”

1.2.2行不是记录

1.2.3表不是文件

1.2.4关系键不是记录定位器

1.2.5键的类型

1.2.6关系键的理想属性

1.2.7唯一,但并非不变

1.3表作为实体

1.4表作为关系

1.5语句不是过程

1.6分子、原子和亚原子型数据元素

1.6.1分割表

1.6.2分割列

1.6.3时间值的分割

1.6.4假造的非第一范式数据

1.6.5分子型数据元素

1.6.6异构数据元素

1.6.7检验分子型数据

第2章硬件、数据量和维护数据库

2.1并行处理技术

2.2廉价的主存储器

2.3固态磁盘

2.4更廉价的二级存储器和三级存储器

2.5数据也在改变

2.6思维方式并未改变

第3章数据访问和记录

3.1顺序访问

3.2索引

3.2.1单表索引

3.2.2多表索引

3.2.3索引的类型

3.3散列

3.3.1数字选择

3.3.2除法散列

3.3.3乘法散列

3.3.4合并

3.3.5表的查找

3.3.6冲突

3.4位向量索引

3.5并行访问

3.6行和列存储

3.6.1基于行的存储

3.6.2基于列的存储

3.7联结算法

3.7.1嵌套循环联结算法

3.7.2排序合并联结算法

3.7.3散列联结算法

3.7.4Shin算法

第4章查找表

4.1数据元素的名称

4.2多参数查找表

4.3常量表

4.4OTLT或MUCK表问题

4.5正确表的定义

第5章辅助表

5.1序列表

5.1.1创建序列表

5.1.2序列构造器

5.1.3替换迭代循环

5.2排列

5.2.1通过递归进行排列

5.2.2通过CROSSJOIN进行排列

5.3函数

5.4通过表实现加密

5.5随机数

5.6插值

第6章视图

6.1Mullins视图使用原则

6.1.1高效访问和计算

6.1.2重命名列

6.1.3避免增生

6.1.4视图同步原则

6.2可更新视图和只读视图

6.3视图的类型

6.3.1单表投影和限制

6.3.2计算列

6.3.3转换列

6.3.4分组视图

6.3.5联合视图

6.3.6视图的联结

6.3.7嵌套视图

6.4用表构建类模型

6.4.1SQL中类的层次结构

6.4.2通过ASSERTION和TRIGER工作的子类

6.5数据库系统如何处理视图

6.5.1视图列的列表

6.5.2视图的物化

6.6嵌入式文本扩展

6.7WITHCHECKOPTION子句

6.8删除视图

6.9过时的视图用法

6.9.1域的支持

6.9.2表表达式视图

6.9.3表级CHECK()约束的视图

6.9.4每个基表一个视图

第7章虚拟表

7.1派生表

7.1.1列的命名规则

7.1.2作用域规则

7.1.3公开的表名

7.1.4LATERAL()子句

7.2CTE

7.2.1非递归CTE

7.2.2递归CTE

7.3临时表

7.3.1ANSI/ISO标准

7.3.2厂商的模型

7.4信息模式

7.4.1INFORMATION_SCHEMA声明

7.4.2视图及其用途的快速列表

7.4.3域的声明

7.4.4定义模式

7.4.5INFORMATION_SCHEMA断言

第8章用表实现的复杂函数

8.1没有简单公式的函数

8.2用表实现校验位

8.2.1校验位的定义

8.2.2检错与纠错的对比

8.3算法的分类

8.3.1加权和算法

8.3.2幂和校验位

8.3.3Luhn算法

8.3.4DihedralFive校验位

8.4声明不是函数,不是过程

8.5用于辅助表的数据挖掘

第9章时态表

9.1时间的本质

9.1.1时间段,不是时间子

9.1.2细分程度

9.2ISO半开放时间模型

9.2.1用NULL表示永远

9.2.2单时间戳表

9.2.3重叠的时间间隔

9.3状态转换表

9.4合并时间间隔

9.4.1游标和触发器

9.4.2OLAP函数解决方案

9.4.3CTE解决方案

9.5Calendar表

9.5.1用表提供星期值

9.5.2节假日列表

9.5.3报告期

9.5.4自更新视图

9.6历史表

第10章用非第一范式表清理数据

10.1重复的组

10.2设计清理表

10.3清理操作使用的约束

10.4日历清理

10.5字符串清理

10.6共享SQL数据

10.6.1数据的发展

10.6.2数据库

10.7提取、转换和加载产品

10.7.1加载数据仓库

10.7.2全部用SQL来完成

10.7.3提取、转换并加载

第11章以SQL的方式思考

11.1热身练习

11.1.1整体,不是部分

11.1.2特征函数

11.1.3尽早锁定解决方案

11.2启发式方法

11.2.1将规范表达为清晰的语句

11.2.2在名词前面添加“所有……的集合”几个字

11.2.3删除问题语句中的行为动词

11.2.4仍然可以使用存根

11.2.5不要担心数据的显示

11.2.6第一次尝试需要专门处理

11.2.7不要害怕抛弃自己在DDL中的首次尝试

11.2.8克制使用DML的冲动

11.2.9不要以方框和箭头的方式思考

11.2.10画圆和数据集示意图

11.2.11学习具体的产品

11.2.12把WHERE子句看做“超级变形虫”

11.2.13使用新闻组、博客和因特网

11.3不要在SQL中使用BIT或BOOLEAN标记

11.3.1标记位于错误的层

11.3.2标记使用不当使正确属性难以理解

第12章组特征

12.1并不是按是否相等来分组

12.2使用组,不看里面是什么

12.2.1半面向数据集的方式

12.2.2分组的解决方案

12.2.3解决方案总结

12.3根据时间分组

12.3.1渐进式解决方案

12.3.2整体数据解决方案

12.4其他使用HAVING子句的技术

12.5GROUPING、ROLLUP和CUBE

12.5.1GROUPINGSET子句

12.5.2ROLLUP子句

12.5.3CUBE子句

12.5.4关于超级组的脚注

12.6WINDOW子句

12.6.1PARTITIONBY子句

12.6.2ORDERBY子句

12.6.3RANGE子句

12.6.4编程技巧

第13章将技术规范变为代码

13.1不良SQL的标志

13.1.1代码的格式是否像另一种语言

13.1.2顺序访问假设

13.1.3游标

13.1.4糟糕的内聚度

13.1.5表值函数

13.1.6同一数据元素有多个名称

13.1.7数据库中的格式

13.1.8将日期保存到字符串中

13.1.9BIT标记、BOOLEAN及其他计算列

13.1.10跨列的属性分割

13.1.11跨行的属性分割

13.1.12跨表的属性分割

13.2解决方法

13.2.1基于游标的解决方案

13.2.2半面向数据集的解决方案

13.2.3完全面向数据集的解决方案

13.2.4面向数据集代码的优点

13.3解释含糊的说明

13.3.1回归到DDL

13.3.2修改问题说明

第14章使用过程及函数调用

14.1清除字符串中的空格

14.1.1过程式解决方案#1

14.1.2函数解决方案#1

14.1.3函数解决方案#2

14.2聚合函数PRD()

14.3在过程和函数中使用长参数列表

第15章对行编号

15.1过程式解决方案

15.2OLAP函数

15.2.1简单的行编号

15.2.2RANK()和DENSE_RANK()

15.3节

第16章保存计算数据

16.1过程式解决方案

16.2关系式解决方案

16.3其他种类的计算数据

第17章约束类触发器

17.1计算类触发器

17.2通过CHECK()和CASE约束实现的复杂约束

17.3通过视图实现复杂约束

17.4用约束实现视图操作

17.4.1个基本操作

17.4.2WITHCHECKOPTION子句

17.4.3WITHCHECKOPTION与CHECK()子句

17.4.4视图的行为

17.4.5联合视图

17.4.6简单的INSTEADOF触发器

17.4.7关于INSTEADOF触发器的告诫

第18章过程式解决方案和数据驱动的解决方案

18.1删除字符串中的字母

18.1.1过程式解决方案

18.1.2纯粹的SQL解决方案

18.1.3不纯粹的SQL解决方案

18.2数独的两种求解方法

18.2.1过程式解决方案

18.2.2数据驱动的解决方法

18.2.3处理已知数字

18.3数据约束方法

18.4装箱问题

18.4.1过程式解决方法

18.4.2SQL方式

18.5库存成本随时间的变化

18.5.1库存中使用的UPDATE语句

18.5.2回到装箱问题

内容摘要:

  本书通过大量的实例,详细说明了为提高SQL编程技术而必须面对的思想方法上的根本转变由以过程式编程方式思考转变为以数据集的方式来思考。此外,本书还讨论了关于SQL编程中查找表、视图、辅助表、虚拟表的应用,并独到地阐明了如何在SQL系统中正确地处理时间值以及SQL编程中的其他技术难点。  本书适合广大数据库编程人员和SQL程序员学习参考。  SQL是数据库的标准数据查询语言,在广大程序员的日常工作中已必不可少。但是,大部分的SQL程序员都是由过程式编程人员和面向对象编程人员转变而来的,他们已经习惯了原有的思维方式,若要充分利用SQL,必须学会以数据集的方式思考。  本书中,世界级SQL专家JoeCelko通过展示实用技术及思想方法,教会大家如何完成这个转变。书中通过大量实例详细介绍了各种SQL编程技术,内容涉及查找表、辅助表、虚拟表、时态表、视图、SQL的思考方式等多个方面,值得所有SQL程序员仔细研读和思考。

书籍规格:

书籍详细信息
书名SQL沉思录站内查询相似图书
丛书名图灵程序设计丛书
9787115213952
如需购买下载《SQL沉思录》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位人民邮电出版社
版次1版印次1
定价(元)49.0语种简体中文
尺寸26 × 0装帧平装
页数 140 印数 3000

书籍信息归属:

SQL沉思录是人民邮电出版社于2009.10出版的中图分类号为 TP311.138 的主题关于 关系数据库-数据库管理系统 的书籍。