广告位不存在!
详情 声明
商品详情

资源名称:SQL沉思录


内容简介:

本书通过大量的实例,详细说明了为提高SQL编程技术而必须面对的思想方法上的根本转变——由以过程式编程方式思考转变为以数据集的方式来思考。此外,本书还讨论了关于SQL编程中查找表、视图、辅助表、虚拟表的应用,并独到地阐明了如何在SQL系统中正确地处理时间值以及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.4 Shin算法 

第4章 查找表 

 4.1 数据元素的名称 

 4.2 多参数查找表 

 4.3 常量表 

 4.4 OTLT或MUCK表问题 

 4.5 正确表的定义 

第5章 辅助表 

 5.1 序列表 

  5.1.1 创建序列表 

  5.1.2 序列构造器 

  5.1.3 替换迭代循环 

 5.2 排列 

  5.2.1 通过递归进行排列 

  5.2.2 通过CROSS JOIN进行排列 

 5.3 函数 

 5.4 通过表实现加密 

 5.5 随机数 

 5.6 插值 

第6章 视图 

 6.1 Mullins视图使用原则 

  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.1 SQL中类的层次结构 

  6.4.2 通过ASSERTION和TRIGER工作的子类 

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

  6.5.1 视图列的列表 

  6.5.2 视图的物化 

 6.6 嵌入式文本扩展 

 6.7 WITH CHECK OPTION子句 

 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.4 LATERAL()子句 

 7.2 CTE 

  7.2.1 非递归CTE 

  7.2.2 递归CTE 

 7.3 临时表 

  7.3.1 ANSI/ISO标准 

  7.3.2 厂商的模型 

 7.4 信息模式 

  7.4.1 INFORMATION_SCHEMA声明 

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

  7.4.3 域的声明 

  7.4.4 定义模式 

  7.4.5 INFORMATION_SCHEMA断言 

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

 8.1 没有简单公式的函数 

 8.2 用表实现校验位 

  8.2.1 校验位的定义 

  8.2.2 检错与纠错的对比 

 8.3 算法的分类 

  8.3.1 加权和算法 

  8.3.2 幂和校验位 

  8.3.3 Luhn算法 

  8.3.4 Dihedral Five校验位 

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

 8.5 用于辅助表的数据挖掘 

第9章 时态表 

 9.1 时间的本质 

  9.1.1 时间段,不是时间子 

  9.1.2 细分程度 

 9.2 ISO半开放时间模型 

  9.2.1 用NULL表示永远 

  9.2.2 单时间戳表 

  9.2.3 重叠的时间间隔 

 9.3 状态转换表 

 9.4 合并时间间隔 

  9.4.1 游标和触发器 

  9.4.2 OLAP函数解决方案 

  9.4.3 CTE解决方案 

 9.5 Calendar表 

  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.5 GROUPING、ROLLUP和CUBE 

  12.5.1 GROUPING SET子句 

  12.5.2 ROLLUP子句 

  12.5.3 CUBE子句 

  12.5.4 关于超级组的脚注 

 12.6 WINDOW子句 

  12.6.1 PARTITION BY子句 

  12.6.2 ORDER BY子句 

  12.6.3 RANGE子句 

  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.9 BIT标记、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.2 OLAP函数 

  15.2.1 简单的行编号 

  15.2.2 RANK()和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.2 WITH CHECK OPTION子句 

  17.4.3 WITH CHECK OPTION与CHECK()子句 

  17.4.4 视图的行为 

  17.4.5 联合视图 

  17.4.6 简单的INSTEAD OF触发器 

  17.4.7 关于INSTEAD OF触发器的告诫 

第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.2 SQL方式 

 18.5 库存成本随时间的变化 

  18.5.1 库存中使用的UPDATE语句 

  18.5.2 回到装箱问题 


资源截图:

1.png

声明

1、链接失效请联系客服人员。
2、购买后如果链接失效可联系客服人员完善资源或进行退款办理。
3、资源均来源于网友分享及网络公开发表文件,所有资料仅供学习交流。
4、所收取费用仅用来维系网站运营,性质为用户友情赞助,并非售卖文件费用。
5、如侵犯您的权益,请联系客服人员,我们将会在第一时间进行处理。

相关推荐