Skip to content

MySQL - 前言

欢迎阅读现代 MySQL 教程。MySQL 是一个经过实战检验的开源关系型数据库管理系统(RDBMS),它曾是大量应用程序的支柱,从经典的 LAMP(Linux、Apache、MySQL、PHP)堆栈到今天的云原生服务。它以其可靠性、性能和易用性而闻名。

由甲骨文公司(Oracle Corporation)管理,MySQL 仍然是开发人员的首选。它也启发了流行的完全开源分支,如 MariaDB 和 Percona Server。本教程将引导您从基本概念到高级技术,为您掌握现代数据管理所需的技能。

MySQL 具有高度可移植性,几乎可以在所有主流操作系统上运行,包括 Linux、macOS 和 Windows。它是云服务提供商(如 AWS RDS、Google Cloud SQL 和 Azure Database for MySQL)的标配组件,并且可以使用 Docker 等工具轻松在本地运行进行开发。

MySQL 使用结构化查询语言(SQL)来管理和查询数据。我们来看一个 CUSTOMERS 表。最佳实践是将 SALARY 列定义为 DECIMAL(10, 2) 数据类型,以精确存储货币值。

IDNAMEAGEADDRESSSALARY
1Ramesh32Ahmedabad2000.00
2Khilan25Delhi1500.00
3Kaushik23Kota2000.00
4Chaitali25Mumbai6500.00
5Hardik27Bhopal8500.00
6Komal22Hyderabad4500.00
7Muffy24Indore10000.00

要检索所有 25 岁客户的记录,您将执行以下 SQL 语句:

SELECT * FROM CUSTOMERS WHERE AGE = 25;

此查询将返回以下结果集:

IDNAMEAGEADDRESSSALARY
2Khilan25Delhi1500.00
4Chaitali25Mumbai6500.00

要练习 SQL,您需要访问 MySQL 服务器。以下是最常见的入门方式:

  • Docker(推荐):在开发环境中运行数据库最简单、最隔离的方式。安装 Docker 后,您可以通过一条命令启动 MySQL 实例。
  • 本地安装:您可以直接将 MySQL 社区版服务器下载并安装到您的操作系统上。
  • 云服务:所有主要的云服务提供商都为其托管的 MySQL 服务提供免费套餐,这对于学习和小型项目非常有用。
  • 在线 SQL 调试器:像 DB-Fiddle 这样的网站对于测试小型、独立的查询非常有用,无需任何设置。

为了更好地进行开发,我们还建议使用数据库客户端,例如 MySQL Workbench、DBeaver 或带有 SQL 工具的 VS Code 扩展。

在数据库技术众多的世界中,MySQL 仍然是任何有抱负的技术专业人士的关键技能。

  • 基础技能:SQL 是数据的通用语言。精通 SQL 和 RDBMS 概念是从事后端开发、数据科学、数据工程以及 SRE/DevOps 等职位的先决条件。
  • 久经考验的可靠性:MySQL 受到包括 Netflix、Uber 和 Booking.com 在内的全球最大组织的信任,为其关键业务系统提供支持。
  • 丰富的生态系统:庞大的社区以及丰富的工具、库和框架生态系统为任何项目提供了出色的支持。
  • 结构化数据完整性:虽然 MongoDB 等 NoSQL 数据库对于非结构化数据非常出色,但对于需要强一致性、事务和对结构化数据进行复杂查询的应用程序(例如电子商务平台、金融系统),MySQL 仍然是更优的选择。

拥有强大 MySQL 技能的专业人士持续受到需求。公司正在积极招聘后端工程师、数据工程师、数据库管理员(DBA)和站点可靠性工程师(SRE)等职位。数据库优化、模式设计和查询性能调优方面的专业知识可以带来有益且有影响力的职业生涯。

谷歌(Google)、亚马逊(Amazon)和 Meta 等顶级科技公司,以及无数的初创企业和大型企业,都依赖 MySQL 并寻求专家来管理其数据基础设施。掌握 MySQL 是您技术职业生涯的一项稳固投资。

本 MySQL 教程专为没有数据库经验的初学者设计,但它也为希望巩固关系数据库基础知识的开发人员提供了价值。

在您开始之前,我们假设您对计算机软件概念有基本了解。熟悉任何编程语言和命令行会有所帮助,但并非严格要求。

问:MySQL 是免费使用的吗? 答:是的,MySQL 社区版是免费开源软件(FOSS),采用 GPL 许可。甲骨文公司也提供具有企业级功能和支持的商业版。

问:SQL 和 MySQL 有什么区别? 答:SQL(结构化查询语言)是用于与关系型数据库通信的标准语言。MySQL 是一款特定的 RDBMS 产品(一个软件应用程序),它理解并执行 SQL。

问:MySQL 与 PostgreSQL 相比如何? 答:两者都是顶级的开源 RDBMS。历史上,MySQL 因其在读密集型应用中的简洁性和性能而备受青睐,而 PostgreSQL 则以其高级功能和可扩展性而闻名。如今,它们的功能集已基本趋同。选择通常取决于具体的项目需求、团队专业知识或对某一特定功能的偏好。

问:在 NoSQL 时代,MySQL 仍然重要吗? 答:当然。对于任何依赖结构化数据、数据间关系以及 ACID 兼容事务(例如金融、电子商务或预订系统)的应用程序,像 MySQL 这样的关系型数据库通常是最可靠的选择。现代架构经常采用多语言持久化(polyglot persistence)方法,针对不同任务利用 SQL 和 NoSQL 数据库。