MySQL 基本数据操作

SQLBeginner
立即练习

介绍

在本实验中,我们将探索 MySQL 中的基本数据操作。你将学习如何在 MySQL 表中插入、查询、更新和删除数据。这些操作通常被称为 CRUD(创建、读取、更新、删除),是数据库交互的核心。通过动手练习,你将获得这些基本数据库操作的实践经验,并了解如何有效地管理 MySQL 表中的数据。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 91%。获得了学习者 100% 的好评率。

基本数据插入

在这一步骤中,我们将学习如何使用 INSERT 语句向 MySQL 表中插入数据。我们将从简单的单行插入开始,然后逐步过渡到多行插入。

首先,连接到 MySQL:

sudo mysql -u root

连接成功后,选择 store 数据库:

USE store;

单行插入

让我们从向 products 表中插入一个产品开始:

INSERT INTO products (name, price, description)
VALUES ('Coffee Maker', 49.99, 'A 12-cup drip coffee maker with programmable timer');

让我们分解这个命令:

  • INSERT INTO products:指定我们要插入数据的表
  • (name, price, description):列出我们要提供值的列
  • VALUES (...):指定要插入的实际值

注意,我们没有包含以下字段:

  • id:它是自增的,MySQL 会自动处理
  • created_at:它有一个默认值,即当前时间戳

为了验证插入操作,我们可以查询数据:

SELECT * FROM products;

你应该会看到类似以下的输出:

+----+--------------+--------+----------------------------------------------------+---------------------+
| id | name         | price  | description                                        | created_at          |
+----+--------------+--------+----------------------------------------------------+---------------------+
|  1 | Coffee Maker |  49.99 | A 12-cup drip coffee maker with programmable timer | 2024-11-07 09:12:06 |
+----+--------------+--------+----------------------------------------------------+---------------------+

多行插入

现在,让我们一次性插入多个产品。这比逐行插入更高效:

INSERT INTO products (name, price, description) VALUES
    ('Toaster', 29.99, '2-slice toaster with multiple browning settings'),
    ('Blender', 79.99, 'High-speed blender for smoothies and soups'),
    ('Microwave', 129.99, '1000-watt microwave with digital controls');

这个命令的结构与单行插入相同,但包含了多个用逗号分隔的值集。

让我们验证插入操作:

SELECT * FROM products;

你应该会看到类似以下的输出:

+----+--------------+--------+----------------------------------------------------+---------------------+
| id | name         | price  | description                                        | created_at          |
+----+--------------+--------+----------------------------------------------------+---------------------+
|  1 | Coffee Maker |  49.99 | A 12-cup drip coffee maker with programmable timer | 2024-11-07 09:12:06 |
|  2 | Toaster      |  29.99 | 2-slice toaster with multiple browning settings    | 2024-11-07 09:12:16 |
|  3 | Blender      |  79.99 | High-speed blender for smoothies and soups         | 2024-11-07 09:12:16 |
|  4 | Microwave    | 129.99 | 1000-watt microwave with digital controls          | 2024-11-07 09:12:16 |
+----+--------------+--------+----------------------------------------------------+---------------------+

基本 SELECT 查询

在这一步骤中,我们将学习如何使用 SELECT 语句从表中检索数据。我们将探索不同的方式来选择和格式化输出。

选择特定列

我们可以通过指定具体列来查看数据,而不是使用 * 选择所有列:

SELECT name, price FROM products;

这将为我们提供更聚焦的数据视图:

+-------------+--------+
| name        | price  |
+-------------+--------+
| Coffee Maker| 49.99  |
| Toaster     | 29.99  |
| Blender     | 79.99  |
| Microwave   | 129.99 |
+-------------+--------+

使用列别名

我们可以使用 AS 关键字为列设置别名,使输出更具可读性:

SELECT
    name AS product_name,
    price AS retail_price,
    price * 0.8 AS sale_price
FROM products;

这个查询:

  • name 重命名为 product_name
  • price 重命名为 retail_price
  • 计算折扣价(8 折)并将其命名为 sale_price

你将看到类似以下的输出:

+-------------+-------------+------------+
| product_name| retail_price| sale_price |
+-------------+-------------+------------+
| Coffee Maker| 49.99       | 39.99      |
| Toaster     | 29.99       | 23.99      |
| Blender     | 79.99       | 63.99      |
| Microwave   | 129.99      | 103.99     |
+-------------+-------------+------------+

过滤结果

我们可以使用 WHERE 子句来过滤结果:

SELECT name, price
FROM products
WHERE price < 50.00;

这将仅显示价格低于 $50 的产品:

+-------------+-------+
| name        | price |
+-------------+-------+
| Coffee Maker| 49.99 |
| Toaster     | 29.99 |
+-------------+-------+

更新数据

在这一步骤中,我们将学习如何使用 UPDATE 语句修改现有数据。UPDATE 语句允许我们更改表中的值。

重要提示:始终在 UPDATE 语句中使用 WHERE 子句!如果没有 WHERE,更新将影响表中的所有行。

假设我们需要提高咖啡机的价格:

UPDATE products
SET price = 54.99
WHERE name = 'Coffee Maker';

我们还可以一次性更新多个列:

UPDATE products
SET
    price = 89.99,
    description = 'Professional-grade high-speed blender for smoothies and soups'
WHERE name = 'Blender';

为了验证更新操作:

SELECT name, price, description
FROM products
WHERE name IN ('Coffee Maker', 'Blender');

你应该会看到更新后的值:

+--------------+-------+---------------------------------------------------------------+
| name         | price | description                                                   |
+--------------+-------+---------------------------------------------------------------+
| Coffee Maker | 54.99 | A 12-cup drip coffee maker with programmable timer            |
| Blender      | 89.99 | Professional-grade high-speed blender for smoothies and soups |
+--------------+-------+---------------------------------------------------------------+

删除数据

在这最后一步中,我们将学习如何使用 DELETE 语句从表中删除数据。与 UPDATE 类似,使用 DELETE 时务必结合 WHERE 子句,以避免意外删除所有数据。

让我们从 products 表中删除 Toaster

DELETE FROM products
WHERE name = 'Toaster';

为了验证删除操作:

SELECT * FROM products;

你应该会看到除 Toaster 之外的所有产品:

+----+-------------+-------+-----------------------------------------------------+---------------------+
| id | name        | price | description                                         | created_at          |
+----+-------------+-------+-----------------------------------------------------+---------------------+
|  1 | Coffee Maker| 54.99 | A 12-cup drip coffee maker with programmable timer | 2024-01-01 12:00:00 |
|  3 | Blender     | 89.99 | Professional-grade high-speed blender for smoothies| 2024-01-01 12:00:00 |
|  4 | Microwave   | 129.99| 1000-watt microwave with digital controls          | 2024-01-01 12:00:00 |
+----+-------------+-------+-----------------------------------------------------+---------------------+

我们还可以一次性删除多行数据。让我们删除所有价格超过 $100 的产品:

DELETE FROM products
WHERE price > 100;

这将从产品列表中删除 Microwave

MariaDB [store]> SELECT * FROM products;
+----+--------------+-------+---------------------------------------------------------------+---------------------+
| id | name         | price | description                                                   | created_at          |
+----+--------------+-------+---------------------------------------------------------------+---------------------+
|  1 | Coffee Maker | 54.99 | A 12-cup drip coffee maker with programmable timer            | 2024-11-07 09:12:06 |
|  3 | Blender      | 89.99 | Professional-grade high-speed blender for smoothies and soups | 2024-11-07 09:12:16 |
+----+--------------+-------+---------------------------------------------------------------+---------------------+

总结

在本实验中,我们学习了 MySQL 中的基本数据操作:

  1. 使用 INSERT 语句添加单行和多行数据
  2. 使用 SELECT 查询检索和格式化数据
  3. 使用 UPDATE 语句修改现有数据
  4. 使用 DELETE 语句从表中删除数据

这些操作构成了数据库操作的基础,是任何从事数据库工作的人员必备的技能。