SQL编程思想:基于 5 种主流数据库代码实现
- ISBN:9787121421402
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:348
- 出版时间:2021-10-01
- 条形码:9787121421402 ; 978-7-121-42140-2
本书特色
★ 采用全新SQL:2019标准,紧跟产业发展趋势,解锁Z前沿SQL特性 ★ 让你了解并学习现代化的SQL语言和编程思想,而不仅仅局限于功能 ★ 作者在数据库领域深耕十余年,拥有丰富的数据库理论知识和实践经验 ★ 全覆盖从SQL基础查询到高级分析、从数据库设计到查询优化等内容 ★ 用循序渐进的方式和简单易懂的案例分析,透彻讲解每个SQL知识点 ★ 提供了5种主流数据库的代码实现,包括: MySQL 8.0 Oracle Database 21c Microsoft SQL Server 2019 PostgreSQL 14 SQLite 3.36
内容简介
本书基于作者十多年的工作经验和分享,全面覆盖了从SQL基础查询到不错分析、从数据库设计到查询优化等内容,通过循序渐进的方式和简单易懂的案例分析,透彻讲解了每个SQL知识点。本书采用了近期新的SQL:2019标准,紧跟产业发展趋势,帮助读者解锁很前沿的SQL特性,同时提供了5种主流数据库的实现和差异。很后,本书还介绍了近期新SQL标准对文档存储(JSON)、复杂事件处理(MATCH_RECOGNIZE)、多维数组(SQL/MDA)以及图形存储(SQL/PGQ)的支持。
目录
第1章 一切皆关系
1.1 数据库
1.1.1 数据库的发展历史
1.1.2 数据库管理系统
1.2 关系型数据库
1.2.1 数据结构
1.2.2 关系操作
1.2.3 完整性约束
1.3 SQL简介
1.3.1 SQL的历史
1.3.2 语法特性
1.3.3 面向集合
1.3.4 标准与实现
1.4 小结
第2章 查询初体验
2.1 基本检索功能
2.1.1 查询指定字段
2.1.2 查询全部字段
2.1.3 快速查询信息
2.2 实现数据过滤
2.2.1 简单过滤条件
2.2.2 空值判断条件
2.2.3 文本模糊查找
2.2.4 组合过滤条件
2.2.5 排除重复数据
2.3 从无序到有序
2.3.1 基于单个字段排序
2.3.2 基于多个字段排序
2.3.3 基于表达式排序
2.3.4 空值的排序位置
2.3.5 中文的排序方式
2.4 限定结果数量
2.4.1 Top-N排行榜
2.4.2 数据分页显示
2.5 SQL注释
2.5.1 单行注释
2.5.2 多行注释
2.5.3 特殊注释
2.6 小结
第3章 逻辑处理功能
3.1 函数和运算
3.1.1 函数概述
3.1.2 数值函数
3.1.3 字符函数
3.1.4 日期函数
3.1.5 转换函数
3.1.6 案例分析
3.2 使用别名
3.2.1 列别名
3.2.2 表别名
3.3 条件表达式
3.3.1 简单CASE表达式
3.3.2 搜索CASE表达式
3.3.3 DECODE函数
3.3.4 IF函数
3.3.5 IIF函数
3.3.6 案例分析
3.4 小结
第4章 数据分组与汇总
4.1 数据汇总
4.1.1 聚合函数
4.1.2 使用COUNT函数统计行数
4.1.3 使用AVG函数计算平均值
4.1.4 使用SUM函数计算总和
4.1.5 使用MAX函数返回*大值
4.1.6 使用MIN函数返回*小值
4.1.7 使用LISTAGG函数连接字符串
4.2 数据分组
4.2.1 创建数据分组
4.2.2 进行组内汇总
4.2.3 空值分为一组
4.2.4 常见的语法问题
4.3 再次过滤数据
4.3.1 使用HAVING过滤分组结果
4.3.2 WHERE与HAVING的区别
4.4 多维数据分析
4.4.1 小计、合计与总计
4.4.2 交叉统计报表
4.4.3 自定义维度统计
4.4.4 GROUPING函数
4.5 案例分析
4.5.1 案例一:实现行列转换
4.5.2 案例二:销售数据分析
4.6 小结
第5章 空值问题
5.1 三值逻辑
5.2 空值的比较
5.3 空值的分组
5.4 空值的排序
5.5 函数中的空值
5.6 空值处理函数
5.7 空值与约束
5.8 案例分析
5.9 小结
第6章 连接多个表
6.1 连接的语法与类型
6.1.1 使用FROM和WHERE连接两个表
6.1.2 使用JOIN和ON连接两个表
6.1.3 连接查询的类型
6.2 内连接
6.2.1 等值连接
6.2.2 非等值连接
6.3 外连接
6.3.1 左外连接
6.3.2 右外连接
6.3.3 全外连接
6.4 交叉连接
6.5 自然连接
6.6 自连接
6.7 连接多个表
6.8 案例分析
6.8.1 案例一:生成数字序列
6.8.2 案例二:员工考勤记录
6.9 小结
第7章 嵌套子查询
7.1 查询中的查询
7.2 标量子查询
7.3 行子查询
7.4 表子查询
7.4.1 WHERE条件中的子查询
7.4.2 ALL、ANY运算符
7.4.3 FROM子句中的子查询
7.5 关联子查询
7.6 横向子查询
7.7 EXISTS运算符
7.8 案例分析
7.8.1 案例一:月度销售冠军
7.8.2 案例二:销售增长之星
7.9 小结
第8章 表的集合运算
8.1 集合运算
8.2 交集求同
8.3 并集存异
8.4 差集排他
8.5 集合运算与排序
8.6 运算符的优先级
8.7 案例分析
8.7.1 案例一:优秀员工分析
8.7.2 案例二:用户权限管理
8.8 小结
第9章 通用表表达式
9.1 表即变量
9.2 强大的递归
9.2.1 递归查询语法
9.2.2 生成数字序列
9.2.3 遍历层次结构
9.2.4 递归的终止
9.3 案例分析:社交网络关系
9.3.1 数据结构
9.3.2 好友关系分析
9.3.3 粉丝关系分析
9.4 小结
第10章 窗口函数
10.1 窗口函数定义
10.1.1 创建数据分区
10.1.2 分区内的排序
10.1.3 指定窗口大小
10.1.4 窗口函数分类
10.2 聚合窗口函数
10.2.1 案例分析:移动平均值
10.2.2 案例分析:累计求和
10.3 排名窗口函数
10.3.1 案例分析:分类排名
10.3.2 案例分析:累积分布
10.4 取值窗口函数
10.4.1 案例分析:环比、同比分析
10.4.2 案例分析:复合增长率
10.5 小结
第11章 数据的增删改合
11.1 插入数据
11.1.1 插入单行记录
11.1.2 插入多行记录
11.1.3 复制数据
11.2 更新数据
11.2.1 单表更新
11.2.2 关联更新
11.3 删除数据
11.3.1 单表删除
11.3.2 关联删除
11.3.3 快速删除全表数据
11.4 合并数据
11.4.1 标准合并语句
11.4.2 非标准合并语句
11.5 外键约束与级联操作
11.5.1 违反外键约束
11.5.2 级联更新和删除
11.6 小结
第12章 数据库事务
12.1 什么是数据库事务
12.2 事务的ACID属性
12.3 事务控制语句
12.3.1 开始事务
12.3.2 提交事务
12.3.3 撤销事务
12.3.4 事务保存点
12.4 并发事务与隔离级别
12.4.1 并发问题
12.4.2 隔离级别
12.5 案例分析
12.6 小结
第13章 数据库设计与实现
13.1 实体关系图
13.1.1 实体
13.1.2 属性
13.1.3 关系
13.1.4 ERD建模
13.2 规范化设计
13.2.1 数据异常
13.2.2 **范式
13.2.3 第二范式
13.2.4 第三范式
13.2.5 主键与外键
13.2.6 反规范化
13.3 数据类型
13.3.1 数字类型
13.3.2 字符串类型
13.3.3 日期时间类型
13.3.4 二进制类型
13.3.5 选择合适的数据类型
13.4 管理数据库对象
13.4.1 常见对象
13.4.2 管理数据库
13.4.3 管理模式
13.4.4 管理数据表
13.5 小结
第14章 索引与性能优化
14.1 索引的原理
14.1.1 聚集索引
14.1.2 非聚集索引
14.2 索引的类型
14.2.1 唯一索引与非唯一索引
14.2.2 单列索引与多列索引
14.2.3 升序索引与降序索引
14.2.4 函数索引
14.3 索引的维护
14.3.1 创建索引
14.3.2 查看索引
14.3.3 删除索引
14.3.4 注意事项
14.4 执行计划
14.4.1 查询语句的执行过程
14.4.2 查看SQL语句的执行计划
14.5 查询优化技巧
14.5.1 创建合适的索引
14.5.2 避免索引失效
14.5.3 只返回需要的结果
14.5.4 优化多表连接
14.5.5 尽量避免使用子查询
14.5.6 优化集合操作
14.5.7 不要使用OFFSET实现分页
14.5.8 记住SQL子句的逻辑执行顺序
14.6 小结
第15章 视图不是表
15.1 视图概述
15.1.1 什么是视图
15.1.2 视图的优缺点
15.2 管理视图
15.2.1 创建视图
15.2.2 视图中的ORDER BY子句
15.2.3 修改视图的定义
15.2.4 删除视图
15.3 可更新视图
15.3.1 可更新视图的限制
15.3.2 通过视图修改数据
15.3.3 限制视图的操作
15.4 案例分析
15.5 小结
第16章 存储过程和存储函数
16.1 存储过程概述
16.1.1 什么是存储过程
16.1.2 存储过程的优缺点
16.2 管理存储过程
16.2.1 创建存储过程
16.2.2 执行存储过程
16.2.3 修改存储过程
16.2.4 删除存储过程
16.3 使用存储函数
16.3.1 存储函数和存储过程的区别
16.3.2 创建存储函数
16.3.3 调用存储函数
16.3.4 修改存储函数
16.3.5 删除存储函数
16.4 案例分析
16.5 小结
第17章 一触即发的触发器
17.1 触发器概述
17.1.1 触发器的原理
17.1.2 触发器的分类
17.2 管理触发器
17.2.1 创建触发器
17.2.2 验证触发器
17.2.3 查看触发器
17.2.4 启用、禁用触发器
17.2.5 删除触发器
17.3 案例分析
17.3.1 案例一:禁止DDL操作
17.3.2 案例二:替换视图的DML操作
17.4 小结
第18章 超越关系
18.1 文档存储
18.1.1 JSON数据类型
18.1.2 将JSON对象表示成SQL数据
18.1.3 将SQL数据表示成JSON对象
18.2 复杂事件
18.2.1 行模式识别
18.2.2 分析股票曲线图
18.2.3 监控可疑的银行转账
18.3 多维数组
18.3.1 数组的存储和访问
18.3.2 数组处理函数
18.4 图形存储
18.4.1 图形查询语言与SQL/PGQ
18.4.2 社交网络关系分析
18.5 小结
附录A SQL常用语句速查表
作者简介
董旭阳 数据库架构师、CSDN博客专家,毕业于北京航空航天大学,拥有十多年数据库管理与开发经验,专注于数据库领域的知识分享,荣获Oracle OCP和Redhat RHCE证书。 目前在一家全球性的金融公司从事数据库架构设计工作。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0