




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第五章數(shù)據(jù)庫的數(shù)據(jù)查詢技能目標在銷售管理系統(tǒng)數(shù)據(jù)庫中能根據(jù)按照指定的要求靈活、快速地查詢相關(guān)信息。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)知識目標掌握SELECT語句語法格式;掌握最基本的查詢技術(shù);掌握條件查詢技術(shù);掌握多重條件查詢技術(shù);掌握連接查詢技術(shù);掌握嵌套查詢。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)SELECT語句的語法格式SELECT<輸出列表>[INTO<新表名>]FROM數(shù)據(jù)源或視圖列表[WHERE<查詢條件表達式>][GROUPBY<分組表達式>[HAVING<過濾條件>]][ORDERBY<排序表達式>[ASC|DESC]][COMPUTE行聚合函數(shù)名(表達式)[,...n][BY表達式[,...n]]]
SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)SELECT語句各子句的功能(1)SELECT子句:指定查詢返回的列。(2)INTO子句:將檢索結(jié)果存儲到新表或視圖中。(3)FROM子句:用于指定查詢列所在的表和視圖。(4)WHERE子句:指定用于限制返回的行的搜索條件。(4)GROUPBY子句:指定用來放置輸出行的組。并且如果SELECT子句<SELECTLIST>中包含聚合函數(shù),則計算每組的匯總值。(5)HAVING子句:指定組或聚合的搜索條件。HAVING通常與GROUPBY子句一起使用。(6)ORDERBY子句:指定結(jié)果集的排序。(7)COMPUTE字句:用于對結(jié)果集進行分組并對每一組數(shù)據(jù)進行匯總計算。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)SELECT語句的執(zhí)行方式SQLServer2005提供了查詢編輯器,用于編輯和運行查詢代碼?!纠坎樵兯袉T工的信息。操作的具體步驟如下。(1)啟動SQLServerManagementStudio。(2)在【對象資源管理器】中,單擊工具欄的【新建查詢】按鈕,打開查詢編輯器。(3)在查詢編輯器中,輸入如下代碼。SELECT*FROMemployee(4)單擊【工具欄】的按鈕,進行語法分析。在【結(jié)果】窗體中出現(xiàn)“命令已成功完成”的消息,表示當(dāng)前的查詢語句沒有語法錯誤。(5)單擊按鈕,在當(dāng)前數(shù)據(jù)庫中執(zhí)行查詢語句。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-SELECT子句1、查詢所有的列(使用*)【例】從商品表中查詢所有商品的信息。2、查詢指定的列【例】從客戶表中檢索所有客戶的公司名稱、聯(lián)系人姓名和地址。3、使用TOP關(guān)鍵字限制返回行數(shù)【例】檢索客戶表中前5位客戶的公司名稱、聯(lián)系人姓名和地址。4、使用DISTINCT關(guān)鍵字過濾重復(fù)行【例】從員工表中查詢所有員工的部門信息,并消去重復(fù)記錄。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-SELECT子句(續(xù))5、更改列標題方法:采用“列標題=列名”的格式采用“列名列標題”的格式采用“列名as列標題”的格式【例】查詢每個員工的姓名和性別,并在每人的姓名標題上顯示“員工姓名”。【練習(xí)】使用其他兩種方法SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-SELECT子句(續(xù))6、使用計算列【例】查詢所有員工的工資在提高10%后信息,將提高后的工資列標題為“提高后工資”。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-INTO子句INTO子句用于將查詢的結(jié)果插入新表中,其語法格式如下。INTO新表名【例】使用INTO子句創(chuàng)建一個包含員工姓名和工資,并命名為new_employee的新表。USECompanySalesGOSELECTEmployeeName,SalaryINTOnew_employeeFROMemployeeGOSQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-WHERE子句使用WHERE子句的目的是為了從表格的數(shù)據(jù)集中過濾出符合條件的行。其語法格式如下:SELECT<輸出列表>[INTO<新表名>]FROM<數(shù)據(jù)源列表>[WHERE<查詢條件表達式>SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-WHERE子句(續(xù))1、使用算術(shù)表達式比較運算符包含多個,例如>、<、>=、>、!=、!>等,其中<>、!=均表示不等于,!>表示不大于?!纠坎樵儐T工“蔡慧敏”的工資。【例】在CompanySales數(shù)據(jù)庫的員工表(employee)中,查詢工資大于3000元的員工信息2、使用邏輯表達式
表達式AND或OR表達式或:NOT表達式【例】在CompanySales數(shù)據(jù)庫的員工表(employee)中,查詢工資在3400元以下的女性員工姓名和工資信息。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)3、使用搜索范圍運算符使用關(guān)鍵字Between…and,即查詢介于兩個值之間的記錄信息。語法格式如下:列名Between【NotBetween】起始值A(chǔ)nd終止值4、使用IN關(guān)鍵字IN關(guān)鍵字給出表達式的取值范圍。如果字段取值等于列表中某個取值,則運算結(jié)果為TRUE,否則運算結(jié)果為FALSE,并顯示相應(yīng)的記錄。語法:列名[NOT]IN(值1,值2,…值n)【例】在CompanySales數(shù)據(jù)庫的銷售訂單表(Sell_order)中,查詢員工編號為1、5和7的員工接受訂單信息。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-WHERE子句(續(xù))5、使用模糊匹配LIKE子句格式如下:列名[NOT]LIKE<模式字符串>
通配符:%_(下劃線)【例】找出所有姓“章”的員工信息。【例】找出所有不姓“李”的員工信息。6、空或非空性空和非空的判斷準則是ISNULL和ISNOTNULL?!纠吭阡N售管理數(shù)據(jù)庫中,查找目前有哪些主管位置是為不空。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-ORDERBY子句通常查詢結(jié)果集中的記錄的顯示順序是它們在表中的順序,但有時候用戶希望按照表中某個字段的升序或者降序顯示。語法格式:ORDERBY列名1[ASC|DESC][,列名2[ASC|DESC][,…n]]【例】按工資降序顯示員工的姓名和工資,工資相同時按姓名升序排序。USECompanySalesGOSELECT*FROMemployeeSQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)使用聚合函數(shù)AVG函數(shù)SUM函數(shù)MAX函數(shù)MIN函數(shù)COUNT函數(shù)SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)使用聚合函數(shù)(續(xù))1.求和函數(shù)SUM與求平均值函數(shù)AVG 它們只能用于數(shù)值型字段,而且忽略列值為NULL的記錄。2.最大值函數(shù)MAX與最小值函數(shù)MIN 忽略列值為NULL的記錄,列表達式中的列可以是任何可排序的類型。3.計數(shù)函數(shù)COUNT 用于統(tǒng)計查詢結(jié)果集中記錄的個數(shù),“*”用于統(tǒng)計所有記錄的個數(shù),ALL用于統(tǒng)計指定列的列值非空的記錄個數(shù),DISTINCT用于統(tǒng)計指定列的列值非空且不重復(fù)的記錄個數(shù)。默認值為ALL。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-GROUPBY子句如果需要按某一列數(shù)據(jù)的值進行分類,在分類的基礎(chǔ)上再進行查詢,就要使用GROUPBY子句,它的語法格式如下。GROUPBY<組合表達式>【例】查詢男女員工的平均工資?!纠吭阡N售表Sell_Order表中,統(tǒng)計目前各種商品的訂單總數(shù)。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-HAVING子句HAVING子句指定組或聚合的搜索條件。HAVING只能與SELECT語句一起使用。HAVING通常在GROUPBY子句中使用。HAVING條件表達式選項,則表示對生成的組進行篩選后,再對每組進行匯總計算。如果不使用GROUPBY子句,則HAVING的行為與WHERE子句一樣,它的語法格式如下。HAVING搜索條件【例】在銷售表Sell_Order表中,查詢目前訂單總數(shù)超過1000的商品訂單信息。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)簡單查詢-COMPUTE子句COMPUTE子句可以用于SELECT語句既查看明細行,又查看匯總行??梢杂嬎惴纸M的匯總值,也可以計算整個結(jié)果集的匯總值。語法格式如下。COMPUTE{聚合函數(shù)名(列名)}[,…N][BY表達式[,…N]【例】查詢員工表employee中部門編號為1的各員工工資信息,并計算平均工資。【例】對employee表中部門編號為1或2的員工工資,按照其部門編號生成分組匯總行和明細行?SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)連接查詢連接的類型分為內(nèi)連接、外連接和交叉連接。連接的格式有兩種如下。格式一:SELECT<輸出列表>FROM<表1><連接類型><表2>[ON(<連接條件>)]格式二:SELECT<輸出列表>FROM<表1>,<表2>[WHERE<表1>.<列名><連接操作符><表2>.<列名>]SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)交叉連接交叉連接又稱笛卡兒積,返回兩個表的乘積。例:表A有10行數(shù)據(jù),表B有20行數(shù)據(jù),那么表A和表B交叉連接的結(jié)果記錄集有400行(10×20)數(shù)據(jù)。交叉連接使用CROSSJOIN關(guān)鍵字來創(chuàng)建。說明:交叉連接只是用于測試一個數(shù)據(jù)庫的執(zhí)行效率,在實際應(yīng)用中是無意義的?交叉連接的使用是比較少的,交叉連接不需要連接條件。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)交叉連接(續(xù))【例】查詢員工表與部門表的所有組合。USECompanySalesGOSELECTemployee.*,department.*FROMemployeeCROSSJOINdepartmentGOSQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)內(nèi)連接內(nèi)連接把兩個表中的數(shù)據(jù),通過相同的列,連接生成第3個表,僅包含那些滿足連接條件的數(shù)據(jù)行。內(nèi)連接分為等值連接、非等值連接和自然連接。【例】查詢已訂購了商品客戶的公司名稱,聯(lián)系人姓名和所訂商品編號和訂購數(shù)量?!纠坎樵儭皣┛萍加邢薰尽钡挠唵涡畔⒄f明:在多表查詢中,Select子句或Where子句中的列名前都加上了表名作為前綴,這樣可避免來自不同表中相同屬性名發(fā)生混淆。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)外連接分類:左外連接、右外連接和全外連接。左向外連接:只包括左表的所有行,不包括右表的不匹配行的外連接;右向外連接:只包括右表的所有行,不包括左表的不匹配行的外連接。完整外部連接:既包括左表不匹配的行,也包括右表的不匹配的行的連接SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)左外連接語法如下:SELECT<選擇列表>FROM左表名LEFT[OUTER]JOIN右表名ON連接條件【例】查詢是否所有的員工均接受了銷售訂單,包括員工的姓名和訂單信息。SELECTemployee.employeename,sell_order.*FROMemployeeLEFTJOINsell_orderonemployee.employeeID=sell_order.employeeIDSQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)右外連接右外連接的語法如下。SELECT<選擇列表>FROM左表名RIGHT[OUTER]JOIN右表名ON連接條件包括右表(出現(xiàn)在JOIN子句的最右邊)中的所有行。不包括左表中的不匹配行。【例】查詢是否所有的供應(yīng)商提供的商品情況。USECompanySalesGOSELECTPurchase_order.*,viderNameFROMPurchase_orderRIGHTJOINprovideronPurchase_viderID=viderIDGOSQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)全外連接全外連接的語法如下。SELECT<選擇列表>FROM左表名FULL[OUTER]JOIN右表名ON連接條件包括所有連接表中的所有記錄,不論它們是否匹配?!纠渴褂萌膺B接查詢客戶和商品的訂購信息,包括客戶名稱、聯(lián)系人姓名、訂購的商品名稱、訂購的數(shù)量和訂購日期。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)嵌套查詢在SQL中,將一條SELECT語句作為另一條SELECT語句的一部分稱為嵌套查詢。外層的SELECT語句被稱為外部查詢或父查詢,內(nèi)層的SELECT語句成為內(nèi)部查詢或子查詢。嵌套查詢?nèi)缦隆ELECT<語句>/*外層查詢或父查詢*/FROM<語句>WHERE<表達式>IN
(SELECT<語句>/*內(nèi)層查詢或子查詢*/FROM<語句>WHERE<條件>)SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)單值嵌套單值嵌套就是通過子查詢返回一個單一的數(shù)據(jù)。當(dāng)子查詢返回的是單值,可以使用>,<,=,<=,>=,!=或<>等比較運算符參加相關(guān)表達式的運算。SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)單值嵌套(續(xù))【例】查找員工“姚安娜”所在的部門名稱。步驟1:查詢員工“姚安娜”所在的部門編號,查詢語句如下。SELECTdepartmentIDFROMemployeeWHEREemployeeName='姚安娜'得到的結(jié)果為3步驟2:查詢部門編號為3的部門名稱。SELECTdepartmentNameFROMdepartmentWHEREdepartmentID=3得到結(jié)果為“人事部”。組合:SELECTdepartmentName部門名稱FROMdepartmentWHEREdepartmentID=(SELECTdepartmentIDFROMemployeeWHEREemployeeName='姚安娜')SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)單值嵌套(續(xù))【例】查找年齡最小的員工姓名、性別和工資。USECompanySalesGOSELECTemployeeName姓名,sex性別,BirthDate出生年月,salary工資FROMemployeeWHEREBirthDate=(SELECTMAX(BirthDate)FROMemployee)GOSQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)多值嵌套子查詢的返回結(jié)果是一列值的嵌套查詢稱為多值嵌套查詢。多值嵌套查詢經(jīng)常使用IN操作符。IN操作符使用的格式如下。<表達式>[NOT]IN(子查詢
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機課程培訓(xùn)
- 荒野行動電腦基礎(chǔ)知識
- 認真聽講小標兵主題班會
- 2024兒童福利機構(gòu)重大事故隱患判定標準專題培訓(xùn)課件
- 助產(chǎn)士溝通技巧-溝通注意事項
- 部門培訓(xùn)規(guī)劃安排
- 2025年多功能長壽無滴棚膜項目合作計劃書
- 2025年大功率多功能電子式電度表項目合作計劃書
- 2025年軌道車輛門系統(tǒng)項目建議書
- 脫肛中醫(yī)護理常規(guī)
- 不銹鋼容器制造通用標準工藝守則
- 照明燈具統(tǒng)計表
- 杭州市居住房屋出租安全管理若干規(guī)定
- 2022年江西工業(yè)貿(mào)易職業(yè)技術(shù)學(xué)院職業(yè)適應(yīng)性測試題庫及答案解析
- 給水排水管道工程質(zhì)量通病以及防治
- 計算機視覺全套課件
- 中國聯(lián)通IMS接口規(guī)范 第三分冊:Sh接口 V1.0
- protel完全教程(原理圖部分)
- 迎澤公園文化廣場歌詞匯集
- 環(huán)境化學(xué)物的毒性作用及其影響因素
- Q∕GDW 12176-2021 反竊電監(jiān)測終端技術(shù)規(guī)范
評論
0/150
提交評論