SQL(Structure Query Language)語(yǔ)言是數(shù)據(jù)庫(kù)的核心語(yǔ)言硝拧。
SQL的發(fā)展是從1974年開始的径筏,其發(fā)展過程如下:
1974年-----由Boyce和Chamberlin提出,當(dāng)時(shí)稱SEQUEL障陶。
1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R
時(shí)改為SQL滋恬。
1979年-----ORACLE公司發(fā)表第一個(gè)基于SQL的商業(yè)化RDBMS產(chǎn)品。
1982年-----IBM公司出版第一個(gè)RDBMS語(yǔ)言SQL/DS抱究。
1985年-----IBM公司出版第一個(gè)RDBMS語(yǔ)言DB2恢氯。
1986年-----美國(guó)國(guó)家標(biāo)準(zhǔn)化組織ANSI宣布SQL作為數(shù)據(jù)庫(kù)工業(yè)標(biāo)準(zhǔn)。
SQL是一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)語(yǔ)言鼓寺,是面向集合的描述性非過程化語(yǔ)言勋拟。
它功能強(qiáng),效率高妈候,簡(jiǎn)單易學(xué)易維護(hù)(迄今為止敢靡,我還沒見過比它還好
學(xué)的語(yǔ)言)。然而SQL語(yǔ)言由于以上優(yōu)點(diǎn)苦银,同時(shí)也出現(xiàn)了這樣一個(gè)問題:
它是非過程性語(yǔ)言啸胧,即大多數(shù)語(yǔ)句都是獨(dú)立執(zhí)行的,與上下文無(wú)關(guān)幔虏,而
絕大部分應(yīng)用都是一個(gè)完整的過程纺念,顯然用SQL完全實(shí)現(xiàn)這些功能是很困
難的。所以大多數(shù)數(shù)據(jù)庫(kù)公司為了解決此問題想括,作了如下兩方面的工作:
(1)擴(kuò)充SQL陷谱,在SQL中引入過程性結(jié)構(gòu);(2)把SQL嵌入到高級(jí)語(yǔ)言中瑟蜈,
以便一起完成一個(gè)完整的應(yīng)用烟逊。
二. SQL語(yǔ)言的分類
SQL語(yǔ)言共分為四大類:數(shù)據(jù)查詢語(yǔ)言DQL渣窜,數(shù)據(jù)操縱語(yǔ)言DML,數(shù)據(jù)定義語(yǔ)言DDL焙格,數(shù)據(jù)控制語(yǔ)言DCL图毕。
1. 數(shù)據(jù)查詢語(yǔ)言DQL
數(shù)據(jù)查詢語(yǔ)言DQL基本結(jié)構(gòu)是由SELECT子句,F(xiàn)ROM子句眷唉,WHERE
子句組成的查詢塊:
SELECT <字段名表>
FROM <表或視圖名>
WHERE <查詢條件>
2 .數(shù)據(jù)操縱語(yǔ)言DML
數(shù)據(jù)操縱語(yǔ)言DML主要有三種形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 刪除:DELETE
3. 數(shù)據(jù)定義語(yǔ)言DDL
數(shù)據(jù)定義語(yǔ)言DDL用來(lái)創(chuàng)建數(shù)據(jù)庫(kù)中的各種對(duì)象-----表予颤、視圖、
索引冬阳、同義詞蛤虐、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
| | | | |
表 視圖 索引 同義詞 簇
DDL操作是隱性提交的!不能rollback
4. 數(shù)據(jù)控制語(yǔ)言DCL
數(shù)據(jù)控制語(yǔ)言DCL用來(lái)授予或回收訪問數(shù)據(jù)庫(kù)的某種特權(quán)肝陪,并控制
數(shù)據(jù)庫(kù)操縱事務(wù)發(fā)生的時(shí)間及效果驳庭,對(duì)數(shù)據(jù)庫(kù)實(shí)行監(jiān)視等。如:
1) GRANT:授權(quán)氯窍。
2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一點(diǎn)饲常。
回滾---ROLLBACK
回滾命令使數(shù)據(jù)庫(kù)狀態(tài)回到上次最后提交的狀態(tài)。其格式為:
SQL>ROLLBACK;
3) COMMIT [WORK]:提交狼讨。
在數(shù)據(jù)庫(kù)的插入贝淤、刪除和修改操作時(shí),只有當(dāng)事務(wù)在提交到數(shù)據(jù)
庫(kù)時(shí)才算完成政供。在事務(wù)提交前播聪,只有操作數(shù)據(jù)庫(kù)的這個(gè)人才能有權(quán)看
到所做的事情,別人只有在最后提交完成后才可以看到布隔。
提交數(shù)據(jù)有三種類型:顯式提交离陶、隱式提交及自動(dòng)提交。下面分
別說明這三種類型衅檀。
(1) 顯式提交
用COMMIT命令直接完成的提交為顯式提交招刨。其格式為:
SQL>COMMIT;
(2) 隱式提交
用SQL命令間接完成的提交為隱式提交哀军。這些命令是:
ALTER沉眶,AUDIT,COMMENT排苍,CONNECT,CREATE学密,DISCONNECT淘衙,DROP,
EXIT腻暮,GRANT彤守,NOAUDIT毯侦,QUIT,REVOKE具垫,RENAME侈离。
(3) 自動(dòng)提交
若把AUTOCOMMIT設(shè)置為ON,則在插入筝蚕、修改卦碾、刪除語(yǔ)句執(zhí)行后,
系統(tǒng)將自動(dòng)進(jìn)行提交起宽,這就是自動(dòng)提交洲胖。其格式為:
SQL>SET AUTOCOMMIT ON;