如果我們要刪除資料庫中表的資料,我們就可以使用delete語句。
delete語句的基本語法是:
delete from 《表名》 where ...;
例如,我們想刪除employees表中id=100的記錄,就需要這麼寫:
delete
from
employees
where
employee_id =
100;
-- 查詢結果:
在這裡我們發現delete語句的where條件也是用來篩選需要刪除的行,因此和update類似,delete語句也可以一次刪除多條記錄:
delete
from
employees
where
employee_id >=
101and
employee_id <=
105;
-- 查詢結果:
如果where條件沒有匹配到任何記錄,delete語句不會報錯,也不會有任何記錄被刪除。例如:delete
from
employees
where
employee_id =
999;
-- 刪除employee_id=999的記錄
--查詢結果:
和update類似,不帶where條件的delete語句會刪除整個表的資料:
delete
from
employees;
這時,整個表的所有記錄都會被刪除。所以,在執行delete語句時也要非常小心,最好先用select語句來測試where條件是否篩選出了期望的記錄集,然後再用delete刪除。
在使用oracle這類關聯式資料庫時,delete語句會返回刪除的行數以及where條件匹配的行數。
例如,分別執行刪除employee_id=100和employee_id=999的記錄:
sql> delete from employees where employee_id=100;
query ok, 1 row affected (0.01 sec)
sql> delete from employees where employee_id=999;
query ok, 0 rows affected (0.01 sec)
另外如果要進行刪除的這條資料在其他表中使用,並且建立了約束的話,是不能直接進行刪除的。
SQL刪除語句用法
一 drop 語法 drop table tablename 作用 刪除內容和定義,釋放空間。簡單來說就是把整個表去掉.以後要新增資料是不可能的,除非新增乙個表 二 truncate 語法 truncate table tablename 作用 刪除內容 釋放空間但不刪除定義。與drop不同的是,他...
SQL語句級聯刪除
如果想刪除主表的時候同時刪除字表資料,可以在建立外來鍵時設定on delete cascade 但是需要注意的是,這樣是比較危險的,盡量在業務中用程式控制刪除。create table a and b 主表 create table department dept id number 4 not n...
SQL批量刪除語句,SQL刪除所有資料
sp msforeachtable delete from execute sp msforeachtable truncate table 定義游標 declare tables cursor cursor for select name from sysobjects where type u ...