

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第6章 關系數據庫標準語言SQL命令,【主要內容】6-1 SQL概述6-2 查詢查詢,【目的要求】掌握SQL語言的基本概念掌握SQL語言的基本格式掌握SQL語言查詢功能,6-1 SQL語言基本概念,1、SQL是結構化查詢語言(Structured Query Language的縮寫)2、特點:是一種一體化語言是一種高度非過程化語言非常簡潔可以以命令方式交互使用(也可以作為程序代碼)3、SQL的功能:數據查詢數
2、據定義數據操縱數據控制(此功能VFP沒有),一.SQL語言概述,二.語句格式及功能1、命令格式 SELECT 目標字段名表; FROM 表名 [關聯(lián)語句]; [WHERE 篩選條件]; [ ORDER BY 排序依據]; [GROUP BY 分組依據] ; [HAVING 分組限制條件]; [INTO /TO 查詢去向] [NOCONSOLE][PLAI
3、N][NOWAIT],,6-1 SQL語言基本概念,2、目標字段名表選項,符合條件的記錄數:ALL 所有符合條件的記錄(默認)DISTINCT 符合條件者重復的只出現(xiàn)一次TOP n 符合條件者的前n 個記錄 [必須有ORDER BY子句]TOP n PERCENT符合條件者前n%個記錄[必須有ORDER BY子句]所需字段* 表示所有字段表名.字段名 [AS 標題],表名.字段名 [A
4、S 標題] 函數(字段名),支持函數為:count,sum,avg,max,min (稱為計算查詢)指定字段或要計算的結果COUNT:對一列中的值計算個數;COUNT(*):計算表中記錄的個數;SUM 、AVG :求某一列值的總和和平均值(此列必須是數值型)MAX、 MIN :求某一列值的最大值、最小值(可以為字符型、數值、日期),6-1 SQL語言基本概念,6-2 SQL語言查詢,一.簡單查詢 簡單查詢是指查詢
5、的內容來源于一個表文件。舉例,1.顯示學生表中所有記錄、所有字段 select all * from 學生表 或 sele * from 學生表 2.顯示成績表中按學號排列的前10條記錄、所有字段sele * top 10 from 成績表 order by 學號3.顯示成績表中前10%條記錄、部分字段(學號, 課程編號,成績)、按成績降序sele top 10 percent 學號,課程編號,成績 from 成績
6、表 order by 成績 desc4.顯示學生表中所有記錄的姓名、院系、年齡,按年齡降序Sele 姓名,院系,2007-year(出生日期) AS 年齡 from 學生表 order by 年齡 desc5.計算學生表中所有學生的入學成績的平均分、最高分、最低分sele avg(入學成績) as 平均入學成績,max(入學成績) as 最高成績,min(入學成績) as 最低成績 from 學生表6.顯示成績表中所有不及
7、格的學生的學號、課程編號、成績Sele 學號、課程編號、成績 from 成績表 where 成績<60,1、聯(lián)接及其類別聯(lián)接是關系的橫向結合。關系聯(lián)接的類別等值聯(lián)接:按字段值對應相等為條件進行的聯(lián)接超聯(lián)接:保證一個表中滿足條件的記錄在結果中,然后與另一表進行聯(lián)接.2、聯(lián)接查詢的實現(xiàn)(1)等值聯(lián)接:將聯(lián)接條件寫入WHERE子句中,from后寫要聯(lián)接的兩個表名例:查詢學生表和成績表中所有學生的信息。 s
8、ele * from 學生表,成績表 where 學生表.學號=成績表.學號 order by 學生表.學號例:找出成績在60分以上的學生的學號、姓名、課程名稱及成績,按學號升序排列。 sele 學生表.學號,姓名,課程名稱,成績 from 學生表,成績表,選課表 where 學生表.學號=成績表.學號 and 成績表.課程編號=選課表.課程編號 and 成績〈60 order by 學生表.學號,二、聯(lián)接查詢
9、 是指查詢內容來源于兩個或兩個以上的表,6-2 SQL語言查詢,(2)超聯(lián)接查詢超聯(lián)接的四種形式:左聯(lián)接:結果包含第一個表中所有的記錄,用LEFT JOIN表示右聯(lián)接:結果包含第二個表中所有的記錄,用RIGHT JOIN表示內部聯(lián)接:取兩個表中的公共記錄,用INNER JOIN表示(也可以用where 篩選條件)完全聯(lián)接:取兩個表中的記錄的并集,用FULL JOIN表示超聯(lián)接語句:SELECT …. FROM 表
10、名1 聯(lián)接形式 表名2 on 聯(lián)接條件例:對學生表和成績表進行超聯(lián)接的結果sele * from 學生表 left join 成績表 on 學生表.學號=成績表.學號,6-2 SQL語言查詢,四、篩選條件選項 由where引導,條件可以是:關系運算邏輯值字段名 BETWEEN …AND …字段名 LIKE 通配符 (%代表一串字符,_表示一個字符)字段名 IS NULL例題:顯示入學成績在450分以上的前
11、3名的學生信息sele top 3 * from 學生表 where 入學成績>450 order by 入學成績 desc顯示顯示入學成績在400-500分之間以上的后3名的學生信息sele top 3 * from 學生表 where 入學成績 betw 450 and 500 order by 入學成績,6-2 SQL語言查詢,五、分組條件選項 由group by 引導,GROUP BY 字段表:按指定的字段分類(多個
12、字段時按兩個字段組合分組)HAVING 條件:只顯示符合條件的組使用分組統(tǒng)計時,一般要用GROUP BY 子句例題:按院系分類匯總入學成績sele 院系,sum(入學成績) as 入學成績總分 from 學生表 group by 院系 order by 入學成績總分 desc注意:若只有HAVING語句而無GROUP BY語句,則HAVING語句相當于WHERE語句。,6-2 SQL語言查詢,六、排序依據選項 由o
13、rder by 引導,ORDER BY 字段表:按指定的字段排序,可用多個字段進行多重排序,七、查詢去向選項,INTO CURSOR 臨時表名——送臨時表INTO TABLE 表名——送表TO FILE 文件名 [ADDITIVE]——送文本文件TO PRINT ——送打印機TO SCREEN——送屏幕,6-2 SQL語言查詢,練習題,用SQL語言寫出滿足下列查詢的命令:1.查詢每個學生的姓名、院系、平均成績,并按平均成
14、績降序排序。2.查詢每門課程的課程名稱、平均成績,并按平均成績降序排序。3.查詢學生表、成績表、選課表中補考的學生的姓名、院系、課程名稱、成績,并按院系升序排列,生成補考學生表。,問題:顯示入學成績在平均成績以上的學號,姓名,院系,入學成績解決:第一步:求平均成績 sele avg(入學成績) from 學生表 (假如值為476.78) 第二步:顯示在入學
15、成績平均成績以上的學號,姓名,院系,入學成績 sele 學號,姓名,院系,入學成績 from 學生表 where 入學成績>476.78合并: sele 學號,姓名,院系,入學成績 from 學生表 where 入學成績> ( sele avg(入學成績) from 學生表) 特點:在SQL語句內還有SQL語句的,稱為嵌套查詢。書寫要求:內層查詢要用括號括起來。
16、,八、嵌套查詢,6-2 SQL語言查詢,內外查詢使用不同的表例1:顯示計算機系學生的學號,成績sele 學號,成績 from 成績表 where 學號 in (sele 學號 from 學生表 where 院系='計算機')例2:顯示成績沒有不及格的學生的院系、學號、姓名,并按院系升序Sele 院系,學號,姓名from 學生表 where not 學號 in (sele 學號 from 成績表 where 成績
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論