-
結構化查詢語言
鎖定
- 中文名
- 結構化查詢語言
- 外文名
- Structured Query Language
- 通過時間
- 1986年10月
- 所屬領域
- 數據庫
- 是否區分大小寫
- 否
結構化查詢語言簡介
SQL語言1974年由Boyce和Chamberlin提出,並首先在IBM公司研製的關係數據庫系統SystemR上實現。由於它具有功能豐富、使用方便靈活、語言簡潔易學等突出的優點,深受計算機工業界和計算機用户的歡迎。1980年10月,經美國國家標準局(ANSI)的數據庫委員會X3H2批准,將SQL作為關係數據庫語言的美國標準,同年公佈了標準SQL,此後不久,國際標準化組織(ISO)也作出了同樣的決定。
[1]
2、兩種使用方式,統一的語法結構。SQL有兩種使用方式。一是聯機交互使用,這種方式下的SQL實際上是作為自含型語言使用的。另一種方式是嵌入到某種高級程序設計語言(如C語言等)中去使用。前一種方式適合於非計算機專業人員使用,後一種方式適合於專業計算機人員使用。儘管使用方式不向,但所用語言的語法結構基本上是一致的。
[1]
結構化查詢語言歷史起源
在1970年代初,由IBM公司San Jose,California研究實驗室的埃德加·科德發表將數據組成表格的應用原則(Codd's Relational Algebra)。1974年,同一實驗室的D.D.Chamberlin和R.F. Boyce對Codd's Relational Algebra在研製關係數據庫管理系統System R中,研製出一套規範語言-SEQUEL(Structured English QUEry Language),並在1976年11月的IBM Journal of R&D上公佈新版本的SQL(叫SEQUEL/2)。1980年改名為SQL。
[2]
結構化查詢語言功能
1、SQL數據定義功能:能夠定義數據庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式又叫做視圖(View),全局模式簡稱模式(Schema),內模式由系統根據數據庫模式自動實現,一般無需用户過問。
[3]
結構化查詢語言語句結構
結構化查詢語言包含6個部分:
1、數據查詢語言(DQL: Data Query Language):其語句,也稱為“數據檢索語句”,用以從表中獲得數據,確定數據怎樣在應用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其它類型的SQL語句一起使用。
[4]
3、事務控制語言(TCL):它的語句能確保被DML語句影響的表的所有行及時得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存點)命令、ROLLBACK(回滾)命令。
6、指針控制語言(CCL):它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。
結構化查詢語言語言特點
結構化查詢語言SQL風格統一
SQL可以獨立完成數據庫生命週期中的全部活動,包括定義關係模式、錄入數據、建立數據庫、查詢、更新、維護、數據庫重構、數據庫安全性控制等一系列操作,這就為數據庫應用系統開發提供了良好的環境,在數據庫投入運行後,還可根據需要隨時逐步修改模式,且不影響數據庫的運行,從而使系統具有良好的可擴充性。
[5]
結構化查詢語言高度非過程化
非關係數據模型的數據操縱語言是面向過程的語言,用其完成用户請求時,必須指定存取路徑。而用SQL進行數據操作,用户只需提出“做什麼”,而不必指明“怎麼做”,因此用户無須瞭解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統自動完成。這不但大大減輕了用户負擔,而且有利於提高數據獨立性。
[5]
結構化查詢語言面向集合的操作方式
結構化查詢語言以同一種語法結構提供兩種使用方式
SQL既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨立地用於聯機交互的使用方式,用户可以在終端鍵盤上直接輸入SQL命令對數據庫進行操作。作為嵌入式語言,SQL語句能夠嵌入到高級語言(如C、C#、JAVA)程序中,供程序員設計程序時使用。而在兩種不同的使用方式下,SQL的語法結構基本上是一致的。這種以統一的語法結構提供兩種不同的操作方式,為用户提供了極大的靈活性與方便性。
[5]
結構化查詢語言語言簡潔,易學易用
SQL功能極強,但由於設計巧妙,語言十分簡潔,完成數據定義、數據操縱、數據控制的核心功能只用了9個動詞:CREATE、ALTER、DROP、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE。且SQL語言語法簡單,接近英語口語,因此容易學習,也容易使用。
[5]
結構化查詢語言SQL語句
結構化查詢語言數據定義
定義基本表:
CREATE TABLE([列級完整性約束條件]
[,[列級完整性約束條件]]…
[,[列級完整性約束條件]]
説明:
③是所要定義的基本表的名稱,一個表可以由一個或若干個屬性(列)組成,但至少有一個屬性,不允許一個屬性都沒有的表,這樣不是空表的含義。多個屬性定義由圓括號指示其邊界,通過逗號把各個屬性定義分隔開,各個屬性名稱互不相同,可以採用任意順序排列,一般按照實體或聯繫定義屬性的順序排列,關鍵字屬性組在最前面,這樣容易區分,也防止遺漏定義的屬性。
[6]
⑤完整性約束條件,分為列級的完整性約束和表級的完整性約束,如果完整性約束條件涉及該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級。這些完整性約束條件被存入系統的數據字典中,當用户操作表中數據時由RDBMS自動檢查該操作是否違背這些完整性約束,如果違背則RDBMS拒絕本次操作,這樣保持了數據庫狀態的正確性和完整性,不需要用户提供檢查,提高了編程的效率,降低了編程難度。列級的完整性通常為主關鍵字的定義、是否允許為空。表級的完整性約束條件一般為外碼定義。
[6]
結構化查詢語言數據操縱
數據操縱語言一般由 INSERT(插入)、 DELETE(刪除)、 UPDATE(更新)、 SELECT(檢索,又稱查詢)等組成。由於 SELECT經常使用,所以一般將它稱為查詢(檢索)語言並單獨出現。
[5]
結構化查詢語言數據管理
結構化查詢語言SQL中的數據查詢語句
- 參考資料
-
- 1. 田萍芳,劉瓊,張志輝主編;廖建平,李紅斌,餘志兵,張銘暉,劉星,胡靜副主編.Visual Basic程序設計教程:中國鐵道出版社,2014.02:第239頁
- 2. 錢雪忠,王月海主編;陳國俊,徐華,錢瑛副主編.數據庫原理及應用:北京郵電大學出版社,2015.04:第82頁
- 3. 中公教育教師招聘考試研究院編著.學科專業知識:世界圖書出版公司北京公司,2014.02:第129頁
- 4. 楊波,許麗娟主編;陳剛,駱珍儀,李思思副主編.電子商務概論:北京郵電大學出版社,2014.08:第86頁
- 5. 何元清,付茂洺,劉期建主編;張中浩,路晶,朱建剛副主編.大學計算機基礎:中國鐵道出版社,2013.08:第304頁
- 6. 馮大春主編.大學信息技術基礎:中國農業大學出版社,2017.01:第152頁