展开全部

主编推荐语

经典数据库教程升级更新,巧妙应对160余个SQL使用场景,实例短小精悍,涵盖5种主流的关系数据库:Oracle、MySQL、PostgreSQL、SQL Server、DB2等。

内容简介

本书详细介绍了Oracle、MySQL、PostgreSQL、SQL Server、DB2等各种关系数据库的SQL查询技巧和一些基础的SQL查询语句,并且通过短小精悍的实例,不仅讲解了如何插入、更新和删除数据,还介绍了如何检索记录、为查询结果排序、同时操作多张数据库表、查询元数据、处理涉及字符串和数值的操作、根据时间数据和日期数据进行运算、执行层次查询和区间查询等。

随着多种SQL实现大量采用窗口函数,本书第2版针对相关实例做了优化,还新增了为数据科学家和算法工程师量身定制的实例。

目录

  • 版权信息
  • 版权声明
  • O'Reilly Media, Inc. 介绍
  • 献词
  • 前言
  • 第1章 检索记录
  • 1.1 检索表中所有的行和列
  • 1.2 从表中检索部分行
  • 1.3 查找满足多个条件的行
  • 1.4 从表中检索部分列
  • 1.5 提供有意义的列名
  • 1.6 在WHERE子句中使用别名来引用列
  • 1.7 拼接列值
  • 1.8 在SELECT语句中使用条件逻辑
  • 1.9 限制返回的行数
  • 1.10 从表中随机返回n行数据
  • 1.11 查找NULL值
  • 1.12 将NULL转换为实际值
  • 1.13 模式查找
  • 1.14 小结
  • 第2章 查询结果排序
  • 2.1 按指定顺序返回查询结果
  • 2.2 按多字段排序
  • 2.3 按子串排序
  • 2.4 对同时包含字母和数字的数据进行排序
  • 2.5 排序时处理NULL值
  • 2.6 根据依赖于数据的键进行排序
  • 2.7 小结
  • 第3章 使用多张表
  • 3.1 合并多个行集
  • 3.2 合并相关的行
  • 3.3 查找两张表中相同的行
  • 3.4 从一张表中检索没有出现在另一张表中的值
  • 3.5 从一张表中检索在另一张表中没有对应行的行
  • 3.6 在查询中添加连接并确保不影响其他连接
  • 3.7 判断两张表包含的数据是否相同
  • 3.8 识别并避免笛卡儿积
  • 3.9 同时使用连接和聚合
  • 3.10 同时使用外连接和聚合
  • 3.11 返回多张表中不匹配的行
  • 3.12 在运算和比较中使用NULL
  • 3.13 小结
  • 第4章 插入、更新和删除
  • 4.1 插入新记录
  • 4.2 插入默认值
  • 4.3 用NULL覆盖默认值
  • 4.4 将一张表中的行复制到另一张表中
  • 4.5 复制表定义
  • 4.6 同时插入多张表
  • 4.7 禁止在特定列中插入值
  • 4.8 修改表中的记录
  • 4.9 仅当存在匹配行时才更新
  • 4.10 使用来自另一张表中的值进行更新
  • 4.11 合并记录
  • 4.12 删除表中的所有记录
  • 4.13 删除特定记录
  • 4.14 删除单条记录
  • 4.15 删除违反引用完整性的记录
  • 4.16 删除重复记录
  • 4.17 删除在另一张表中引用了的记录
  • 4.18 小结
  • 第5章 元数据查询
  • 5.1 列出模式中的所有表
  • 5.2 列出表中的列
  • 5.3 列出表的索引列
  • 5.4 列出表的约束
  • 5.5 列出没有相应索引的外键
  • 5.6 使用SQL生成SQL
  • 5.7 描述Oracle数据库中的数据字典视图
  • 5.8 小结
  • 第6章 处理字符串
  • 6.1 走查字符串
  • 6.2 在字符串字面量中嵌入引号
  • 6.3 计算字符串中特定字符出现的次数
  • 6.4 将不想要的字符从字符串中删除
  • 6.5 将数字数据和字符数据分开
  • 6.6 判断字符串是否只包含字母和数字
  • 6.7 提取姓名中的首字母
  • 6.8 根据部分字符串排序
  • 6.9 根据字符串中的数字排序
  • 6.10 根据表中的行创建分隔列表
  • 6.11 将分隔数据转换为多值IN列表
  • 6.12 按字母顺序排列字符串中的字符
  • 6.13 识别可视为数字的字符串
  • 6.14 提取第n个子串
  • 6.15 拆分IP地址
  • 6.16 根据发音比较字符串
  • 6.17 查找与模式不匹配的文本
  • 6.18 小结
  • 第7章 处理数字
  • 7.1 计算平均值
  • 7.2 找出最大列值和最小列值
  • 7.3 计算列值总和
  • 7.4 计算表中的行数
  • 7.5 计算非NULL列值数
  • 7.6 生成移动总计
  • 7.7 生成移动总积
  • 7.8 平滑值序列
  • 7.9 计算众数
  • 7.10 计算中值
  • 7.11 计算总计占比
  • 7.12 聚合值可为NULL的列
  • 7.13 计算剔除最高值和最低值后的平均值
  • 7.14 将由字母和数字组成的字符串转换为数字
  • 7.15 修改移动总计中的值
  • 7.16 使用绝对中位差找出异常值
  • 7.17 使用本福特法则查找反常数据
  • 7.18 小结
  • 第8章 日期算术运算
  • 8.1 加上或减去若干天、若干月或若干年
  • 8.2 确定两个日期相差多少天
  • 8.3 确定两个日期之间有多少个工作日
  • 8.4 确定两个日期相隔多少个月或多少年
  • 8.5 确定两个日期相隔多少秒、多少分钟或多少小时
  • 8.6 计算一年中有多少个工作日
  • 8.7 确定当前记录和下一条记录存储的日期相隔多少天
  • 8.8 小结
  • 第9章 操作日期
  • 9.1 判断特定的年份是否是闰年
  • 9.2 确定特定年份有多少天
  • 9.3 提取日期的各个组成部分
  • 9.4 找出一个月的第一天和最后一天
  • 9.5 找出一年中所有的星期n
  • 9.6 找出一个月中第一个和最后一个星期n
  • 9.7 创建日历
  • 9.8 列出一年中各个季度的第一天和最后一天
  • 9.9 确定给定季度的第一天和最后一天
  • 9.10 补全缺失的日期
  • 9.11 根据日期的特定部分进行查找
  • 9.12 根据日期的特定部分对记录进行比较
  • 9.13 找出重叠的日期范围
  • 9.14 小结
  • 第10章 涉及区间的查询
  • 10.1 找出一系列连续的值
  • 10.2 找出同一个分组或分区中相邻行的差
  • 10.3 找出连续值构成的区间的起点和终点
  • 10.4 填补值区间空隙
  • 10.5 生成连续的数字值
  • 10.6 小结
  • 第11章 高级查找
  • 11.1 在结果集中翻页
  • 11.2 在表中跳过n行数据
  • 11.3 在外连接中使用OR逻辑
  • 11.4 确定哪些行是互逆的
  • 11.5 返回前n条记录
  • 11.6 找出值最高和最低的记录
  • 11.7 查看后面的行
  • 11.8 平移行值
  • 11.9 结果排名
  • 11.10 消除重复行
  • 11.11 查找马值
  • 11.12 生成简单预测
  • 11.13 小结
  • 第12章 报表制作和整形
  • 12.1 将结果集转置为一行
  • 12.2 将结果集转置为多行
  • 12.3 对结果集进行逆转置
  • 12.4 将结果集逆转置为一列
  • 12.5 消除结果集中的重复值
  • 12.6 转置结果集以简化涉及多行的计算
  • 12.7 创建尺寸固定的数据桶
  • 12.8 创建预定数量的桶
  • 12.9 创建水平直方图
  • 12.10 创建垂直直方图
  • 12.11 返回未被用作分组依据的列
  • 12.12 计算简单的小计
  • 12.13 计算各种可能的小计
  • 12.14 标出非小计行
  • 12.15 使用CASE表达式来标识行
  • 12.16 创建稀疏矩阵
  • 12.17 按时间分组
  • 12.18 同时对不同的分组/分区进行聚合
  • 12.19 聚合移动值区间
  • 12.20 转置包含小计的结果集
  • 12.21 小结
  • 第13章 分层查询
  • 13.1 呈现父子关系
  • 13.2 呈现子–父–祖父关系
  • 13.3 创建基于表的分层视图
  • 13.4 找出给定父行的所有子行
  • 13.5 确定叶子节点、分支节点和根节点
  • 13.6 小结
  • 第14章 杂项
  • 14.1 使用SQL Server运算符PIVOT创建交叉报表
  • 14.2 使用SQL Server运算符UNPIVOT逆转置交叉报表
  • 14.3 使用Oracle子句MODEL转置结果集
  • 14.4 从不固定的位置提取子串
  • 14.5 确定特定年份有多少天(另一种Oracle解决方案)
  • 14.6 找出同时包含字母和数字的字符串
  • 14.7 在Oracle中将整数转换为其二进制表示
  • 14.8 对经过排名的结果集进行转置
  • 14.9 给经过两次转置的结果集添加列标题
  • 14.10 在Oracle中将标量子查询转换为复合子
  • 14.11 将序列化数据转换为行
  • 14.12 计算占总计的百分比
  • 14.13 确定编组是否包含指定的值
  • 14.14 小结
  • 附录 A 温习窗口函数
  • A.1 分组
  • A.1.1 SQL分组的定义
  • A.1.2 悖论
  • A.1.3 SELECT和GROUP BY之间的关系
  • A.2 窗口函数
  • A.2.1 一个简单示例
  • A.2.2 执行顺序
  • A.2.3 分区
  • A.2.4 NULL的影响
  • A.2.5 排列顺序很重要时
  • A.2.6 框架子句
  • A.2.7 最后一个框架子句示例
  • A.2.8 可读性 + 性能 = 威力强大
  • A.2.9 打下基础
  • 附录 B 通用表表达式
  • B.1 子查询
  • B.2 通用表表达式
  • B.3 小结
  • 关于作者
  • 关于封面
  • 看完了
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    5.0

    SQL 是数据从业人员的通用语言,但未能像热门工具那样获得应有的关注。有些人经常使用 SQL 来编写最简单的查询,他们以为这就是 SQL 的全部功能。本书展示了 SQL 的强大威力,旨在丰富你的工具箱。读完本书后,你将知道如何使用 SQL 来进行统计分析,像使用商业智能工具那样制作报表,进行文本数据匹配,以及执行复杂的日期数据分析,等等。

      转发
      评论

    出版方

    人民邮电出版社

    人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。