DELETE 语句用于删除表中的行,这种删除理论上来是不是可恢复的,但是经过一些高级的处理还是可以恢复数据的,不过比较麻烦了。
语法
DELETE FROM 表名称 WHERE 列名称 = 值
国外网站参考
代码如下
The SQL DELETE command has the following generic SQL syntax:
DELETE FROM Table1
WHERE Some_Column = Some_Value
如果你跳过的SQL WHERE子句执行DELETE语句表达时,然后在指定的表的所有数据将被删除。下面的SQL语句会从客户表中删除所有的数据和我们?l升完全空表:
代码如下
DELETE FROM Table1
如果您指定一个WHERE子句在您的SQL DELETE语句delete语句,只符合标准将被删除表中的行:
代码如下
DELETE FROM Customers
WHERE LastName = 'Smith'
删除更多
您也可以执行更复杂的删除。
您可能希望基于另一个表中的值的一个表中删除记录。既然你不能FROM子句中列出多个表中,当您执行删除,您可以使用EXISTS子句
For example:
代码如下
DELETE FROM suppliers
WHERE EXISTS
( customers.name
from customers
where customers.customer_id = suppliers.supplier_id
and customers.customer_name = 'IBM' );
这将在供应商表delete语句,其中有一个客户表的名称是IBM,CUSTOMER_ID是相同的supplier_id记录中删除所有记录。
了解EXISTS的条件。
如果你想确定将被删除的行的数目,您可以运行下面的SQL语句,在执行删除之前。
代码如下
SELECT count(*) FROM suppliers
WHERE EXISTS
( select customers.name
from customers
where customers.customer_id = suppliers.supplier_id
and customers.customer_name = 'IBM' );