數據查詢詳解之軟考難點剖析[1]

數據庫系統工程師 責任編輯:gxjoicq 2008-05-09

添加老師微信

備考咨詢

加我微信

摘要:select-from-where一.基本結構在SQL語言中,只提供了一個動詞Select用來進行數據查詢操作,但這個動詞的參數十分復雜,且能嵌套使用,所以,考試時往往就考這個功能。其通用格式如下:Select[All|Distinct]<目標列表達式>[,<目標列表達式>]…From<表名或視圖名>[,<表名或視圖名>]…[Where<條件

select-from-where

一.基本結構

在SQL語言中,只提供了一個動詞Select用來進行數據查詢操作,但這個動詞的參數十分復雜,且能嵌套使用,所以,考試時往往就考這個功能。其通用格式如下:

Select[All|Distinct]<目標列表達式>[,<目標列表達式>]…

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

[Where<條件表達式>]

[Group by <列名1>[Having<條件表達式>]]

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

1.select子句

SQL查詢語句的結果也是一個關系,例如:

Select branch-name from loan

找出了關系loan中所有分支機構的名稱。

關系代數中基于關系是一個集合這樣的數學概念,因此,重復的元組不會在關系中出現。但在實踐當中,要刪除查詢結果中的重復元組是相當費時的!所以在商用數據庫產品中,允許在關系和SQL表達式的結果中出現重復元組。對于select子句,還需要特別注意以下事情:

⑴ 是否要去除結果中的重復元組可以選用all和distinct選項,例如:

select [all | distinct] branch-name from loan

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

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

select * from loan

⑶select子句中還可以出現算術表達式,這與關系代數中的廣義投影運算對應:

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

2. where子句

從一個例子開始,例如:

select loan-number from loan

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

這個SQL語句的含義是什么呢?請大家自己思考。

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

3. from子句

from子句本身定義了子句中關系的笛卡爾積。由于自然連接是用笛卡爾積、選擇和投影來定義的,因此為自然連接寫SQL表達式還是相對簡單的。例如:

關系代數表達式:Πcustomer-name, loan-number(borrowerloan)對應的SQL表達式如下所示:

select customer-name, borrower.loan-number

from borrower, loan

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

4. order by子句

用order by子句對查詢的結果進行排序,具體的語法格式如下:order by 屬性名 [asc | desc][,屬性名 [asc | desc], ...]例如:

select * from loan

order by amount desc, loan-number

[1]  [2]  [3]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

軟考備考資料免費領取

去領取

!
咨詢在線老師!