vfp(第3版)課件:2 sql常用_第1頁(yè)
vfp(第3版)課件:2 sql常用_第2頁(yè)
vfp(第3版)課件:2 sql常用_第3頁(yè)
vfp(第3版)課件:2 sql常用_第4頁(yè)
vfp(第3版)課件:2 sql常用_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、SQL語(yǔ)言(1)數(shù)據(jù)查詢 SELECT(2)數(shù)據(jù)定義 CREATE、DROP、ALTER(3)數(shù)據(jù)修改 INSERT、UPDATE、DELETE(4)數(shù)據(jù)控制 GRANT、REVOKESELECTSELECT語(yǔ)句格式以及說(shuō)明語(yǔ)句格式以及說(shuō)明SELECT ALL|DISTINCT TOP|PERCENT, AS FROM ,WHERE GROUP BY HAVING ORDER BY ASC|DESCINTO ARRAY |INTO CURSOR |INTO DBF|TABLE |TO FILE ADDITIVE|TO PRINTERPROMPT一一. .簡(jiǎn)單查詢簡(jiǎn)單查詢( (對(duì)單表的查詢對(duì)單表

2、的查詢 )Select From From 后接表名,指定查詢的信息來(lái)自于哪些表。例:From 學(xué)生 From 學(xué)生,選課,課程Select 后接*、字段名、表達(dá)式,用來(lái)指定查詢結(jié)果包含那些列。例:Select * Select 學(xué)號(hào),姓名 Select 性別,學(xué)號(hào)+姓名 女男女男性別性別21222223年齡年齡Bob004Bob003Alice002Tom001姓名姓名學(xué)號(hào)學(xué)號(hào)學(xué)生學(xué)生.dbf.dbf例1:Select * From 學(xué)生女男女男性別性別21222223年齡年齡Bob004Bob003Alice002Tom001姓名姓名學(xué)號(hào)學(xué)號(hào)Select 學(xué)號(hào),姓名; From 學(xué)生Sel

3、ect 性別,學(xué)號(hào)+姓名; From 學(xué)生Bob004Bob003Alice002Tom001姓名姓名學(xué)號(hào)學(xué)號(hào)女男女男性別性別004Bob003Bob002Alice001TomExp_2Exp_2 36.1 select 單表 橫向統(tǒng)計(jì)學(xué)號(hào)學(xué)號(hào)姓名姓名性別性別年齡年齡001Tom男23002Alice女22003Bob男22004Bob女21學(xué)生.dbf例:查詢所有學(xué)生的學(xué)號(hào)和年齡信息Select 學(xué)號(hào),年齡 From 學(xué)生學(xué)號(hào)學(xué)號(hào)年齡年齡00123002220032200421例:查詢年齡大于22的學(xué)生的學(xué)號(hào)和年齡信息Select 學(xué)號(hào),年齡 From 學(xué)生 Where 年齡22學(xué)號(hào)學(xué)號(hào)年

4、齡年齡00123例:查詢年齡大于22的男生的學(xué)號(hào)和年齡信息Select 學(xué)號(hào) From 學(xué)生 Where 性別=“男”and 年齡20 Where 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)各種條件運(yùn)算符含義舉例=、=、=、!=、比較大小民族=漢AND、OR多重條件專業(yè)=外語(yǔ) AND 入學(xué)成績(jī)520BETWEEN AND 確定范圍確定范圍入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) BETWEEN 500 AND 520LIKE字符匹配姓名 LIKE 王%NOT否定運(yùn)算符NOT 民族=漢比較查詢 查詢“學(xué)生”表中漢族學(xué)生的姓名、民族和入學(xué)成績(jī)信息。SELECT 姓名,民族,入學(xué)成績(jī) FROM 學(xué)生 WHERE 民族=漢“ 查詢“學(xué)生”表中少

5、數(shù)民族學(xué)生的姓名、民族和入學(xué)成績(jī)信息。SELECT 姓名,民族,入學(xué)成績(jī) FROM 學(xué)生 WHERE 民族!=漢 多重條件查詢 在“學(xué)生”表中查詢外語(yǔ)專業(yè)中入學(xué)成績(jī)小于520分的學(xué)生的學(xué)號(hào)、姓名、和入學(xué)成績(jī)信息。SELECT 學(xué)號(hào),姓名,入學(xué)成績(jī) FROM 學(xué)生;WHERE 專業(yè)=外語(yǔ) AND 入學(xué)成績(jī)520范圍查詢 在“學(xué)生”表中查詢外語(yǔ)專業(yè)中入學(xué)成績(jī)小于520分的學(xué)生的學(xué)號(hào)、姓名、和入學(xué)成績(jī)信息。SELECT 學(xué)號(hào),姓名,入學(xué)成績(jī) FROM 學(xué)生;WHERE 專業(yè)=外語(yǔ) AND 入學(xué)成績(jī)520 查詢?nèi)雽W(xué)成績(jī)?cè)?00分到520分之間(包含500分和520分)的學(xué)生的學(xué)號(hào)、姓名和入學(xué)成績(jī)信息。

6、SELECT 學(xué)號(hào),姓名,入學(xué)成績(jī) FROM 學(xué)生;WHERE 入學(xué)成績(jī) BETWEEN 500 AND 520字符串匹配查詢 查詢“學(xué)生”表中所有姓王的學(xué)生信息。SELECT * FROM 學(xué)生 WHERE 姓名 LIKE 王%“ 查詢“課程”表中所有課程名中含有“大學(xué)”兩個(gè)字的課程名。SELECT 課程名 FROM 課程 WHERE 課程名 LIKE %大學(xué)%like語(yǔ)句: “ab” like “a%” “ab” like “a_”Like函數(shù): like(“a*”, “ab”) like(“a?”, “ab”)邏輯型字段條件查詢 查詢“教師”表中所有黨員教師的信息。SELECT * FR

7、OM 教師 WHERE 黨員否=.T.SELECT * FROM 教師 WHERE 黨員否虛擬字段條件查詢 查詢學(xué)生表中年齡小于19歲學(xué)生的學(xué)號(hào)、姓名和年齡信息。SELECT 學(xué)號(hào),姓名,YEAR(DATE()-YEAR(出生日期) AS 年齡 FROM 學(xué)生;WHERE YEAR(DATE()-YEAR(出生日期)2020, Year(Date()-Year(生日生日) As 年齡年齡 ;用用orderorder關(guān)鍵字對(duì)查詢結(jié)果排序關(guān)鍵字對(duì)查詢結(jié)果排序SELECT ;FROM ;ORDER BY ASC|DESC , ASC|DESC , (注:字段名可以用字段序號(hào)代替)學(xué)號(hào)姓名性別年齡00

8、4Bob女21002Alice女22003Bob男22001Tom男23SELECT * FROM 學(xué)生;ORDER BY 年齡SELECT * FROM 學(xué)生;ORDER BY 年齡 DESC學(xué)號(hào)姓名性別年齡001Tom男23002Alice女22003Bob男22004Bob女2144用用order對(duì)多個(gè)關(guān)鍵字排序?qū)Χ鄠€(gè)關(guān)鍵字排序?qū)W號(hào)姓名性別年齡004Bob女21002Alice女22003Bob男22001Tom男23SELECT * FROM 學(xué)生;ORDER BY 年齡,學(xué)號(hào) DESC例:先按年齡升序排列,年齡相同的再按學(xué)號(hào)降序排列SELECT TOP|PERCENT ;FROM ;

9、ORDER BY;保留排序結(jié)果的前保留排序結(jié)果的前n(百分之百分之n)條記錄條記錄SELECT TOP 10 *;FROM student;ORDER BY 英語(yǔ) DESC;SELECT TOP 20 PERCENT *;FROM student;ORDER BY 英語(yǔ);查詢英語(yǔ)成績(jī)前10名的學(xué)生記錄。查詢按英語(yǔ)成績(jī)升序排序前百分之20名的學(xué)生記錄。對(duì)查詢結(jié)果排序使用ORDER BY語(yǔ)句按照一個(gè)或多個(gè)字段對(duì)查詢結(jié)果進(jìn)行升序(ASC)或降序(DESC)排列,默認(rèn)為升序排列。 對(duì)于空值排序,升序時(shí)空值記錄將最后顯示,降序時(shí)將最先顯示。ORDER BY語(yǔ)句只能對(duì)最終的查詢結(jié)果進(jìn)行排序,在子查詢中不能

10、使用。 ORDER BY語(yǔ)句后不能接任何運(yùn)算表達(dá)式,不能按某個(gè)表達(dá)式的運(yùn)算結(jié)果進(jìn)行排序。 使用TOP PERCENT語(yǔ)句可以只顯示排序之后的前幾條記錄或前百分之多少條記錄。 4.1 select 單表 前n項(xiàng)SELECT ;FROM ; INTO ARRAY 或INTO CURSOR 或 INTO DBF|TABLE 或TO FILE 設(shè)置查詢?nèi)ハ蛟O(shè)置查詢?nèi)ハ?49.2 select 單表 存到文本文件二.聯(lián)接查詢(查詢操作涉及到兩個(gè)或兩個(gè)以上的表時(shí)用連接查詢)學(xué)生.dbf選課.dbf課程.dbf 教師.dbf 例:查詢所有女學(xué)生體育課程的學(xué)號(hào)和成績(jī)信息。學(xué)號(hào)學(xué)號(hào) 姓名姓名 性別性別 入學(xué)成績(jī)

11、入學(xué)成績(jī)001 李小華 女 525002 王艷芳 女 510003 吳海洋 男 508 學(xué)號(hào)學(xué)號(hào)_A 姓名姓名 性別性別 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) 學(xué)號(hào)學(xué)號(hào)_B 課程號(hào)課程號(hào) 成績(jī)成績(jī) 學(xué)號(hào)學(xué)號(hào) 課程號(hào)課程號(hào) 成績(jī)成績(jī) 001 C001 95 001 C004 85 002 C001 90 003 C001 92 003 C003 86學(xué)生學(xué)生 001 李小華 女 525 001 C001 95 001 李小華 女 525 001 C004 85 001 李小華 女 525 002 C001 90 001 李小華 女 525 003 C001 92 001 李小華 女 525 003 C003 86

12、002 王艷芳 女 510 001 C001 95 002 王艷芳 女 510 001 C004 85 002 王艷芳 女 510 002 C001 90 002 王艷芳 女 510 003 C001 92 002 王艷芳 女 510 003 C003 86 003 吳海洋 男 508 001 C001 95 003 吳海洋 男 508 001 C004 85 003 吳海洋 男 508 002 C001 90 003 吳海洋 男 508 003 C001 92 003 吳海洋 男 508 003 C003 86 selectselect * * fromfrom 學(xué)生學(xué)生, ,選課選課或或

13、selectselect 學(xué)生學(xué)生. .學(xué)號(hào)學(xué)號(hào), ,姓名姓名, ,性別性別, ,入學(xué)成績(jī)?nèi)雽W(xué)成績(jī), ,選課選課. .學(xué)號(hào)學(xué)號(hào), ,課程號(hào)課程號(hào), ,成績(jī)成績(jī) fromfrom 學(xué)生學(xué)生, ,選課選課選課選課1.無(wú)條件無(wú)條件聯(lián)接查詢聯(lián)接查詢 無(wú)意義!例:查詢學(xué)生的學(xué)號(hào)、姓名、課程號(hào)和成績(jī)的信息選課選課 學(xué)生學(xué)生 select * from 學(xué)生,選課select 學(xué)生.學(xué)號(hào),姓名,課程號(hào),成績(jī) from 學(xué)生,選課 where 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)2.條件條件聯(lián)接查詢聯(lián)接查詢 where 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)增加條件:增加條件:select 學(xué)生.學(xué)號(hào),姓名,課程號(hào),成績(jī) from 學(xué)生,

14、選課 ;where 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)select 學(xué)生.學(xué)號(hào),姓名,課程號(hào),成績(jī) from 學(xué)生,選課 ;where 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)and 成績(jī)90例:查詢學(xué)生的學(xué)號(hào)、姓名、課程號(hào)、課程名和成績(jī)的信息。選課選課 學(xué)生學(xué)生 課程 select from where 學(xué)生.學(xué)號(hào),姓名,選課.課程號(hào),課程名,成績(jī);學(xué)生,選課,課程;學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào) and 選課.課程號(hào)=課程.課程號(hào)三個(gè)表?xiàng)l件三個(gè)表?xiàng)l件聯(lián)接查詢聯(lián)接查詢 29.1 select 雙表 連接 31.1 select 雙表 連接 簡(jiǎn)單查詢(單表) 聯(lián)接查詢(多表)無(wú)條件聯(lián)接查詢條件聯(lián)接查詢超聯(lián)接查詢內(nèi)聯(lián)接查詢左聯(lián)接查詢

15、右聯(lián)接查詢?nèi)?lián)接查詢【超聯(lián)接查詢格式】SELECTFROM I INNER | LEFT | RIGHT | FULL JOIN ON WHERE超聯(lián)接-內(nèi)聯(lián)接(滿足條件就相連)select * from 學(xué)生 JOIN 選課 ON 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)select * from 學(xué)生 INNER JOIN 選課 ON 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)或select * from 學(xué)生 where 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào) (就是內(nèi)聯(lián)結(jié))超聯(lián)接-左聯(lián)接(內(nèi)連記錄+左表不滿足條件的記錄)select * from 學(xué)生 left JOIN 選課 ON 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)超聯(lián)接-右聯(lián)接(內(nèi)連記錄+右表不

16、滿足條件的記錄)select * from 學(xué)生 right JOIN 選課 ON 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)超聯(lián)接-全聯(lián)接(內(nèi)連記錄+左右表不滿足條件的記錄)select * from 學(xué)生 full JOIN 選課 ON 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)返回select * from 學(xué)生,選課,課程統(tǒng)計(jì)查詢(分組統(tǒng)計(jì)查詢) COUNT( 字段名 或 *) 統(tǒng)計(jì)記錄個(gè)數(shù)個(gè)數(shù)。 SUM(字段名) 計(jì)算某一列值的總和總和(字段必須是數(shù)值型)。 AVG( 字段名) 計(jì)算某一列的平均值平均值( (字段必須是數(shù)值型)。 MAX(字段名) 計(jì)算某一列值的最大值最大值。 MIN(字段名) 計(jì)算某一列值的最小值最小值。

17、統(tǒng)計(jì)查詢(最大值max( )、最小值min()選課【例】查詢分?jǐn)?shù)最高的成績(jī)Select max(成績(jī)) As 最高分 From 選課【例】查詢001學(xué)生的最低成績(jī)Select min(成績(jī)) From 選課 Where 學(xué)號(hào)=“001”統(tǒng)計(jì)查詢(和求sum( )、求平均avg( )選課【例】查詢學(xué)號(hào)為”001”的平均成績(jī)Select avg(成績(jī)) From 選課 where 學(xué)號(hào)=001【例】所有成績(jī)的總分Select sum(成績(jī)) From 選課統(tǒng)計(jì)查詢(行數(shù)COUNT(* )選課【例】查詢選課門數(shù)Select count(*) as From 選課選課門數(shù)查詢“某某數(shù)”信息時(shí),使用:S

18、elect count(*) as 某某數(shù) from 例如:選課門數(shù)、人數(shù)、金牌數(shù)、獎(jiǎng)牌數(shù)、課程數(shù)、訂單數(shù)分組統(tǒng)計(jì)查詢(用Group by 分組,用篩選having分組結(jié)果)【例】統(tǒng)計(jì)各職稱的人數(shù)Select 職稱, count(*) as 人數(shù) From 教師 Group by 職稱 教師【例】統(tǒng)計(jì)各職稱的人數(shù),但只保留人數(shù)大于1的記錄Select 職稱, count(*) as 人數(shù) From 教師;Group by 職稱;Having 人數(shù)1【例】統(tǒng)計(jì)總?cè)藬?shù)Select count(*) as 人數(shù) From 教師 或 Having count(*)1 但不允許 where人數(shù)1 或 where count(*)1 篩選條件中有和(sum)、平均(avg)、最大(max)、最小(min)、行數(shù)(

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論