第5章 標(biāo)準(zhǔn)結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL_第1頁(yè)
第5章 標(biāo)準(zhǔn)結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL_第2頁(yè)
第5章 標(biāo)準(zhǔn)結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL_第3頁(yè)
第5章 標(biāo)準(zhǔn)結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL_第4頁(yè)
第5章 標(biāo)準(zhǔn)結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第5章章 標(biāo)準(zhǔn)結(jié)構(gòu)化查詢(xún)語(yǔ)言標(biāo)準(zhǔn)結(jié)構(gòu)化查詢(xún)語(yǔ)言SQLSQL 本章所講的主要內(nèi)容如下本章所講的主要內(nèi)容如下: 5.1 SQL語(yǔ)言概述語(yǔ)言概述 5.2 SQL數(shù)據(jù)定義數(shù)據(jù)定義 5.3 SQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún) 5.4 SQL數(shù)據(jù)操縱數(shù)據(jù)操縱5.1 SQLSQL語(yǔ)言概述語(yǔ)言概述 SQLSQL(Structured Query LanguageStructured Query Language)是人們專(zhuān)門(mén)研究)是人們專(zhuān)門(mén)研究的一種強(qiáng)有力的查詢(xún)語(yǔ)言,它包括的一種強(qiáng)有力的查詢(xún)語(yǔ)言,它包括查詢(xún)、操縱、定義和控查詢(xún)、操縱、定義和控制制四個(gè)方面,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言?,F(xiàn)在已經(jīng)有四個(gè)方面,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言

2、。現(xiàn)在已經(jīng)有100100多個(gè)數(shù)據(jù)庫(kù)管理產(chǎn)品支持多個(gè)數(shù)據(jù)庫(kù)管理產(chǎn)品支持SQLSQL語(yǔ)言。語(yǔ)言。SQLSQL語(yǔ)言是一種非過(guò)程化的語(yǔ)言。用語(yǔ)言是一種非過(guò)程化的語(yǔ)言。用SQLSQL編寫(xiě)的程序,編寫(xiě)的程序,用戶(hù)只需要指出用戶(hù)只需要指出“干什么干什么”,而不需要知道,而不需要知道“怎么干怎么干”。SQLSQL只有只有9 9個(gè)命令動(dòng)詞,從語(yǔ)法上很接近自然語(yǔ)言,非常易個(gè)命令動(dòng)詞,從語(yǔ)法上很接近自然語(yǔ)言,非常易于掌握。于掌握。 在在Visual FoxProVisual FoxPro的程序中可以直接使用的程序中可以直接使用SQLSQL語(yǔ)句,就語(yǔ)句,就像輸入其他命令一樣在命令窗口中輸入像輸入其他命令一樣在命令窗口

3、中輸入SQLSQL語(yǔ)句語(yǔ)句。5.2 SQLSQL數(shù)據(jù)定義數(shù)據(jù)定義 本節(jié)所講述的主要內(nèi)容:本節(jié)所講述的主要內(nèi)容:基本表的定義基本表的定義1基本表的修改與刪除基本表的修改與刪除25.2 SQLSQL數(shù)據(jù)定義數(shù)據(jù)定義 ( , , )創(chuàng)建一個(gè)新表。創(chuàng)建一個(gè)新表。1.1.基本表的定義基本表的定義 CREAT TABLE 學(xué)生學(xué)生; (學(xué)號(hào)學(xué)號(hào) char(10), 姓名姓名 char(10), 性別性別 char(2), 專(zhuān)業(yè)專(zhuān)業(yè) char(10), 出生日期出生日期 date,; 是否保送是否保送 logical, 入學(xué)總分入學(xué)總分 number(6,1), 照片照片 general, 備注備注 mem

4、o)或者或者 CREAT TABLE 學(xué)生學(xué)生; (學(xué)號(hào)學(xué)號(hào) C(10), 姓名姓名 C(10), 性別性別 C(2), 專(zhuān)業(yè)專(zhuān)業(yè) C(10), 出生日期出生日期 D, 是否保送是否保送 L,; 入學(xué)總分入學(xué)總分 N(6,1), 照片照片 G, 備注備注 M) ADD|ALTER DROP RENAME TO p當(dāng)新當(dāng)新增加一個(gè)字段增加一個(gè)字段時(shí),表中記錄在這個(gè)字段上的值為時(shí),表中記錄在這個(gè)字段上的值為缺省的缺省的空值。空值。palter可以可以修改字段類(lèi)型修改字段類(lèi)型,rename可以可以修改字段名稱(chēng)修改字段名稱(chēng)。2.2.基本表的修改與刪除基本表的修改與刪除5.2 SQL數(shù)據(jù)定義5.2 SQ

5、L數(shù)據(jù)定義ALTER TABLE SCORE ADD 平時(shí)成績(jī)平時(shí)成績(jī) N(3)ALTER TABLE SCORE ALTER 平時(shí)成績(jī)平時(shí)成績(jī) N(3,1)第一步:改名第一步:改名ALTER TABLE SCORE RENAME 平時(shí)成績(jī)平時(shí)成績(jī) TO 平時(shí)分平時(shí)分第二步:刪除第二步:刪除ALTER TABLE SCORE DROP 平時(shí)分平時(shí)分5.2 SQLSQL數(shù)據(jù)定義數(shù)據(jù)定義 DROP TABLE 功能:將包含表結(jié)構(gòu)和記錄的表文件全部刪除。功能:將包含表結(jié)構(gòu)和記錄的表文件全部刪除。DROP TABLE STUDENT5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún) 本節(jié)所講述的主要內(nèi)容:本節(jié)所講述

6、的主要內(nèi)容:?jiǎn)伪頍o(wú)條件查詢(xún)單表無(wú)條件查詢(xún)1單表帶條件查詢(xún)單表帶條件查詢(xún)2分組查詢(xún)和排序查詢(xún)分組查詢(xún)和排序查詢(xún)3多表查詢(xún)多表查詢(xún)4嵌套查詢(xún)嵌套查詢(xún)5Visual FoxProVisual FoxPro中的幾個(gè)特殊選項(xiàng)中的幾個(gè)特殊選項(xiàng)65.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún) ALL|DISTINCT ALIAS. | AS 列名稱(chēng)列名稱(chēng) , ALIAS. | AS 列名稱(chēng)列名稱(chēng) AND|OR ASC DESC , ASC DESC, HAVINGp SELECT:要查詢(xún)的目標(biāo)列(或字段)。:要查詢(xún)的目標(biāo)列(或字段)。p FROM:說(shuō)明要查詢(xún)的數(shù)據(jù)來(lái)自哪個(gè)或者哪些表。:說(shuō)明要查詢(xún)的數(shù)據(jù)來(lái)自哪個(gè)或者哪些

7、表。p WHERE:說(shuō)明多表的連接條件和查詢(xún)條件。:說(shuō)明多表的連接條件和查詢(xún)條件。p DISTINCT:只選擇不重復(fù)的記錄。:只選擇不重復(fù)的記錄。p GROUP BY:用于對(duì)查詢(xún)結(jié)果進(jìn)行分組。:用于對(duì)查詢(xún)結(jié)果進(jìn)行分組。p ORDER BY:用來(lái)對(duì)查詢(xún)的結(jié)果進(jìn)行排序。:用來(lái)對(duì)查詢(xún)的結(jié)果進(jìn)行排序。 ALL | DISTINCT 1.1.單表無(wú)條件查詢(xún)單表無(wú)條件查詢(xún)5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún) SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名, 專(zhuān)業(yè)專(zhuān)業(yè) FROM STUDENT SELECT 課程號(hào)課程號(hào), 課程名課程名, 學(xué)分學(xué)分 FROM COURSE說(shuō)明:說(shuō)明:當(dāng)所查詢(xún)的列是關(guān)系的當(dāng)所查詢(xún)的列是關(guān)

8、系的所有屬性所有屬性時(shí),可以使用時(shí),可以使用* 來(lái)表示所顯示的列,來(lái)表示所顯示的列,等價(jià)于等價(jià)于 SELECT * FROM COURSEcourse(course(課程號(hào),課程名,學(xué)分課程號(hào),課程名,學(xué)分) ) 使用使用DISTINCT保留字可以保留字可以消除消除查詢(xún)結(jié)果中的查詢(xún)結(jié)果中的重復(fù)行重復(fù)行。5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)SELECT 專(zhuān)業(yè)專(zhuān)業(yè) FROM STUDENTSELECT DISTINCT 專(zhuān)業(yè)專(zhuān)業(yè) FROM STUDENT注意比較這兩個(gè)語(yǔ)句的區(qū)別注意比較這兩個(gè)語(yǔ)句的區(qū)別 SELECT子句的目標(biāo)列中可以包含帶有子句的目標(biāo)列中可以包含帶有+、的算術(shù)運(yùn)算表達(dá)式。的算術(shù)運(yùn)算

9、表達(dá)式。5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)SELECT SELECT 學(xué)號(hào)學(xué)號(hào), , 姓名姓名, 2013-, 2013-year(出生日期出生日期) FROM STUDENTFROM STUDENT說(shuō)明:說(shuō)明:可以為可以為列列標(biāo)題標(biāo)題設(shè)置別名設(shè)置別名。SELECTSELECT 學(xué)號(hào)學(xué)號(hào), , 姓名姓名, , year(date()-year(-year(出生日期出生日期) ) ASAS 年齡年齡; ; FROMFROM STUDENT STUDENTstudent(student(學(xué)號(hào),姓名,性別,專(zhuān)業(yè),入學(xué)總分,是否保送,出生日期,備注,照片學(xué)號(hào),姓名,性別,專(zhuān)業(yè),入學(xué)總分,是否保送,出

10、生日期,備注,照片) ) 5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún) SELECT 課程名課程名, credit, 學(xué)分學(xué)分 FROM COURSE說(shuō)明:說(shuō)明:這種書(shū)寫(xiě)方式可以使查詢(xún)結(jié)果增加一個(gè)這種書(shū)寫(xiě)方式可以使查詢(xún)結(jié)果增加一個(gè)原關(guān)系里不存在的原關(guān)系里不存在的字符串字符串常量列,元組在該常量列,元組在該列上的每個(gè)值列上的每個(gè)值就是就是字符串常量字符串常量本身本身。coursecourse( (課程號(hào),課程名,學(xué)分課程號(hào),課程名,學(xué)分) ) 統(tǒng)計(jì)查詢(xún)結(jié)果中的統(tǒng)計(jì)查詢(xún)結(jié)果中的元組個(gè)數(shù)元組個(gè)數(shù) 統(tǒng)計(jì)查詢(xún)結(jié)果中統(tǒng)計(jì)查詢(xún)結(jié)果中一個(gè)列上值的個(gè)數(shù)一個(gè)列上值的個(gè)數(shù)計(jì)算查詢(xún)結(jié)果中一個(gè)列上的最大值計(jì)算查詢(xún)結(jié)果中一個(gè)列上

11、的最大值 計(jì)算查詢(xún)結(jié)果中一個(gè)列上的最小值計(jì)算查詢(xún)結(jié)果中一個(gè)列上的最小值 計(jì)算查詢(xún)結(jié)果中一個(gè)計(jì)算查詢(xún)結(jié)果中一個(gè)數(shù)值數(shù)值列上的總和列上的總和計(jì)算查詢(xún)結(jié)果中一個(gè)計(jì)算查詢(xún)結(jié)果中一個(gè)數(shù)值數(shù)值列上的平均值列上的平均值5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)說(shuō)明:說(shuō)明:在在前加入前加入DISTINCT保留字,會(huì)將查詢(xún)結(jié)果的列保留字,會(huì)將查詢(xún)結(jié)果的列 去掉重復(fù)值在計(jì)算。去掉重復(fù)值在計(jì)算。5.3 SQL數(shù)據(jù)查詢(xún)COUNT函數(shù)的使用。函數(shù)的使用。例例5-11 統(tǒng)計(jì)學(xué)生表中的記錄數(shù)。統(tǒng)計(jì)學(xué)生表中的記錄數(shù)。 SELECT COUNT(*) FROM STUDENT 等價(jià)于等價(jià)于 SELECT COUNT(學(xué)號(hào)學(xué)號(hào)) FR

12、OM STUDENT 還可以使用別名還可以使用別名: SELECT COUNT(學(xué)號(hào)學(xué)號(hào)) AS FROM STUDENT 例例5-12 5-12 統(tǒng)計(jì)學(xué)生的專(zhuān)業(yè)個(gè)數(shù)統(tǒng)計(jì)學(xué)生的專(zhuān)業(yè)個(gè)數(shù)SELECT COUNT(專(zhuān)業(yè)專(zhuān)業(yè)) FROM STUDENT & 統(tǒng)計(jì)時(shí)會(huì)去掉空值統(tǒng)計(jì)時(shí)會(huì)去掉空值若要統(tǒng)計(jì)不同專(zhuān)業(yè)個(gè)數(shù):若要統(tǒng)計(jì)不同專(zhuān)業(yè)個(gè)數(shù):SELECT COUNT(DISTINCT 專(zhuān)業(yè)專(zhuān)業(yè)) FROM STUDENTSELECT AVG(成績(jī)成績(jī)) AS 平均成績(jī)平均成績(jī), MAX(成績(jī)成績(jī)) AS 最高分最高分, MIN(成績(jī)成績(jī)) AS 最低分最低分; FROM SCOREvSQL實(shí)驗(yàn)一 ALL |

13、DISTINCT 一般形式為:一般形式為: 比較運(yùn)算符比較運(yùn)算符 或者或者 比較運(yùn)算符比較運(yùn)算符 常量值常量值2.2.單表帶條件查詢(xún)單表帶條件查詢(xún)5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)SELECT * FROM STUDENT WHERE 專(zhuān)業(yè)專(zhuān)業(yè)=計(jì)算機(jī)計(jì)算機(jī)SELECT 學(xué)號(hào)學(xué)號(hào), 成績(jī)成績(jī) FROM SCORE WHERE 課程號(hào)課程號(hào)=1001 AND 成績(jī)成績(jī)=605.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)查詢(xún)條件謂詞比較確定范圍確定集合字符匹配空值多重條件=,=,!=,!,!= 85 AND = 85 AND 成績(jī)成績(jī) = 95 = 95SELECTSELECT * * FROM FROM

14、 STUDENT STUDENT WHEREWHERE 專(zhuān)業(yè)專(zhuān)業(yè)=計(jì)算機(jī)計(jì)算機(jī) OR OR 專(zhuān)業(yè)專(zhuān)業(yè)=金融金融 等價(jià)于等價(jià)于SELECTSELECT * * FROMFROM STUDENT STUDENT WHEREWHERE 專(zhuān)業(yè)專(zhuān)業(yè) IN IN(計(jì)算機(jī)計(jì)算機(jī), , 金融金融)5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)練習(xí):練習(xí):1 1、查詢(xún)、查詢(xún)xs.dbfxs.dbf計(jì)算機(jī)專(zhuān)業(yè)男生的計(jì)算機(jī)專(zhuān)業(yè)男生的xmxm、 zyzy和和 csrqcsrq。2 2、查詢(xún)、查詢(xún)zg.dbfzg.dbf基本工資在基本工資在80080010001000之間的職工之間的職工xmxm及及bm.bm. 3 3、查詢(xún)投資

15、專(zhuān)業(yè)、金融專(zhuān)業(yè)、財(cái)會(huì)專(zhuān)業(yè)的學(xué)生、查詢(xún)投資專(zhuān)業(yè)、金融專(zhuān)業(yè)、財(cái)會(huì)專(zhuān)業(yè)的學(xué)生xmxm和和rxzfrxzf. .注意:注意:ININ實(shí)際上是多個(gè)實(shí)際上是多個(gè)OROR的縮寫(xiě)的縮寫(xiě)。上題等價(jià)于:5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)練習(xí)答案:1 1、查詢(xún)、查詢(xún)xs.dbfxs.dbf計(jì)算機(jī)專(zhuān)業(yè)男生的計(jì)算機(jī)專(zhuān)業(yè)男生的xmxm、 zyzy和和 csrqcsrq。 Sele xm,zy,csrq from xs where zySele xm,zy,csrq from xs where zy=“=“計(jì)算機(jī)計(jì)算機(jī)” ” and xband xb=“=“男男”2 2、查詢(xún)、查詢(xún)zg.dbfzg.dbf基本工資在基本工

16、資在80080010001000之間的職工之間的職工xmxm及及bm.bm. Sele xm,bm from zg where jbgz Sele xm,bm from zg where jbgz between 800 and between 800 and 100010003 3、查詢(xún)、查詢(xún)xs.dbfxs.dbf中投資專(zhuān)業(yè)、金融專(zhuān)業(yè)、財(cái)會(huì)專(zhuān)業(yè)的學(xué)生中投資專(zhuān)業(yè)、金融專(zhuān)業(yè)、財(cái)會(huì)專(zhuān)業(yè)的學(xué)生xmxm和和rxzfrxzf. . Sele xm,rxzf from xs where zy Sele xm,rxzf from xs where zy in ( in (投資投資,金金融融,財(cái)會(huì)財(cái)會(huì))注意

17、:注意:ININ實(shí)際上是多個(gè)實(shí)際上是多個(gè)OROR的縮寫(xiě)的縮寫(xiě) 上例等價(jià)于:Sele xm,rxzf,zy from xs where zySele xm,rxzf,zy from xs where zy = = 投資投資 or zy or zy=金融金融 or zy or zy=財(cái)會(huì)財(cái)會(huì) 5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún) 基本格式為:基本格式為: likenot like 說(shuō)明:說(shuō)明: 可以是可以是一個(gè)完整的字符串一個(gè)完整的字符串,也,也可以是含有通配符可以是含有通配符% %和和_ _。SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名, 性別性別 FROM STUDENT WHERE 姓名姓名 LIKE

18、 王王%通配符通配符含含 義義%表示任意長(zhǎng)度的字符串表示任意長(zhǎng)度的字符串。如。如 a%ba%b:表示以:表示以a a 開(kāi)頭,以開(kāi)頭,以b b結(jié)尾的結(jié)尾的任意長(zhǎng)度任意長(zhǎng)度的字符串。的字符串。 acb,addgb,abacb,addgb,ab均滿(mǎn)足要求均滿(mǎn)足要求_ (下劃線)(下劃線)表示任意的單個(gè)字符。如表示任意的單個(gè)字符。如 a_ba_b:表示以:表示以a a開(kāi)頭,以開(kāi)頭,以b b結(jié)尾的結(jié)尾的長(zhǎng)長(zhǎng)度為度為3 3的任意字符串。的任意字符串。Acb,afbAcb,afb等都滿(mǎn)足要求等都滿(mǎn)足要求5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)例1:查詢(xún)xs.dbf中所有姓劉的學(xué)生詳細(xì)情況。 例2:查詢(xún)xs中,x

19、h為“901800” 學(xué)生詳細(xì)情況。等價(jià)于Sele * from xs where xm like “劉劉%”sele * from xs where xh like “901800”Sele * from xs where xh =“901800”說(shuō)明:如果說(shuō)明:如果likelike后面的后面的匹配串中不含有通配符,匹配串中不含有通配符,則可以用則可以用= =(等于)運(yùn)(等于)運(yùn)算符取代算符取代likelike謂詞謂詞; ;用!用!= =(不等于)取代(不等于)取代not likenot like謂詞。謂詞。5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún) GROUP

20、 BY 子句和子句和 ORDER BY 子句是分別用于分組和排序操作子句是分別用于分組和排序操作的。的。GROUPGROUP子句和子句和HAVINGHAVING子句:子句: group by group by 子句子句對(duì)查詢(xún)結(jié)果進(jìn)行分組統(tǒng)計(jì)對(duì)查詢(xún)結(jié)果進(jìn)行分組統(tǒng)計(jì),分組后的結(jié)果還可以使,分組后的結(jié)果還可以使用用having having 子句子句有選擇地篩選輸出有選擇地篩選輸出。3.3.分組查詢(xún)和排序查詢(xún)分組查詢(xún)和排序查詢(xún)SELECT 課程號(hào)課程號(hào), AVG(成績(jī)成績(jī)) FROM SCORE GROUP BY 課程號(hào)課程號(hào)SELECT 課程號(hào)課程號(hào), AVG(成績(jī)成績(jī)), MAX(成績(jī)成績(jī)),

21、MIN(成績(jī)成績(jī)) FROM SCORE;GROUP BY 課程號(hào)課程號(hào) HAVING COUNT(*)=3SCORE(學(xué)號(hào),課程號(hào),成績(jī))5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún) (2 2)排序排序order byorder by SELECT子句的子句的ORDER BY子句可使輸出的查詢(xún)結(jié)果子句可使輸出的查詢(xún)結(jié)果按照要求的順序按照要求的順序 排列排列。由于是控制輸出結(jié)果,因此。由于是控制輸出結(jié)果,因此ORDER BY子句子句只能用于最終的查詢(xún)結(jié)果只能用于最終的查詢(xún)結(jié)果。 列名后面有列名后面有ASC,則表示該列名值以,則表示該列名值以升序升序排列;有排列;有DESC,則表示該列,則表示該列 名值

22、以降序排列。名值以降序排列。默認(rèn)為升序排列默認(rèn)為升序排列。SELECT * FROM STUDENT ORDER BY 性別性別 ASC, 學(xué)號(hào)學(xué)號(hào) DESCv上機(jī)實(shí)驗(yàn)35.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)多表查詢(xún):多表查詢(xún):fromfrom后面的數(shù)據(jù)源涉及到后面的數(shù)據(jù)源涉及到多個(gè)表。多個(gè)表。 在在WHEREWHERE子句中給出子句中給出多表連接的條件多表連接的條件。在輸出的目標(biāo)列中,如果有多個(gè)表的共同字段,字段名前要加以限定。在輸出的目標(biāo)列中,如果有多個(gè)表的共同字段,字段名前要加以限定。格式為:格式為: 表名表名. .字段名字段名4.4.多表查詢(xún)多表查詢(xún)SELECT SELECT FROM

23、FROM WHERE WHERE 例例5-22 查詢(xún)計(jì)算機(jī)查詢(xún)計(jì)算機(jī)專(zhuān)業(yè)專(zhuān)業(yè)的學(xué)生的的學(xué)生的學(xué)號(hào)學(xué)號(hào)、選修的、選修的課程號(hào)課程號(hào)和相應(yīng)的考試和相應(yīng)的考試成成績(jī)績(jī)。SELECT 學(xué)號(hào)學(xué)號(hào), 課程號(hào)課程號(hào), 成績(jī)成績(jī) FROM STUDENT, SCORE;WHERE STUDENT.學(xué)號(hào)學(xué)號(hào) = SCORE.學(xué)號(hào)學(xué)號(hào) AND 專(zhuān)業(yè)專(zhuān)業(yè) = 計(jì)算機(jī)計(jì)算機(jī)score(學(xué)號(hào),課程號(hào),成績(jī))student(學(xué)號(hào),姓名,性別,專(zhuān)業(yè),入學(xué)總分,是否保送,出生日期)STUDENT.STUDENT.5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)SELECTSELECT 姓名姓名, , 課程名課程名, , 成績(jī)成績(jī) FRO

24、M FROM STUDENT, SCORE, COURSE; STUDENT, SCORE, COURSE;WHEREWHERE STUDENT.STUDENT.學(xué)號(hào)學(xué)號(hào) = SCORE. = SCORE.學(xué)號(hào)學(xué)號(hào); ;AND SCORE.AND SCORE.課程號(hào)課程號(hào)=COURSE.=COURSE.課程號(hào)課程號(hào) AND AND 專(zhuān)業(yè)專(zhuān)業(yè)=計(jì)算機(jī)計(jì)算機(jī) and and 性別性別=女女score(學(xué)號(hào)學(xué)號(hào),課程號(hào)課程號(hào),成績(jī))student(學(xué)號(hào)學(xué)號(hào),姓名,性別,專(zhuān)業(yè),入學(xué)總分,是否保送,出生日期)course(課程號(hào)課程號(hào),課程名,學(xué)分)5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)多表查詢(xún)練習(xí):多表

25、查詢(xún)練習(xí):1 1、查詢(xún)所有、查詢(xún)所有女生女生的的xmxm、kcbhkcbh及所選修的各門(mén)課程的及所選修的各門(mén)課程的cjcj。2 2、查詢(xún)所有、查詢(xún)所有金融金融專(zhuān)業(yè)的學(xué)生專(zhuān)業(yè)的學(xué)生xmxm、所選修的、所選修的kcmckcmc及及cjcj。3 3、顯示、顯示成績(jī)?cè)诔煽?jī)?cè)?080至至9090之間的之間的xh,xm,kcmc,cjxh,xm,kcmc,cj。 學(xué)生表:學(xué)生表:Xs (xh, xm, xb, csrq, zy, zf, rxzf, photo,bzXs (xh, xm, xb, csrq, zy, zf, rxzf, photo,bz) )選課表:選課表:Xk (xh, kcbh , c

26、jXk (xh, kcbh , cj) )課程表:課程表:Kc (kcbh, kcmc, xs, xfKc (kcbh, kcmc, xs, xf) )5.3 SQL數(shù)據(jù)查詢(xún) 嵌套查詢(xún)是指一個(gè)嵌套查詢(xún)是指一個(gè)SELECT-FROM-WHERESELECT-FROM-WHERE查詢(xún)塊嵌入在另一個(gè)查詢(xún)塊嵌入在另一個(gè)SELECT-FROM-WHERESELECT-FROM-WHERE查查詢(xún)塊詢(xún)塊WHEREWHERE子句中的查詢(xún)。子句中的查詢(xún)。子查詢(xún)必須用()括起來(lái)子查詢(xún)必須用()括起來(lái) 。這類(lèi)子查詢(xún)的結(jié)果與父查這類(lèi)子查詢(xún)的結(jié)果與父查詢(xún)的屬性用詢(xún)的屬性用關(guān)系運(yùn)算符關(guān)系運(yùn)算符來(lái)比較。來(lái)比較。5.5.嵌套

27、查詢(xún)嵌套查詢(xún)SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名 FROM STUDENT WHERE 專(zhuān)業(yè)專(zhuān)業(yè) = ;( SELECT 專(zhuān)業(yè)專(zhuān)業(yè) FROM STUDENT WHERE 姓姓名名 = 王樂(lè)王樂(lè) )SELECT DISTINCT 學(xué)號(hào)學(xué)號(hào) FROM SCORE WHERE 成績(jī)成績(jī) (SELECT AVG(成績(jī)成績(jī)) FROM SCORE)說(shuō)明:說(shuō)明:在嵌套查詢(xún)中,若能確切知道內(nèi)層查詢(xún)返回的是在嵌套查詢(xún)中,若能確切知道內(nèi)層查詢(xún)返回的是單值單值,才可以直接,才可以直接 使用關(guān)系運(yùn)算符進(jìn)行比較。使用關(guān)系運(yùn)算符進(jìn)行比較。score(學(xué)號(hào)學(xué)號(hào),課程號(hào)課程號(hào),成績(jī))student(學(xué)號(hào)學(xué)號(hào),姓名,性別,專(zhuān)業(yè)

28、,入學(xué)總分,是否保送,出生日期)5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)5.5.嵌套查詢(xún)嵌套查詢(xún)練習(xí):練習(xí):(分析:張明性別是個(gè)未知數(shù),所以要在子查詢(xún)中求解)(分析:張明性別是個(gè)未知數(shù),所以要在子查詢(xún)中求解)select xm,xb,zy from xs where xbselect xm,xb,zy from xs where xb=;=;(select xb from xs where xm(select xb from xs where xm=張明張明)5.3 SQLSQL數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún) 使用使用“TOP 數(shù)值表達(dá)式數(shù)值表達(dá)式 PERCENT”短語(yǔ)顯示滿(mǎn)足條件的前幾條記錄。短語(yǔ)顯示滿(mǎn)足條件的前幾條記錄。 TOP短語(yǔ)要與短語(yǔ)要與ORDER BY短語(yǔ)同時(shí)使用才有效。短語(yǔ)同時(shí)使用才有效。6.Visual FoxPro6.Visual FoxPro中的幾個(gè)特殊選項(xiàng)中的幾個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論