sql 刪除語句
1、delete 語句用于刪除表中的行。
delete語句執行刪除的過程是每次從表中刪除一行,并且同時將該行的刪除操作作為事務記錄在日志中保存 語法:DELETE FROM 表名稱 WHERE 列名稱 = 值, 如:刪除student表中姓名為張三豐的學生信息-delete from studentwhere name='張三豐'; 2、drop (刪除表):刪除內容和定義,釋放空間。簡單來說就是把整個表去掉.以后要新增數據是不可能的,除非新增一個表。
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger)索引(index);依賴于該表的存儲過程/函數將被保留,但其狀態會變為:invalid。 3、truncate (清空表中的數據):刪除內容、釋放空間但不刪除定義(保留表的數據結構)。
與drop不同的是,只是清空表數據而已。 注意:truncate 不能刪除行數據,要刪就要把表清空。
擴展資料: 數據庫操作中,經常要用到刪除表和刪除表數據,在實際應用中,三者的區別是明確的。 當你不再需要該表時, 用 drop; 當你仍要保留該表,但要刪除所有記錄時, 用 truncate; 當你要刪除部分記錄時(always with a WHERE clause), 用 delete。
truncate 與delete 比較: 1、truncate table 在功能上與不帶 WHERE 子句的 delete語句相同:二者均刪除表中的全部行。 2、truncate 比 delete速度快,且使用的系統和事務日志資源少。
3、truncate 操作后的表比Delete操作后的表要快得多。
如何一個SQL語句就刪除表中所有的數據
使用 TRUNCATE TABLE 刪除所有行
若要刪除表中的所有行,則 TRUNCATE TABLE 語句是一種快速、無日志記錄的方法。該語句總是比不帶條件的 DELETE 語句要快,因為 DELETE 語句要記錄對每行的刪除操作,而 TRUNCATE TABLE 語句只記錄整個數據頁的釋放。TRUNCATE TABLE 語句立即釋放由該表的數據和索引占用的所有空間。所有索引的分發頁也將釋放。
與 DELETE 語句相同,使用 TRUNCATE TABLE 清空的表的定義,同其索引和其它相關的對象一起仍保留在數據庫中。必須使用 DROP TABLE 語句才能除去表的定義。
TRUNCATE TABLE tablename
----------------------
TRUNCATE TABLE
刪除表中的所有行,而不記錄單個行刪除操作。語法TRUNCATE TABLE name參數name
是要截斷的表的名稱或要刪除其全部行的表的名稱。注釋TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統和事務日志資源少。
DELETE 語句每次刪除一行,并在事務日志中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放存儲表數據所用的數據頁來刪除數據,并且只在事務日志中記錄頁的釋放。
TRUNCATE TABLE 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 DELETE。如果要刪除表定義及其數據,請使用 DROP TABLE 語句。
對于由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應使用不帶 WHERE 子句的 DELETE 語句。由于 TRUNCATE TABLE 不記錄在日志中,所以它不能激活觸發器。
TRUNCATE TABLE 不能用于參與了索引視圖的表。示例下例刪除 authors 表中的所有數據。
怎樣用sql語言刪除一行數據
首先你要確定能夠唯一確定你那一行數據的字段或字段組合是哪些,
DELETE FROM 表名 WHERE 字段1 = '' and 字段2 = '' and 。字段1,。為能夠唯一確定某一行數據的字段組合,‘’中填寫你要刪除的字段具體值就可以了
如果有主鍵,則直接利用主鍵確定某一行就可以了。
DELETE FROM 表名 WHERE 主鍵 = ‘具體值’。
delete from ms_cf01 where brxm='張三' and id='7598';
其中: ms_cf01 為你所要刪除那條數據所屬的表。
brxm,id 為你所要刪除數據的條件。
上面的語句實現的效果是:刪除表ms_cf01中,符合brxm等于張三 且 id等于7598的行數據。
sql語句刪除某個字段的部分數據
這個完全可以的。
UPDATE的語句格式:
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
你這種用法:
update qx_repair_items set qri_rman=Replace(qri_rman,'/'+@spname,'') where qri_id=@mainid
的問題是:Replace是VB的函數,而不是SQL語句中的格式所允許的,應該這樣:
先用Select * From qx_repair_items where qri_id=@mainid
通過一個變量,例如:X 讀取 qri_rman 字段的值
然后 X = Replace(X,'/'+@spname,'')
最后
update qx_repair_items set qri_rman=X where qri_id=@mainid
我寫到這里,突然想到,是否可以這樣:
"update qx_repair_items set qri_rman=" & Replace(qri_rman,'/'+@spname,'') & " where qri_id=@mainid"
mysql中刪除表中所有數據的sql語句怎么寫
使用truncate語句就可以刪除表中所有數據。
truncate 語句的簡單說明:
1. 一般情況下,刪除數據大家都在使用delete語句;
2. 這個 truncate 命令很簡單,它的意思是:刪除表的所有記錄;
3. 相當于 delete 語句不寫 where 子句一樣;
4. 其語法結構為:TRUNCATE [TABLE] tbl_name;
5. 這里簡單的給出個示例,我想刪除 friends 表中所有的記錄,可以使用如下語句:truncate table friends;
6. 如果想要刪除表的所有數據,truncate語句要比 delete 語句快。因為 truncate 刪除了表,然后根據表結構重新建立它,而 delete 刪除的是記錄,并沒有嘗試去修改表;
7. 不過truncate命令快規快,卻不像delete命令那樣對事務處理是安全的。因此,如果我們想要執行truncate刪除的表正在進行事務處理,這個命令就會產生退出并產生錯誤信息。