數(shù)據(jù)查詢(xún)?cè)斀庵浛茧y點(diǎn)剖析[1]

數(shù)據(jù)庫(kù)系統(tǒng)工程師 責(zé)任編輯:gxjoicq 2008-05-09

添加老師微信

備考咨詢(xún)

加我微信

摘要:select-from-where一.基本結(jié)構(gòu)在SQL語(yǔ)言中,只提供了一個(gè)動(dòng)詞Select用來(lái)進(jìn)行數(shù)據(jù)查詢(xún)操作,但這個(gè)動(dòng)詞的參數(shù)十分復(fù)雜,且能嵌套使用,所以,考試時(shí)往往就考這個(gè)功能。其通用格式如下:Select[All|Distinct]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]…From<表名或視圖名>[,<表名或視圖名>]…[Where<條件

select-from-where

一.基本結(jié)構(gòu)

在SQL語(yǔ)言中,只提供了一個(gè)動(dòng)詞Select用來(lái)進(jìn)行數(shù)據(jù)查詢(xún)操作,但這個(gè)動(dòng)詞的參數(shù)十分復(fù)雜,且能嵌套使用,所以,考試時(shí)往往就考這個(gè)功能。其通用格式如下:

Select[All|Distinct]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]…

From<表名或視圖名>[,<表名或視圖名>]…

[Where<條件表達(dá)式>]

[Group by <列名1>[Having<條件表達(dá)式>]]

[Order by <列名2>[Asc|Desc]];

1.select子句

SQL查詢(xún)語(yǔ)句的結(jié)果也是一個(gè)關(guān)系,例如:

Select branch-name from loan

找出了關(guān)系loan中所有分支機(jī)構(gòu)的名稱(chēng)。

關(guān)系代數(shù)中基于關(guān)系是一個(gè)集合這樣的數(shù)學(xué)概念,因此,重復(fù)的元組不會(huì)在關(guān)系中出現(xiàn)。但在實(shí)踐當(dāng)中,要?jiǎng)h除查詢(xún)結(jié)果中的重復(fù)元組是相當(dāng)費(fèi)時(shí)的!所以在商用數(shù)據(jù)庫(kù)產(chǎn)品中,允許在關(guān)系和SQL表達(dá)式的結(jié)果中出現(xiàn)重復(fù)元組。對(duì)于select子句,還需要特別注意以下事情:

⑴ 是否要去除結(jié)果中的重復(fù)元組可以選用all和distinct選項(xiàng),例如:

select [all | distinct] branch-name from loan

其中all表示保留所有重復(fù)元組,而distinct表示要去掉重復(fù)元組;

⑵可以用*代替關(guān)系中的所有屬性,如loan.*或*:

select * from loan

⑶select子句中還可以出現(xiàn)算術(shù)表達(dá)式,這與關(guān)系代數(shù)中的廣義投影運(yùn)算對(duì)應(yīng):

select branch-name, loan-number, amount*100 from loan

2. where子句

從一個(gè)例子開(kāi)始,例如:

select loan-number from loan

where branch-name = "Perryridge" and amount>1200

這個(gè)SQL語(yǔ)句的含義是什么呢?請(qǐng)大家自己思考。

需要注意的是where子句中的邏輯運(yùn)算符使用and、or和not,而不是∧、∨和?。比較運(yùn)算符有<、<=、>、>=、=和<>。

3. from子句

from子句本身定義了子句中關(guān)系的笛卡爾積。由于自然連接是用笛卡爾積、選擇和投影來(lái)定義的,因此為自然連接寫(xiě)SQL表達(dá)式還是相對(duì)簡(jiǎn)單的。例如:

關(guān)系代數(shù)表達(dá)式:Πcustomer-name, loan-number(borrowerloan)對(duì)應(yīng)的SQL表達(dá)式如下所示:

select customer-name, borrower.loan-number

from borrower, loan

where borrower.loan-number = loan.loan-number

4. order by子句

用order by子句對(duì)查詢(xún)的結(jié)果進(jìn)行排序,具體的語(yǔ)法格式如下:order by 屬性名 [asc | desc][,屬性名 [asc | desc], ...]例如:

select * from loan

order by amount desc, loan-number

[1]  [2]  [3]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門(mén)公布的內(nèi)容為準(zhǔn)!

軟考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

!
咨詢(xún)?cè)诰€(xiàn)老師!