SQL語言簡介
發(fā)布時(shí)間:2008-08-05 閱讀數(shù): 次 來源:網(wǎng)樂原科技
SQL全稱是“結(jié)構(gòu)化查詢語言(Structured Query Language)”,最早的是IBM的圣約瑟研究實(shí)驗(yàn)室為其關(guān)系數(shù)據(jù)庫管理系統(tǒng)SYSTEM R開發(fā)的一種查詢語言,它的前身是SQUARE語言。SQL語言結(jié)構(gòu)簡潔,功能強(qiáng)大,簡單易學(xué),所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應(yīng)用。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的數(shù)據(jù)庫管理系統(tǒng),還是像Visual Foxporo,PowerBuilder這些微機(jī)上常用的數(shù)據(jù)庫開發(fā)系統(tǒng),都支持SQL語言作為查詢語言。
Structured Query Language包含4個(gè)部分:
數(shù)據(jù)查詢語言DQL-Data Query Language SELECT
數(shù)據(jù)操縱語言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
數(shù)據(jù)定義語言DQL-Data Definition Language CREATE, ALTER, DROP
數(shù)據(jù)控制語言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK
SQL的歷史
在70年代初,E.E.Codd首先提出了關(guān)系模型。70年代中期,IBM公司在研制 SYSTEM R關(guān)系數(shù)據(jù)庫管理系統(tǒng)中研制了SQL語言,最早的SQL語言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。
1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS數(shù)據(jù)庫系統(tǒng)中也實(shí)現(xiàn)了SQL。
1986年10月,美國ANSI采用SQL作為關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言(ANSI X3. 135-1986),后為國際標(biāo)準(zhǔn)化組織(ISO)采納為國際標(biāo)準(zhǔn)。
1989年,美國ANSI采納在ANSI X3.135-1989報(bào)告中定義的關(guān)系數(shù)據(jù)庫管理系統(tǒng)的SQL標(biāo)準(zhǔn)語言,稱為ANSI SQL 89, 該標(biāo)準(zhǔn)替代ANSI X3.135-1986版本。該標(biāo)準(zhǔn)為下列組織所采納:
● 國際標(biāo)準(zhǔn)化組織(ISO),為ISO 9075-1989報(bào)告“Database Language SQL With Integrity Enhancement”
● 美國聯(lián)邦政府,發(fā)布在The Federal Information Processing Standard Publication(FIPS PUB)127
目前,所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)支持某些形式的SQL語言, 大部分?jǐn)?shù)據(jù)庫打算遵守ANSI SQL89標(biāo)準(zhǔn)。
SQL的優(yōu)點(diǎn)
SQL廣泛地被采用正說明了它的優(yōu)點(diǎn)。它使全部用戶,包括應(yīng)用程序員、DBA管理員和終端用戶受益非淺。
(1) 非過程化語言
SQL是一個(gè)非過程化的語言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對數(shù)據(jù)提供自動導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個(gè)記錄進(jìn)行操作,可操作記錄集。所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。 SQL不要求用戶指定對數(shù)據(jù)的存放方法。 這種特性使用戶更易集中精力于要得到的結(jié)果。所有SQL語句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對指定數(shù)據(jù)存取的最快速度的手段。查詢優(yōu)化器知道存在什么索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什么類型的索引。
(2) 統(tǒng)一的語言
SQL可用于所有用戶的DB活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶?;镜腟QL 命令只需很少時(shí)間就能學(xué)會,最高級的命令在幾天內(nèi)便可掌握。 SQL為許多任務(wù)提供了命令,包括:
● 查詢數(shù)據(jù)
● 在表中插入、修改和刪除記錄
● 建立、修改和刪除數(shù)據(jù)對象
● 控制對數(shù)據(jù)和數(shù)據(jù)對象的存取
● 保證數(shù)據(jù)庫一致性和完整性
以前的數(shù)據(jù)庫管理系統(tǒng)為上述各類操作提供單獨(dú)的語言,而SQL 將全部任務(wù)統(tǒng)一在一種語言中。
(3) 是所有關(guān)系數(shù)據(jù)庫的公共語言
由于所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用戶可將使用SQL的技能從一個(gè)RDBMS轉(zhuǎn)到另一個(gè)。所有用SQL編寫的程序都是可以移植的。