




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第五章數據庫的數據查詢技能目標在銷售管理系統數據庫中能根據按照指定的要求靈活、快速地查詢相關信息。SQLServer2005數據庫應用技術知識目標掌握SELECT語句語法格式;掌握最基本的查詢技術;掌握條件查詢技術;掌握多重條件查詢技術;掌握連接查詢技術;掌握嵌套查詢。SQLServer2005數據庫應用技術SELECT語句的語法格式SELECT<輸出列表>[INTO<新表名>]FROM數據源或視圖列表[WHERE<查詢條件表達式>][GROUPBY<分組表達式>[HAVING<過濾條件>]][ORDERBY<排序表達式>[ASC|DESC]][COMPUTE行聚合函數名(表達式)[,...n][BY表達式[,...n]]]
SQLServer2005數據庫應用技術SELECT語句各子句的功能(1)SELECT子句:指定查詢返回的列。(2)INTO子句:將檢索結果存儲到新表或視圖中。(3)FROM子句:用于指定查詢列所在的表和視圖。(4)WHERE子句:指定用于限制返回的行的搜索條件。(4)GROUPBY子句:指定用來放置輸出行的組。并且如果SELECT子句<SELECTLIST>中包含聚合函數,則計算每組的匯總值。(5)HAVING子句:指定組或聚合的搜索條件。HAVING通常與GROUPBY子句一起使用。(6)ORDERBY子句:指定結果集的排序。(7)COMPUTE字句:用于對結果集進行分組并對每一組數據進行匯總計算。SQLServer2005數據庫應用技術SELECT語句的執行方式SQLServer2005提供了查詢編輯器,用于編輯和運行查詢代碼。【例】查詢所有員工的信息。操作的具體步驟如下。(1)啟動SQLServerManagementStudio。(2)在【對象資源管理器】中,單擊工具欄的【新建查詢】按鈕,打開查詢編輯器。(3)在查詢編輯器中,輸入如下代碼。SELECT*FROMemployee(4)單擊【工具欄】的按鈕,進行語法分析。在【結果】窗體中出現“命令已成功完成”的消息,表示當前的查詢語句沒有語法錯誤。(5)單擊按鈕,在當前數據庫中執行查詢語句。SQLServer2005數據庫應用技術簡單查詢-SELECT子句1、查詢所有的列(使用*)【例】從商品表中查詢所有商品的信息。2、查詢指定的列【例】從客戶表中檢索所有客戶的公司名稱、聯系人姓名和地址。3、使用TOP關鍵字限制返回行數【例】檢索客戶表中前5位客戶的公司名稱、聯系人姓名和地址。4、使用DISTINCT關鍵字過濾重復行【例】從員工表中查詢所有員工的部門信息,并消去重復記錄。SQLServer2005數據庫應用技術簡單查詢-SELECT子句(續)5、更改列標題方法:采用“列標題=列名”的格式采用“列名列標題”的格式采用“列名as列標題”的格式【例】查詢每個員工的姓名和性別,并在每人的姓名標題上顯示“員工姓名”。【練習】使用其他兩種方法SQLServer2005數據庫應用技術簡單查詢-SELECT子句(續)6、使用計算列【例】查詢所有員工的工資在提高10%后信息,將提高后的工資列標題為“提高后工資”。SQLServer2005數據庫應用技術簡單查詢-INTO子句INTO子句用于將查詢的結果插入新表中,其語法格式如下。INTO新表名【例】使用INTO子句創建一個包含員工姓名和工資,并命名為new_employee的新表。USECompanySalesGOSELECTEmployeeName,SalaryINTOnew_employeeFROMemployeeGOSQLServer2005數據庫應用技術簡單查詢-WHERE子句使用WHERE子句的目的是為了從表格的數據集中過濾出符合條件的行。其語法格式如下:SELECT<輸出列表>[INTO<新表名>]FROM<數據源列表>[WHERE<查詢條件表達式>SQLServer2005數據庫應用技術簡單查詢-WHERE子句(續)1、使用算術表達式比較運算符包含多個,例如>、<、>=、>、!=、!>等,其中<>、!=均表示不等于,!>表示不大于。【例】查詢員工“蔡慧敏”的工資。【例】在CompanySales數據庫的員工表(employee)中,查詢工資大于3000元的員工信息2、使用邏輯表達式
表達式AND或OR表達式或:NOT表達式【例】在CompanySales數據庫的員工表(employee)中,查詢工資在3400元以下的女性員工姓名和工資信息。SQLServer2005數據庫應用技術3、使用搜索范圍運算符使用關鍵字Between…and,即查詢介于兩個值之間的記錄信息。語法格式如下:列名Between【NotBetween】起始值And終止值4、使用IN關鍵字IN關鍵字給出表達式的取值范圍。如果字段取值等于列表中某個取值,則運算結果為TRUE,否則運算結果為FALSE,并顯示相應的記錄。語法:列名[NOT]IN(值1,值2,…值n)【例】在CompanySales數據庫的銷售訂單表(Sell_order)中,查詢員工編號為1、5和7的員工接受訂單信息。SQLServer2005數據庫應用技術簡單查詢-WHERE子句(續)5、使用模糊匹配LIKE子句格式如下:列名[NOT]LIKE<模式字符串>
通配符:%_(下劃線)【例】找出所有姓“章”的員工信息。【例】找出所有不姓“李”的員工信息。6、空或非空性空和非空的判斷準則是ISNULL和ISNOTNULL。【例】在銷售管理數據庫中,查找目前有哪些主管位置是為不空。SQLServer2005數據庫應用技術簡單查詢-ORDERBY子句通常查詢結果集中的記錄的顯示順序是它們在表中的順序,但有時候用戶希望按照表中某個字段的升序或者降序顯示。語法格式:ORDERBY列名1[ASC|DESC][,列名2[ASC|DESC][,…n]]【例】按工資降序顯示員工的姓名和工資,工資相同時按姓名升序排序。USECompanySalesGOSELECT*FROMemployeeSQLServer2005數據庫應用技術使用聚合函數AVG函數SUM函數MAX函數MIN函數COUNT函數SQLServer2005數據庫應用技術使用聚合函數(續)1.求和函數SUM與求平均值函數AVG 它們只能用于數值型字段,而且忽略列值為NULL的記錄。2.最大值函數MAX與最小值函數MIN 忽略列值為NULL的記錄,列表達式中的列可以是任何可排序的類型。3.計數函數COUNT 用于統計查詢結果集中記錄的個數,“*”用于統計所有記錄的個數,ALL用于統計指定列的列值非空的記錄個數,DISTINCT用于統計指定列的列值非空且不重復的記錄個數。默認值為ALL。SQLServer2005數據庫應用技術簡單查詢-GROUPBY子句如果需要按某一列數據的值進行分類,在分類的基礎上再進行查詢,就要使用GROUPBY子句,它的語法格式如下。GROUPBY<組合表達式>【例】查詢男女員工的平均工資。【例】在銷售表Sell_Order表中,統計目前各種商品的訂單總數。SQLServer2005數據庫應用技術簡單查詢-HAVING子句HAVING子句指定組或聚合的搜索條件。HAVING只能與SELECT語句一起使用。HAVING通常在GROUPBY子句中使用。HAVING條件表達式選項,則表示對生成的組進行篩選后,再對每組進行匯總計算。如果不使用GROUPBY子句,則HAVING的行為與WHERE子句一樣,它的語法格式如下。HAVING搜索條件【例】在銷售表Sell_Order表中,查詢目前訂單總數超過1000的商品訂單信息。SQLServer2005數據庫應用技術簡單查詢-COMPUTE子句COMPUTE子句可以用于SELECT語句既查看明細行,又查看匯總行。可以計算分組的匯總值,也可以計算整個結果集的匯總值。語法格式如下。COMPUTE{聚合函數名(列名)}[,…N][BY表達式[,…N]【例】查詢員工表employee中部門編號為1的各員工工資信息,并計算平均工資。【例】對employee表中部門編號為1或2的員工工資,按照其部門編號生成分組匯總行和明細行?SQLServer2005數據庫應用技術連接查詢連接的類型分為內連接、外連接和交叉連接。連接的格式有兩種如下。格式一:SELECT<輸出列表>FROM<表1><連接類型><表2>[ON(<連接條件>)]格式二:SELECT<輸出列表>FROM<表1>,<表2>[WHERE<表1>.<列名><連接操作符><表2>.<列名>]SQLServer2005數據庫應用技術交叉連接交叉連接又稱笛卡兒積,返回兩個表的乘積。例:表A有10行數據,表B有20行數據,那么表A和表B交叉連接的結果記錄集有400行(10×20)數據。交叉連接使用CROSSJOIN關鍵字來創建。說明:交叉連接只是用于測試一個數據庫的執行效率,在實際應用中是無意義的?交叉連接的使用是比較少的,交叉連接不需要連接條件。SQLServer2005數據庫應用技術交叉連接(續)【例】查詢員工表與部門表的所有組合。USECompanySalesGOSELECTemployee.*,department.*FROMemployeeCROSSJOINdepartmentGOSQLServer2005數據庫應用技術內連接內連接把兩個表中的數據,通過相同的列,連接生成第3個表,僅包含那些滿足連接條件的數據行。內連接分為等值連接、非等值連接和自然連接。【例】查詢已訂購了商品客戶的公司名稱,聯系人姓名和所訂商品編號和訂購數量。【例】查詢“國皓科技有限公司”的訂單信息說明:在多表查詢中,Select子句或Where子句中的列名前都加上了表名作為前綴,這樣可避免來自不同表中相同屬性名發生混淆。SQLServer2005數據庫應用技術外連接分類:左外連接、右外連接和全外連接。左向外連接:只包括左表的所有行,不包括右表的不匹配行的外連接;右向外連接:只包括右表的所有行,不包括左表的不匹配行的外連接。完整外部連接:既包括左表不匹配的行,也包括右表的不匹配的行的連接SQLServer2005數據庫應用技術左外連接語法如下:SELECT<選擇列表>FROM左表名LEFT[OUTER]JOIN右表名ON連接條件【例】查詢是否所有的員工均接受了銷售訂單,包括員工的姓名和訂單信息。SELECTemployee.employeename,sell_order.*FROMemployeeLEFTJOINsell_orderonemployee.employeeID=sell_order.employeeIDSQLServer2005數據庫應用技術右外連接右外連接的語法如下。SELECT<選擇列表>FROM左表名RIGHT[OUTER]JOIN右表名ON連接條件包括右表(出現在JOIN子句的最右邊)中的所有行。不包括左表中的不匹配行。【例】查詢是否所有的供應商提供的商品情況。USECompanySalesGOSELECTPurchase_order.*,viderNameFROMPurchase_orderRIGHTJOINprovideronPurchase_viderID=viderIDGOSQLServer2005數據庫應用技術全外連接全外連接的語法如下。SELECT<選擇列表>FROM左表名FULL[OUTER]JOIN右表名ON連接條件包括所有連接表中的所有記錄,不論它們是否匹配。【例】使用全外連接查詢客戶和商品的訂購信息,包括客戶名稱、聯系人姓名、訂購的商品名稱、訂購的數量和訂購日期。SQLServer2005數據庫應用技術嵌套查詢在SQL中,將一條SELECT語句作為另一條SELECT語句的一部分稱為嵌套查詢。外層的SELECT語句被稱為外部查詢或父查詢,內層的SELECT語句成為內部查詢或子查詢。嵌套查詢如下。SELECT<語句>/*外層查詢或父查詢*/FROM<語句>WHERE<表達式>IN
(SELECT<語句>/*內層查詢或子查詢*/FROM<語句>WHERE<條件>)SQLServer2005數據庫應用技術單值嵌套單值嵌套就是通過子查詢返回一個單一的數據。當子查詢返回的是單值,可以使用>,<,=,<=,>=,!=或<>等比較運算符參加相關表達式的運算。SQLServer2005數據庫應用技術單值嵌套(續)【例】查找員工“姚安娜”所在的部門名稱。步驟1:查詢員工“姚安娜”所在的部門編號,查詢語句如下。SELECTdepartmentIDFROMemployeeWHEREemployeeName='姚安娜'得到的結果為3步驟2:查詢部門編號為3的部門名稱。SELECTdepartmentNameFROMdepartmentWHEREdepartmentID=3得到結果為“人事部”。組合:SELECTdepartmentName部門名稱FROMdepartmentWHEREdepartmentID=(SELECTdepartmentIDFROMemployeeWHEREemployeeName='姚安娜')SQLServer2005數據庫應用技術單值嵌套(續)【例】查找年齡最小的員工姓名、性別和工資。USECompanySalesGOSELECTemployeeName姓名,sex性別,BirthDate出生年月,salary工資FROMemployeeWHEREBirthDate=(SELECTMAX(BirthDate)FROMemployee)GOSQLServer2005數據庫應用技術多值嵌套子查詢的返回結果是一列值的嵌套查詢稱為多值嵌套查詢。多值嵌套查詢經常使用IN操作符。IN操作符使用的格式如下。<表達式>[NOT]IN(子查詢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車位銷售贈品合同協議
- 輔導機構教師合同協議
- 配合過戶補償協議書范本
- 《課堂的智慧交鋒》課件
- 五四青年團日活動策劃方案
- 物業代繳協議書
- 軟件無償借用合同協議
- 道路黑化工程合同協議
- 農村生態環境保護與農業發展協同協議
- 車隊用工協議書范本
- 教職工工作調動申請表
- 學校體育學(第三版)ppt全套教學課件
- Alltech 2000型蒸發光散射檢測器解決HPLC檢測難題
- 休學家長安全承諾書
- JJF 1343-2022 標準物質的定值及均勻性、穩定性評估
- 水文學習題和答案解析
- 高效課堂新授課評價量化表
- 信和SDS2MS使用說明書
- 維修手冊震旦218現場
- 畫法幾何與陰影透視復習題(DOC)
- 螺旋密封的設計及在流體機械中的應用
評論
0/150
提交評論