Sql简介 专题
专题目录
您的位置:database > Sql简介专题 > SQL Delete语句
SQL Delete语句
作者:--    发布时间:2019-11-20

在本教程中,您将学习如何使用sql delete语句删除表中的一行或多行。

1. sql delete语句简介

要从表中删除一行或多行,请使用delete语句。 delete语句的一般语法如下:

delete
from
    table_name
where
    condition;
  • 首先,提供要删除行的表名称(table_name)。
  • 其次,在where子句中指定条件以标识需要删除的行记录。 如果省略where子句,则将删除表中的所有行记录。 因此,应始终谨慎使用delete语句。

一般来说,delete语句不会将结果集。 但是,它只返回已删除的行数。

2. sql delete语句示例

我们将使用employeesdependents表来演示delete语句。

2. sql删除表中的一行

使用以下delete语句从dependents表中删除id为:16的行记录。

delete from dependents 
where
    dependent_id = 16;

由于where子句包含主键表达式,因此delete语句只删除一行。可以使用以下语句验证是否已删除dependents中id为:16的行记录:

select 
    count(*)
from
    dependents
where
    dependent_id = 16;

3. sql delete多行示例

要删除表中的多个行记录,请使用where子句中的条件来选择要删除的行记录。 例如,以下语句使用in运算符来删除dependents表中id100,101102的信息。

delete from dependents 
where
    employee_id in (100 , 101, 102);

4. sql delete来自相关表的行

一名员工可能有零个或多个家属,而一个受抚养人只属于一名员工。 dependents表中的employee_id列链接到employees表中的employee_id列。

员工与家属表之间的关系是一对多的。

从逻辑上讲,如果不引用员工,就不能存在依赖关系。 换句话说,当删除员工信息时,他/她的家属也必须要删除。

例如,要删除员工id为199和所有员工的依赖项,需要执行两个delete语句,如下所示:

delete
from
    employees
where
    employee_id = 199;

delete
from
    dependents
where
    employee_id = 199;

大多数数据库系统都支持外键约束,因此当删除表中的一行时,外键表中的行也会自动删除。

因此,执行以下delete语句时:

delete
from
    employees
where
    employee_id = 199;

在执行上面语句后,employee_id199的所有行也会自动删除。

要更有效地从表中删除所有行,可以使用truncate table语句,而不是使用不带where子句的delete语句。

通过上面的示例和学习,您应该了解sql delete语句用法,以及如何应用它来删除表中的一行或多行。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册