天天看點

關于DDL、DML和DCL的差別與了解

     2017年5月31日,天氣陰。近期事情頗多,心情比較沉重。

    端午剛過,早上上課,很多同學還處在端午的疲憊狀态中沒有回過神來,當然我也不例外。端午奔波三天,加上畢設的事情,可以說身心俱疲。狀态不佳,整理了一下以前的筆記,發現很多知識點記憶不清了,甚至有些幾乎沒印象了。下面把自己對DDL、DML和DCL的差別與了解簡單整理,便于以後檢視。

1.DDL(data definition language)——資料定義語言,用于定義和管理 SQL 資料庫中的所有對象的語言

DDL主要的指令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結構,資料類型,表之間的連結和限制等初始化工作上,他們大多在建立表時使用。

(1)CREATE - to create objects in the database 建立        

(2)ALTER - alters the structure of the database 修改        

(3)DROP - delete objects from the database 删除

(4)TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed TRUNCATE TABLE [Table Name]。

(5)COMMENT - add comments to the data dictionary 注釋

(6)GRANT - gives user's access privileges to database 授權         

(7)REVOKE - withdraw access privileges given with the GRANT command 收回已經授予的權限

2.DML(data manipulation language)——資料操作語言,SQL中處理資料等操作統稱為資料操縱語言。

它們是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條指令是用來對資料庫裡的資料進行操作的語言。

(1)SELECT - retrieve data from the a database 查詢

(2)INSERT - insert data into a table 添加

(3)UPDATE - updates existing data within a table 更新

(4)DELETE - deletes all records from a table, the space for the records remain 删除

(5)CALL - call a PL/SQL or Java subprogram  

(6)EXPLAIN PLAN - explain access path to data

(7)LOCK TABLE - control concurrency 鎖,用于控制并發

3.DCL(Data Control Language)——資料控制語言,用來授予或回收通路資料庫的某種特權,并控制資料庫操縱事務發生的時間及效果,對資料庫實行監視等。

資料庫控制功能,用來設定或更改資料庫使用者或角色權限的語句,包括grant,deny,revoke等語句。在預設狀态下,隻有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權力執行DCL 詳細解釋。

(1)COMMIT - save work done 送出

(2)SAVEPOINT - identify a point in a transaction to which you can later roll back 儲存點

(3)ROLLBACK - restore database to original since the last COMMIT 復原

(4)SET TRANSACTION - Change transaction options like what rollback segment to use 設定目前事務的特性,它對後面的事務沒有影響