DBMS - SQL 中的 CRUD 操作
要使用关系型数据库,必须了解如何使用 SQL 创建数据库,然后学习如何插入、读取、更新和删除数据,因为这些是事务的基本操作。CRUD 代表 Create(创建)、Read(读取)、Update(更新) 和 Delete(删除),是管理数据库中数据的四种基本操作。如果数据库就像一个图书馆,那么 CRUD 操作就是我们添加新书、搜索特定书名、编辑现有书籍详情或从书架上移除书籍的方法。
阅读本章以全面理解所有四种 CRUD 操作。我们将使用一个示例表和一组示例来详细解释 CRUD 操作。
示例表和数据
要理解 CRUD 操作,我们必须通过示例来学习。本章将始终使用以下示例表 −
以下是 Customers 表 −
| customer_id | first_name | last_name | phone | |
|---|---|---|---|---|
| 1 | Amrita | Joshi | amrita.j@example.com | 123-456-7890 |
| 2 | Bimal | Saha | bimal.saha@example.com | 234-567-8901 |
| 3 | Chandan | Tudu | chandan.tudu@example.com | 345-678-9012 |
以下是 Products 表 −
| product_id | product_name | category | price | stock_quantity |
|---|---|---|---|---|
| 101 | Laptop | Electronics | 1000.00 | 10 |
| 102 | Smartphone | Electronics | 800.00 | 20 |
| 103 | Office Chair | Furniture | 150.00 | 5 |
有了这些表,我们继续探索 CRUD 操作吧!
创建操作(向表中插入数据)
创建数据涉及使用 INSERT 语句向表中添加新行。这就像将新文件放入柜子或向手机联系人中添加新联系人。
示例:添加新客户
使用以下 SQL 命令向现有的 Customers 表插入一个新客户行 −
INSERT INTO Customers (customer_id, first_name, last_name, email, phone) VALUES (4, 'Deb', 'Mallick', 'deb.mallick@example.com', '456-789-0123');
更新后的 Customers 表 将如下所示 −
| customer_id | first_name | last_name | phone | |
|---|---|---|---|---|
| 1 | Amrita | Joshi | amrita.j@example.com | 123-456-7890 |
| 2 | Bimal | Saha | bimal.saha@example.com | 234-567-8901 |
| 3 | Chandan | Tudu | chandan.tudu@example.com | 345-678-9012 |
| 4 | Deb | Mallick | deb.mallick@example.com | 456-789-0123 |
示例:添加新产品
使用以下命令向 Products 表插入一个新产品行 −
INSERT INTO Products (product_id, product_name, category, price, stock_quantity) VALUES (104, 'Desk', 'Furniture', 250.00, 8);
更新后的 Products 表 将如下所示 −
| product_id | product_name | category | price | stock_quantity |
|---|---|---|---|---|
| 101 | Laptop | Electronics | 1000.00 | 10 |
| 102 | Smartphone | Electronics | 800.00 | 20 |
| 103 | Office Chair | Furniture | 150.00 | 5 |
| 104 | Desk | Furniture | 250.00 | 8 |
读取操作(从表中获取数据)
在创建数据后,我们必须从数据库中读取数据。为此,CRUD 中的 'R' 就派上用场了。这通过使用 SELECT 语句来实现。它就像打开一本书并在其中搜索我们需要的信息。
示例:获取所有客户
从 Customers 表中获取所有数据 −
SELECT * FROM Customers;
它将得到以下输出 −
| customer_id | first_name | last_name | phone | |
|---|---|---|---|---|
| 1 | Amrita | Joshi | amrita.j@example.com | 123-456-7890 |
| 2 | Bimal | Saha | bimal.saha@example.com | 234-567-8901 |
| 3 | Chandan | Tudu | chandan.tudu@example.com | 345-678-9012 |
| 4 | Deb | Mallick | deb.mallick@example.com | 456-789-0123 |
由于我们在 Customers 表中插入了一条新记录 (Deb),它现在出现在当前表中。
示例:获取库存低于 10 的产品
现在,让我们使用 WHERE 子句来过滤数据并获取特定内容 −
SELECT product_name, stock_quantity FROM Products WHERE stock_quantity < 10;
此查询将获取库存量小于 10 的所有产品 −
| product_name | stock_quantity |
|---|---|
| Office Chair | 5 |
更新操作(修改现有数据)
更新数据意味着更改现有行中的值,为此我们使用 UPDATE 命令。可以将其想象成编辑手机上的联系人电话号码。
示例:更新客户的电子邮件
您可以使用以下命令来更新现有记录中的客户电子邮件 −
UPDATE Customers SET email = 'amrita.newemail@example.com' WHERE customer_id = 1;
执行上述查询后,更新后的 Customers 表 将如下所示 −
| customer_id | first_name | last_name | phone | |
|---|---|---|---|---|
| 1 | Amrita | Joshi | amrita.newemail@example.com | 123-456-7890 |
| 2 | Bimal | Saha | bimal.saha@example.com | 234-567-8901 |
| 3 | Chandan | Tudu | chandan.tudu@example.com | 345-678-9012 |
| 4 | Deb | Mallick | deb.mallick@example.com | 456-789-0123 |
示例:为产品补货
使用以下查询在为产品补货后更新 Products 表 −
UPDATE Products SET stock_quantity = stock_quantity + 5 WHERE product_id = 103;
现在,更新后的 Products 表 将反映更新的库存量 −
| product_id | product_name | category | price | stock_quantity |
|---|---|---|---|---|
| 101 | Laptop | Electronics | 1000.00 | 10 |
| 102 | Smartphone | Electronics | 800.00 | 20 |
| 103 | Office Chair | Furniture | 150.00 | 10 |
| 104 | Desk | Furniture | 250.00 | 8 |
“Office Chair”的库存现已从 5 更新为 10。
删除操作(从表中移除数据)
删除数据意味着从表中移除现有行,这通过使用 DELETE 语句来实现。可以将其想象成从手机上删除一个联系人。我们删除了记录,但没有删除整个表。
示例:删除一个客户
以下查询展示了如何使用 DELETE 命令从 Customers 表中移除客户的记录 −
DELETE FROM Customers WHERE customer_id = 4;
使用上述查询后,更新后的 Customers 表 将如下所示 −
| customer_id | first_name | last_name | phone | |
|---|---|---|---|---|
| 1 | Amrita | Joshi | amrita.newemail@example.com | 123-456-7890 |
| 2 | Bimal | Saha | bimal.saha@example.com | 234-567-8901 |
| 3 | Chandan | Tudu | chandan.tudu@example.com | 345-678-9012 |
注意,Deb 的记录已被移除。
示例:从库存中移除一个产品
使用以下查询从库存中移除一个产品 −
DELETE FROM Products WHERE product_id = 104;
更新后的 Products 表 现在将如下所示 −
| product_id | product_name | category | price | stock_quantity |
|---|---|---|---|---|
| 101 | Laptop | Electronics | 1000.00 | 10 |
| 102 | Smartphone | Electronics | 800.00 | 20 |
| 103 | Office Chair | Furniture | 150.00 | 10 |
“Desk”产品不再在库存中。
为什么 CRUD 操作很重要
CRUD 操作是任何数据库操作员最基本操作;它们允许我们:
- 添加新信息(例如客户或产品)
- 在需要时检索特定细节
- 保持数据最新
- 移除过时或不正确的数据
没有 CRUD 操作,我们就无法更新数据库,在这种情况下数据将仅为历史数据,在实时应用中毫无用处。
结论
在本章中,我们详细解释了如何在 SQL 中执行 CRUD 操作。我们使用示例演示了如何应用 INSERT 命令在数据库中创建新记录,以及 SELECT 命令读取和检索数据。我们还解释了如何使用 UPDATE 命令修改现有记录,以及 DELETE 命令从现有表中移除数据。
总之,CRUD 操作赋予我们高效处理复杂数据的能力,并使我们的数据库在现实世界场景中保持相关性。