sqldeletedrop
❶ 資料庫中drop和delete的區別
1. truncate和 delete只刪除數據不刪除表的結構(定義)
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index); 依賴於該表的
存儲過程/函數將保留,但是變為invalid狀態.
2.delete語句是dml,這個操作會放到rollback segement中,事務提交之後才生效;如果有相應的trigger,
執行的時候將被觸發.
truncate,drop是ddl, 操作立即生效,原數據不放到rollback segment中,不能回滾. 操作不觸發
trigger.
3.delete語句不影響表所佔用的extent, 高水線(high watermark)保持原位置不動
顯然drop語句將表所佔用的空間全部釋放
truncate 語句預設情況下見空間釋放到 minextents個 extent,除非使用reuse storage; truncate
會將高水線復位(回到最開始).
4.速度,一般來說: drop> truncate > delete
5.安全性:小心使用drop 和truncate,尤其沒有備份的時候.否則哭都來不及.
使用上,想刪除部分數據行用delete,注意帶上where子句. 回滾段要足夠大.
想刪除表,當然用drop
想保留表而將所有數據刪除. 如果和事務無關,用truncate即可. 如果和事務有關,或者想觸發trigger,還
是用delete.
如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據/
總結:
DROP用於刪除表,資料庫等.
TRUNCATE和DELETE都是刪除表數據.
但是TRUNCATE相當於初始化,比如如果有自增長ID,用TRUNCATE刪除後,自增長Id會從1開始,(truncat會釋放表所佔的空間)
而delete則不會.
❷ 刪除一個表的sql 語句怎麼寫啊
使用drop語句,droptable (需要刪除表的名字)。
drop是刪除整個表,delete是刪除表的內容。
drop語句的作用:刪除內容和定義,釋放空間,簡單來說就是把整個表去掉。以後要新增數據是不可能的,除非新增一個表。
刪除表時需要注意的事項:
1、如果刪除應用表別名,則delete 後面一定要接對應的別名,然後再接表名,不然報錯。
2、delete刪除sql後面不可接通配符*,即delete * from ,這樣會報錯。
3、delete刪除sql默認的返回值為int數據類型,當刪除一條數據時,返回int數據1,當刪除num條數據時,則返回int類型num。
(2)sqldeletedrop擴展閱讀:
SQL即結構化查詢語言(Structured Query Language),是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
SQL語句無論是種類還是數量都是繁多的,很多語句也是經常要用到的,SQL查詢語句就是一個典型的例子,無論是高級查詢還是低級查詢,SQL查詢語句的需求是最頻繁的。
常用語句:
創建資料庫 CREATE DATABASE database-name
刪除資料庫 drop database dbname
創建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
刪除新表 drop table tabname
參考資料:網路—sql語句大全
❸ SQL 語句里delete 和drop有什麼區別
一、刪除內容不同
1、delete:只刪除數據不刪除表的結構。
2、drop:句將刪除表的結構被依賴的約束(constrain)、觸發器(trigger)、索引(index)。
二、語句效果不同
1、delete:是資料庫操作語言(dml),這個操作會放到 rollback segement 中,事務提交之後才生效;如果有相應的 trigger,執行的時候將被觸發。
2、drop:是資料庫定義語言(ddl),操作立即生效,原數據不放到 rollback segment 中,不能回滾,操作不觸發 trigger。
三、刪除空間影響不同
1、delete:不影響表所佔用的 extent,高水線(high watermark)保持原位置不動。
2、drop:語句將表所佔用的空間全部釋放。