實(shí)驗(yàn)四 SQL結(jié)構(gòu)查詢語句的運(yùn)用.doc_第1頁
實(shí)驗(yàn)四 SQL結(jié)構(gòu)查詢語句的運(yùn)用.doc_第2頁
實(shí)驗(yàn)四 SQL結(jié)構(gòu)查詢語句的運(yùn)用.doc_第3頁
實(shí)驗(yàn)四 SQL結(jié)構(gòu)查詢語句的運(yùn)用.doc_第4頁
實(shí)驗(yàn)四 SQL結(jié)構(gòu)查詢語句的運(yùn)用.doc_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

實(shí)驗(yàn)四 SQL結(jié)構(gòu)查詢語句的運(yùn)用一、 實(shí)驗(yàn)?zāi)康模? 熟悉SQL的特點(diǎn)2 熟悉使用SELECT語句的格式及各參數(shù)選項(xiàng)3 熟練掌握簡單查詢4 熟練掌握連接查詢5 熟練掌握嵌套查詢二、實(shí)驗(yàn)內(nèi)容及步驟(一)SELECTSQL命令格式SELECT ALL | DISTINCT . AS ,.AS FROM FORCE ! INNER | LEFT OUTER | RIGHTOUTER | FULLOUTER JOIN ! ON INTO | TO FILE ADDITIVE | TO PRINT PROMPT | TO SCREEN PREFERENCE NOCONSOLEPLAINNOWAITWHERE AND AND | OR AND | OR GROUP BY ,組表達(dá)式HAVINGUNION ALL ORDER BY ASC | DESC,ASC | DESCTOP PERCENT說明:(1)ALL表示查詢出的記錄中包括重復(fù)記錄,這是缺省值;DISTINCT則表示查詢出的記錄中不包括重復(fù)記錄。(2) . AS :可以是字段名,也可以包括用戶自定義函數(shù)。是字段所在的表名,用于指定輸出時(shí)使用的列標(biāo)題,可以不同于字段名。(3)SELECT 表達(dá)式可用一個(gè)*號(hào)來表示,此時(shí)指定所有的字段。(4)FROM 子名及其選項(xiàng):用于指定查詢的表與聯(lián)接類型。(5)FORCE:嚴(yán)格按照指定的聯(lián)接條件來聯(lián)接表,避免VFP因進(jìn)行聯(lián)接優(yōu)化而降低查詢速度。(6) ! :對(duì)于非當(dāng)前數(shù)據(jù)庫,用“ ! ”來指定該數(shù)據(jù)庫中的表。是表的暫用名,取了本地名后,本命令中該表只可使用這個(gè)名字。(7)INNER | LEFT OUTER | RIGHTOUTER | FULLOUTER:指定兩表聯(lián)接時(shí)的聯(lián)接類型,聯(lián)接類型一共有四種。聯(lián)接類型意義Inner Join(內(nèi)部聯(lián)接)只有滿足聯(lián)接條件的記錄包含在結(jié)果中Left Outer Join(左聯(lián)接)左表某記錄與右表所有記錄比較字段值,若有滿足聯(lián)接條件的,則產(chǎn)生一個(gè)真實(shí)值記錄;若都不滿足,則產(chǎn)生一個(gè)含.NULL.值的記錄。直至左表所有記錄都比較完。Right Outer Join(右聯(lián)接)右表某記錄與左表所有記錄比較字段值,若有滿足聯(lián)接條件的,則產(chǎn)生一個(gè)真實(shí)值記錄;若都不滿足,則產(chǎn)生一個(gè)含.NULL.值的記錄。直至右表所有記錄都比較完。Full Join(完全聯(lián)接)先按右聯(lián)接比較字段值,再按左聯(lián)接比較字段值。不列入重復(fù)記錄。其中OUTER表示外部聯(lián)接,既允許滿足聯(lián)接條件的記錄,又允許不滿足聯(lián)接條件的記錄。(8)JOIN:用于聯(lián)接其左右兩個(gè)所指的表。(9)INTO :用于指定查詢結(jié)果的輸出去向,默認(rèn)查詢結(jié)果顯示在瀏覽窗口中。目標(biāo)有3種選項(xiàng)。目標(biāo)輸出形式ARRAY 查詢結(jié)果輸出到數(shù)組CURSOR查詢結(jié)果輸出到臨時(shí)表DBF查詢結(jié)果輸出到表(10)TO FILE ADDITIVE:輸出到指定的文本文件,并取代原文件內(nèi)容。ADDITIVE表示只添加新數(shù)據(jù),不清除原文件的內(nèi)容。(11) TO PRINT PROMPT:輸出到打印機(jī)。PROMPT表示打印前先顯示打印確認(rèn)框。(12)TO SCREEN :輸出到屏幕。(13)PREFERENCE:用于記載瀏覽窗口聽配置參數(shù),再次使用該子句時(shí)可用引用此配置。(14)NOCONSOLE:禁止將輸出送往屏幕。(15)PLAIN:輸出時(shí)省略字段名。(16)NOWAIT:顯示瀏覽窗口后程序繼續(xù)往下執(zhí)行。(17)WHERE:若已用ON子句指定了聯(lián)接條件,WHERE子句中只能指定篩選條件,表示在已按聯(lián)接條件產(chǎn)生的記錄中篩選記錄。也可以省去JOIN子名,一次性地在WHERE子句中指定聯(lián)接條件和篩選條件。(18)GROUP BY:對(duì)記錄按值分組,常用于分組統(tǒng)計(jì)。(19)HAVING:當(dāng)含有GROUP BY 子句時(shí),HAVING 子句可用作記錄查詢的限制條件;無GROUP BY子句時(shí)HAVING子句的用用如同WHERE子句。(20)UNION:在SELECT-SQL命令中可以用UNION子句嵌入另一個(gè)SELECT-SQL命令,使這兩個(gè)命令的查詢結(jié)果合并輸出,但輸出字段的類型和寬度必須一致。(21)ORDER BY:指定查詢結(jié)果中記錄按排序,默認(rèn)升序。只可以是字段,或表示查詢結(jié)果中列的位置的數(shù)字。選項(xiàng)ASC表示升序,DESC表示降序。(22)TOP PERCENT:TOP必須與ORDER BY 同時(shí)使用。表示在符合條件的記錄中選取的記錄數(shù),范圍132767,排序后并列的若干記錄只計(jì)一個(gè)。含PERCENT選項(xiàng)時(shí),表示百分比,記錄數(shù)為小數(shù)時(shí)自動(dòng)取整。(23)表達(dá)式是由如下運(yùn)符所組成的。查詢條件符號(hào)算術(shù)運(yùn)算符=,,=,!=,邏輯運(yùn)算符AND,OR,NOT集合成員判斷IN關(guān)系運(yùn)算UNION,INTERSECT,EXCEPT量詞EXISTS,ALL,SOME,UNIQUE庫函數(shù)AVG,MIN,MAX,SUM,COUNT字符匹配LIKE(二)查詢的具體使用:(舉例為上一節(jié)所建的訂貨管理數(shù)據(jù)庫中的表)表結(jié)構(gòu)及之間的聯(lián)系如下如示:倉庫倉庫號(hào)城市面積訂購單職工號(hào)供應(yīng)商號(hào)訂購單號(hào)訂購日期倉庫號(hào)職工號(hào)工資職工供應(yīng)商號(hào)供應(yīng)商名地址供應(yīng)商1 簡單查詢 (單表查詢)(1)無條件查詢:例1: 從倉庫表中查詢所的有城市。Select 城市 from 倉庫例2:查詢訂購單表中的所有記錄。Select * from 訂購單例3:從職工表中查詢所有的工資值,并將顯示出的字段更名為實(shí)發(fā)工資。Select 工資 as 實(shí)發(fā)工資 from 職工(2)有條件查詢例1:查詢哪些倉庫有工資多于1230元的職工。Select distinct 倉庫號(hào) from 職工 where 工資1230例2:查詢在北京的供應(yīng)名稱。SELECT 供應(yīng)商名 FROM 供應(yīng)商 WHERE 地址=北京例3:查詢在倉庫”WH1” 或”WH2”工作的,并且工資少于1250元的職工號(hào)。Select 職工號(hào) from 職工 where 工資1230) and (職工.倉庫號(hào)=倉庫.倉庫號(hào))例2:查詢向S4供應(yīng)商發(fā)出訂購單的倉庫所在的城市。SELECT DIST 城市 FROM 倉庫,職工,訂購單 WHERE 供應(yīng)商號(hào)=S4 AND 訂購單.職工號(hào)=職工.職工號(hào) AND 職工.倉庫號(hào)=倉庫.倉庫號(hào)例3:查詢工作在面積大于400的倉庫的職工號(hào)以及他們所在的城市。Select 職工號(hào),城市 from 倉庫,職工 where (面積400) and (職工.倉庫號(hào)=倉庫.倉庫號(hào))3.嵌套查詢(多表)例1:查詢哪些城市至少有一個(gè)倉庫的職工工資為1250元。Select 城市 from 倉庫 where 倉庫號(hào) in (select 倉庫號(hào) from 職工 where 工資=1250)例2:查詢向供應(yīng)商S3發(fā)出過訂購單的職工的職工號(hào)。SELECT 職工號(hào),倉庫號(hào) FROM 職工 WHERE 職工號(hào) IN (SELE 職工號(hào) FROM 訂購單 WHERE 供應(yīng)商號(hào)=S3)例3:查詢與職工E4掙同樣工資的所有職工。Select 職工號(hào) from 職工 where 工資=(select 工資 from 職工 where 職工號(hào)=E4)4.幾個(gè)特殊的運(yùn)算符例1:查詢工資在1220元到1240元范圍內(nèi)的職工信息。Select * from 職工 where 工資 between 1220 and 1240例2:從供應(yīng)商關(guān)系中查詢出供應(yīng)商名為公司的全部信息。Select * from 供應(yīng)商 where 供應(yīng)商名 like %公司例3:查詢地址不在北京的全部供應(yīng)商信息。Select * from 供應(yīng)商 where 地址!=北京5排序例1:按職工工資升序查詢?nèi)柯毠ば畔ⅰelect * from 職工 order by 工資例2:查詢?nèi)柯毠ば畔?,先按倉庫號(hào)排序,倉庫號(hào)相同的,再按工資降序排列。Select * from 職工 order by 倉庫號(hào),工資 desc6.簡單的計(jì)算查詢例1:從供應(yīng)商關(guān)系中,查詢供應(yīng)商所在地的數(shù)目。Select count(*) from 供應(yīng)商例2:查詢出所有倉庫的平均面積。SELECT AVG(面積) FROM 倉庫例3: 查詢北京和上海的倉庫職工的工資總和。Select sum(工資) from 職工 where 倉庫號(hào) in (select 倉庫號(hào) from 倉庫 where 城市=北京 or 城市=上海)例4:查詢在WH2倉庫工作的職工的最高工資值。Select max(工資) from 職工 where 倉庫號(hào)=WH2例5:查詢在WH2倉庫工作的職工的最低工資值。Select min(工資) from 職工 where 倉庫號(hào)=WH27.分組與計(jì)算查詢例1:查詢每個(gè)倉庫的職工的平均工資。Select 倉庫號(hào),avg(工資) from 職工 group by 倉庫號(hào)例2:查詢每個(gè)倉庫中工資多于1220元的職工所在的倉庫號(hào)及職工個(gè)數(shù)。SELECT 倉庫號(hào),COUNT(*) FROM 職工 WHERE 工資1220 GROUP BY 倉庫號(hào)例3:查詢至少有兩個(gè)職工的每個(gè)倉庫的平均工資。Select 倉庫號(hào),count(*),avg(工資) from 職工 group by 倉庫號(hào) having count(*)=28.利用空值查詢例1:查詢尚未確定供應(yīng)商的訂購單。Select * from 訂購單 where 供應(yīng)商號(hào) is null例2:查詢已確定供應(yīng)商的訂購單。Select * from 訂購單 where 供應(yīng)商號(hào) is not null9.別名與內(nèi)外層相關(guān)嵌套查詢例1:查詢地址與城市都在北京的供應(yīng)商名。Select 供應(yīng)商名 from 供應(yīng)商 S,訂購單 P,職工 E,倉庫 W where 地址=北京And 城市=北京and S.供應(yīng)商號(hào)=P.供應(yīng)商號(hào) and P.職工號(hào)=E.職工號(hào) and E.倉庫號(hào)=W.倉庫號(hào)例2:查詢工資低于本倉庫平均工資的職工信息。SELECT * FROM 職工 A WHERE 工資=any (select 工資 from 職工 where 倉庫號(hào)=WH1)例3:查詢職工工資大于或等WH1倉庫中所有職工工資的倉庫號(hào)。Select distinct 倉庫號(hào) from 職工 where 工資=all (select 工資 from 職工 where 倉庫號(hào)=WH1)11.超聯(lián)接查詢例1:用內(nèi)部聯(lián)接查詢出倉庫號(hào),城市,面積,職工號(hào),工資信息。Select 倉庫.倉庫號(hào),城市,面積,職工號(hào),工資 from 倉庫 join 職工 on 倉庫.倉庫號(hào)=職工.倉庫號(hào)例2:用左聯(lián)接查詢出倉庫號(hào),城市,面積,職工號(hào),工資信息。Select 倉庫.倉庫號(hào),城市,面積,職工號(hào),工資 from 倉庫 left join 職工 on 倉庫.倉庫號(hào)=職工.倉庫號(hào)例3:用右聯(lián)接查詢出倉庫號(hào),城市,面積,職工號(hào),工資信息。Select 倉庫.倉庫號(hào),城市,面積,職工號(hào),工資 from 倉庫 right join 職工 on 倉庫.倉庫號(hào)=職工.倉庫例4:用全聯(lián)接查詢出倉庫號(hào),城市,面積,職工號(hào),工資信息。Select 倉庫.倉庫號(hào),城市,面積,職工號(hào),工資 from 倉庫 full join 職工 on 倉庫.倉庫號(hào)=職工.倉庫號(hào)12.集合的并運(yùn)算例1:查詢城市為北京和上海的倉庫信息。Select * from 倉庫 where 城市=北京 union Select * from 倉庫 where 城市=上海13SQL-SELECTK 中的幾個(gè)特殊選項(xiàng)例1:查詢工資最高的三位職工的信息。Select * top 3 from 職工 order by 工資 desc例2:查詢工資最低的那30%的職工信息。Select * top 30 percent from 職工 orde

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論