[轉]https://www.cnblogs.com/fan-yuan/p/7879353.html
SQL(Structure Query Language)語言是數據庫的核心語言奈偏。
一、SQL的發(fā)展是從1974年開始的躯护,其發(fā)展過程如下:
1974年-----由Boyce和Chamberlin提出惊来,當時稱SEQUEL。
1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R
時改為SQL棺滞。
1979年-----ORACLE公司發(fā)表第一個基于SQL的商業(yè)化RDBMS產品裁蚁。
1982年-----IBM公司出版第一個RDBMS語言SQL/DS矢渊。
1985年-----IBM公司出版第一個RDBMS語言DB2。
1986年-----美國國家標準化組織ANSI宣布SQL作為數據庫工業(yè)標準枉证。
SQL是一個標準的數據庫語言矮男,是面向集合的描述性非過程化語言。
它功能強室谚,效率高毡鉴,簡單易學易維護(迄今為止,我還沒見過比它還好
學的語言)秒赤。然而SQL語言由于以上優(yōu)點猪瞬,同時也出現了這樣一個問題:
它是非過程性語言,即大多數語句都是獨立執(zhí)行的入篮,與上下文無關陈瘦,而
絕大部分應用都是一個完整的過程,顯然用SQL完全實現這些功能是很困
難的崎弃。所以大多數數據庫公司為了解決此問題甘晤,作了如下兩方面的工作:
(1)擴充SQL,在SQL中引入過程性結構饲做;(2)把SQL嵌入到高級語言中线婚,
以便一起完成一個完整的應用。
二. SQL語言的分類
SQL語言共分為四大類:數據查詢語言DQL盆均,數據操縱語言DML塞弊,數據定義語言DDL,數據控制語言DCL泪姨。
- 數據查詢語言DQL
數據查詢語言DQL基本結構是由SELECT子句游沿,FROM子句,WHERE
子句組成的查詢塊:
SELECT <字段名表>
FROM <表或視圖名>
WHERE <查詢條件>
2 .數據操縱語言DML
數據操縱語言DML主要有三種形式:
①插入:INSERT
②更新:UPDATE
③刪除:DELETE
- 數據定義語言DDL
數據定義語言DDL用來創(chuàng)建數據庫中的各種對象-----表肮砾、視圖诀黍、
索引、同義詞仗处、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
| | | | |
表 視圖 索引 同義詞 簇
DDL操作是隱性提交的眯勾!不能rollback
- 數據控制語言DCL
數據控制語言DCL用來授予或回收訪問數據庫的某種特權,并控制
數據庫操縱事務發(fā)生的時間及效果婆誓,對數據庫實行監(jiān)視等吃环。如:
①GRANT:授權。
②ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一點洋幻。
回滾---ROLLBACK
回滾命令使數據庫狀態(tài)回到上次最后提交的狀態(tài)郁轻。其格式為:
SQL>ROLLBACK;
③COMMIT [WORK]:提交。
在數據庫的插入、刪除和修改操作時好唯,只有當事務在提交到數據
庫時才算完成竭沫。在事務提交前,只有操作數據庫的這個人才能有權看
到所做的事情骑篙,別人只有在最后提交完成后才可以看到输吏。
提交數據有三種類型:顯式提交、隱式提交及自動提交替蛉。下面分
別說明這三種類型。
(1) 顯式提交
用COMMIT命令直接完成的提交為顯式提交拄氯。其格式為:
SQL>COMMIT躲查;
(2) 隱式提交
用SQL命令間接完成的提交為隱式提交。這些命令是:
ALTER译柏,AUDIT镣煮,COMMENT,CONNECT鄙麦,CREATE典唇,DISCONNECT,DROP胯府,EXIT介衔,GRANT,NOAUDIT骂因,QUIT炎咖,REVOKE,RENAME寒波。
(3) 自動提交
若把AUTOCOMMIT設置為ON乘盼,則在插入、修改俄烁、刪除語句執(zhí)行后绸栅,
系統(tǒng)將自動進行提交,這就是自動提交页屠。其格式為:
SQL>SET AUTOCOMMIT ON粹胯;