DML、DDL、DCL delete與truncate
阿新 • • 發佈:2019-02-03
DML
資料操縱語言(data manipulation language)
SELECT、UPDATE、INSERT、DELETE
SELECT 列名稱 FROM 表名稱
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
DELETE FROM 表名稱 WHERE 列名稱 = 值
DDL
資料定義語言(data definition language)
CREATE、ALTER、DROP、TRANCATE
CREATE TABLE 表名稱
(
列名稱1 資料型別,
列名稱2 資料型別,
列名稱3 資料型別,
....
)
ALTER TABLE table_name
ALTER COLUMN column_name datatype
DROP TABLE 表名稱
DROP DATABASE 資料庫名稱
DCL
資料控制語言(data control language)
更改資料庫使用者或角色許可權的語句,grant,deny,revoke
Truncate、Drop、Delete區別
- truncate和delete刪除表中的資料,保留表結構,drop會刪除表的全部資料,包括表結構,觸發器,索引等
- delete是DML語言,有事務提交,能回滾,truncate和drop是DDL語言,不能回滾
- 效率 drop > truncate > delete
- 不需要表刪除整張表(drop),需要表結構刪除表裡面的所有資料(truncate),刪除表裡面的部分資料(delete)
- 如果一個表有自增長欄位,使用delete之後再insert會在原來未刪除之前的基礎上累加,使用truncate會從頭開始累加