当前位置:主页 > 书籍配套资源 > MySQL配套资源
《MySQL开发者SQL权威指南》附录

《MySQL开发者SQL权威指南》附录

  • 更新:2022-11-23
  • 大小:2.8 MB
  • 类别:MySQL
  • 作者:Rick、F.、van、der、Lans
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书帮助读者掌握MySQL 5提供的SQL,并且充分利用其强大的功能。本书通过大量示例以及动手练习阐释了每一个关键概念、技术和语言及其高级功能,使得创建最复杂的语句和程序也变得很容易。
作者深刻揭示了MySQL的工作原理以及如何充分利用其功能,读者将能深入理解和掌握从基本查询到存储过程、事务和数据安全性等所有内容。本书可以帮助读者从“学徒”转变成为一个真正的SQL专家。
本书的所有示例程序都可以从www.r20.nl下载。

主要内容

●编写查询,包括连接、函数和子查询;
●更新数据;
●创建表、视图和其他数据库对象;
●声明主键、外键以及其他完整性约束;
●使用索引提高效率;
●通过密码和权限来增强安全性;
●在PHP程序中嵌入SQL;
●使用事务、锁、回滚和隔离级;
●使用MySQL的目录。

MySQL是最流行的开放源码SQL数据库管理系统。由于富有竞争力的价格和易于使用,MySQL市场占有率逐步提升。权威调查显示,在2007年上半年,MySQL的使用率从38.5%升至43.4%。尤其是在LAMP(Linux+Apache+MySQL+PHP)架构的提出之后,MySQL的应用更是找到了一个较为理想的发挥平台。
在今天的IT行业,用户对于掌握MySQL数据库服务器技术,有着迫切的实际需求。正因为如此,我们看到市面上关于MySQL的图书越来越多,而本书则是这些图书中具有特色的畅销书。说它独特,因为它并不是一本MySQL全书,而是关注MySQL的一个方面,即驱动MySQL的语言,也就是SQL(Structured Query Language,标准查询语言)。说它畅销,是因为作者Rick F. van der Lans是极富经验的数据库技术讲师和畅销书作者,而本书自荷兰语版出版以后,先后被翻译为各种语言版本,销量超过十万册。
全书分为5个部分和一个附录。第一部分由几个介绍性的主题组成。包括MySQL的历史、本书示例数据库、SQL语言的一般性等。第二部分完全关注于表的查询和更新,主要介绍SELECT语句,还介绍了如何使用XML文档。第三部分介绍数据库对象(包括表、主键、替代键、外键、索引和视图)的创建,这部分还介绍了数据安全性。第四部分描述存储过程、存储函数、触发器和事件。第五部分介绍SQL编程。本书最后是一些附录,包括SQL语法、标量函数和系统变量等有用信息。
除了专注于MySQL的驱动语言SQL之外,本书还有两个比较显著的特色。

首先,本书是一本教程而不是一本参考书。因此,它包含了很多示例和练习(以及练习解答)。全书以问题提出、给出示例语句和结果、示例分析的方式,对每一个示例进行了细致的讲解和说明。读者可以非常容易地掌握本书所介绍的内容。在各节中还穿插了很多具有针对性的练习,帮助读者巩固该章所学习到的知识。在每章的末尾,给出了练习的解答,方便读者核对。

其次,本书的网站www.r20.nl提供了丰富的附加内容和服务。不仅指导读者安装示例数据库,而且提供了示例的代码下载。考虑到一些示例可能会改变数据库中的表内容,作者还在网站上提供了恢复数据库初始内容的服务。
本书由许杰星、李强翻译,参加翻译工作的还有罗娜、刘金华、刘伟超、罗庚臣、 刘二然、郑芳菲、庄逸川、王世高、郭莹、陈、邓勇、何进伟、贾晓斌、汪蔚、齐国涛。
译者深深感觉到,本书能够受到世界各地众多读者的喜爱,肯定是有原因的。原因在于作者对本书编写下了很多功夫,而且提供了细致周到的网络服务。正所谓,付出才有回报。有幸翻译这样一本MySQL的优秀教程,译者也正是抱着和作者同样的态度来翻译本书的。然而,译者水平有限,其中难免有个别疏漏之处,欢迎读者朋友们耐心指正,以求共同进步。

让我们付出自己的努力来学习MySQL吧!本书一定会给你带来收获和回报。

封面图

目录

  • 译者序
  • 前言
  • 第一部分 综述
  • 第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 从单机到客户/服务器再到Internet10
  • 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 下载MySQL23
  • 3.3 安装MySQL23
  • 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
  • 第二部分 查询和更新数据
  • 第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 用AND、OR、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 带有偏移量的LIMIT289
  • 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
  • 第三部分 创建数据库对象
  • 第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 数据类型选项UNSIGNED362
  • 20.4.2 数据类型选项ZEROFILL363
  • 20.4.3 数据类型选项AUTO_
  • INCREMENT365
  • 20.4.4 数据类型选项SERIAL
  • DEFAULT VALUE367
  • 20.5 创建临时表367
  • 20.6 如果表已经存在368
  • 20.7 复制表368
  • 20.8 命令表和列371
  • 20.9 列选项:Default和Comment372
  • 20.10 表选项374
  • 20.10.1 ENGINE表选项374
  • 20.10.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 OPTION452
  • 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 OPTION478
  • 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
  • 第四部分 过程式数据库对象
  • 第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编程
  • 第35章 MySQL和PHP558
  • 35.1 简介558
  • 35.2 登录到MySQL558
  • 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章 动态SQL576
  • 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
  • 附录

资源下载

资源下载地址1:https://pan.baidu.com/s/1b6IdFO34pH2wUhSo1i4xtQ

相关资源

网友留言