閱讀筆記:DQL、DML、DDL、DCL的概念與區別
最近因為工作需要重新溫習了當年的數據庫存儲過程,當中發現掃地生看到SQL語言的分類時,楞是只想起了3種分類而已。慚愧,哈哈哈。
發現這篇總結比較通俗易解,由此記為一篇閱讀筆記。
1、概述
SQL(Structure Query Language)語言是數據庫的核心語言。
SQL的發展是從1974年開始的,其發展過程如下:
1974年-----由Boyce和Chamberlin提出,當時稱SEQUEL。
1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEMR時改為SQL。
1979年-----ORACLE公司發表第一個基於SQL的商業化RDBMS產品。
1982年-----IBM公司出版第一個RDBMS語言SQL/DS。
1985年-----IBM公司出版第一個RDBMS語言DB2。
1986年-----美國國家標准化組織ANSI宣布SQL作為數據庫工業標准。
SQL是一個標准的數據庫語言,是面向集合的描述性非過程化語言。它功能強,效率高,簡單易學易維護(迄今為止,還沒見過比它還好學的語言)。然而SQL語言由於以上優點,同時也出現了這樣一個問題:
它是非過程性語言,即大多數語句都是獨立執行的,與上下文無關,而絕大部分應用都是一個完整的過程,顯然用SQL完全實現這些功能是很困難的。所以大多數數據庫公司為了解決此問題,作了如下兩方面的工作:
- 擴充SQL,在SQL中引入過程性結構;
- 把SQL嵌入到高級語言中,以便一起完成一個完整的應用。
2、SQL語言的分類
SQL語言共分為四大類:數據查詢語言DQL,數據操縱語言DML,數據定義語言DDL,數據控制語言DCL。
2.1 數據查詢語言DQL
數據查詢語言DQL基本結構是有SELECT字句、FROM字句,WHERE字句組成的查詢塊:
select <字段名>
from <表或視圖名>
where <查詢條件>
2.2 數據操縱語言DML
數據操縱語言DML主要有三種形式:
- 插入:INSERT
- 更新:UPDATE
- 刪除:DELETE
2.3 數據定義語言DDL
數據定義語言DDL用來創建數據庫中的各種對象——表、視圖、索引、同義詞、聚簇等...
create [table|view|index|syn|cluster]...
DDL操作是隱形提交的,不能rollback。
2.4 數據控制語言DCL
數據控制語言DCL用來授予或回收訪問數據庫的某種權限,並控制數據庫操作事務發生的時間及效果,對數據庫實行監控等,如:
-
GRANT:授權
-
ROLLBACK [WORK] T0 [SAVEPOINT]:回退到某一點
回滾——ROLLBACK
回滾使數據庫狀態回到上次提交的狀態。其格式為:
SQL> ROLLBACK;
-
COMMIT [WORK]:提交
在數據庫的插入、刪除和修改操作時,只有當事務在提交到數據庫時才算完成。在事務提交前,只有操作數據庫的當事人才能有權看到所做的事情,別人只有在最后提交才能看到。
提交數據有三種類型:顯示提交、隱式提交及自動提交:
-
顯示提交
用commit 命令直接完成的提交為顯示提交,其格式為:
SQL> commint;
-
隱式提交
用SQL命令間接完成的提交為隱式提交,這些命令是:
alter audit comment connect create disconnect drop exit grant noaudit quit revoke rename
-
自動提交
若把Autocommit設置為on,則在插入、修改、刪除語句執行后系統將自動提交,其格式為:
sql> set autocommit on;
這里也可以解釋JDBK創建連接時的方式來理解
-
3、閱讀來源
很多人可能不理解,所謂閱讀筆記不就是復制粘貼的事嗎?
非也,我們知道的,好記性不如爛筆頭,雖說不用手寫了,但我們可以手敲嘛。