SQL DELETE表格

SQL DELETE表格

SQL DELETE 是数据操作语言(DML)的一种命令,因此它不会删除或修改表结构,仅删除表中包含的数据。因此,在删除数据后,表中定义的约束、索引或触发器仍然存在。

SQL DELETE TABLE 语句

SQL DELETE TABLE 语句用于从数据库中的表中删除现有记录。如果您只想删除表中特定数量的行,可以使用DELETE语句的WHERE子句。如果省略WHERE子句,则将删除表中的所有行。SQL DELETE语句一次只能操作一个表。

语法

使用SQL DELETE命令的基本语法如下所示:

DELETE FROM table_name;

SQL DELETE TABLE with WHERE Clause

我们可以使用SQL DELETE语句根据WHERE子句中的单个条件从表中删除特定的行。

语法

以下是根据单个条件删除特定行的语法 –

DELETE FROM table_name
WHERE condition;

示例

假设我们已经创建了一个名为CUSTOMERS的表,其中包含客户的个人详细信息,包括姓名、年龄、地址和工资等。

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

现在使用INSERT语句将值插入到这个表中,方法如下:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 );

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 );

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'kaushik', 23, 'Kota', 2000.00 );

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 );

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'Hardik', 27, 'Bhopal', 8500.00 );

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Komal', 22, 'MP', 4500.00 );

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (7, 'Muffy', 24, 'Indore', 10000.00 );

如果您使用以下命令检索上述创建的表的内容: SELECT * FROM CUSTOMERS 您将获得以下输出 –

ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Pune 4500.00
7 Muffy 24 Indore 10000.00

现在,让我们尝试删除所有名为’Hardik’的客户,如下面的查询所示 –

DELETE FROM CUSTOMERS WHERE NAME='Hardik';

结果

我们得到以下结果。我们可以观察到已删除了1行。

(1 row affected)

验证

现在,如果您使用 SELECT * FROM CUSTOMERS 命令检索CUSTOMERS表的内容,您将获得以下输出−

ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
6 Komal 22 Pune 4500.00
7 Muffy 24 Indore 10000.00

根据多个条件删除特定行

我们也可以使用SQL DELETE TABLE语句来根据多个条件从表中删除特定行,使用WHERE子句。当我们想要从表中删除满足特定条件的一部分行时,这是非常有用的。

在使用多个条件时,我们可以使用比较运算符如AND,OR和NOT来细化我们的条件。这样,只有满足条件的行才会被删除。

语法

以下是根据多个条件删除特定行的基本语法,可以使用AND或OR操作符连接条件−

DELETE FROM table_name
WHERE condition1 AND condition2 OR ... conditionN;

在这里,table_name是我们想要删除行的表的名称,condition1到conditionN是必须满足的条件。可以使用AND或OR运算符将条件连接起来。

示例

在以下查询中,我们试图删除所有名字为“Komal”或地址为“Mumbai”的客户 –

DELETE FROM CUSTOMERS WHERE NAME='Komal' OR ADDRESS='Mumbai';

输出

我们得到了以下结果。我们可以观察到已删除了2行。

(2 row affected)

验证

现在,如果使用 SELECT * FROM CUSTOMERS 命令检索CUSTOMERS表的内容,你将得到以下输出:

ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
6 Komal 22 Pune 4500.00
7 Muffy 24 Indore 10000.00

删除表中的所有记录

我们可以使用没有WHERE子句的SQL DELETE TABLE语句来删除SQL中表中的所有记录。该语句将从指定的表中删除所有行,从而有效地将表重置为其原始状态(仅包含结构和约束)。

但是,需要注意的是此操作无法撤销,并且表中的所有数据将被永久删除。

示例

在这里,我们正在尝试从“CUSTOMERS”表中删除所有记录 –

DELETE FROM CUSTOMERS;

输出

执行上述查询后产生的结果如下

(5 rows affected)

验证

现在,如果你使用 SELECT * FROM CUSTOMERS 命令检索CUSTOMERS表的内容,你将得到以下输出-

ID NAME AGE ADDRESS SALARY

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程