关于SQL Delete的这篇文章是关于SQL Server中关键语句,函数和操作的SQL必备系列的一部分。
要从表中删除行,请使用delete关键字通过数据操作语言(即DML语句)完成。到目前为止,SQL删除操作是所有DML命令中最简单的操作。在执行delete命令时,我们不必担心从表中获取任何形式的数据,我们不必担心使用从表中获取的任何数据。我们只是简单地告诉数据库删除一个特定的记录,它要么是,要么不是。就这么简单。
首先,让我们快速回顾一下SQL删除语句的样子。我们需要告诉数据库和表它应该删除数据的位置。添加条件子句以设置数据删除范围是个好主意。否则,它将删除表中的所有内容。
让我们看看我们的表并删除一些记录。
如何删除没有where子句的行
以下示例从AdventureWorks2014数据库中的表中删除Person.Person中的所有行。使用WHERE子句对SQL删除语句没有强制实施限制。
使用Adventureworks2014;
走
DELETE FROM [人] [人]。
如何删除Where子句的行
以下示例从AdventureWorks2014数据库中的[Person]。[Person]表中删除行,其中businessEntityID列中的值大于30,000
使用Adventureworks2014;
走
从 [人]中删除。[人]
WHERE businessEntityID> 30000 ;
注意:可能发生的一个不幸的错误是意外地运行没有Where子句的SQL删除并且无意中删除了所有数据。为防止这种情况发生,请考虑使用ApexSQL Complete中的执行保护功能,在执行之前警告这些可能具有破坏性的操作。了解更多:执行警报
如何使用Top Where子句删除行
以下示例从AdventureWorks2014数据库中的Person.Person表中删除50个随机行。BusinessEntityID中的值必须介于30,000和40,000之间。
使用Adventureworks2014;
走
从 [人]中删除顶部(50)。[人]
WHERE BusinessEntityID 介于 30000 和 40000 之间
注意:TOP(n)子句与SQL Delete语句和任何DML语句(即Select,Insert,Delete和Update)一起使用时,操作是在Top子句中指定的行数的随机选择上执行的。
如何删除重复行
在现实世界中,我们倾向于从不同来源收集数据; 拥有重复记录并不罕见。解决重复问题的一种方法是首先确定重复发生的位置。并对这些列运行选择查询。
EATE