第十七章 SQL編程
SQL語(yǔ)言作為關(guān)系數據庫管理系統中的一種通用的結構查詢(xún)語(yǔ)言,已經(jīng)被眾多的數據庫管理系統所采用,如ORACLE、Sybase、Informix等數據庫管理系統,它們都支持SQL 語(yǔ)言。Delphi與使用SQL語(yǔ)言的數據庫管理系統兼容,在使用Delphi開(kāi)發(fā)數據庫應用程序時(shí),我們可以使用SQL語(yǔ)言編程,支持SQL編程是Delphi的一個(gè)重要特征,這也是體現Delphi作為一個(gè)強大的數據庫應用開(kāi)發(fā)工具的一個(gè)重要標志。
17.1 SQL語(yǔ)言簡(jiǎn)介
17.1.1 SQL的歷史
在70年代初,E.E.Codd首先提出了關(guān)系模型。70年代中期,IBM公司在研制 SYSTEM R關(guān)系數據庫管理系統中研制了SQL語(yǔ)言,最早的SQL語(yǔ)言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS數據庫系統中也實(shí)現了SQL。
1986年10月,美國ANSI采用SQL作為關(guān)系數據庫管理系統的標準語(yǔ)言(ANSI X3. 135-1986),后為國際標準化組織(ISO)采納為國際標準。1989年,美國ANSI采納在A(yíng)NSI X3.135-1989報告中定義的關(guān)系數據庫管理系統的SQL標準語(yǔ)言,稱(chēng)為ANSI SQL 89, 該標準替代ANSI X3.135-1986版本。該標準為下列組織所采納:
● 國際標準化組織(ISO),為ISO 9075-1989報告“Database Language SQL With Integrity Enhancement”
● 美國聯(lián)邦政府,發(fā)布在The Federal Information Processing Standard Publication(FIPS PUB)127
目前,所有主要的關(guān)系數據庫管理系統支持某些形式的SQL語(yǔ)言,大部分數據庫打算遵守ANSI SQL89標準。
17.1.2 SQL的優(yōu)點(diǎn)
SQL廣泛地被采用正說(shuō)明了它的優(yōu)點(diǎn)。它使全部用戶(hù),包括應用程序員、DBA管理員和終端用戶(hù)受益非淺。
(1) 非過(guò)程化語(yǔ)言
SQL是一個(gè)非過(guò)程化的語(yǔ)言,因為它一次處理一個(gè)記錄,對數據提供自動(dòng)導航。SQL允許用戶(hù)在高層的數據結構上工作,而不對單個(gè)記錄進(jìn)行操作,可操作記錄集。所有SQL 語(yǔ)句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語(yǔ)句的結果作為另一條SQL語(yǔ)句的輸入。
SQL不要求用戶(hù)指定對數據的存放方法。這種特性使用戶(hù)更易集中精力于要得到的結果。所有SQL語(yǔ)句使用查詢(xún)優(yōu)化器,它是RDBMS的一部分,由它決定對指定數據存取的最快速度的手段。查詢(xún)優(yōu)化器知道存在什么索引,哪兒使用合適,而用戶(hù)從不需要知道表是否有索引,表有什么類(lèi)型的索引。
(2) 統一的語(yǔ)言
SQL可用于所有用戶(hù)的DB活動(dòng)模型,包括系統管理員、數據庫管理員、應用程序員、決策支持系統人員及許多其它類(lèi)型的終端用戶(hù);镜腟QL 命令只需很少時(shí)間就能學(xué)會(huì ),最高級的命令在幾天內便可掌握。
SQL為許多任務(wù)提供了命令,包括:
● 查詢(xún)數據
● 在表中插入、修改和刪除記錄
● 建立、修改和刪除數據對象
● 控制對數據和數據對象的存取
● 保證數據庫一致性和完整性
以前的數據庫管理系統為上述各類(lèi)操作提供單獨的語(yǔ)言,而SQL 將全部任務(wù)統一在一種語(yǔ)言中。
(3) 是所有關(guān)系數據庫的公共語(yǔ)言
由于所有主要的關(guān)系數據庫管理系統都支持SQL語(yǔ)言,用戶(hù)可將使用SQL的技能從一個(gè)RDBMS轉到另一個(gè)。所有用SQL編寫(xiě)的程序都是可以移植的。
相關(guān)推薦:2010年9月計算機等級考試試題及答案解析專(zhuān)題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |