SQL(Structured Query Language),即結(jié)構(gòu)化查詢語(yǔ)言,是高級(jí)的非過(guò)程化編程語(yǔ)言,它允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。SQL是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。SQL同時(shí)也是數(shù)據(jù)庫(kù)文件格式的擴(kuò)展名。
目錄
SQL概述
SQL發(fā)展歷史
SQL特點(diǎn)
SQL基本語(yǔ)句
SQL概述
SQL語(yǔ)言之所以能夠?yàn)橛脩艉蜆I(yè)界所接受,并成為國(guó)際標(biāo)準(zhǔn),是因?yàn)樗且粋€(gè)綜合的、功能極強(qiáng)同時(shí)又簡(jiǎn)捷易學(xué)的語(yǔ)言。SQL語(yǔ)言集數(shù)據(jù)查詢(Data Query)、數(shù)據(jù)操縱(Data Manipulation)、數(shù)據(jù)定義(Data Definition)和數(shù)據(jù)控制(Data Control)功能于一體。
SQL是高級(jí)的非過(guò)程化編程語(yǔ)言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對(duì)數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫(kù)系統(tǒng),可以使用相同的SQL語(yǔ)言作為數(shù)據(jù)輸入與管理的接口。它以記錄集合作為操作對(duì)象,所有SQL語(yǔ)句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語(yǔ)句的輸出作為另一條SQL語(yǔ)句的輸入,所以SQL語(yǔ)句可以嵌套,這使他具有極大的靈活性和強(qiáng)大的功能,在多數(shù)情況下,在其他語(yǔ)言中需要一大段程序?qū)崿F(xiàn)的功能只需要一個(gè)SQL語(yǔ)句就可以達(dá)到目的,這也意味著用SQL語(yǔ)言可以寫出非常復(fù)雜的語(yǔ)句。
結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)最早是IBM的圣約瑟研究實(shí)驗(yàn)室為其關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)SYSTEM R開(kāi)發(fā)的一種查詢語(yǔ)言,它的前身是SQUARE語(yǔ)言。SQL語(yǔ)言結(jié)構(gòu)簡(jiǎn)潔,功能強(qiáng)大,簡(jiǎn)單易學(xué),所以自從IBM公司1981年推出以來(lái),SQL語(yǔ)言得到了廣泛的應(yīng)用。如今無(wú)論是像Oracle、Sybase、DB2、Informix、SQL SERver這些大型的數(shù)據(jù)庫(kù)管理系統(tǒng),還是像Visual Foxpro、PowerBuilder這些PC上常用的數(shù)據(jù)庫(kù)開(kāi)發(fā)系統(tǒng),都支持SQL語(yǔ)言作為查詢語(yǔ)言。
美國(guó)國(guó)家標(biāo)準(zhǔn)局(ANSI)與國(guó)際標(biāo)準(zhǔn)化組織(ISO)已經(jīng)制定了SQL標(biāo)準(zhǔn)。ANSI是一個(gè)美國(guó)工業(yè)和商業(yè)集團(tuán)組織,負(fù)責(zé)開(kāi)發(fā)美國(guó)的商務(wù)和通訊標(biāo)準(zhǔn)。ANSI同時(shí)也是ISO和International Electrotechnical Commission(IEC)的成員之一。ANSI 發(fā)布與國(guó)際標(biāo)準(zhǔn)組織相應(yīng)的美國(guó)標(biāo)準(zhǔn)。1992年,ISO和IEC發(fā)布了SQL國(guó)際標(biāo)準(zhǔn),稱為SQL-92。ANSI隨之發(fā)布的相應(yīng)標(biāo)準(zhǔn)是ANSI SQL-92。ANSI SQL-92有時(shí)被稱為ANSI SQL。盡管不同的關(guān)系數(shù)據(jù)庫(kù)使用的SQL版本有一些差異,但大多數(shù)都遵循 ANSI SQL 標(biāo)準(zhǔn)。SQL Server使用ANSI SQL-92的擴(kuò)展集,稱為T-SQL,其遵循ANSI制定的 SQL-92標(biāo)準(zhǔn)。
SQL發(fā)展歷史
在1970年代初,由IBM公司San Jose,California研究實(shí)驗(yàn)室的埃德加·科德發(fā)表將數(shù)據(jù)組成表格的應(yīng)用原則(Codd's Relational Algebra)。1974年,同一實(shí)驗(yàn)室的D.D.Chamberlin和R.F. Boyce對(duì)Codd's Relational Algebra在研制關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)System R中,研制出一套規(guī)范語(yǔ)言-SEQUEL(Structured English QUEry Language),并在1976年11月的IBM Journal of R&D上公布新版本的SQL(叫SEQUEL/2)。1980年改名為SQL。
1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS數(shù)據(jù)庫(kù)系統(tǒng)中也實(shí)現(xiàn)了SQL。
1986年10月,美國(guó)ANSI采用SQL作為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言(ANSI X3. 135-1986),后為國(guó)際標(biāo)準(zhǔn)化組織(ISO)采納為國(guó)際標(biāo)準(zhǔn)。
1989年,美國(guó)ANSI采納在ANSI X3.135-1989報(bào)告中定義的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的SQL標(biāo)準(zhǔn)語(yǔ)言,稱為ANSI SQL 89, 該標(biāo)準(zhǔn)替代ANSI X3.135-1986版本。該標(biāo)準(zhǔn)為下列組織所采納:
國(guó)際標(biāo)準(zhǔn)化組織(ISO),為ISO 9075-1989報(bào)告“Database Language SQL With Integrity Enhancement”
美國(guó)聯(lián)邦政府,發(fā)布在The Federal Information Processing Standard Publication(FIPS PUB)127
目前,所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)支持某些形式的SQL, 大部分?jǐn)?shù)據(jù)庫(kù)打算遵守ANSI SQL89標(biāo)準(zhǔn)。
SQL特點(diǎn)
SQL基本語(yǔ)句
SQL中有四種基本的DML操作:insert,select,update和delete。
1、insert語(yǔ)句
用戶可以用insert語(yǔ)句將一行記錄插入到指定的一個(gè)表中。
2、select語(yǔ)句
select語(yǔ)句可以從一個(gè)或多個(gè)表中選取特定的行和列。因?yàn)椴樵兒蜋z索數(shù)據(jù)是數(shù)據(jù)庫(kù)管理中最重要的功能,所以select語(yǔ)句在SQL中是工作量最大的部分。實(shí)際上,僅僅是訪問(wèn)數(shù)據(jù)庫(kù)來(lái)分析數(shù)據(jù)并生成報(bào)表的人可以對(duì)其他SQL語(yǔ)句一竅不通。
select語(yǔ)句的結(jié)果通常是生成另外一個(gè)表。在執(zhí)行過(guò)程中系統(tǒng)根據(jù)用戶的標(biāo)準(zhǔn)從數(shù)據(jù)庫(kù)中選出匹配的行和列,并將結(jié)果放到臨時(shí)的表中。在直接SQL(direct SQL)中,它將結(jié)果顯示在終端的顯示屏上,或者將結(jié)果送到打印機(jī)或文件中。也可以結(jié)合其他SQL語(yǔ)句來(lái)將結(jié)果放到一個(gè)已知名稱的表中。
select語(yǔ)句功能強(qiáng)大。雖然表面上看來(lái)它只用來(lái)完成本文第一部分中提到的關(guān)系代數(shù)運(yùn)算“選擇”(或稱“限制”),但實(shí)際上它也可以完成其他兩種關(guān)系運(yùn)算—“投影”和“連接”,select語(yǔ)句還可以完成聚合計(jì)算并對(duì)數(shù)據(jù)進(jìn)行排序。
3、update語(yǔ)句
update語(yǔ)句允許用戶在已知的表中對(duì)現(xiàn)有的行進(jìn)行修改。
4、delete語(yǔ)句
delete語(yǔ)句用來(lái)刪除已知表中的行。如同update語(yǔ)句中一樣,所有滿足where子句中條件的行都將被刪除。由于SQL中沒(méi)有UNDO語(yǔ)句或是“你確認(rèn)刪除嗎?”之類的警告,在執(zhí)行這條語(yǔ)句時(shí)千萬(wàn)要小心。
轉(zhuǎn)載本站文章《SQL的發(fā)展歷史概述》,
請(qǐng)注明出處:https://www.zhoulujun.cn/html/DB/sql/2015_0730_227.html
該文章在 2023/11/16 22:22:35 編輯過(guò)