對于概念DDL、DML、DCL、TCL詳細解釋
發表時間:2023-07-20 來源:明輝站整理相關軟件相關文章人氣:9
[摘要]作為經驗豐富的開發人員,對于DDL、DML、DCL、TCL這些縮寫詞(名詞)或許不會陌生,但是作為億i個程序開發的新手可能就會有很多迷惑,接下來就給大家詳細解釋下,希望對讀者有一定的幫助。1、數據定...
作為經驗豐富的開發人員,對于DDL、DML、DCL、TCL這些縮寫詞(名詞)或許不會陌生,但是作為億i個程序開發的新手可能就會有很多迷惑,接下來就給大家詳細解釋下,希望對讀者有一定的幫助。
1、數據定義語言DDL
DDL((Data Definition Language):主要的命令有CREATE、ALTER、DROP等,用于定義/修改/刪除數據對象(如表)的數據結構、數據類型、表之間的鏈接和約束等初始化工作,大多在建立表時使用,或者說,DDL語言操作的對象是數據庫中的對象而非對象所包含的數據。
DDL包含以下語句:
1、CREATE : 在數據庫中創建新的數據對象
2、ALTER : 修改數據庫中對象的數據結構
3、DROP : 刪除數據庫中的對象
4、DISABLE/ENABLE TRIGGER : 修改觸發器的狀態
5、UPDATE STATISTIC : 更新表/視圖統計信息
6、TRUNCATE TABLE : 清空表中數據
7、COMMENT : 給數據對象添加注釋
8、RENAME : 更改數據對象名稱
注意:
當執行DDL語句時,在每一條語句前后,數據庫(oracle/Mysql)都將提交當前的事務。如果用戶使用insert命令將記錄插入到數據庫后,執行了一條DDL語句(如create table),此時來自insert命令的數據將被提交到數據庫。當DDL語句執行完成時,DDL語句會被自動提交,不能回滾。
2、數據操作語言DML
DML(Data Manipulation Language):用于添加/刪除/修改/查詢/合并數據庫中數據,比如SELECT、UPDATE、INSERT、DELETE、MERGE操作,是用來對數據庫里的表數據進行操作的語言。
DML包含以下語句:
1、INSERT :將數據插入到表或視圖
2、DELETE :從表或視圖刪除數據
3、SELECT :從表或視圖中獲取數據
4、UPDATE :更新表或視圖中的數據
5、MERGE : 對數據進行合并操作(插入/更新/刪除)
注意:
當執行DML命令如果沒有提交,將不會被其他會話看到。除非在DML命令之后執行了DDL命令或DCL命令,或用戶退出會話,或終止實例,此時系統會自動發出commit命令,使未提交的DML命令提交。
3、數據控制語言DCL
DCL(Data Control Language):是用來設置或更改數據庫用戶或角色權限的語句,包括(grant,deny,revoke等)。
DCL包含以下語句:
1、GRANT : 賦予用戶某種控制權限
2、REVOKE :取消用戶某種控制權限
數據控制語言只要是對用戶進行創建、刪除、密碼修改以及給用戶賦予權限和刪除權限扽一系列操作。
4、事務控制語言(TCL)
TCL(Transaction Control Language):用來對事務進行管理。
TCL包含以下語句:
1、COMMIT : 保存已完成事務動作結果
2、SAVEPOINT : 保存事務相關數據和狀態用以可能的回滾操作
3、ROLLBACK : 恢復事務相關數據至上一次COMMIT操作之后
4、SET TRANSACTION : 設置事務選項
由于DML語句對表數據進行操作的時候都會加上行級鎖,確認完成后,必須加上事物處理結束的命令COMMIT才能正式生效,否則改變不一定寫入數據庫里。如果想撤回這些操作, 可以用命令 ROLLBACK 復原。
在運行INSERT,DELETE和UPDATE語句前最好估算一下可能操作的記錄范圍,應該把它限定在較小范圍內,例如一萬條記錄,否則ORACLE處理這個事物用到很大的回退段。程序響應慢甚至失去響應。如果記錄數上十萬以上這些操作。可以把這些SQL語句分段分次完成。其間加上COMMIT確認事物處理。
根據語句操作目標的不同,還是很好區分這四種類型:DDL-數據對象; DML-數據; DCL-權限; TCL-事務。
唯一需要注意的是TRUNCATE,盡管從功能上看相當于DELETE表中所有數據,但由于它所操作的對象是table這個級別而非row(由于某種原因不能立即刪除表數據時,TRUNCATE會鎖定整張表,而DELETE鎖定的則是row),所以歸在DDL中。
以上就是關于概念DDL、DML、DCL、TCL詳細解釋 的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。