SQL是Structured Query Language的縮寫,譯爲「結構化查詢語言」,它是關係數據庫的標準語言。數據庫
按功能劃分,SQL語言能夠分爲四類:安全
數據查詢語言(Data Query Language, DQL)併發
數據定義語言(Data Definition Language, DDL)post
數據操縱語言(Data Manipulation Language, DML)ui
數據控制語言(Data Control Language, DCL)spa
SQL語言的發展設計
1974年由Boyce和Chamberlin最初提出,3d
1979年被IBM公司在其關係數據庫系統System R上首先予以實現。對象
1986年10月,美國國家標準化學會(ANSI, American National Standards Institute)公佈了第一個SQL標準,稱爲SQL-86。blog
1987年6月,國際標準化組織(ISO, International Standards Organization)也接納了這一標準,並對其做進一步的完善。完善工做於1989年4月完成,結果造成了所謂的SQL-89標準。
在SQL-89標準的基礎上,ISO和ANSI聯手對SQL進行研究和完善,於1992年8月又推出了新的SQL標準——SQL-92(SQL2),1999年推出SQL-99(SQL3),2003年進一步被擴充爲SQL-2003,使其兼容XML語言。
現在,幾乎全部的數據庫產品廠商都推出了各自的支持SQL語言的關係數據庫軟件產品,如DB二、Oracle、SQL Server等,或者提供了支持SQL語言的接口。
除了SQL之外,還有其餘相似的一些數據庫語言,如QBE、Quel、Datalog等,但這些語言僅限於少數專業的數據庫研究人員使用,並非主流語言。事實上,SQL是迄今爲止最受歡迎的關係數據庫語言之一,目前尚未出現可以與之相媲美的同類語言。
SQL語言集數據查詢、數據操縱、數據定義和數據控制功能於一體,是一種通用的、功能強大而又簡單易學的關係數據庫語言。
特色:
(1)高度非過程化語言
非關係數據模型的數據操縱語言都是面向過程的語言,在使用時必須指定存儲路徑。SQL是一種高度非過程化的語言,它一次執行一條命令,對數據提供自動導航。SQL不要求用戶指定對數據的存放方法,只要求用戶提出要「幹什麼」,至於「怎麼幹」,用戶就不用管了,而由系統自動完成。
(2)統一的數據庫操做語言
SQL語言風格統一,用於建立數據庫、定義關係模式、完成數據的查詢、修改、刪除、控制等操做。爲數據庫應用系統的開發提供了良好的環境。在數據庫投入運行之後,可使用SQL語言實現數據庫重構,在必定程度上知足用戶不斷髮展的需求,同時不影響數據庫的正常運行,使數據庫系統具備良好的可擴展性。
(3)關係數據庫的標準語言
SQL成爲國際標準之後,因爲絕大多數的數據庫廠商都支持SQL,因此SQL能夠用於各種數據庫管理系統,從而使它成爲關係數據庫的標準語言。全部用SQL編寫的程序都是能夠在不一樣的系統中移植,同時也結束了數據庫查詢語言「各自爲政的分割局面」。
(4)面向集合的數據操縱語言
非關係數據模型的數據操縱語言通常是面向記錄進行操做的,即每一次操做都是針對一條記錄進行的。若是要對多條記錄操做,則必須循環進行。而SQL則面向集合的方式進行操做,即每一次操做是針對全部知足條件的元組組成的集合進行,操做所產生的結果也是元組的集合。
(5)可嵌入式的數據庫語言
SQL語言不但能夠在交互方式下以命令的形式執行,還能夠嵌入到其餘的高級語言中。在交互方式下,用戶能夠在終端鍵盤上直接鍵入SQL命令對數據庫進行操做;做爲可嵌入式的數據庫語言,SQL語言可嵌入到像C、COBOL、FORTRAN、VB、PowerBuilder、Delphi等這種高級語言中,經過程序調用來實現對數據庫的操做。無論是在交互方式下仍是在嵌入方式下,SQL語言的語法結構基本上都同樣,這使得對數據庫的操做變得更爲靈活和方便。
(6)簡單易學
SQL語言的語法結構比較簡單,調用格式很是簡潔。所使用命令的核心關鍵字才包括9個:CREATE、ALTER、DROP、GRANT、REVOKE、SELECT、INSERT、UPDATE、DELETE 。並且其語法接近英語口語,方便理解和記憶。
四大功能介紹:
(1)數據查詢功能
經過SELECT語句完成。SELECT語句的功能很是強大,表達形式很是豐富,能夠完成不少複雜的查詢任務。SQL語言的最初設計就是用於數據查詢,這也是它之因此稱爲「結構查詢語言(Structured Query Language)」的主要緣由。
(2)數據操縱功能
經過INSERT、UPDATE、DELETE 語句完成。INSERT、UPDATE、DELETE 語句分別用於實現數據插入、數據更新和數據刪除功能。
(3)數據定義功能
經過CREATE、ALTER、DROP語句來完成。CREATE、ALTER、DROP語句分別用於定義、修改和刪除數據庫和數據庫對象,這些數據庫對象包括數據表、視圖等。
(4)數據控制功能
經過GRANT、REVOKE語句來完成。數據控制主要是指事務管理、數據保護(包括數據庫的恢復、併發控制等)以及數據庫的安全性和完整性控制。
四種功能與SQL語句的對應關係如表5.1所示: