《MySQL技术内幕 SQL编程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:姜承尧著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111377641
  • 页数:307 页
图书介绍:本书一共分为9章:第1章主要讲解了SQL编程的常识、数据库的应用类型和图形化的SQL查询分析器;第2章介绍了各种常用的SQL数据类型;第3章讲解了逻辑查询处理和物理查询处理;第4章讲解了子查询的相关知识;第5章讲解了联接和集合查询操作;第6章讲解了聚合和旋转操作;第7~9章分别讲解了游标、索引和分区等重要知识。

第1章SQL编程 1

1.1 MySQL数据库 2

1.1.1 MySQL数据库历史 2

1.1.2 MySQL数据库的分支版本 4

1.2 SQL编程 5

1.3数据库的应用类型 7

1.3.1 OLTP 7

1.3.2 OLAP 8

1.3.3 OLTP与OLAP的比较 9

1.3.4 MySQL存储引擎及其面向的数据库应用 10

1.4图形化的SQL查询分析器 12

1.4.1 MySQL Workbench 12

1.4.2 Toad for MySQL 12

1.4.3 iMySQL-Front 13

1.5小结 15

第2章 数据类型 16

2.1类型属性 17

2.1.1 UNSIGNED 17

2.1.2 ZEROFILL 20

2.2 SQL_MODE设置 21

2.3日期和时间类型 26

2.3.1 DATETIME和DATE 26

2.3.2 TIMESTAMP 28

2.3.3 YEAR和TIME 30

2.3.4与日期和时间相关的函数 31

2.4关于日期的经典SQL编程问题 34

2.4.1生日问题 34

2.4.2重叠问题 37

2.4.3星期数的问题 48

2.5数字类型 53

2.5.1整型 53

2.5.2浮点型(非精确类型) 54

2.5.3高精度类型 54

2.5.4位类型 55

2.6关于数字的经典SQL编程问题 56

2.6.1数字辅助表 56

2.6.2连续范围问题 58

2.7字符类型 60

2.7.1字符集 60

2.7.2排序规则 64

2.7.3 CHAR和VARCHAR 68

2.7.4 BINARY和VARBINARY 70

2.7.5 BLOB和 TEXT 72

2.7.6 ENUM和SET类型 73

2.8小结 75

第3章 查询处理 76

3.1逻辑查询处理 77

3.1.1执行笛卡儿积 79

3.1.2应用ON过滤器 80

3.1.3添加外部行 83

3.1.4应用WHERE过滤器 84

3.1.5分组 85

3.1.6应用ROLLUP或CUBE 86

3.1.7应用HAVING过滤器 86

3.1.8处理SELECT列表 87

3.1.9应用DISTINCT子句 87

3.1.10应用ORDER BY子句 88

3.1.11 LIMIT子句 92

3.2物理查询处理 93

3.3小结 95

第4章 子查询 96

4.1子查询概述 97

4.1.1子查询的优点和限制 97

4.1.2使用子查询进行比较 97

4.1.3使用ANY、 IN和SOME进行子查询 98

4.1.4使用ALL进行子查询 99

4.2独立子查询 99

4.3相关子查询 105

4.4 EXISTS谓词 109

4.4.1 EXISTS 109

4.4.2 NOT EXISTS 111

4.5派生表 113

4.6子查询可以解决的经典问题 114

4.6.1行号 114

4.6.2分区 118

4.6.3最小缺失值问题 121

4.6.4缺失范围和连续范围 122

4.7 MariaDB对SEMI JOIN的优化 126

4.7.1概述 126

4.7.2 Table Pullout优化 127

4.7.3 Duplicate Weedout优化 128

4.7.4 Materialization优化 129

4.8小结 130

第5章 联接与集合操作 132

5.1联接查询 133

5.1.1新旧查询语法 133

5.1.2 CROSS JOIN 134

5.1.3 INNER JOIN 137

5.1.4 OUTER JOIN 138

5.1.5 NATURAL JOIN 141

5.1.6 STRAIGHT JOIN 141

5.2其他联接分类 142

5.2.1 SELF JOIN 143

5.2.2 NONEQUI JOIN 144

5.2.3 SEMI JOIN和ANTI SEMI JOIN 145

5.3多表联接 146

5.4滑动订单问题 148

5.5联接算法 150

5.5.1 Simple Nested-Loops Join算法 150

5.5.2 Block Nested-Loops Join算法 155

5.5.3 Batched Key Access Join算法 158

5.5.4 Classic Hash Join算法 161

5.6集合操作 163

5.6.1集合操作的概述 163

5.6.2 UNION DISTINCT和UNION ALL 165

5.6.3 EXCEPT 167

5.6.4 INTERSECT 170

5.7小结 171

第6章 聚合和旋转操作 172

6.1聚合 173

6.1.1聚合函数 173

6.1.2聚合的算法 174

6.2附加属性聚合 176

6.3连续聚合 178

6.3.1累积聚合 179

6.3.2滑动聚合 183

6.3.3年初至今聚合 184

6.4 Pivoting 185

6.4.1开放架构 185

6.4.2关系除法 187

6.4.3格式化聚合数据 189

6.5 Unpivoting 191

6.6 CUBE和ROLLUP 193

6.6.1 ROLLUP 193

6.6.2 CUBE 196

6.7小结 197

第7章 游标 198

7.1面向集合与面向过程的开发 199

7.2游标的使用 199

7.3游标的开销 200

7.4使用游标解决问题 202

7.4.1游标的性能分析 202

7.4.2连续聚合 203

7.4.3最大会话数 206

7.5小结 210

第8章 事务编程 211

8.1事务概述 212

8.2事务的分类 214

8.3事务控制语句 219

8.4隐式提交的SQL语句 224

8.5事务的隔离级别 225

8.6分布式事务编程 229

8.7不好的事务编程习惯 234

8.7.1在循环中提交 234

8.7.2使用自动提交 236

8.7.3使用自动回滚 236

8.8长事务 239

8.9小结 240

第9章 索引 242

9.1缓冲池、顺序读取与随机读取 243

9.2数据结构与算法 246

9.2.1二分查找法 246

9.2.2二叉查找树和平衡二叉树 247

9.3 B+树 249

9.3.1 B+树的插入操作 250

9.3.2 B+树的删除操作 252

9.4 B+树索引 253

9.4.1 InnoDB B+树索引 254

9.4.2 MyISAM B+树索引 256

9.5 Cardinality 256

9.5.1什么是Cardinality 256

9.5.2 InnoDB存储引擎怎样统计Cardinality 257

9.6 B+树索引的使用 259

9.6.1不同应用中B+树索引的使用 259

9.6.2联合索引 260

9.6.3覆盖索引 262

9.6.4优化器选择不使用索引的情况 263

9.6.5 INDEX HINT 265

9.7 Multi-Range Read 267

9.8 Index Condition Pushdown 269

9.9 T树索引 271

9.9.1 T树概述 271

9.9.2 T树的查找、插入和删除操作 272

9.9.3 T树的旋转 273

9.10哈希索引 276

9.10.1散列表 276

9.10.2 InnoDB存储引擎中的散列算法 278

9.10.3自适应哈希索引 278

9.11小结 279

第10章 分区 280

10.1分区概述 281

10.2分区类型 283

10.2.1 RANGE分区 283

10.2.2 LIST分区 289

10.2.3 HASH分区 291

10.2.4 KEY分区 293

10.2.5 COLUMNS分区 293

10.3子分区 295

10.4分区中的NULL值 298

10.5分区和性能 301

10.6在表和分区间交换数据 305

10.7小结 307