版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章 數(shù)據(jù)查詢利器——SELECT命令在Transact-SQL語言中,SELECT是最常用的查詢語句,也是功能最強(qiáng)大的Transact-SQL語句,在SQLServer中對數(shù)據(jù)庫信息的任何查詢操作都最終將翻譯成
SELECT命令提交給數(shù)據(jù)庫服務(wù)器,SQL
Server將查詢結(jié)果返回給客戶端。本章將介紹SELECT語句的方方面面,本章用到的數(shù)據(jù)庫主要是SQL
Server
2008系統(tǒng)示例數(shù)據(jù)庫
AdventureWorks。5.1 執(zhí)行SELECT命令的工具在SQLServer2008中,運(yùn)行SELECT語句的工具有基于文本的查詢設(shè)計器和圖形查詢設(shè)計器。在前面章節(jié)已經(jīng)涉及到了數(shù)據(jù)庫引擎查詢編輯器的使用,本小節(jié)主要學(xué)習(xí)如何在SQLServer
Management
Studio中使用基于文本的查詢編輯器和圖形查詢設(shè)計器檢索數(shù)據(jù)。5.1.1
使用基于文本的查詢設(shè)計器使用基于文本的查詢設(shè)計器檢索數(shù)據(jù)的具體操作步驟如下:單擊“開始|所有程序|Microsoft
SQL
Server
2008
R2|SQL
ServerManagementStudio”命令,啟動SQL
Server
Management
Studio工具。在“連接到服務(wù)器”對話框中,在服務(wù)器類型下拉列表選擇“數(shù)據(jù)庫引擎”,選擇正確的服務(wù)器名稱和身份驗(yàn)證類型,單擊“連接”按鈕。打開SQL
Server
Management
Studio主界面。從“文件”菜單或工具欄中的
“新建查詢”和“數(shù)據(jù)庫引擎查詢”按鈕,打開基于文本的查詢設(shè)計器窗口。當(dāng)在基于文本的查詢設(shè)計器對話框中編寫如下SELECT查詢語句并執(zhí)行查詢后,數(shù)據(jù)庫引擎查詢窗口。5.1.2
使用圖形查詢設(shè)計器圖形查詢設(shè)計器可以幫助創(chuàng)建和維護(hù)應(yīng)用程序的數(shù)據(jù)檢索和數(shù)據(jù)操作部分。圖形查詢設(shè)計器由四個窗格組成:“關(guān)系圖”窗格、“條件”窗格、“SQL”窗格和“結(jié)果”窗格。5.2
簡單數(shù)據(jù)查詢SELECT命令非常接近于自然語言,只需要知道要從“什么地方(數(shù)據(jù)表)”查詢“什么數(shù)據(jù)(字段)”,具體語法格式如下:Select [字段名1],[字段名2],[…n][From
表名]5.3
TOP關(guān)鍵字當(dāng)一個數(shù)據(jù)表中的數(shù)據(jù)量非常大時,讀者可能并不關(guān)心所有的數(shù)據(jù),而只希望查看前10條或
100條記錄,這時可以使用TOP關(guān)鍵字。語法格式如下:Select [TOP
n]
[PERCENT]
column_name[
,
…
n][From
table_name]5.4
ROWCOUNT關(guān)鍵字在使用TOP的時候必須寫明返回行的數(shù)量或者百分比,不能使用變量或者表達(dá)式代替TOP后面的數(shù)字或者百分比,限定返回行數(shù)的另外的一個辦法就是使用ROWCOUNT全局變量。在示例9的寫法還可以轉(zhuǎn)換為示例10。5.5
DISTINCT關(guān)鍵字DISTINCT關(guān)鍵字用于從SELECT
語句的結(jié)果集中除去重復(fù)的行。如果沒有指定DISTINCT,那么將返回所有行,包括重復(fù)的行。查詢AdventureWorks數(shù)據(jù)庫地址信息表Address中所有的城市(City)名稱。使用DISTINCT關(guān)鍵字。5.6 WHERE子句在查詢數(shù)據(jù)時,大多不是想瀏覽所有數(shù)據(jù),而是檢索符合某種特定條件的值,可以使用WHERE子句來設(shè)置條件。語法格式如下:SELECT
字段名
[
,
…
n][FROM
表名][WHERE
條件]5.6.1 在WHERE子句中使用比較運(yùn)算符查詢AdventureWorks數(shù)據(jù)庫中聯(lián)系人表Conact中名字為Abby的全部聯(lián)系人的信息5.6.2 在WHERE子句中使用邏輯運(yùn)算符查詢AdventureWorks數(shù)據(jù)庫中聯(lián)系人表
Conact中FirstName為Abby或者James的全部聯(lián)系人的信息。5.6.3 BETWEEN…AND結(jié)構(gòu)BETWEEN…AND表示選取值在兩個數(shù)值之間的數(shù)據(jù)。語法格式為:字段名或者表達(dá)式[NOT]BETWEEN
表達(dá)式1
AND
表達(dá)式25.6.4
IN關(guān)鍵字IN/NOT
IN表示根據(jù)表達(dá)式是包含在指定范圍內(nèi)還是在指定范圍外,指定對表達(dá)式的搜索。搜索表達(dá)式可以是常量或列名,而列表可以是一組常量或更多情況下是子查詢。將值列表放在圓括號內(nèi)。語法格式如下:表達(dá)式或者字段名[NOT]IN
(列表或者子查詢)代碼說明:表達(dá)式或者字段名的數(shù)據(jù)類型與列表或者子查詢相同。5.6.5
LIKE關(guān)鍵字LIKE用于模糊查詢,當(dāng)不能精確知道查詢條件時,當(dāng)使用LIKE進(jìn)行字符串比較時,模式字符串中的所有字符都有意義,包括起始或尾隨空格。如果查詢中的比較要返回包含"abc"(abc
后有一個空格)的所有行,則將不會返回包含"abc"(abc
后沒有空格)的列所在
行。和LIKE結(jié)合使用的4種通配符是%、_、[]、[^],它們必須與LIKE結(jié)合使用才有意義,否則被當(dāng)作普通字符使用。5.6.6 EXISTS關(guān)鍵字EXISTS關(guān)鍵字用于指定一個子查詢,檢測行的存在。也就是說如果EXISTS關(guān)鍵字指定的子查詢查得的結(jié)果集不為空,則執(zhí)行主體的
SELECT查詢,否則返回結(jié)果集為空。5.7
設(shè)置查詢字段的顯示名稱如果不想在查詢時顯示字段的原始字段名,而是根據(jù)需要或者個人愛好顯示自定義的名稱,有3種方式可以使用:使用as關(guān)鍵字;使用“=”號;直接給出名稱。5.8
使用統(tǒng)計函數(shù)在實(shí)際應(yīng)用中,SQLServer程序員可能被要求給出數(shù)據(jù)表中的記錄數(shù)、一筆訂單最大的訂單金額、某一商品的最低價格等等,這時統(tǒng)計函數(shù)就變得必不可少了,
SQL
Server中常見的統(tǒng)計函數(shù)有以下幾個:Sum():返回在某一集合上對數(shù)值表達(dá)式求得的總和。
Avg():返回在某一集合上對數(shù)值表達(dá)式求得的平均數(shù)。
Max():返回在某一集合上數(shù)值表達(dá)式中的最大值。
Min():返回在某一集合上數(shù)值表達(dá)式中的最小值。
Count():返回符合條件的記錄數(shù)。5.9 GROUP
BY子句和HAVING關(guān)鍵字有時老板可能只會對某類產(chǎn)品的總體信息感興趣,比如想知道數(shù)碼相機(jī)、普通相機(jī)分別的銷售情況,這時就要求能夠?qū)?shù)據(jù)進(jìn)行分類查詢,在SQL
Server中GROUP
BY子句用來對數(shù)據(jù)進(jìn)行分組,HAVING關(guān)鍵字用來對分組的數(shù)據(jù)設(shè)置條件。其語法格式如下:[GROUP
BY
表達(dá)式][HAVING
表達(dá)式]5.10 ALL關(guān)鍵字Transact-SQL在GROUPBY子句中提供ALL關(guān)鍵字。只有在SELECT語句還包括WHERE子句時,ALL關(guān)鍵字才有意義。如果使用ALL關(guān)鍵字,那么查詢結(jié)果將包括由
GROUPBY子句產(chǎn)生的所有組,即使某些組沒有符合搜索條件的行。沒有ALL關(guān)鍵字,包含GROUPBY子句的SELECT語句將不顯示沒有符合條件的行的組。5.11 ORDER
BY子句orderby子句用于對查詢結(jié)果進(jìn)行排序,比如對查詢的書籍按價格進(jìn)行排序。語法格式如下:[ORDER
BY{order_by_字段名[ASC
|
DESC]}[
,...n
]
]5.12
多表查詢有時我們想要查詢的數(shù)據(jù)可能存在于多個數(shù)據(jù)表中,例如我們要檢索學(xué)生的姓名和成績,就要需要訪問學(xué)生表和成績表,并將這兩個表中的相關(guān)信息組合到一起。語法格式如下:Select
表名.字段名[,...n]From
t表名[,...n]5.13 UNION表達(dá)式UNION運(yùn)算符可以將兩個或多個SELECT語句的查詢結(jié)果組合到一起,仿佛它們來自同一個數(shù)據(jù)表。使用UNION組合的結(jié)果集都必須具有相同的字段結(jié)構(gòu)。而且它們的字段數(shù)必須相等,并且相應(yīng)的字段的數(shù)據(jù)類型必須兼容。語法格式如下:select_statement
UNION
[ALL]select_statement5.14 CASE表達(dá)式CASE命令是一個特殊的Transact-SQL表達(dá)式,它允許按字段值動態(tài)指定顯式值。不過數(shù)據(jù)中的字段值更改是臨時的,并沒有對數(shù)據(jù)進(jìn)行永久更改。CASE
表達(dá)式有兩種格式:
CASE簡單表達(dá)式,它通過將表達(dá)式與一組簡單的表達(dá)式進(jìn)行比較來確定結(jié)果;CASE搜索表達(dá)式,它通過計算一組布爾表達(dá)式來確定結(jié)果。這兩種格式都支持可選的ELSE
參數(shù)。5.15 INNER
JOIN
…ON
…表達(dá)式INNERJOIN…ON…稱為內(nèi)連接,它查詢字段值與連接條件匹配的數(shù)據(jù)行,在功能上基本等同于兩表聯(lián)合查詢的WHERE…=…。語法格式如下:FROM
表名1 INNER
JOIN
表名2
on
表達(dá)式5.16
本章小結(jié)本章講述了Select命令中讀者會經(jīng)常用到以及可能用到的功能,
相信讀者已經(jīng)從中發(fā)現(xiàn)Select的神奇之處,本章的大部分講的都
是單表的查詢,其實(shí)這部分的技術(shù)也可以應(yīng)用到多表組合查詢中?,F(xiàn)在讀者也應(yīng)該相信Transact-SQL語言是多么地接近自然語言了吧,或許讀者又會因此而擔(dān)心它的執(zhí)行效率,完全不必,因?yàn)?/p>
Transact-SQL語言是一種描述性的語言,讀者只需要把自己的需求使用T-SQL進(jìn)行描述,把執(zhí)行放心地交給查詢優(yōu)化器吧,盡管讀者可能還不曾見到過它,它會保證讀者的查詢效率。5.17
本章習(xí)題(1)熟練掌握數(shù)據(jù)庫引擎查詢編輯器的操作,請將SQL編輯器和查詢設(shè)計器的工具欄顯示出來。(2)請編寫Transact-SQL,查詢AdventureWorks數(shù)據(jù)庫Em
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)灌溉水電設(shè)施管理與維護(hù)規(guī)定
- 焊接作業(yè)環(huán)境適應(yīng)性分析與改善策略
- 高一化學(xué)教案:專題第二單元第一課時乙醇
- 2024屆南安市中考化學(xué)對點(diǎn)突破模擬試卷含解析
- 2024高中化學(xué)第五章進(jìn)入合成有機(jī)高分子化合物的時代3功能高分子材料課時作業(yè)含解析新人教版選修5
- 2024高中地理課時作業(yè)6流域的綜合開發(fā)-以美國田納西河流域?yàn)槔馕鲂氯私贪姹匦?
- 2024高中語文開學(xué)第一課學(xué)生觀后感范文700字少年強(qiáng)中國強(qiáng)素材
- 2024高中語文第二單元置身詩境緣景明情賞析示例春江花月夜學(xué)案新人教版選修中國古代詩歌散文欣賞
- 2024高中語文精讀課文一第1課3侍奉皇帝與走向人民作業(yè)含解析新人教版選修中外傳記蚜
- 2024高考化學(xué)一輪復(fù)習(xí)第十章化學(xué)實(shí)驗(yàn)基礎(chǔ)第一講化學(xué)實(shí)驗(yàn)常用儀器和基本操作規(guī)范演練含解析新人教版
- 2024年突發(fā)事件新聞發(fā)布與輿論引導(dǎo)合同
- 地方政府信訪人員穩(wěn)控實(shí)施方案
- 小紅書推廣合同范例
- 商業(yè)咨詢報告范文模板
- AQ 6111-2023個體防護(hù)裝備安全管理規(guī)范知識培訓(xùn)
- 老干工作業(yè)務(wù)培訓(xùn)
- 基底節(jié)腦出血護(hù)理查房
- 高中語文《勸學(xué)》課件三套
- 人教版八年級物理-第二章:聲現(xiàn)象復(fù)習(xí)完整課件
- 直播代運(yùn)營服務(wù)合同范本版
- 2024年江蘇蘇州中考數(shù)學(xué)試卷及答案
評論
0/150
提交評論