SQL 中的 CRUD 操作

2025年3月17日 | 阅读 7 分钟

正如我们所知,CRUD 操作是任何计算机编程语言或技术的基础。因此,在深入研究任何编程语言或技术之前,必须熟练掌握其 CRUD 操作。同样的规则也适用于数据库。

让我们通过示例开始理解 SQL 中的 CRUD 操作。我们将在支持示例中使用 MySQL 数据库编写所有查询。

CRUD Operations in SQL

1. 创建 (Create)

在 CRUD 操作中,“C”是 **create** 的首字母缩写,意思是 *将数据添加或插入到 SQL 表中。* 因此,首先我们将使用 CREATE 命令创建一个表,然后我们将使用 INSERT INTO 命令在创建的表中插入行。

表创建语法

其中,

  • Table_Name 是我们想要分配给表的名称。
  • Column_Name 是我们想要存储表数据的属性。
  • Datatype 分配给每个列。Datatype 决定了将存储在相应列中的数据类型。

表中数据插入语法

在 SQL 中创建表之前,我们需要创建一个数据库或选择一个现有的数据库。由于我们已经有一个数据库,我们将使用 USE 命令选择该数据库。


CRUD Operations in SQL

现在,我们将编写一个查询,在名为 **dbe** 的数据库中创建一个名为 **employee** 的表。


CRUD Operations in SQL

为了确保表是根据我们在表创建期间分配的列名、数据类型和大小创建的,我们将执行以下查询:

您将得到以下输出

字段类型Null默认额外
IDint(11)PRINULL
名字varchar(20)NULL
姓氏varchar(20)NULL
薪金int(11)NULL
Email_Idvarchar(40)NULL

上述结果验证了表已根据要求成功创建。

我们将执行以下查询,在 employee 表中插入多条记录:


CRUD Operations in SQL

2. 读取 (Read)

在 CRUD 操作中,“R”是 **read** 的首字母缩写,意思是 **从 SQL 表中检索或获取数据。** 因此,我们将使用 SELECT 命令从 SQL 表中获取插入的记录。我们可以使用 SELECT 查询中的星号 (*) 检索表中的所有记录。还可以选择使用 SELECT 查询中的 WHERE 子句,仅检索满足特定条件的记录。

获取所有记录的语法

根据条件获取记录的语法

示例 1

编写一个查询,获取 employee 表中存储的所有记录。

查询

这里,SELECT 查询中使用了星号。这意味着将检索每条记录的所有列值。

执行上述查询后,您将获得以下输出:

ID名字姓氏薪金Email_Id
1NeetaKorade59000[email protected]
2SushmaSingh62000[email protected]
3KavitaRathod27000[email protected]
4MrunaliniDeshmukh88000[email protected]
5SwatiPatel34000[email protected]
6LaxmiKadam44000[email protected]
7LalitaShah66000[email protected]
8SavitaKulkarni31000[email protected]
9ShravaniJaiswal38000[email protected]
10ShwetaWagh20000[email protected]

所有记录都已成功从 employee 表中检索。

示例 2

编写一个查询,仅从 employee 表中获取薪水高于 35000 的记录。

查询

这里,SELECT 查询中使用了星号。这意味着将检索每条记录的所有列值。我们已将 WHERE 子句应用于 Salary,这意味着记录将根据薪水进行过滤。

您将获得如下输出:

ID名字姓氏薪金Email_Id
1NeetaKorade59000[email protected]
2SushmaRathod62000[email protected]
4MrunaliniDeshmukh88000[email protected]
6LaxmiKadam44000[email protected]
7LalitaShah66000[email protected]
9ShravaniJaiswal38000[email protected]

employee 表中有六条记录的薪水高于 35000。

3. 更新 (Update)

在 CRUD 操作中,“U”是 **update** 的首字母缩写,意思是 **对 SQL 表中存在的记录进行更新。** 因此,我们将使用 UPDATE 命令来更改表中存在的数据。

语法

示例 1

编写一个查询,将员工 ID 为 6 的员工的姓氏更新为“Bose”。

查询


CRUD Operations in SQL

在这里的 SELECT 查询中,我们使用 SET 关键字将员工的姓氏更新为“Bose”。我们只想更新 ID 为 6 的员工的姓氏,因此我们使用 WHERE 子句指定了此条件。

为了确保员工 ID 为 6 的员工的姓氏已成功更新,我们将执行 SELECT 查询。

ID名字姓氏薪金Email_Id
1NeetaKorade59000[email protected]
2SushmaSingh62000[email protected]
3KavitaRathod27000[email protected]
4MrunaliniDeshmukh88000[email protected]
5SwatiPatel34000[email protected]
6LaxmiBose44000[email protected]
7LalitaShah66000[email protected]
8SavitaKulkarni31000[email protected]
9ShravaniJaiswal38000[email protected]
10ShwetaWagh20000[email protected]

上述结果验证了员工 ID 为 6 的员工的姓氏现已更改为“Bose”。

示例 2

编写一个查询,将员工 ID 为 10 的员工的薪水和电子邮件 ID 分别更新为“35000”和“[email protected]”。

查询


CRUD Operations in SQL

在这里的 UPDATE 查询中,我们使用 SET 关键字将员工的薪水更新为“35000”,电子邮件 ID 更新为“[email protected]”。我们只想更新 ID 为 10 的员工的薪水和电子邮件 ID,因此我们使用 WHERE 子句指定了此条件。

为了确保员工 ID 为 10 的员工的薪水和电子邮件 ID 已成功更新,我们将执行 SELECT 查询。


ID名字姓氏薪金Email_Id
1NeetaKorade59000[email protected]
2SushmaSingh62000[email protected]
3KavitaRathod27000[email protected]
4MrunaliniDeshmukh88000[email protected]
5SwatiPatel34000[email protected]
6LaxmiBose44000[email protected]
7LalitaShah66000[email protected]
8SavitaKulkarni31000[email protected]
9ShravaniJaiswal38000[email protected]
10ShwetaWagh35000[email protected]

上述结果验证了员工 ID 为 10 的员工的薪水和电子邮件 ID 现已分别更改为“35000”和“[email protected]”。

4. 删除 (Delete)

在 CRUD 操作中,“D”是 **delete** 的首字母缩写,意思是 **从 SQL 表中删除或移除记录。** 我们可以使用 DELETE 查询从 SQL 表中删除所有行。还可以选择使用 DELETE 查询中的 WHERE 子句,仅删除满足特定条件的特定记录。

删除所有记录的语法

根据条件删除记录的语法

示例 1

编写一个查询,从 employee 表中删除薪水高于 34000 的员工记录。

查询


CRUD Operations in SQL

这里我们对 employee 表应用了 DELETE 查询。我们只想删除薪水为 34000 的员工记录,因此我们使用 WHERE 子句指定了此条件。

我们将执行 SELECT 查询,以确保薪水为 34000 的员工记录已成功删除。


ID名字姓氏薪金Email_Id
1NeetaKorade59000[email protected]
2SushmaSingh62000[email protected]
3KavitaRathod27000[email protected]
4MrunaliniDeshmukh88000[email protected]
6LaxmiBose44000[email protected]
7LalitaShah66000[email protected]
8SavitaKulkarni31000[email protected]
9ShravaniJaiswal38000[email protected]
10ShwetaWagh35000[email protected]

上述结果验证了薪水为 34000 的员工不再存在于 employee 表中。

示例 2

编写一个查询,从 employee 表中删除所有记录。

首先,让我们看看目前可用的 employee 表。


CRUD Operations in SQL

为了从 employee 表中删除所有记录,我们将对 employee 表执行 DELETE 查询。


CRUD Operations in SQL

我们将执行 SELECT 查询,以确保所有记录都已成功从 employee 表中删除。


CRUD Operations in SQL

上述结果验证了 employee 表现在不包含任何记录。


下一主题SQL INDEX