MySQL 是基于 Web 的应用程序中最流行的数据库系统之一。
本课将向您介绍 MySQL 数据库系统,以及如何与之交互。
什么是 MySQL?
MySQL 是一个开源的关系型数据库管理系统。它用于在数据库中存储数据,并在需要时检索这些数据。
SQL 代表结构化查询语言,它是一种用于与 MySQL 数据库中的数据交互的编程语言。
正如您在关于 WordPress 和 Web 服务器的课程中所学到的,WordPress 使用 MySQL 数据库来存储其所有数据。这些数据包括文章、页面、评论和用户等内容。
您可以使用的一个与 MySQL 数据库交互的工具是 phpMyAdmin。
phpMyAdmin 是一个基于浏览器的工具,允许您通过图形用户界面与 MySQL 数据库交互,同时也可以对其运行 SQL 查询。
它通常包含在您的 Web 主机或本地开发环境的控制面板中。
创建表
要在数据库中创建表,您需要使用 CREATE TABLE 语句。此语句需要表名以及表应包含的列。
例如,要创建一个名为 colors 的表,包含 id、type 和 value 列,您可以使用以下 SQL 语句:
CREATE TABLE colors (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
type VARCHAR(30) NOT NULL,
value VARCHAR(30) NOT NULL
)
这将创建 colors 表,并包含相应的列。
向表中添加行
现在,如果您想向表中添加一行,您需要使用 INSERT 语句。此语句需要表名以及每列的值。
例如,要向 colors 表添加一行,您可以使用以下 SQL 语句:
INSERT INTO colors (type, value) VALUES ('header', 'red');
如果您现在浏览 colors 表,您将看到刚刚添加的行。
从表中读取行
如果您想从表中读取一行,您需要使用 SELECT 语句。此语句需要表名以及要读取的行。
例如,要从 colors 表中读取 type 为 header 的行,您可以使用以下 SQL 语句:
SELECT * FROM colors WHERE type = 'header';
这将返回所有请求的行。
如果您只想要 value 列的值,您可以使用以下 SQL 语句:
SELECT value FROM colors WHERE type = 'header';
这将只显示 value 列中的数据。
更新表中的行
如果您想更新表中的一行,您需要使用 UPDATE 语句。此语句需要表名、要更新的列、新值以及要更新的行。
例如,要更新 colors 表中 value 列的值,您可以使用以下 SQL 语句:
UPDATE colors SET value = 'blue' WHERE type = 'header';
如果您浏览该表,您将看到 value 列的值已被更新。
从表中删除行
如果您想从表中删除一行,您需要使用 DELETE 语句。此语句需要表名以及要删除的行。
例如,要从 colors 表中删除 type 为 header 的行,您可以使用以下 SQL 语句:
DELETE FROM colors WHERE type = 'header'
浏览该表显示数据已被删除。
数据库键
在前面的示例中,您可能注意到使用 value 列来更新或删除行。虽然这可行,但这不是更新或删除行的最有效方式。这是因为 value 列不是唯一的,可能存在多行具有相同的值。此外,如果您想更新或删除一行,您需要知道 value 列的值,这可能无法实现。
因此,通常建议您的数据库表有一个 id 列,并且该 id 是唯一的、自动递增的。同时,最好为 ID 建立索引。索引允许 MySQL 比没有索引的字段更快地执行选择、更新和删除操作。
从 PHP 运行查询
与 PHP 和 JavaScript 不同,SQL 是一种在数据库上执行的查询语言。此外,由于 JavaScript 在浏览器中运行,通常不会从 JavaScript 直接向数据库发送请求,而是通过服务器端执行的 PHP 来实现。
要运行 SQL 查询,你需要从 PHP 建立与数据库的连接,准备并执行查询,查询结果会以某种变量形式返回给 PHP。
幸运的是,正如你在 WordPress 工作原理模块中学到的,WordPress 包含一个数据库 API,可以让你管理数据库连接并运行所需的任何查询。
此外,如果你使用默认的 WordPress 数据类型,甚至无需担心执行 SQL 查询。
附加资源
有关 MySQL 和 SQL 语句的更多信息,可以访问以下在线资源:
- MySQL 教程
- MySQL 8.2 参考手册
- 在 freeCodeCamp 上学习 MySQL – 初学者课程