天天看點

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;

上一篇: MySQL DML與DDL
下一篇: SQL詳細概述