1. 程式人生 > >DDL、DCL、DQL和DML的概念和區別

DDL、DCL、DQL和DML的概念和區別

SQL(Structure Query Language)語言是資料庫的核心語言。

SQL的發展是從1974年開始的,其發展過程如下: 1974年-----由Boyce和Chamberlin提出,當時稱SEQUEL。 1976年-----IBM公司的Sanjase研究所在研製RDBMS SYSTEM R 時改為SQL。 1979年-----ORACLE公司發表第一個基於SQL的商業化RDBMS產品。 1982年-----IBM公司出版第一個RDBMS語言SQL/DS。 1985年-----IBM公司出版第一個RDBMS語言DB2。 1986年-----美國國家標準化組織ANSI宣佈SQL作為資料庫工業標準。 SQL是一個標準的資料庫語言,是面向集合的描述性非過程化語言。 它功能強,效率高,簡單易學易維護(迄今為止,我還沒見過比它還好 學的語言)。然而SQL語言由於以上優點,同時也出現了這樣一個問題: 它是非過程性語言,即大多數語句都是獨立執行的,與上下文無關,而 絕大部分應用都是一個完整的過程,顯然用SQL完全實現這些功能是很困 難的。所以大多數資料庫公司為了解決此問題,作了如下兩方面的工作: (1)擴充SQL,在SQL中引入過程性結構;(2)把SQL嵌入到高階語言中, 以便一起完成一個完整的應用。

二. SQL語言的分類
SQL語言共分為四大類:資料查詢語言DQL,資料操縱語言DML,資料定義語言DDL,資料控制語言DCL。
1. 資料查詢語言DQL 資料查詢語言DQL基本結構是由SELECT子句,FROM子句,WHERE 子句組成的查詢塊: SELECT <欄位名錶> FROM <表或檢視名> WHERE <查詢條件>
2 .資料操縱語言DML 資料操縱語言DML主要有三種形式: 1) 插入:INSERT 2) 更新:UPDATE 3) 刪除:DELETE
3. 資料定義語言DDL 資料定義語言DDL用來建立資料庫中的各種物件-----表、檢視、 索引、同義詞、聚簇等如: CREATE TABLE/VIEW/INDEX/SYN/CLUSTER | | | | | 表 檢視 索引 同義詞 簇     關係物件:create alter drop

DDL操作是隱性提交的!不能rollback 
4. 資料控制語言DCL 資料控制語言DCL用來授予或回收訪問資料庫的某種特權,並控制 資料庫操縱事務發生的時間及效果,對資料庫實行監視等。如: 1) GRANT:授權 2)revoke

2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一點。 回滾---ROLLBACK 回滾命令使資料庫狀態回到上次最後提交的狀態。其格式為: SQL>ROLLBACK;

3) COMMIT [WORK]:提交。

    在資料庫的插入、刪除和修改操作時,只有當事務在提交到資料 庫時才算完成。在事務提交前,只有操作資料庫的這個人才能有權看 到所做的事情,別人只有在最後提交完成後才可以看到。 提交資料有三種類型:顯式提交、隱式提交及自動提交。下面分 別說明這三種類型。

(1) 顯式提交 用COMMIT命令直接完成的提交為顯式提交。其格式為: SQL>COMMIT;

(2) 隱式提交 用SQL命令間接完成的提交為隱式提交。這些命令是: ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP, EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。

(3) 自動提交 若把AUTOCOMMIT設定為ON,則在插入、修改、刪除語句執行後, 系統將自動進行提交,這就是自動提交。其格式為: SQL>SET AUTOCOMMIT ON;