标签
内容简介
本书是荷兰数据库专家里克·F. 范德兰斯(Rick F. van der Lans)为MySQL开发者撰写的SQL教程与参考手册,据Addison-Wesley 2007年英文版《SQL for MySQL Developers: A Comprehensive Tutorial and Reference》译出,由机械工业出版社列入“华章程序员书库”出版。 全书以作者沿用多年的“网球俱乐部”示例数据库(含球员、球队、比赛、罚款等表)贯穿始终,先介绍关系模型、SQL标准与MySQL的发展脉络,再循序讲解查询与更新数据、创建数据库对象、过程式数据库对象、SQL编程四个层面。查询部分从字面量、表达式、标量函数、NULL与CASE表达式讲起,逐个子句剖析SELECT语句的FROM、WHERE、SELECT与聚合函数、GROUP BY、HAVING、ORDER BY、LIMIT,并延伸到表表达式的组合、用户变量、HANDLER语句与子查询;更新部分涵盖INSERT、UPDATE、DELETE、LOAD DATA等数据的载入与卸载,以及XML文档的处理。 建库建表部分讲解列与数据类型、主键外键等完整性约束、字符集与校对规则、ENUM与SET类型、索引、视图、数据库创建、用户与权限安全、表维护语句及SHOW/DESCRIBE/HELP等元数据查询。第四部分讨论存储过程、存储函数、触发器与事件;第五部分介绍在PHP中嵌入SQL、预处理语句与动态SQL,以及事务、锁、回滚与隔离级别等多用户并发问题。每章配有习题与答案,书末附SQL语法、标量函数和系统变量等附录,便于随手查阅。
编辑推荐
市面上讲MySQL的书大致分两类:一类讲服务器运维与InnoDB内核,一类讲SQL语法。本书属于后者,而且是把SQL当作一门语言系统地讲透的那种。 作者范德兰斯曾是荷兰ISO委员会负责SQL标准的成员,其代表作《Introduction to SQL》被多所大学采用二十余年。本书沿用了那本书经过反复打磨的结构:一个贯穿全书的网球俱乐部示例库、按SELECT各子句逐一拆解、每章配习题并附答案。所以它读起来不像手册那样零散,而是有清晰的递进路径——先会查,再会改,然后会建,最后会用存储过程和事务。 对中文读者而言,它的价值还在于“MySQL方言味”很足:字符集与校对规则、ENUM与SET类型、HANDLER语句、LOAD DATA、SHOW/DESCRIBE/HELP、用户变量、预处理语句这些MySQL特有或易被忽略的内容都单独成章,而不是只照着SQL标准泛泛而谈。 需要提醒的是,原书基于MySQL 5.0/5.1时代,窗口函数、CTE、JSON类型等新特性全无涉及,示例中的PHP也是mysqli时代写法。作为SQL基本功的教材与案头参考它依然扎实,但涉及新版本特性时需要配合官方手册阅读。
适合谁读
适合
- 已经会用MySQL写简单查询、想把SQL系统补齐的后端开发者
- 需要设计表结构、约束与索引的应用开发人员
- 从其他数据库(Oracle、SQL Server)迁移到MySQL的技术人员
- 数据库课程的学习者,书中习题可作为课后练习素材
不适合
- 零基础、尚未接触过任何数据库概念的完全新手
- 专门研究InnoDB存储引擎内核与性能调优的DBA
- 只想找MySQL 8.0新特性(窗口函数、CTE、JSON)速查手册的读者
阅读建议
- 先按书中步骤装好MySQL并导入网球俱乐部示例库,边读边在命令行里跑示例,比只看书有效得多。
- 第5至13章按SELECT子句分章,可先通读一遍建立框架,之后把这几章当语法字典随手回查。
- 每章末的习题务必动手做,尤其GROUP BY、HAVING与子查询部分,是SQL思维的分水岭。
- 读到存储过程与事务章节时,配合MySQL官方手册对照当前版本的语法差异,避免照抄5.0时代写法。
出版社简介
机械工业出版社
中国 · 成立于 1950 年
机械工业出版社(China Machine Press)在科技与专业出版之外,库内图书还体现出对心理学、计算机、管理、财经与社科等方向的持续关注。心理学方面收入荣格作品及分析心理学导论,并涉及压力与健康、成瘾与疗愈等应用议题;计算机领域有《计算机程序的构造和解释(JavaScript版)》;管理与财经类包括《管理行为(原书第4版)》《不平等的代价(珍藏版)》《这次不一样:八百年金融危机史(纪念版)》;科学哲学与科学史方面则有《世界观(原书第3版)》。相关作者资源涵盖C.G.荣格、威廉·麦圭尔、索努·沙姆达萨尼、加博尔·马泰等。公开资料有限,以上仅据库内图书归纳其出版面貌。
目录
- 译者序
- 前言
- 第一部分 综述
- 第1章 MySQL简介
- 第2章 网球俱乐部示例数据库
- 第3章 安装软件
- 第4章 SQL概要
- 第二部分 查询和更新数据
- 第5章 SELECT语句:常用元素
- 第6章 SELECT语句、表表达式和子查询
- 第7章 SELECT语句:FROM子句
- 第8章 SELECT语句:WHERE子句
- 第9章 SELECT语句:SELECT子句和聚合函数
- 第10章 SELECT语句:GROUP BY子句
- 第11章 SELECT语句:HAVING子句
- 第12章 SELECT语句:ORDER BY子句
- 第13章 SELECT语句:LIMIT子句
- 第14章 组合表表达式
- 第15章 用户变量和SET语句
- 第16章 HANDLER语句
- 第17章 更新表
- 第18章 载入和卸载数据
- 第19章 使用XML文档
- 第三部分 创建数据库对象
- 第20章 创建表
- 第21章 声明完整性约束
- 第22章 字符集和校对
- 第23章 ENUM和SET类型
- 第24章 修改和删除表
- 第25章 使用索引
- 第26章 视图
- 第27章 创建数据库
- 第28章 用户和数据安全性
- 第29章 表维护语句
- 第30章 SHOW、DESCRIBE和HELP语句
- 第四部分 过程式数据库对象
- 第31章 存储过程
- 第32章 存储函数
- 第33章 触发器
- 第34章 事件
常见问题
这本书是针对哪个MySQL版本写的?
原书英文版出版于2007年,内容基于MySQL 5.0/5.1时期,正文中涉及MySQL 5.0的新特性。因此窗口函数、CTE、JSON类型、角色管理等MySQL 8.0特性本书没有涉及,学习时需搭配官方手册补充。
书里的“网球俱乐部”数据库要另外下载吗?
网球俱乐部是作者为教学设计的示例库,原书配套网站提供建表与插入数据的SQL脚本,中文版读者可根据书中第2章的说明自行构建,或按章节给出的表结构手工建库。
零基础能直接读这本书吗?
不太建议。本书假定读者对数据库、表、行等基本概念已有了解,开篇几章节奏较快。完全零基础可先用一本入门书建立概念,再回到本书系统学SQL。
这本书和高性能MySQL有什么区别?
本书聚焦SQL语言的用法与MySQL方言特性,讲怎么写出正确的查询、建表和存储过程;《高性能MySQL》偏重架构、索引调优、复制与运维。两者定位不同,可配合使用。
书里的PHP示例现在还能用吗?
第35章的示例基于当时PHP 5的mysqli扩展写法,思路仍然适用,但具体API已较陈旧。现在更常见的是PDO或框架的查询构造器,阅读时重在学习SQL如何嵌入程序,而非照抄代码。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。