版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、結(jié)構(gòu)化查詢語(yǔ)言SQL結(jié)構(gòu)化查詢語(yǔ)言 結(jié)構(gòu)化查詢語(yǔ)言SQL(StruCtured Query Language)是關(guān)系型數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言,包括數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢和數(shù)據(jù)控制四個(gè)部分。SQL的功能命令數(shù)據(jù)定義CREATE、ALTER、DROP數(shù)據(jù)操縱INSERT、UPDATE、DELETE數(shù)據(jù)查詢SELECT數(shù)據(jù)控制(VFP不支持)GRANT、REVOKE1 數(shù)據(jù)定義一、創(chuàng)建數(shù)據(jù)表命令CREATE TABLE ( (,),)功能創(chuàng)建數(shù)據(jù)表。CREATE TABLE 學(xué)生表(學(xué)號(hào) C(12), 姓名 C(8), 性別 L, 出生年月 D, 評(píng)分 N(3, 0)e.g. 4-1 創(chuàng)建新表學(xué)生表
2、.dbf,表中有學(xué)號(hào) C(12)、姓名 C(8)、性別 L、出生年月 D、評(píng)分 N(3, 0)五個(gè)字段。二、修改數(shù)據(jù)表1. 添加字段命令A(yù)LTER TABLE ADD (,)功能在表中添加新字段。e.g. 4-2 在學(xué)生表.dbf中,添加新字段備注 M。ALTER TABLE 學(xué)生表 ADD 備注 MALTER TABLE 學(xué)生表 ADD 家庭地址 C ALTER TABLE 學(xué)生表 ADD 數(shù)學(xué)成績(jī) N(5,1)2. 修改字段命令A(yù)LTER TABLE ALTER (,)功能修改字段類型、寬度和小數(shù)位數(shù)。e.g. 4-3 在學(xué)生表.dbf中,把字段性別 L更改為性別 C(2)。ALTER T
3、ABLE 學(xué)生表 ALTER 性別 C(2)3. 字段重命名命令A(yù)LTER TABLE RENAME TO 功能修改字段名稱。e.g. 4-4 在學(xué)生表.dbf中,把字段出生年月重命名為出生日期。ALTER TABLE 學(xué)生表 RENAME 出生年月 TO 出生日期3. 刪除字段命令A(yù)LTER TABLE DROP 功能刪除字段。e.g. 4-5 在學(xué)生表.dbf中,刪除字段備注。ALTER TABLE 學(xué)生表 DROP 備注四、刪除數(shù)據(jù)表命令DROP TABLE 功能刪除數(shù)據(jù)表。e.g. 4-8 刪除表學(xué)生表.dbf。DROP TABLE 學(xué)生表2 數(shù)據(jù)操縱一、插入記錄命令I(lǐng)NSERT IN
4、TO (, )VALUES(, )功能將新記錄插入到指定的表中。e.g. 4-28在學(xué)生表.dbf中插入一條新記錄。INSERT INTO 學(xué)生表(學(xué)號(hào), 姓名, 性別, 出生日期, 評(píng)分)VALUES(S0201111, 徐暢, 女, 1998/06/25, 88)INSERT INTO 學(xué)生表VALUES(S0201111, 徐暢, 女, 1998/06/25, 88)學(xué)號(hào)姓名性別出生日期評(píng)分S0201111徐暢女06/25/9888二、修改記錄命令UPDATE SET =, WHERE 功能對(duì)表中的一行或多行記錄的列值進(jìn)行修改,省略WHERE則修改表的所有記錄。e.g. 4-29在學(xué)生表
5、.dbf中把“張放”的評(píng)分增加3。UPDATE 學(xué)生表SET 評(píng)分=評(píng)分+3WHERE 姓名=張放三、刪除記錄命令DELETE FROM WHERE 功能刪除表中的一行或多行記錄,省略WHERE則刪除表的所有記錄。e.g. 4-30在學(xué)生表.dbf中刪除學(xué)生表“徐暢”的記錄。DELETE FROM 學(xué)生表WHERE 姓名=徐暢3 數(shù)據(jù)查詢命令SELECT ALL|DISTINCTTOP PERCENT.AS ,.AS FROM !AS INNER|LEFT|RIGHT|FULL JOIN !AS ON INTO TABLE |TO FILE |TO SCREENWHERE AND AND|OR
6、AND|ORGROUP BY ,HAVING ORDER BY ASC|DESC,ASC|DESC功能查詢數(shù)據(jù)表。一、投影查詢命令SELECT ALL|DISTINCTTOP .AS , FROM 功能選擇字段查詢。查詢選項(xiàng)說(shuō)明ALL查詢結(jié)果允許重復(fù)記錄。(默認(rèn)值)DISTINCT查詢結(jié)果不包含重復(fù)記錄。TOP 查詢結(jié)果為滿足查詢條件的前n條記錄,必須與ORDER BY一起使用。*查詢結(jié)果包含表的所有字段。e.g. 4-9 在學(xué)生表.dbf中查詢所有記錄。SELECT 學(xué)號(hào), 姓名, 性別, 出生日期, 評(píng)分 FROM 學(xué)生表SELECT * FROM 學(xué)生表e.g. 4-10 在學(xué)生表.db
7、f中查詢所有不重復(fù)的記錄,輸出學(xué)號(hào)、姓名和評(píng)分,并將 “學(xué)號(hào)”指定為“學(xué)生表編號(hào)” 。SELECT DISTINCT 學(xué)號(hào) AS 學(xué)生表編號(hào), 姓名, 評(píng)分 FROM 學(xué)生表二、條件查詢 SQL使用WHERE子句指定查詢條件。運(yùn)算符說(shuō)明舉例=、=、=80 and 評(píng)分=801.簡(jiǎn)單條件查詢e.g. 4-11 在學(xué)生表.dbf中查詢?cè)u(píng)分大于等于80的學(xué)生表記錄。e.g. 4-12 在選課表.dbf中查詢選修課程 “C120”或“C140”,并且成績(jī)大于等于80的學(xué)生表記錄。2.多重條件查詢 在WHERE子句中指定多個(gè)查詢條件時(shí),必須用邏輯運(yùn)算符AND、OR或NOT將其連接成復(fù)合的邏輯表達(dá)式。SE
8、LECT * FROM 選課表WHERE (課程號(hào)=C120 OR 課程號(hào)=C140) AND 成績(jī)=803.確定范圍 使用“BETWEEN AND”進(jìn)行范圍查詢。SELECT * FROM 學(xué)生表WHERE 評(píng)分 BETWEEN 80 AND 90e.g. 4-13 在學(xué)生表.dbf中查詢?cè)u(píng)分在80至90之間的學(xué)生表記錄。SELECT * FROM 學(xué)生表WHERE 評(píng)分=80 AND 評(píng)分=90e.g. 4-14 在選課表.dbf中查詢選修課程“C120”或“C140”的學(xué)生表記錄。4.確定集合 使用“IN”進(jìn)行集合查詢。SELECT * FROM 選課表WHERE 課程號(hào)=C120 OR
9、 課程號(hào)=C140SELECT * FROM 選課表WHERE 課程號(hào) IN (C120, C140)e.g. 4-15 在選課表.dbf中查詢所有姓“陳”的學(xué)生表記錄。5.部分匹配查詢 使用“LIKE”和通配符進(jìn)行部分匹配查詢(模糊查詢)。SELECT * FROM 學(xué)生表WHERE 姓名 LIKE 陳%通配符說(shuō)明 %表示任意多個(gè)字符 _表示任意一個(gè)字符三、統(tǒng)計(jì)查詢 SQL使用集合函數(shù)對(duì)一組值進(jìn)行計(jì)算,返回單個(gè)值。集合函數(shù)功能COUNT(*)求記錄的個(gè)數(shù)COUNT()按列求值的個(gè)數(shù)SUM ()按列求和(用于數(shù)值列)AVG ()按列求平均值(用于數(shù)值列)MAX ()求一列中的最大值MIN ()
10、求一列中的最小值e.g. 4-16在選課表.dbf中查詢課程號(hào)為“C120”的記錄,輸出課程號(hào)和選修該課程的人數(shù)。SELECT 課程號(hào), COUNT(*) AS 選修人數(shù)FROM 選課表WHERE 課程號(hào)=C120e.g. 4-17在選課表.dbf中查詢課程號(hào)為“C120”的記錄,輸出課程號(hào)、成績(jī)的最高分和最低分、以及它們之間相差的分?jǐn)?shù)。SELECT 課程號(hào),MAX(成績(jī)) AS 最高分,MIN(成績(jī)) AS 最低分,MAX(成績(jī))-MIN(成績(jī)) AS 相差分?jǐn)?shù)FROM 選課表WHERE 課程號(hào)=C120四、分組查詢 SQL使用GROUP BY子句對(duì)查詢結(jié)果進(jìn)行分組,使用HAVING子句在每
11、個(gè)分組上選擇記錄。WHERE與HAVING:WHERE作用于基本表或視圖,HAVING作用于分組且必須與GROUP BY一起使用。查詢的執(zhí)行順序:WHEREGROUP BYHAVING。e.g. 4-18在選課表.dbf中查詢每門課程的選修人數(shù),輸出課程號(hào)和選修人數(shù)。SELECT 課程號(hào), COUNT(*) AS 選修人數(shù)FROM 選課表GROUP BY 課程號(hào)e.g. 4-19在選課表.dbf中查詢選修兩門或者兩門以上課程的學(xué)生表記錄,輸出學(xué)號(hào)和選課表門數(shù)。SELECT 學(xué)號(hào), COUNT(*) AS 選課表門數(shù)FROM 選課表GROUP BY 學(xué)號(hào) HAVING COUNT(*)=2五、查
12、詢排序 SQL使用ORDER BY子句對(duì)查詢結(jié)果進(jìn)行排序。排序選項(xiàng)功能ASC升序排列(默認(rèn)值)DESC降序排列e.g. 4-20在選課表.dbf中查詢選修了課程“C130” 并且成績(jī)最高的3名學(xué)生表的記錄,輸出學(xué)號(hào)和成績(jī)。SELECT TOP 3 學(xué)號(hào), 成績(jī) FROM 選課表WHERE 課程號(hào)=C130ORDER BY 成績(jī) DESCTOP必須與ORDER BY一起使用。六、連接查詢 連接查詢用于對(duì)兩個(gè)或者兩個(gè)以上的表進(jìn)行查詢,包括內(nèi)連接(INNER JOIN) 、外連接(OUTER JOIN) 等。1.內(nèi)連接命令SELECT FROM , WHERE AND 功能連接查詢。SELECT 學(xué)
13、生表.學(xué)號(hào), 姓名, 課程號(hào)FROM 學(xué)生表, 選課表WHERE 學(xué)生表.學(xué)號(hào)=選課表.學(xué)號(hào) AND 課程號(hào)=C130e.g. 4-21在學(xué)生表.dbf和選課表.dbf中查詢選修課程“C130”的學(xué)生表記錄,輸出學(xué)號(hào)、姓名和課程號(hào)。2.外連接命令SELECT FROM INNER|LEFT|RIGHT|FULL JOIN ON WHERE 功能連接查詢。連接類型說(shuō)明INNER JOIN內(nèi)連接,輸出兩個(gè)表匹配的數(shù)據(jù)行。(默認(rèn)值)LEFT JOIN左連接,輸出兩個(gè)表匹配的數(shù)據(jù)行和左表剩余的數(shù)據(jù)行。RIGHT JOIN右連接,輸出兩個(gè)表匹配的數(shù)據(jù)行和右表剩余的數(shù)據(jù)行。FULL JOIN完全連接,輸出
14、兩個(gè)表匹配的數(shù)據(jù)行、左表剩余的數(shù)據(jù)行和右表剩余的數(shù)據(jù)行。SELECT 學(xué)生表.學(xué)號(hào),姓名, 課程號(hào);FROM 學(xué)生表;INNER JOIN 選課表 ON 學(xué)生表.學(xué)號(hào)=選課表.學(xué)號(hào) WHERE 課程號(hào)=c130七、嵌套查詢 在一個(gè)查詢的WHERE子句中包含另一個(gè)SELECT-FROM-WHERE查詢塊,此查詢塊稱為子查詢,包含子查詢的語(yǔ)句稱為父查詢。格式WHERE NOT IN (子查詢)WHERE ANY|SOME|ALL (子查詢)WHERE NOT EXISTS (子查詢)運(yùn)算符ANYALL大于子查詢結(jié)果的某個(gè)值大于子查詢結(jié)果的所有值=大于等于子查詢結(jié)果的某個(gè)值大于等于子查詢結(jié)果的所有值
15、=小于等于子查詢結(jié)果的某個(gè)值小于等于子查詢結(jié)果的所有值=等于子查詢結(jié)果的某個(gè)值無(wú)實(shí)際意義!=或無(wú)實(shí)際意義不等于子查詢結(jié)果的任何值SELECT 學(xué)號(hào), 課程號(hào) FROM 選課表WHERE 學(xué)號(hào)=(SELECT 學(xué)號(hào) FROM 學(xué)生表 WHERE 姓名=“劉曉蕓)1.返回一個(gè)值的子查詢e.g. 4-24在學(xué)生表.dbf和選課表.dbf中查詢“劉小蕓”選修的課程,輸出學(xué)號(hào)、課程號(hào)。SELECT 學(xué)號(hào), 姓名 FROM 學(xué)生表WHERE 學(xué)號(hào) =ANY(SELECT 學(xué)號(hào) FROM 選課表 WHERE 課程號(hào)=C130)2.返回一組值的子查詢e.g. 4-25在學(xué)生表.dbf和選課表.dbf中查詢選修
16、“C130”的學(xué)生表記錄,輸出學(xué)號(hào)、姓名。SELECT 學(xué)號(hào), 姓名 FROM 學(xué)生表WHERE 學(xué)號(hào) IN(SELECT 學(xué)號(hào) FROM 選課表 WHERE 課程號(hào)=C130)SELECT 學(xué)號(hào), 姓名 FROM 學(xué)生表WHERE NOT EXISTS(SELECT * FROM 選課表 WHERE 選課表.學(xué)號(hào)=學(xué)生表.學(xué)號(hào))e.g. 4-26在學(xué)生表.dbf和選課表.dbf中查詢沒(méi)有選課表的學(xué)生表記錄,輸出學(xué)號(hào)、姓名。八、查詢結(jié)果的輸出 在查詢中使用INTO或TO子句指定如何保存查詢結(jié)果。查詢?nèi)ハ蛘f(shuō)明INTO TABLE 輸出查詢到數(shù)據(jù)表INTO CURSOR 輸出查詢到臨時(shí)表INTO ARRAY 輸出查詢到數(shù)組TO FILE 輸出查詢到文本文件TO SCREEN輸出查詢到屏幕TO PRINTER輸出查詢到打印機(jī)e.g. 4-27在學(xué)生表.dbf中按評(píng)分由高到低查詢學(xué)生表的記錄,輸出到表。SELECT * FROM 學(xué)生表ORDER BY 評(píng)分 DESCINTO TABLE xs練習(xí)1.有圖書表,其內(nèi)容如下記錄號(hào)書名出版單位單價(jià) 1VFP數(shù)據(jù)庫(kù)電子科大 2計(jì)算機(jī)基礎(chǔ)四川大學(xué) 3信號(hào)與系統(tǒng)電子科大 4計(jì)算機(jī)網(wǎng)絡(luò)電子科大 5計(jì)算機(jī)原理四川大學(xué) 6現(xiàn)代漢語(yǔ)四川師大 7操作系統(tǒng)西南交大UPDATE TS SET 單價(jià)=單價(jià)+8WHERE 出版單位=四川師
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度化妝品品牌重塑戰(zhàn)略合作合同
- 2025年度國(guó)際技術(shù)合同保密協(xié)議與商業(yè)秘密保護(hù)
- 2025年度海參深加工產(chǎn)品定制采購(gòu)合同范本
- 2025年度軟件開發(fā)合同與二零二五版軟件定制購(gòu)銷合同范本
- 2025年度國(guó)際航空貨運(yùn)代理合同范本
- 二零二五年度成品柴油國(guó)際市場(chǎng)拓展合同4篇
- 2025年兒童服飾電商平臺(tái)合作合同
- 2025年度企業(yè)間能源購(gòu)銷合同價(jià)格波動(dòng)風(fēng)險(xiǎn)控制臺(tái)賬
- 2025年度網(wǎng)紅直播基地廣告裝修工程合同
- 2025年度地質(zhì)災(zāi)害防治工程土石方處理合同
- 2025年銷售部年度工作計(jì)劃
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- ESG表現(xiàn)對(duì)企業(yè)財(cái)務(wù)績(jī)效的影響研究
- 車間空調(diào)崗位送風(fēng)方案
- 2023-2024年同等學(xué)力經(jīng)濟(jì)學(xué)綜合真題及參考答案
- 農(nóng)村集體土地使用權(quán)轉(zhuǎn)讓協(xié)議
- 課件四露天礦山安全知識(shí)培訓(xùn)
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案
- 2024年河北廊坊市三河市金創(chuàng)產(chǎn)業(yè)投資有限公司招聘筆試參考題庫(kù)含答案解析
- TQGCML 2624-2023 母嬰級(jí)空氣凈化器 潔凈空氣和凈化等級(jí)技術(shù)要求
- 睡眠障礙護(hù)理查房課件
評(píng)論
0/150
提交評(píng)論