院系,入學(xué)成績sele學(xué)號_第1頁
已閱讀1頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第6章 關(guān)系數(shù)據(jù)庫標(biāo)準語言SQL命令,【主要內(nèi)容】6-1 SQL概述6-2 查詢查詢,【目的要求】掌握SQL語言的基本概念掌握SQL語言的基本格式掌握SQL語言查詢功能,6-1 SQL語言基本概念,1、SQL是結(jié)構(gòu)化查詢語言(Structured Query Language的縮寫)2、特點:是一種一體化語言是一種高度非過程化語言非常簡潔可以以命令方式交互使用(也可以作為程序代碼)3、SQL的功能:數(shù)據(jù)查詢數(shù)

2、據(jù)定義數(shù)據(jù)操縱數(shù)據(jù)控制(此功能VFP沒有),一.SQL語言概述,二.語句格式及功能1、命令格式 SELECT 目標(biāo)字段名表; FROM 表名 [關(guān)聯(lián)語句]; [WHERE 篩選條件]; [ ORDER BY 排序依據(jù)]; [GROUP BY 分組依據(jù)] ; [HAVING 分組限制條件]; [INTO /TO 查詢?nèi)ハ騗 [NOCONSOLE][PLAI

3、N][NOWAIT],,6-1 SQL語言基本概念,2、目標(biāo)字段名表選項,符合條件的記錄數(shù):ALL 所有符合條件的記錄(默認)DISTINCT 符合條件者重復(fù)的只出現(xiàn)一次TOP n 符合條件者的前n 個記錄 [必須有ORDER BY子句]TOP n PERCENT符合條件者前n%個記錄[必須有ORDER BY子句]所需字段* 表示所有字段表名.字段名 [AS 標(biāo)題],表名.字段名 [A

4、S 標(biāo)題] 函數(shù)(字段名),支持函數(shù)為:count,sum,avg,max,min (稱為計算查詢)指定字段或要計算的結(jié)果COUNT:對一列中的值計算個數(shù);COUNT(*):計算表中記錄的個數(shù);SUM 、AVG :求某一列值的總和和平均值(此列必須是數(shù)值型)MAX、 MIN :求某一列值的最大值、最小值(可以為字符型、數(shù)值、日期),6-1 SQL語言基本概念,6-2 SQL語言查詢,一.簡單查詢 簡單查詢是指查詢

5、的內(nèi)容來源于一個表文件。舉例,1.顯示學(xué)生表中所有記錄、所有字段 select all * from 學(xué)生表 或 sele * from 學(xué)生表 2.顯示成績表中按學(xué)號排列的前10條記錄、所有字段sele * top 10 from 成績表 order by 學(xué)號3.顯示成績表中前10%條記錄、部分字段(學(xué)號, 課程編號,成績)、按成績降序sele top 10 percent 學(xué)號,課程編號,成績 from 成績

6、表 order by 成績 desc4.顯示學(xué)生表中所有記錄的姓名、院系、年齡,按年齡降序Sele 姓名,院系,2007-year(出生日期) AS 年齡 from 學(xué)生表 order by 年齡 desc5.計算學(xué)生表中所有學(xué)生的入學(xué)成績的平均分、最高分、最低分sele avg(入學(xué)成績) as 平均入學(xué)成績,max(入學(xué)成績) as 最高成績,min(入學(xué)成績) as 最低成績 from 學(xué)生表6.顯示成績表中所有不及

7、格的學(xué)生的學(xué)號、課程編號、成績Sele 學(xué)號、課程編號、成績 from 成績表 where 成績<60,1、聯(lián)接及其類別聯(lián)接是關(guān)系的橫向結(jié)合。關(guān)系聯(lián)接的類別等值聯(lián)接:按字段值對應(yīng)相等為條件進行的聯(lián)接超聯(lián)接:保證一個表中滿足條件的記錄在結(jié)果中,然后與另一表進行聯(lián)接.2、聯(lián)接查詢的實現(xiàn)(1)等值聯(lián)接:將聯(lián)接條件寫入WHERE子句中,from后寫要聯(lián)接的兩個表名例:查詢學(xué)生表和成績表中所有學(xué)生的信息。 s

8、ele * from 學(xué)生表,成績表 where 學(xué)生表.學(xué)號=成績表.學(xué)號 order by 學(xué)生表.學(xué)號例:找出成績在60分以上的學(xué)生的學(xué)號、姓名、課程名稱及成績,按學(xué)號升序排列。 sele 學(xué)生表.學(xué)號,姓名,課程名稱,成績 from 學(xué)生表,成績表,選課表 where 學(xué)生表.學(xué)號=成績表.學(xué)號 and 成績表.課程編號=選課表.課程編號 and 成績〈60 order by 學(xué)生表.學(xué)號,二、聯(lián)接查詢

9、 是指查詢內(nèi)容來源于兩個或兩個以上的表,6-2 SQL語言查詢,(2)超聯(lián)接查詢超聯(lián)接的四種形式:左聯(lián)接:結(jié)果包含第一個表中所有的記錄,用LEFT JOIN表示右聯(lián)接:結(jié)果包含第二個表中所有的記錄,用RIGHT JOIN表示內(nèi)部聯(lián)接:取兩個表中的公共記錄,用INNER JOIN表示(也可以用where 篩選條件)完全聯(lián)接:取兩個表中的記錄的并集,用FULL JOIN表示超聯(lián)接語句:SELECT …. FROM 表

10、名1 聯(lián)接形式 表名2 on 聯(lián)接條件例:對學(xué)生表和成績表進行超聯(lián)接的結(jié)果sele * from 學(xué)生表 left join 成績表 on 學(xué)生表.學(xué)號=成績表.學(xué)號,6-2 SQL語言查詢,四、篩選條件選項 由where引導(dǎo),條件可以是:關(guān)系運算邏輯值字段名 BETWEEN …AND …字段名 LIKE 通配符 (%代表一串字符,_表示一個字符)字段名 IS NULL例題:顯示入學(xué)成績在450分以上的前

11、3名的學(xué)生信息sele top 3 * from 學(xué)生表 where 入學(xué)成績>450 order by 入學(xué)成績 desc顯示顯示入學(xué)成績在400-500分之間以上的后3名的學(xué)生信息sele top 3 * from 學(xué)生表 where 入學(xué)成績 betw 450 and 500 order by 入學(xué)成績,6-2 SQL語言查詢,五、分組條件選項 由group by 引導(dǎo),GROUP BY 字段表:按指定的字段分類(多個

12、字段時按兩個字段組合分組)HAVING 條件:只顯示符合條件的組使用分組統(tǒng)計時,一般要用GROUP BY 子句例題:按院系分類匯總?cè)雽W(xué)成績sele 院系,sum(入學(xué)成績) as 入學(xué)成績總分 from 學(xué)生表 group by 院系 order by 入學(xué)成績總分 desc注意:若只有HAVING語句而無GROUP BY語句,則HAVING語句相當(dāng)于WHERE語句。,6-2 SQL語言查詢,六、排序依據(jù)選項 由o

13、rder by 引導(dǎo),ORDER BY 字段表:按指定的字段排序,可用多個字段進行多重排序,七、查詢?nèi)ハ蜻x項,INTO CURSOR 臨時表名——送臨時表INTO TABLE 表名——送表TO FILE 文件名 [ADDITIVE]——送文本文件TO PRINT ——送打印機TO SCREEN——送屏幕,6-2 SQL語言查詢,練習(xí)題,用SQL語言寫出滿足下列查詢的命令:1.查詢每個學(xué)生的姓名、院系、平均成績,并按平均成

14、績降序排序。2.查詢每門課程的課程名稱、平均成績,并按平均成績降序排序。3.查詢學(xué)生表、成績表、選課表中補考的學(xué)生的姓名、院系、課程名稱、成績,并按院系升序排列,生成補考學(xué)生表。,問題:顯示入學(xué)成績在平均成績以上的學(xué)號,姓名,院系,入學(xué)成績解決:第一步:求平均成績 sele avg(入學(xué)成績) from 學(xué)生表 (假如值為476.78) 第二步:顯示在入學(xué)

15、成績平均成績以上的學(xué)號,姓名,院系,入學(xué)成績 sele 學(xué)號,姓名,院系,入學(xué)成績 from 學(xué)生表 where 入學(xué)成績>476.78合并: sele 學(xué)號,姓名,院系,入學(xué)成績 from 學(xué)生表 where 入學(xué)成績> ( sele avg(入學(xué)成績) from 學(xué)生表) 特點:在SQL語句內(nèi)還有SQL語句的,稱為嵌套查詢。書寫要求:內(nèi)層查詢要用括號括起來。

16、,八、嵌套查詢,6-2 SQL語言查詢,內(nèi)外查詢使用不同的表例1:顯示計算機系學(xué)生的學(xué)號,成績sele 學(xué)號,成績 from 成績表 where 學(xué)號 in (sele 學(xué)號 from 學(xué)生表 where 院系='計算機')例2:顯示成績沒有不及格的學(xué)生的院系、學(xué)號、姓名,并按院系升序Sele 院系,學(xué)號,姓名from 學(xué)生表 where not 學(xué)號 in (sele 學(xué)號 from 成績表 where 成績

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論