《MYSQL开发者SQL权威指南》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(荷)RICK F.VAN DER LANS著;许杰星 李强等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:9787111227083
  • 页数:596 页
图书介绍:本书介绍MySQL 5,使用它如何编写查询,包括连接、函数和子查询,更新数据,创建表、视图和其他数据库对象,声明主键、外键以及其他的完整性约束,使用索引提高效率,通过密码和权限来增强安全性,在PHP程序中嵌入SQL,使用事务、锁、回滚和隔离级,使用MySQL的目录。

第一部分 综述 2

第1章 MySQL简介 2

1.1 简介 2

1.2 数据库、数据库服务器和数据库语言 2

1.3 关系模型 3

1.3.1 表、列和行 4

1.3.2 Null值 5

1.3.3 约束 5

1.3.4 主键 5

1.3.5 候选键 6

1.3.6 替换键 6

1.3.7 外键 6

1.4 SQL是什么 7

1.5 SQL的历史 10

1.6 从单机到客户/服务器再到Internet 10

1.7 SQL的标准 12

1.8 什么是开源软件 14

1.9 MySQL的历史 15

1.10 本书的组织结构 16

第2章 网球俱乐部示例数据库 17

2.1 简介 17

2.2 网球俱乐部简介 17

2.3 表的内容 19

2.4 完整性约束 21

第3章 安装软件 23

3.1 简介 23

3.2 下载MySQL 23

3.3 安装MySQL 23

3.4 安装查询工具 23

3.5 从Web站点下载SQL语句 23

3.6 准备好了吗 24

第4章 SQL概要 25

4.1 简介 25

4.2 登录到MySQL数据库服务器 25

4.3 创建新的SQL用户 26

4.4 创建数据库 27

4.5 选择当前数据库 27

4.6 创建表 28

4.7 用数据填充表 29

4.8 查询表 30

4.9 更新和删除行 32

4.10 使用索引优化查询过程 33

4.11 视图 34

4.12 用户和数据安全性 35

4.13 删除数据库对象 36

4.14 系统变量 36

4.15 对SQL语句分组 37

4.16 Catalog表 37

4.17 获取错误和警告 43

4.18 SQL语句的定义 44

第二部分 查询和更新数据 46

第5章 SELECT语句:常用元素 46

5.1 简介 46

5.2 直接量及其数据类型 46

5.2.1 整型直接量 49

5.2.2 小数直接量 49

5.2.3 浮点直接量 49

5.2.4 字符直接量 49

5.2.5 日期直接量 51

5.2.6 时间直接量 53

5.2.7 日期时间直接量和时间戳直接量 54

5.2.8 年直接量 56

5.2.9 布尔直接量 56

5.2.10 十六进制直接量 56

5.2.11 位直接量 56

5.3 表达式 57

5.4 为结果列分配名字 59

5.5 列指定 61

5.6 用户变量和SET语句 62

5.7 系统变量 63

5.8 CASE表达式 65

5.9 括号中的标量表达式 70

5.10 标量函数 70

5.11 表达式的类型转换 73

5.12 作为一个表达式的空值 75

5.13 复合标量表达式 76

5.13.1 复合数值表达式 76

5.13.2 复合字符表达式 81

5.13.3 复合日期表达式 82

5.13.4 复合时间表达式 86

5.13.5 复合时间戳和日期时间表达式 87

5.13.6 复合布尔表达式 89

5.14 聚合函数和标量子查询 91

5.15 行表达式 91

5.16 表表达式 92

5.17 练习解答 93

第6章 SELECT语句、表表达式和子查询 97

6.1 简介 97

6.2 SELECT语句的定义 97

6.3 处理一个选择语句块中的子句 100

6.4 表表达式的形式 105

6.5 什么是SELECT语句 107

6.6 什么是子查询 108

6.7 练习解答 112

第7章 SELECT语句:FROM子句 117

7.1 简介 117

7.2 FROM子句中的表指定 117

7.3 再谈列指定 118

7.4 FROM子句中的多个表指定 119

7.5 表名的假名 122

7.6 联接的各种例子 122

7.7 必须使用假名的情况 125

7.8 同数据库的表 127

7.9 FROM子句中的显式联接 127

7.10 外联接 130

7.10.1 左外联接 130

7.10.2 右外联接 133

7.11 自然联接 134

7.12 联接条件中的附加条件 135

7.13 交叉联接 137

7.14 使用USING替换联接条件 137

7.15 带有表表达式的FROM子句 138

7.16 练习解答 144

第8章 SELECT语句:WHERE子句 149

8.1 简介 149

8.2 使用比较运算符的条件 150

8.3 子查询中的比较运算符 155

8.4 带有关联性子查询的比较运算符 159

8.5 不带比较运算符的条件 161

8.6 用ANDOR、XOR和NOT组合的条件 162

8.7 使用表达式列表的IN运算符 165

8.8 带有子查询的IN运算符 169

8.9 BETWEEN运算符 176

8.10 LIKE运算符 178

8.11 REGEXP运算符 180

8.12 MATCH运算符 186

8.13 IS NULL运算符 194

8.14 EXISTS运算符 196

8.15 ALL和ANY运算符 198

8.16 子查询中列的作用域 204

8.17 使用关联性子查询的更多例子 207

8.18 带有否定的条件 211

8.19 练习解答 213

第9章 SELECT语句:SELECT子句和聚合函数 224

9.1 简介 224

9.2 选择所有列(*) 224

9.3 SELECT子句中的表达式 225

9.4 使用DISTINCT移除重复的行 226

9.5 何时两行相等 228

9.6 更多选择选项 230

9.7 聚合函数简介 231

9.8 COUNT函数 232

9.9 MAX和MIN函数 235

9.10 SUM和AVG函数 239

9.11 VARIANCE和STDDEV函数 242

9.12 VAR_SAMP和STDDEV_SAMP函数 243

9.13 BIT_AND、BIT_OR和BIT_XOR函数 244

9.14 练习解答 244

第10章 SELECT语句:GROUP BY子句 248

10.1 简介 248

10.2 对一列分组 248

10.3 对两个或更多列分组 251

10.4 根据表达式分组 253

10.5 对空值的分组 254

10.6 带有排序的分组 255

10.7 GROUP BY子句的一般规则 255

10.8 GROUP-CONCAT函数 257

10.9 使用GROUP BY的复杂例子 258

10.10 使用ROLLUP的分组 263

10.11 练习解答 264

第11章 SELECT语句:HAVING子句 268

11.1 简介 268

11.2 HAVING子句的例子 269

11.3 没有GROUP BY子句的HAVING子句 270

11.4 HAVING子句的一般规则 271

11.5 练习解答 271

第12章 SELECT语句:ORDER BY子句 274

12.1 简介 274

12.2 按照列名排序 274

12.3 根据表达式排序 276

12.4 使用顺序号码排序 277

12.5 按照升序和降序排序 278

12.6 对空值排序 280

12.7 练习解答 281

第13章 SELECT语句:LIMIT子句 282

13.1 简介 282

13.2 获取最前面的值 284

13.3 使用LIMIT子句的子查询 286

13.4 带有偏移量的LIMIT 289

13.5 SQL_CALC_FOUND_ROWS选择选项 289

13.6 练习解答 290

第14章 组合表表达式 292

14.1 简介 292

14.2 使用UNION组合 292

14.3 使用UNINON的规则 295

14.4 保留重复的行 297

14.5 集合运算符和空值 298

14.6 练习解答 298

第15章 用户变量和SET语句 300

15.1 简介 300

15.2 使用SET语句定义变量 300

15.3 使用SELECT语句定义变量 301

15.4 用户变量的应用区域 303

15.5 用户变量的生命期 303

15.6 DO语句 304

15.7 练习解答 304

第16章 HANDLER语句 306

16.1 简介 306

16.2  HANDLER语句的简单示例 306

16.3 打开一个句柄 307

16.4 浏览句柄的行 307

16.5 关闭句柄 310

16.6 练习解答 310

第17章 更新表 311

17.1 简介 311

17.2 插入新的一行 311

17.3 使用另一个表中的行来填充一个表 314

17.4 更新行中的值 316

17.5 更新多个表中的值 319

17.6 替代已有的行 321

17.7 从一个表中删除行 322

17.8 从多个表中删除行 323

17.9 TRUNCATE语句 325

17.10 练习解答 325

第18章 载入和卸载数据 328

18.1 简介 328

18.2 卸载数据 328

18.3 载入数据 331

第19章 使用XML文档 335

19.1 XML概述 335

19.2 存储XML文档 336

19.3 查询XML文档 339

19.4 使用位置查询 344

19.5 XPath的扩展表示法 346

19.6 带有条件XPath表达式 348

19.7 修改XML文档 348

第三部分 创建数据库对象 352

第20章 创建表 352

20.1 简介 352

20.2 创建新表 352

20.3 列的数据类型 354

20.3.1 整数数据类型 356

20.3.2 小数数据类型 357

20.3.3 浮点数据类型 357

20.3.4 位数据类型 360

20.3.5 字符数据类型 360

20.3.6 时间日期类型 361

20.3.7 Blob数据类型 361

20.3.8 几何数据类型 362

20.4 添加数据类型选项 362

20.4.1 数据类型选项UNSIGNED 362

20.4.2 数据类型选项ZEROFILL 363

20.4.3 数据类型选项AUTO_INCREMENT 365

20.4.4 数据类型选项SERIAL DEFAULT VALUE 367

20.5 创建临时表 367

20.6 如果表已经存在 368

20.7 复制表 368

20.8 命令表和列 371

20.9 列选项:Default和Comment 372

20.10 表选项 374

20.10.1 ENGINE表选项 374

20.1 0.2 AUTO_INCREMENT表选项 378

20.10.3 COMMENT表选项 378

20.10.4 AVG_ROW_LENGTH、MAX_ROWS和MIN_ROWS表选项 379

20.11 CSV存储引擎 379

20.12 表和目录 381

20.13 练习解答 383

第21章 声明完整性约束 385

21.1 简介 385

21.2 主键 386

21.3 替代键 388

21.4 外键 390

21.5 参照动作 393

21.6 Check完整性约束 395

21.7 命名完整性约束 396

21.8 删除完整性约束 397

21.9 完整性约束和目录 397

21.10 练习解答 397

第22章 字符集和校对 400

22.1 简介 400

22.2 可用的字符集和校对 401

22.3 给列分配字符集 402

22.4 给列分配校对 404

22.5 带有字符集和校对的表达式 405

22.6 使用校对排序和分组 407

22.7 表达式的可压缩性 408

22.8 相关的系统变量 409

22.9 字符集和目录 410

22.10 练习解答 410

第23章 ENUM和SET类型 411

23.1 简介 411

23.2 ENUM数据类型 411

23.3 SET数据类型 414

23.4 练习解答 419

第24章 修改和删除表 420

24.1 简介 420

24.2 删除整个表 420

24.3 重命令表 421

24.4 修改表结构 421

24.5 修改列 423

24.6 修改完整性约束 425

24.7 练习解答 427

第25章 使用索引 428

25.1 简介 428

25.2 行、表和文件 428

25.3 索引是如何工作的 429

25.4 处理一条SELECT语句的步骤 432

25.5 创建索引 435

25.6 在定义表时定义索引 437

25.7 删除索引 439

25.8 索引和主键 439

25.9 大PLAYERS_XXL表 440

25.10 为索引选择列 442

25.10.1 候选键上的唯一索引 442

25.10.2 外键上的索引 442

25.10.3 包含在选择标准中的列上的索引 442

25.10.4 在列的组合上的索引 444

25.10.5 用来排序的列上的索引 445

25.11 索引和目录 445

25.12 练习解答 447

第26章 视图 448

26.1 简介 448

26.2 创建视图 448

26.3 视图的列名 451

26.4 更新视图:使用CHECK OPTION 452

26.5 视图的选项 453

26.6 删除视图 454

26.7 视图和目录 454

26.8 对更新视图的限制 455

26.9 处理视图语句 456

26.10 视图的应用程序区域 458

26.10.1 例程语句的简化 458

26.10.2 重新组织表 458

26.10.3 SELECT语句的分步编写 461

26.10.4 声明完整性约束 462

26.10.5 数据安全性 462

26.11 练习解答 462

第27章 创建数据库 464

27.1 简介 464

27.2 数据库和目录 464

27.3 新建数据库 465

27.4 修改数据库 465

27.5 删除数据库 466

第28章 用户和数据安全性 468

28.1 简介 468

28.2 添加和删除用户 468

28.3 修改用户名 470

28.4 修改密码 471

28.5 授予表权限和列权限 471

28.6 授予数据库权限 473

28.7 授予用户权限 475

28.8 权限的传递:WITH GRANT OPTION 478

28.9 限制权限 479

28.10 在目录中记录权限 479

28.11 回收权限 481

28.12 视图和通过视图的安全性 483

28.13 练习解答 484

第29章 表维护语句 485

29.1 简介 485

29.2 ANALYZE TABLE语句 485

29.3 CHECKSUM TABLE语句 486

29.4 OPTIMIZE TABLE语句 487

29.5 CHECK TABLE语句 488

29.6 REPAIR TABLE语句 489

29.7 BACKUP TABLE语句 490

29.8 RESTORE TABLE语句 490

第30章 SHOW、DESCRIBE和HELP语句 491

30.1 简介 491

30.2 SHOW语句概览 491

30.3 其他SHOW语句 494

30.4 DESCRIBE语句 495

30.5 HELP语句 495

第四部分 过程式数据库对象 498

第31章 存储过程 498

31.1 简介 498

31.2 存储过程的简例 498

31.3 存储过程的参数 500

31.4 存储过程体 500

31.5 局部变量 502

31.6 SET语句 504

31.7 流程控制语句 504

31.8 调用存储过程 510

31.9 使用SELECT INTO查询数据 512

31.10 出错消息、处理程序和条件 515

31.11 使用一个游标来获取数据 519

31.12 包含不带游标的SELECT语句 523

31.13 存储过程和用户变量 524

31.14 存储过程的特征 524

31.15 存储过程和目录 526

31.16 删除存储过程 527

31.17 存储过程的安全性 528

31.18 存储过程的优点 528

第32章 存储函数 530

32.1 简介 530

32.2 存储函数的例子 531

32.3 存储函数的更多内容 535

32.4 删除存储函数 536

第33章 触发器 537

33.1 简介 537

33.2 触发器的例子 537

33.3 更多复杂的例子 540

33.4 作为完整性约束的触发器 542

33.5 删除触发器 544

33.6 触发器和目录 544

33.7 练习解答 544

第34章 事件 546

34.1 什么是事件 546

34.2 创建事件 546

34.3 事件的属性 553

34.4 修改事件 554

34.5 删除事件 555

34.6 事件和权限 555

34.7 事件和目录 556

第五部分 SQL编程 558

第35章 MySQL和PHP 558

35.1 简介 558

35.2 登录到MySQL 558

35.3 选择数据 559

35.4 创建索引 560

35.5 获取出错消息 562

35.6 会话中的多个连接 562

35.7 带有参数的SQL语句 564

35.8 带有一行的SELECT语句 565

35.9 带有多行的SELECT语句 566

35.10 带有空值的SELECT语句 569

35.11 查询有关表达式的数据 571

35.12 查询目录 573

35.13 保留的MYSQL函数 574

第36章 动态SQL 576

36.1 简介 576

36.2 使用预处理SQL语句 576

36.3 使用用户变量的预处理语句 577

36.4 使用参数的预处理语句 578

36.5 存储过程中的预处理语句 578

第37章 事务和多用户使用 581

37.1 简介 581

37.2 什么是事务 581

37.3 开始事务 585

37.4 保存点 585

37.5 存储过程和事务 587

37.6 多用户使用的问题 587

37.6.1 脏读或未提交的读 588

37.6.2 非重复读 588

37.6.3 幻读 589

37.6.4 遗失更新 589

37.7 锁定 590

37.8 死锁 590

37.9 LOCK TABLE和UNLOCK TABLE语句 591

37.10 隔离级 592

37.11 等待一个锁 593

37.12 处理语句的时刻 593

37.13 使用应用程序锁 594

37.14 练习解答 595