1、一般情況下刪除表數據的sql語句:
delete from products where rowid>2
2、如果想給表起個別名再刪除呢,就得像下面這樣寫了
delete products from products as p where p.rowid>2
也可這樣
delete p from products as p where p.rowid>6
3、想一下,什么情況下刪除一個表數據的時候要用別名呢?
之所以要用別名,是因為delete的where條件中需要用到子查詢寫一些條件,舉例:
利用自連接刪除表中重復的數據:
CREATE TABLE [dbo].[products1] ( [rowid] [int] primary key IDENTITY(1,1) NOT NULL, [name] [nchar](10) NULL, [price] [int] NULL ) INSERT INTO Products VALUES('蘋果', 50); INSERT INTO Products VALUES('橘子', 100); INSERT INTO Products VALUES('橘子', 100); INSERT INTO Products VALUES('橘子', 100); INSERT INTO Products VALUES('香蕉', 80); INSERT INTO Products VALUES('香蕉', 80);
delete products from products as p1 where p1.rowid< ( select MAX(p2.rowid) from products p2 where p1.name=p2.name and p1.price=p2.price ) --結果: -- rowid name price -- 1 蘋果 50 -- 4 橘子 100 -- 6 香蕉 80
4、其他數據庫的情況
ORACLE 可以直接起別名
delete from products p where p.rowid>2
SQLSERVER/MYSQL 可以這樣起別名
delete products from products as p where p.rowid>2
delete p from products as p where p.rowid>6
