介绍
在本实验中,我们将探索 MySQL 中的基本数据操作。你将学习如何在 MySQL 表中插入、查询、更新和删除数据。这些操作通常被称为 CRUD(创建、读取、更新、删除),是数据库交互的核心。通过动手练习,你将获得这些基本数据库操作的实践经验,并了解如何有效地管理 MySQL 表中的数据。
在本实验中,我们将探索 MySQL 中的基本数据操作。你将学习如何在 MySQL 表中插入、查询、更新和删除数据。这些操作通常被称为 CRUD(创建、读取、更新、删除),是数据库交互的核心。通过动手练习,你将获得这些基本数据库操作的实践经验,并了解如何有效地管理 MySQL 表中的数据。
在这一步骤中,我们将学习如何使用 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 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_nameprice 重命名为 retail_pricesale_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 中的基本数据操作:
INSERT 语句添加单行和多行数据SELECT 查询检索和格式化数据UPDATE 语句修改现有数据DELETE 语句从表中删除数据这些操作构成了数据库操作的基础,是任何从事数据库工作的人员必备的技能。