MySQL数据库开发:从入门到实践

978-7-115-68156-0
作者: [美]里克·席尔瓦(Rick Silva)
译者: 杨毅刘美博张世武
编辑: 武少波
分类: 其他

图书目录:

详情

本书从初学者的角度出发,通过有趣的编程实例、练习与实际的实践项目,对MySQL的 核心知识进行了深入浅出的讲解。书中首先介绍了MySQL的安装和基础使用方法,随后深入讲解了SQL查询、数据类型、表连接、视图、存储过程、触发器等核心功能,并通过构建天气数据库、跟踪选举数据的变化和保护薪资数据等实战项目,帮助读者将理论应用于实际场景。本书旨在帮助读者在学习更高级概念之前夯实数据库基础理论,用实战项目引导读者深入学习,最终学会轻松、全面地管理数据库项目。 本书适合MySQL领域的初学者,或具备一定数据库基础、希望深入研究MySQL的数据库从业人员阅读。

图书摘要

版权信息

书名:MySQL数据库开发:从入门到实践

ISBN:978-7-115-68156-0

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。


版  权

著    [美]里克·席尔瓦(Rick Silva)

译    杨 毅 刘美博 张世武

责任编辑 武少波

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

版 权 声 明

Copyright © 2023 by Rick Silva. Title of English-language original: MySQL Crash Course: A Hands-on Introduction to Database Development, ISBN 9781718503007, published by No Starch Press Inc. 245 8th Street, San Francisco, California United States 94103. The Simplified Chinese-language 1st edition Copyright © 2026 by Posts and Telecom Press Co., Ltd under license by No Starch Press Inc. All rights reserved.

本书简体中文版由No Starch Press公司授权人民邮电出版社有限公司出版。未经出版者书面许可,对本书的任何部分不得以任何方式或任何手段复制和传播。

版权所有,侵权必究。

内 容 提 要

本书从初学者的角度出发,通过有趣的编程实例、练习与实际的实践项目,对MySQL的核心知识进行了深入浅出的讲解。书中首先介绍了MySQL的安装和基础使用方法,随后深入讲解了SQL查询、数据类型、表连接、视图、存储过程、触发器等核心功能,并通过构建天气数据库、跟踪选举数据的变化和保护薪资数据等实战项目,帮助读者将理论应用于实际场景。本书旨在帮助读者在学习更高级概念之前夯实数据库基础理论,用实战项目引导读者深入学习,最终学会轻松、全面地管理数据库项目。

本书适合MySQL领域的初学者,或具备一定数据库基础、希望深入研究MySQL的数据库从业人员阅读。

对本书的赞誉

“对于想了解MySQL的读者,本书是很好的学习资源;而对于经验丰富的开发者,书中内容亦可温故知新。”

——Scott Stroz,MySQL开发倡导者

“本书能让MySQL开发者知其然,更知其所以然。”

——Steven Sian,网络与移动应用开发工程师

关 于 作 者

里克·席尔瓦是一位拥有数十年数据库从业经验的软件开发工程师。他曾就职于哈佛商学院、Zipcar及多家金融服务公司。他出生于波士顿,毕业于波士顿学院,现与妻子Patti和爱犬定居于北卡罗来纳州的罗利市。工作之余,他会在当地的蓝草音乐节上演奏班卓琴。

关于技术审校

Frédéric Descamps(@lefred)从事开源和MySQL咨询工作已有20多年。在获得信息技术管理学位后,他加入惠普公司,在HP-UX平台开启职业生涯,担任ERP系统开发工程师。此后,他加入比利时一家早期致力于GNU/Linux开源项目的创业公司,正式投身开源领域。2011年,Descamps加入知名数据库服务公司Percona,成为其MySQL核心专家团队成员,并活跃于MySQL社区,担任EMEA(欧洲、中东、非洲)和APAC(亚太)地区的MySQL社区管理员。Descamps是开源技术会议的常驻演讲嘉宾,同时也是多部技术专著的审稿人。其个人博客长期专注于MySQL技术。

Descamps还有3个可爱的女儿:Wilhelmine、Héloïse和Barbara。

致  谢

如果没有No Starch Press专业团队的支持,本书绝无可能付梓成书,对此我深表感谢。感谢Bill Pollock 认可本书的理念,并让本书的出版走上正轨。

感谢No Starch Press 卓越的编辑团队,他们是Rachel Monaghan、Eva Morrow、Frances Saux、Jenn Kepler与Jill Franklin。感谢Miles Bond 为本书倾注的细致工作,感谢Eric Matthes能够在繁忙日程中拨冗分享其独到的见解。

还要感谢技术审校Frédéric Descamps(@lefred),这位MySQL社区的标志性人物以严格的技术细节把控与深厚的领域造诣,为本书质量提供了坚实保障。特别感谢Jimmy Allen 和Oasis 乐队的伙伴们一直以来的鼓励。

资源与支持

资源获取

本书提供如下资源:

书中源代码文件;

练习题的答案;

异步社区7天VIP会员。

要获得以上资源,您可以扫描下方二维码,根据指引领取。

提交勘误信息

作者、译者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区(https://www.epubit.com),按书名搜索,进入本书页面,点击“发表勘误”,输入勘误信息,点击“提交勘误”按钮即可(见下图)。本书的作者和编辑会对您提交的勘误信息进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。

如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接通过邮件发送给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

关于异步社区和异步图书

“异步社区”是由人民邮电出版社创办的IT专业图书社区,于 2015 年8 月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作译者与读者在线交流互动,以及传统出版与数字出版的融合发展。

“异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域40余年的发展与积淀。异步图书面向各行业的信息技术用户。

前  言

 20世纪80年代中期,我获得了人生中第一份软件开发工作,这份工作让我首次接触到关系数据库管理系统(Relational Database Management System,RDBMS)——这是一种用于存储和检索数据库数据的系统。该概念自1970年便已存在,当时E.F.Codd发表著名论文并由此引入关系模型。这里的“关系”一词是指数据存储在包含行与列的网格中,这类网格也就是我们常说的表。

初入行业时,商业数据库系统尚未普及。事实上,我甚至不知道除自己之外是否还有人在使用这类系统。当时的数据库管理系统并不完善,没有图形界面和命令行界面,而且会毫无征兆、周期性地出现故障。由于万维网尚未问世,没有在线资源可参考,我只能重启系统并祈祷一切顺利。

尽管如此,将数据存入数据库的理念在当时仍显得非常前卫。我根据要存储的信息的特性创建数据表,并将大量数据存储到表中。我先定义表字段,再从文件加载数据,最后使用结构化查询语言(Structured Query Language,SQL)查询这些数据。SQL是一种与数据库交互的语言,可以快速添加、修改和删除多行数据,我甚至可以使用这项技术管理整个公司的数据!

如今,关系数据库管理系统已无处不在,且其稳定性与先进性远超20世纪80年代的老旧产品。同时,SQL也有了长足的进步。本书聚焦于MySQL,自1995年诞生以来,它已经成为全球最流行的开源关系数据库管理系统之一。

关于本书

本书将指导你使用MySQL Community Server(社区版),该版本可以免费使用且具备大多数场景所需的功能。此外,MySQL还有付费版本(如企业版),可以使用更多的增强特性和高级功能。所有版本都可以在多种操作系统中运行,例如Linux、Windows、macOS系统,甚至可以运行在云服务器上,同时配备丰富的强大功能及管理工具。

本书将介绍MySQL开发中实用的技能,融入了我多年来获得的见解。我们将学习如何编写SQL语句来创建表、函数、触发器和视图,并确保数据的完整性。在最后3章中,你将了解如何在实践中使用MySQL。

本书分为5个部分。

第1部分,入门

第1章介绍如何下载MySQL,并提供在各种操作系统中安装MySQL的技巧。你需要安装两个工具——MySQL Workbench和MySQL命令行客户端来访问MySQL。

第2章介绍如何定义数据库和表,并说明如何创建它们。你将学习向表添加约束,用规则对表中的数据加以限制,并了解索引如何加速数据检索。

第2部分,从MySQL数据库中查询数据

第3章介绍如何查询数据库表并选择所需信息。你将学到如何对结果进行排序、为SQL代码添加注释并处理null值。

第4章介绍可用于定义表中列的数据类型。你将学到如何定义列,以及存储字符串、整数、日期等类型的数据。

第5章总结可以同时从多个表中进行查询的不同方法,涵盖主要的连接类型,以及如何为列和表创建别名。

第6章介绍如何连接多个表以及如何使用临时表、公共表表达式、派生表和子查询。

第7章介绍如何在SQL中进行值比较。例如,你将学习如何检查一个值是否大于、等于或小于另一个值,或在某个值范围内等。

第8章介绍什么是函数、如何调用函数,以及最有用的函数有哪些。你将了解如何使用函数处理数学运算、日期和字符串,以及如何使用聚合函数处理分组数据。

第9章介绍如何在表中插入、更新和删除数据。

第3部分,数据库对象

第10章介绍基于查询的数据库视图或虚拟表。

第11章介绍如何编写可重用的存储过程。

第12章介绍如何编写在数据发生更改时自动执行的数据库触发器。

第13章介绍如何设置根据预定义计划运行的函数。

第4部分,高级主题

第14章讨论如何避免一些常见问题,如何提供现有系统支持,以及如何将数据从文件加载到表中。

第15章介绍在PHP、Python和Java程序中调用MySQL的方法。

第5部分,项目

第16章介绍如何使用cron和Bash等技术构建一个系统,将天气数据加载到货运公司的数据库中。

第17章介绍选举数据库的构建、使用数据库触发器防止数据错误,以及跟踪用户对数据进行更改的过程。

第18章介绍如何使用视图向特定用户公开或隐藏敏感数据。

多数章包含练习题,有助于你掌握书中的概念。

目标读者

本书适合所有对MySQL感兴趣的人,包括零基础接触MySQL和数据库的初学者、想要温故知新的开发人员,甚至包括从另一个数据库系统迁移到MySQL的资深软件工程师。

因为本书侧重于MySQL开发而不是数据库管理,建议MySQL数据库管理员(DBA)选择其他学习资料。虽然我偶尔会谈及DBA感兴趣的话题(如表权限控制),但我不会深入探讨服务器设置、存储容量、备份、恢复或其他DBA相关内容。

本书为MySQL爱好者编写,但如果你想在自己的MySQL环境中尝试练习,第1章将指导你下载和安装MySQL。

MySQL中的SQL与其他数据库系统中的SQL

学习SQL是使用MySQL的基础。SQL不仅能存储、修改和删除数据库中的数据,还可用于创建和删除表、查询数据等。

除了MySQL,关系数据库管理系统还包括Oracle、Microsoft SQL Server和PostgreSQL,它们同样基于SQL。理论上,这些系统中使用的SQL是根据美国国家标准协会(ANSI)规范进行标准化的。但是在实践中,不同数据库系统的SQL仍然存在差异。

每个数据库系统都有自己的SQL扩展。例如,Oracle的Procedural Language/SQL(PL/SQL),Microsoft SQL Server的Transact-SQL(T-SQL),PostgreSQL的Procedural Language/PostgreSQL(PL/pgSQL)。MySQL的扩展没有特定的名称,只是统称为MySQL存储程序语言。这些SQL扩展都使用不同的语法。

数据库系统之所以引入这些扩展,是因为SQL本质上是非过程化语言,这意味着它非常适合从数据库中检索和存储数据,但它并不像Java或Python这样的面向过程编程语言那样允许我们使用if…then逻辑或while循环,但数据库借用过程扩展补充了这些功能。

因此,虽然你从本书中学到的大部分SQL知识可以迁移到其他数据库系统,但如果你想使用MySQL之外的数据库系统执行查询,则可能需要对SQL语句进行一些语法调整。

在线资源

本书包含许多示例脚本,读者可以在随书资源中进行查询。第2~18章的脚本遵循的命名规则为chapter_X.sql,其中X是章节编号。第15章和第16章在名为chapter_15和chapter_16的文件夹中有附加脚本。

其中每个脚本都创建了相应章节中所示的MySQL数据库和表。脚本中还包含示例代码和习题答案。建议亲手练习题目,如果遇到困难或想检查答案,再查看相应的解答。

如果你想了解更多有关MySQL的内容以及可用的工具,可以访问MySQL参考手册,它对MySQL开发特别有帮助,也可以查看MySQL Workbench文档,或者查看MySQL命令行文档进行学习。

MySQL数据库的世界精彩纷呈,下面让我们一起开始学习之旅吧!


第1部分 入  门

在本书的第1部分,我们将安装MySQL,以及用于访问MySQL数据库的工具。随后,我们将通过创建第一个数据库来熟悉这些工具。

在第1章中,我们将在计算机上安装MySQL、MySQL Workbench和MySQL命令行客户端。

在第2章中,我们将创建自己的MySQL数据库和一个数据库表。

第1章 安装MySQL和工具

 使用数据库前,需要安装MySQL的免费版本,即MySQL Community Server(也称为MySQL Community Edition),以及两个便捷工具:MySQL Workbench和MySQL命令行客户端。这些软件可以从MySQL官方网站上免费下载。在本书后面的项目和练习中,将会用到这些工具。

1.1 MySQL架构

MySQL采用客户/服务器架构,如图1-1所示。

图1-1 客户/服务器架构

该架构的服务器端托管和管理客户端需要访问的资源或服务。这意味着,在实际的生产环境中,服务器端软件(MySQL Community Server)将在安装了MySQL数据库的专用计算机上运行。用于访问数据库的工具,如MySQL Workbench和MySQL命令行客户端,将安装在用户的计算机上。

如果为了学习而搭建开发环境,只需在同一台计算机上安装MySQL客户端工具和MySQL Community Server。换句话说,这台计算机将同时充当客户端和服务器。

1.2 安装MySQL

MySQL的安装说明可以从MySQL官网上获取。打开MySQL官网并单击MySQL Documentation,然后在MySQL Server标题下单击MySQL Reference Manual并选择最新版本,然后我们将看到该版本的参考手册。在左侧菜单中,单击Installing and Upgrading MySQL,在目录表中找到对应的操作系统,然后按照说明下载并安装MySQL Community Server。

安装MySQL有多种方法,例如,从ZIP文件、源代码或MySQL安装程序中安装都是可行的。从非官方渠道获取的安装说明会随着所选的操作系统和MySQL产品的变化而有所不同。所以最好、最新的安装资源始终来自MySQL官网。不过,请注意以下4点。

安装MySQL时,会创建一个名为root的数据库用户,并要求输入初始密码。初始密码需要妥善保管,以后会用到。

通常,如果有可用的安装程序(如MySQL安装程序),那么使用安装程序安装会更加简单。

如果使用的是Windows系统,将会有两种不同的安装程序可供选择,即Web安装程序和完整包安装程序,但是它们之间的区别并不明显,如图1-2所示。

图1-2 为Windows操作系统选择Web安装程序

Web安装程序文件相对较小,并且它的文件名包含单词web。推荐选择这个选项,因为它允许用户选择想要安装的MySQL产品,并从网络上下载它们。完整包安装程序包含所有MySQL产品,但这并不是必要的。

在撰写本书时,这两个安装程序在网页上显示为32位,这里仅代表安装程序本身是32位的,与MySQL没有任何关系。两个安装程序都可以安装64位的MySQL。事实上,在Windows操作系统中,MySQL只适用于64位操作系统。

用户可以直接下载MySQL而无须创建账户。在图1-3所示的网页上,选择屏幕底部的“No thanks,just start my download.”下载即可。

图1-3 无须创建账户即可下载MySQL

接下来需要下载MySQL Workbench,这是一个用于访问MySQL数据库的可视化工具。使用该工具可以浏览数据库、执行SQL语句并查看返回的数据。要下载MySQL Workbench,需要访问MySQL官方网站的MySQL Workbench参考手册页面。单击左侧菜单中的“Installation”,选择你的操作系统,然后按照说明进行操作。

在计算机上安装MySQL Community Server或MySQL Workbench时,MySQL命令行客户端会自动安装。这个客户端允许用户从计算机的命令行界面(也称为控制台、命令提示符或终端)连接到MySQL数据库。可以使用此工具运行一条SQL语句,或者运行保存在脚本文件中的多条SQL语句。在不需要在图形用户界面中查看格式良好的结果的情况下,MySQL命令行客户端非常有用。

我们将使用这3个MySQL产品来完成大部分工作,包括本书中的练习。

现在计算机中的MySQL已经设置好了,可以开始创建数据库了!

1.3 总结

在本章中,我们从官网下载并安装了MySQL、MySQL Workbench和MySQL命令行客户端,找到了MySQL Server和MySQL Workbench参考手册,其中包含大量有用的信息。如果遇到困难,有疑问,或者想了解更多,建议查看相应的参考手册。

在第2章中,我们将学习如何查看和创建MySQL数据库与表。

相关图书

SDD实战:规范驱动开发之道
SDD实战:规范驱动开发之道
Agent Skills开发实战像搭积木一样构建智能体
Agent Skills开发实战像搭积木一样构建智能体
Agent设计模式 图解可复用智能体架构
Agent设计模式 图解可复用智能体架构
Codex快速入门:Harness工程落地
Codex快速入门:Harness工程落地
构建之法——现代软件工程(第四版)
构建之法——现代软件工程(第四版)
AI科研绘图:Nano Banana极速实战指南
AI科研绘图:Nano Banana极速实战指南

相关文章

相关课程