




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、關(guān)于結(jié)構(gòu)化查詢語言第一張,PPT共九十一頁,創(chuàng)作于2022年6月5.1 SQL簡(jiǎn)介SQL是Sturctured Query Language(結(jié)構(gòu)化查詢語言)的縮寫。SQL包含數(shù)據(jù)查詢、數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制等功能。其中查詢是SQL語言的重要組成部分。SQL是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,所有的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL。第二張,PPT共九十一頁,創(chuàng)作于2022年6月5.1 SQL簡(jiǎn)介SQL語言主要特點(diǎn):一體化語言高度非過程化語言簡(jiǎn)潔,易學(xué)易用統(tǒng)一的語法格式,不同的工作方式視圖數(shù)據(jù)結(jié)構(gòu)SQL操作的兩個(gè)基本數(shù)據(jù)結(jié)構(gòu)對(duì)象是:表和視圖第三張,PPT共九十一頁,創(chuàng)作于2022年6月5.2 數(shù)據(jù)查詢格
2、式:SELECT ALL|DISTINCT , FROM , WHERE AND 連接條件 AND|OR AND |OR GROUP By ,分組列HAVING UNION ALL ORDER By ASCENDING|DESCENDING,ASCENDING|DESCENDING 第四張,PPT共九十一頁,創(chuàng)作于2022年6月5.2 數(shù)據(jù)查詢INTO | TO FILE ADDITIVE | TO PRINTER | TO SCREEN|into cursor|into table建議:多多操作!來加深印象!第五張,PPT共九十一頁,創(chuàng)作于2022年6月5.2 數(shù)據(jù)查詢ALL:在查詢結(jié)果中包
3、含所有的行(包括重復(fù)值)。它是系統(tǒng)的默認(rèn)設(shè)置。DISTINCT:在查詢結(jié)果中刪除重復(fù)行:當(dāng)涉及到多表查詢時(shí),需要通過別名來區(qū)分不同表文件中的字段。:檢索項(xiàng)主要是FROM子句中所給出的表文件中的字段名。選中的字段名可以和SQL函數(shù)一起使用。常用到的函數(shù)有:平均值函數(shù)AVG():求一列數(shù)據(jù)的平均值最小值函數(shù)MIN():求一列數(shù)的最小值最大值函數(shù)MAX():求一列數(shù)的最大值計(jì)數(shù)函數(shù)COUNT():求一列中該字段的個(gè)數(shù)求和函數(shù)SUM():求一列數(shù)的總和第六張,PPT共九十一頁,創(chuàng)作于2022年6月5.2 數(shù)據(jù)查詢FROM:form子句也是命令中不可缺少的成分,用于指定數(shù)據(jù)來源,其后列出所有要查詢的表文
4、件名,可以加上相應(yīng)的別名。WHERE:WHERE是命令可選項(xiàng),其后各子句含義為: 是指多表文件查詢的條件;是指單表文件的查詢條件.第七張,PPT共九十一頁,創(chuàng)作于2022年6月5.2 數(shù)據(jù)查詢GRONP By短語:將查詢結(jié)果按某一列(或多個(gè)列)的值進(jìn)行分組;HAVING子句: HAVING子句,只與GROUP By配合使用,用于說明分組條件;UNION ALL :說明將兩個(gè)查詢結(jié)果合并在一起輸出;若無ALL,重復(fù)記錄將被自動(dòng)取消,若有ALL表示結(jié)果全部合并;第八張,PPT共九十一頁,創(chuàng)作于2022年6月5.2 數(shù)據(jù)查詢ORDER By ASC|DESC:ORDER BY子句指定按哪個(gè)字段對(duì)查詢
5、結(jié)果排序,ASC為升序, DESC為降序;第九張,PPT共九十一頁,創(chuàng)作于2022年6月5.2 數(shù)據(jù)查詢INTO Destination:指定在何處保存查詢結(jié)果。如果在同一個(gè)查詢中同時(shí)包含了INTO子句和TO子句,則TO子句不起作用。如果沒有包含INTO子句,查詢結(jié)果顯示在“瀏覽”窗口中。Destination可以是下列三種子句之一DBF TableName|TABLE TableName:將查詢結(jié)果保存到一個(gè)表中,如果指定的表已經(jīng)打開,并且SET SAFETY設(shè)置為OFF,則VFP在不給出任何警告信息的情況下改寫該表。執(zhí)行完SELECT語句后,該表仍然保持打開活動(dòng)狀態(tài)。CURSOR Curs
6、orName:將查詢結(jié)果保存到臨時(shí)表中。如果指定了一個(gè)已打開表的名稱,則VFP產(chǎn)生錯(cuò)誤信息。執(zhí)行完SELECT語句后,臨時(shí)表仍然保持打開,但只讀。一旦關(guān)閉臨時(shí)表,則自動(dòng)刪除它。ARRAY ArrayName:將查詢結(jié)果保存到數(shù)組中。如果查詢結(jié)果中不包含任何記錄,則不創(chuàng)建這個(gè)數(shù)組。第十張,PPT共九十一頁,創(chuàng)作于2022年6月5.2 數(shù)據(jù)查詢TO FILE FileName ADDITIVE | TO PRINTER PROMPT | TO SCREEN:如果命令中包含了TO子句,但沒有包括INTO子句,則查詢結(jié)果定向輸出到名為FileName的ASCII碼文件、打印機(jī)或主窗口。包含ADDITI
7、VE子句使查詢結(jié)果追加到所指定的文本文件的內(nèi)容后面。第十一張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.1 簡(jiǎn)單查詢簡(jiǎn)單查詢基于單個(gè)表,由select-from構(gòu)成無條件查詢,select-from-where構(gòu)成條件查詢無條件查詢:select-from構(gòu)成1.查詢表中部分字段例5.1查詢student表中學(xué)生的學(xué)號(hào)和姓名select 學(xué)號(hào),姓名 from student例5.2 查詢department表中所有的系名Select 系名 from department第十二張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.1 簡(jiǎn)單查詢2.使用distinct短語例5.3 列出學(xué)生表中的班
8、級(jí)名稱 (無重復(fù)行)select distinct 班級(jí) from student3.查詢表中全部字段例5.4 查詢學(xué)生表中全部字段select * from student例5.5 查詢course表中的所有元組Select * from courseDistinct:去掉查詢結(jié)果中的重復(fù)值“*”是通配符,表示所有字段第十三張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.1 簡(jiǎn)單查詢條件查詢:select-from-where結(jié)構(gòu)4.簡(jiǎn)單的條件查詢例5.6 查詢1992年9月1日以后出生的學(xué)生名單Select 姓名 from student where 出生日期ctod(“09/01/92
9、”)例5.7 列出選修課的課程名稱和課程號(hào)Select 課程名,課程號(hào) from course where 課程性質(zhì)=“選修”例5.8 查詢課程號(hào)是0600101,成績(jī)大于80分的學(xué)生學(xué)號(hào)及成績(jī),且將成績(jī)由高到低列出Select 學(xué)號(hào),成績(jī) from grade where 課程號(hào)=“0600101” and 成績(jī)80 order by 成績(jī) desc第十四張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.1 簡(jiǎn)單查詢4.簡(jiǎn)單的條件查詢例5.9 查詢teacher表中工資多于2200元的職工所在的系號(hào)Select distinct 系號(hào) from teacher where 工資2200例5.
10、10 給出在系號(hào)“01”或“02”工作并且工資少于3000元的教師編號(hào)select 教師編號(hào) from teacher where 工資2200) and (teacher.系號(hào)=department.系號(hào))例5.12找出成績(jī)大于90分的學(xué)生的學(xué)號(hào)、姓名及成績(jī)。select student.學(xué)號(hào),姓名,成績(jī) from student,grade where 成績(jī)90 and student.學(xué)號(hào)=grade.學(xué)號(hào)或者select s.學(xué)號(hào),姓名,成績(jī) from student s,grade g where 成績(jī)90 and s.學(xué)號(hào)=g.學(xué)號(hào)在連接查詢中引用兩個(gè)表的公共字段時(shí),須在公共字段名
11、前添加表名或表別名作為前綴,否則系統(tǒng)會(huì)提示出錯(cuò)。對(duì)于只在一個(gè)數(shù)據(jù)表中出現(xiàn)的字段,則無須指定前綴。在select查詢的from子句中,可以對(duì)數(shù)據(jù)表指定別名,格式為. ,指定別名后,在引用該數(shù)據(jù)表的字段時(shí),應(yīng)以別名作為數(shù)據(jù)表的前綴。第十七張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.2 簡(jiǎn)單連接查詢1.等值連接例5.13 查詢上官小梅所學(xué)課程的課程名及其對(duì)應(yīng)的成績(jī)select 姓名,課程名,成績(jī) from student s,course c,grade g where 姓名=上官小梅 and s.學(xué)號(hào)=g.學(xué)號(hào) and g.課程號(hào)=c.課程號(hào)對(duì)于3個(gè)表的連接查詢,使用where子句指定查詢條
12、件時(shí),其形式為:from , where and 第十八張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.2 簡(jiǎn)單連接查詢2.自連接查詢:同一關(guān)系與自身進(jìn)行連接例5.14 找出至少選修0200101號(hào)課和0600201號(hào)課學(xué)生的學(xué)號(hào)select x.學(xué)號(hào) from grade x, grade y where x.學(xué)號(hào)=y.學(xué)號(hào) and x.課程號(hào)=0200101 and y.課程號(hào)=0600201第十九張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.3 嵌套查詢?cè)谝粋€(gè)select命令的where子句中,如果還出現(xiàn)了另一個(gè)select命令,則這種查詢稱為嵌套查詢。Vfp只支持單層嵌套查詢。嵌
13、套查詢所要求的結(jié)果出自一個(gè)關(guān)系,但相關(guān)的條件卻涉及多個(gè)關(guān)系:一般外層查詢的條件依賴內(nèi)層查詢的結(jié)果,而內(nèi)層查詢與外層查詢無關(guān)。第二十張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.3 嵌套查詢例5.15 查詢哪些系至少有一個(gè)教師的工資為2200元。select 系名 from department where 系號(hào) in (select 系號(hào) from teacher where 工資=2200)例5.16 查詢所有教師的工資都多于2200元的系的信息。select * from department where 系號(hào) not in (select 系號(hào) from teacher where
14、工資=80 and 成績(jī)1992-01-01As的作用是在查詢結(jié)果中將指定列命名為一個(gè)新的名稱Count(*)是count()函數(shù)的一種特殊形式,用來統(tǒng)計(jì)查詢結(jié)果的記錄個(gè)數(shù)第二十九張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.6 簡(jiǎn)單的計(jì)算查詢(庫函數(shù)查詢)例5.32 查詢grade表中成績(jī)的最高分、最低分及平均分。select max(成績(jī))as 最高分,min(成績(jī))as 最低分,avg(成績(jī)) as 平均分 from grade例5.33 查詢grade表中所有選修課的成績(jī)總和select sum(成績(jī))from grade where 課程號(hào) in (select 課程號(hào) from
15、 course where 課程性質(zhì)=選修)第三十張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.7 分組與計(jì)算查詢GRONP By短語: 將查詢結(jié)果按某一列(或多個(gè)列)的值進(jìn)行分組;HAVING子句: HAVING子句,只與GROUP By配合使用,用于說明分組條件;第三十一張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.7 分組與計(jì)算查詢例5.34 查詢男女生人數(shù)Select 性別,count(*) from student group by 性別或Select 性別,count(性別) from student group by 性別例5.35 求每個(gè)系的教師的平均工資select
16、系號(hào),avg(工資) from teacher group by 系號(hào)例5.36 求至少有兩名教師的每個(gè)系的平均工資select 系號(hào),count(*),avg(工資) from teacher group by 系號(hào) having count(*)=2Count(*)為每一組的記錄個(gè)數(shù)第三十二張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.7 分組與計(jì)算查詢例5.37 列出各門課的平均成績(jī)、最高成績(jī)、最低成績(jī)和選課人數(shù)select 課程號(hào), AVG(成績(jī)) AS 平均成績(jī), MAX(成績(jī)) AS 最高分, MIN(成績(jī)) AS 最低分, COUNT(學(xué)號(hào)) AS 選課人數(shù) from gra
17、de group by 課程號(hào)例5.38 列出最少選修二門課程的學(xué)生姓名select 姓名 from student where 學(xué)號(hào) in(select 學(xué)號(hào) from grade group by 學(xué)號(hào) having count(*)=2)第三十三張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.7 分組與計(jì)算查詢例5.39 求出總分大于180的學(xué)生的學(xué)號(hào),姓名及總成績(jī)select s.學(xué)號(hào),姓名,sum(成績(jī)) as 總成績(jī) from student s, grade g where s.學(xué)號(hào)=g.學(xué)號(hào) group by g.學(xué)號(hào) having sum(成績(jī))180第三十四張,PPT共九
18、十一頁,創(chuàng)作于2022年6月5.2.8 排序ORDER By ASC|DESC:指定將查詢結(jié)果按哪個(gè)字段排序,ASC為升序, DESC為降序;例5.40 對(duì)學(xué)生表按姓名排序 Select * from student order by 姓名例5.41 對(duì)teacher表按工資升序檢索出全部教師的信息。 select * from teacher order by 工資例5.42 先按系號(hào)排序,再按工資降序排序輸出全部教師信息select * from teacher order by 系號(hào),工資 desc第三十五張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.8 排序顯示前幾項(xiàng)記錄:有時(shí)只需
19、要查找滿足條件的前幾個(gè)記錄,這時(shí)可使用top短語格式:TOP nExpr PERCENT說明: nExpr為數(shù)字表達(dá)式,當(dāng)不使用PERCENT時(shí), nExpr為1至32767間的整數(shù),說明顯示前幾個(gè)記錄;當(dāng)使用PERCENT時(shí), nExpr是0.01至99.99間的實(shí)數(shù),說明顯示結(jié)果中前百分之幾的記錄。第三十六張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.8 排序例5.43 顯示teacher表工資最高的3位教師的信息select * top 3 from teacher order by 工資 desc例5.44 顯示teacher表工資最低的那20%教師的信息select * top
20、20 percent from teacher order by 工資例5.45 在grade表中查詢成績(jī)最高的5位學(xué)生的得分情況。select * top 5 from grade order by 成績(jī) desc例5.46 在grade表中查詢成績(jī)最低的30%學(xué)生的得分情況select * top 30 percent from grade order by 成績(jī)top短語必須和order by短語配合起來使用才有效,它不能單獨(dú)使用第三十七張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.9 超連接查詢用where指定的連接條件一般都是等值連接,即只有滿足連接條件的記錄才會(huì)出現(xiàn)在查詢結(jié)果中
21、。在SQL標(biāo)準(zhǔn)中還支持表的超連接,使用下面的命令:Select From Table1 Inner | Left | Right | Full JoinTable2 On Where 其中,inner代表內(nèi)連接,即普通連接;Left、Right、Full分別代表左連接、右連接和全連接,Left、Right、Full三種連接方式也稱為外連接。第三十八張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.9 超連接查詢INNER JOIN(JOIN),普通連接:只有滿足連接條件的記錄才出現(xiàn)在查詢結(jié)果中。LIFT JOIN,左連接:在進(jìn)行連接運(yùn)算時(shí),首先將滿足連接條件的所有元組放在結(jié)果關(guān)系中,同時(shí)將第一
22、個(gè)表(或稱Join左邊的表)中不滿足連接條件的元組也放入結(jié)果關(guān)系中,這些元組對(duì)應(yīng)第二個(gè)表(或稱Join右邊的表)的屬性值為空值。第三十九張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.9 超連接查詢RIGHT JOIN,右連接:在進(jìn)行連接運(yùn)算時(shí),首先將滿足連接條件的所有元組放在結(jié)果關(guān)系中,同時(shí)將第二個(gè)表(或稱Join右邊的表)中不滿足連接條件的元組也放入結(jié)果關(guān)系中,這些元組對(duì)應(yīng)第一個(gè)表(或稱Join左邊的表)的屬性值為空值。 FULL JOIN,全連接:在進(jìn)行連接運(yùn)算時(shí),首先將滿足連接條件的所有元組放在結(jié)果關(guān)系中,同時(shí)將兩個(gè)表中不滿足連接條件的元組也放入結(jié)果關(guān)系中,這些元組對(duì)應(yīng)另一個(gè)表的屬性
23、值為空值。第四十張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.9 超連接查詢例5.47 普通連接(將teacher表和department表的部分字段通過公共的字段“系號(hào)”進(jìn)行連接)select d.系號(hào), 系名,教師編號(hào),教師姓名 from Department d,teacher t where d.系號(hào)=t.系號(hào)等價(jià)于select d.系號(hào), 系名,教師編號(hào),教師姓名 from Department d join teacher t on d.系號(hào)=t.系號(hào)等價(jià)于select d.系號(hào), 系名,教師編號(hào),教師姓名 from Department d inner join teache
24、r t on d.系號(hào)=t.系號(hào)第四十一張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.9 超連接查詢例5.48 左連接select d.系號(hào), 系名,教師編號(hào),教師姓名 from Department d Left join teacher t on d.系號(hào)=t.系號(hào)例5.49 右連接假設(shè)teacher表插入一條記錄“2006108”,“07”, “劉麗”,1972-06-24, “副教授”,2500.00select d.系號(hào), 系名,教師編號(hào),教師姓名 from Department d Right join teacher t on d.系號(hào)=t.系號(hào)第四十二張,PPT共九十一頁,
25、創(chuàng)作于2022年6月5.2.9 超連接查詢例5.50 全連接select d.系號(hào), 系名,教師編號(hào),教師姓名 from Department d Full join teacher t on d.系號(hào)=t.系號(hào)Join 連接格式在連接多個(gè)表時(shí)的書寫方法要特別注意,在這種格式中join和on的順序很重要,特別要注意join的順序與on的順序正好相反第四十三張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.10 使用量詞和謂詞的查詢格式1:比較運(yùn)算符ANYALLSOME(子查詢)量詞:ANY、ALL、SOME,其中ANY與SOME為同義詞,在進(jìn)行比較運(yùn)算時(shí)只要子查詢中有一行能使結(jié)果為真,則結(jié)果就
26、為真;而ALL則要求子查詢中的所有行都使結(jié)果為真時(shí),結(jié)果才為真。格式2:NOTEXISTS(子查詢)謂詞:EXISTS,EXISTS或NOT EXISTS是用來檢查在子查詢中是否有結(jié)果返回(即存在元組或不存在元組)第四十四張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.10 使用量詞和謂詞的查詢例5.51 檢索那些系中還沒有教師的系的信息。select * from department where not exists (select * from teacher where 系號(hào)=department.系號(hào))等價(jià)于select * from department where 系號(hào) not
27、 in (select 系號(hào) from teacher )例5.52 檢索那些系中至少已經(jīng)有一個(gè)教師的系的信息。 select * from department where exists (select * from teacher Where 系號(hào)=department.系號(hào))等價(jià)于select * from department where 系號(hào) in (select 系號(hào) from teacher)第四十五張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.10 使用量詞和謂詞的查詢例5.53 查詢還沒有被學(xué)生選修課程的課程號(hào)和課程名Select 課程號(hào),課程名 from course
28、where not exist(select * from grade where course.課程號(hào)=grade.課程號(hào))注意:NOTEXISTS只是 判斷子查詢中是否有或沒有結(jié)果返回,它本身并沒有任何運(yùn)算或比較。第四十六張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.10 使用量詞和謂詞的查詢例5.54 求必修課程號(hào)是0200101的學(xué)生中成績(jī)比必修課號(hào)是0600201課的最低成績(jī)要高的學(xué)生的學(xué)號(hào)與成績(jī) select 學(xué)號(hào),成績(jī) from grade where 課程號(hào)=0200101 and 成績(jī)any (select 成績(jī) from grade where 課程號(hào)=0600201)
29、等價(jià)于select 學(xué)號(hào),成績(jī) from grade where 課程號(hào)=0200101 and 成績(jī) (select min(成績(jī)) from grade where 課程號(hào)=0600201)第四十七張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.10 使用量詞和謂詞的查詢例5.55 求必修課程號(hào)是0200101的學(xué)生中成績(jī)比必修課號(hào)是0600201課的最高成績(jī)要高的學(xué)生的學(xué)號(hào)與成績(jī) select 學(xué)號(hào),成績(jī) from grade where 課程號(hào)=0200101 and 成績(jī)all(select 成績(jī) from grade where 課程號(hào)=0600201)等價(jià)于select 學(xué)號(hào),
30、成績(jī) from grade where 課程號(hào)=0200101 and 成績(jī) (select max(成績(jī)) from grade where 課程號(hào)=0600201)第四十八張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.11 集合的并運(yùn)算SQL支持集合的并(UNION)運(yùn)算,即可以將兩個(gè)SELECT 語句的查詢結(jié)果通過并運(yùn)算合并成一個(gè)查詢結(jié)果。為了進(jìn)行并運(yùn)算,要求兩個(gè)查詢結(jié)果具有相同的字段個(gè)數(shù),并且對(duì)應(yīng)字段的值要出自同一個(gè)值域。格式:UNION ALL 說明將兩個(gè)查詢結(jié)果合并在一起輸出;若無ALL,重復(fù)記錄將被自動(dòng)取消,若有ALL表示結(jié)果全部合并;第四十九張,PPT共九十一頁,創(chuàng)作于20
31、22年6月5.2.11 集合的并運(yùn)算例5.56 以下結(jié)果為系名為自動(dòng)化系和經(jīng)濟(jì)系的教師信息select * from teacher where 系號(hào)=(select 系號(hào) from department where 系名=自動(dòng)化系)union;select * from teacher where 系號(hào)=(select 系號(hào) from department where 系名=經(jīng)濟(jì)系) 第五十張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.11 集合的并運(yùn)算例5.57 以下結(jié)果為“選修課”和“必修課”的課程相關(guān)信息。select 課程名,課程號(hào) from course where 課程性質(zhì)=
32、選修“Unionselect 課程名,課程號(hào) from course where 課程性質(zhì)=“必修“第五十一張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.12 查詢結(jié)果的輸出查詢結(jié)果的輸出去向 Into Array Into Cursor Into Dbf|Table To File To Printer promptInto cursor產(chǎn)生的臨時(shí)表文件是只讀的.dbf文件,當(dāng)查詢結(jié)束后該臨時(shí)文件是當(dāng)前文件,可像一般的.dbf文件使用,當(dāng)該臨時(shí)文件被關(guān)閉后,文件將自動(dòng)被刪除。執(zhí)行完into table 后,系統(tǒng)將在默認(rèn)路徑下建立數(shù)據(jù)表文件,同時(shí)打開該文件,并將其設(shè)為當(dāng)前數(shù)據(jù)表。與臨時(shí)表文
33、件不同,該表文件存放在磁盤上,關(guān)閉后不會(huì)被自動(dòng)刪除。To fileadditive可將查詢結(jié)果保存到一個(gè)文本文件,文本文件的默認(rèn)擴(kuò)展名是.txt,若使用additive可將查詢結(jié)果追加到原文本文件的尾部,否則將覆蓋原有文件。第五十二張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.12 查詢結(jié)果的輸出1.將查詢結(jié)果存放在數(shù)組例5.58 將查詢到的選修課的課程號(hào)和課程名存放在數(shù)組xx中。select 課程號(hào),課程名 from course where 課程性質(zhì)=“選修” into array xx?xx(1,1),xx(1,2)?xx(2,1),xx(2,2)第五十三張,PPT共九十一頁,創(chuàng)作于
34、2022年6月5.2.12 查詢結(jié)果的輸出2.將查詢結(jié)果存放到臨時(shí)表文件例5.59 將查詢到的選修課的課程號(hào)和課程名存放在臨時(shí).dbf表文件xx中。 select 課程號(hào),課程名 from course where 課程性質(zhì)=選修“into cursor xx3.將查詢結(jié)果存放到永久表文件例5.60 將查詢到選修課的課程號(hào)和課程名存放在永久表文件yy中select 課程號(hào),課程名 from course where 課程性質(zhì)=“選修“into table yy第五十四張,PPT共九十一頁,創(chuàng)作于2022年6月5.2.12 查詢結(jié)果的輸出4.將查詢結(jié)果存放到文本文件若命令中包含了to子句,但沒有
35、包含into子句,則to子句起作用。例5.61 將查詢到的選修課的課程號(hào)和課程名存放在文本文件 xx中。select 課程號(hào),課程名 from course where 課程性質(zhì)=選修 to file xx5.將查詢結(jié)果直接輸出到打印機(jī)使用子句to printerprompt可以直接將查詢結(jié)果輸出到打印機(jī),若使用了prompt選項(xiàng),則在打印之前還會(huì)打開打印機(jī)設(shè)置對(duì)話框。第五十五張,PPT共九十一頁,創(chuàng)作于2022年6月5.3 數(shù)據(jù)操作SQL的數(shù)據(jù)操作功能是指對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作的功能,主要包括數(shù)據(jù)的插入、數(shù)據(jù)的更新和數(shù)據(jù)的刪除,對(duì)應(yīng)的SQL命令動(dòng)詞分別是INSERT、UPDATE和DELE
36、TE。第五十六張,PPT共九十一頁,創(chuàng)作于2022年6月5.3.1.插入數(shù)據(jù)格式1:INSERT INTO (, ) VALUES (, )功能:向指定的數(shù)據(jù)表尾部插入一條記錄,并用指定的表達(dá)式對(duì)字段賦值。說明:當(dāng)對(duì)新記錄的所有字段都賦值時(shí),可省略字段名。若只對(duì)某些字段賦值,即插入的不是完整的記錄時(shí),則需要指定要賦值的字段名稱。VALUES子句中各個(gè)表達(dá)式的值為賦給每個(gè)字段的值,表達(dá)式和對(duì)應(yīng)字段的數(shù)據(jù)類型、取值范圍必須一致。第五十七張,PPT共九十一頁,創(chuàng)作于2022年6月5.3.1.插入數(shù)據(jù)例5.62 在course表中插入記錄。Insert into course values(“0600
37、010”,”,48,3,”選修”)& 在course表中插入記錄,課程號(hào)為“0600010”,課程名為空,學(xué)時(shí)為48,學(xué)分為3,課程性質(zhì)為“選修”Insert into course(課程號(hào),課程名) values (“0600020”,”信息資源管理“)& 在course表中插入記錄,課程號(hào)為“0600020”,課程名為”信息資源管理“第五十八張,PPT共九十一頁,創(chuàng)作于2022年6月5.3.1.插入數(shù)據(jù)格式2:Insert Into From Array |MEMVAR功能:向指定的數(shù)據(jù)表插入一條新記錄,插入新記錄的字段值來自于數(shù)組元素或內(nèi)存變量。例5.63 輸入以下命令并查看輸出結(jié)果。d
38、imension b(4)b(1)=“2012052101b(2)=張珊 b(3)=女 b(4)=.null.insert into student from array b第五十九張,PPT共九十一頁,創(chuàng)作于2022年6月5.3.1.插入數(shù)據(jù)例5.64 輸入以下命令并查看輸出結(jié)果。學(xué)號(hào)=“2012052102“姓名=黎明“性別=男“出生日期=1986-09-10insert into student from memvar第六十張,PPT共九十一頁,創(chuàng)作于2022年6月5.3.2.更新數(shù)據(jù)格式:UPDATE SET= WHERE 功能:對(duì)于指定表中滿足條件的記錄,用指定的表達(dá)式的值來更新指定
39、的字段。注意:update-sql只能在單一的表中更新記錄。第六十一張,PPT共九十一頁,創(chuàng)作于2022年6月5.3.2.更新數(shù)據(jù)例5.65 將course表中所有選修課的學(xué)時(shí)增加5個(gè)學(xué)時(shí)。Update course set 學(xué)時(shí)=學(xué)時(shí)+5 where 課程性質(zhì)=”選修“第六十二張,PPT共九十一頁,創(chuàng)作于2022年6月5.3.3 刪除數(shù)據(jù)格式:DELETE FROM WHERE 功能:對(duì)于指定數(shù)據(jù)表中滿足條件的記錄進(jìn)行邏輯刪除。說明:where用來指定刪除的條件,若不使用where子句,則邏輯刪除表中的全部記錄。第六十三張,PPT共九十一頁,創(chuàng)作于2022年6月5.3.3 刪除數(shù)據(jù)例5.66
40、 邏輯刪除course表中課程性質(zhì)為選修的記錄。Delete from course where 課程性質(zhì)=“選修”第六十四張,PPT共九十一頁,創(chuàng)作于2022年6月5.4 數(shù)據(jù)定義SQL的數(shù)據(jù)定義功能主要包括數(shù)據(jù)庫、表、視圖、存儲(chǔ)過程、規(guī)則和索引等對(duì)象的定義。本節(jié)主要介紹使用CREATE TABLE命令建立數(shù)據(jù)表結(jié)構(gòu),使用ALTER TABLE命令修改數(shù)據(jù)表結(jié)構(gòu)以及使用DROP TABLE命令刪除數(shù)據(jù)表。第六十五張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.1 表的定義SQL語言提供的定義表的命令是Create Table。在使用這個(gè)命令之前,首先要設(shè)計(jì)好表結(jié)構(gòu)的各種細(xì)節(jié),包括: 表名;
41、 各列(字段)的名稱、數(shù)據(jù)類型、寬度; 哪(幾)列將組成表的主鍵; 表中的哪些列必須提供數(shù)據(jù);第六十六張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.1 表的定義創(chuàng)建表的語句格式如下:Create Table | Dbf Name Free ( (字段寬度, ) Null | Not Null Check ErrorDefault Primary Key | UniqueReferences Tag , . 第六十七張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.1 表的定義,Primary Key Tag , ,Unique Tag ,Foreign Key Tag Nodup Refe
42、rences Tag, Check Error ) 功能:創(chuàng)建一個(gè)由指定字段組成的數(shù)據(jù)表。第六十八張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.1 表的定義關(guān)于Create Table命令說明如下:用CREATE Table命令可以完成表設(shè)計(jì)器所能完成的所有功能。命令關(guān)鍵字Create Table 與Create DBF功能相同。Name :為所創(chuàng)建的表定義長表名,只有當(dāng)前有打開的數(shù)據(jù)庫時(shí),才能使用此選項(xiàng)。Free:創(chuàng)建為自由表。第六十九張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.1 表的定義 (字段寬度, ) :4個(gè)選項(xiàng)依次分別定義字段名、字段類型,數(shù)值型和字符型字段的寬度,數(shù)值型
43、字段的小數(shù)位寬度。Null | Not Null:定義本字段是否可以為空。Check Error:定義本字段的有效性規(guī)則和出錯(cuò)時(shí)的提示信息字符串。Default :定義字段的默認(rèn)值。第七十張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.1 表的定義Primary Key | Unique:將本字段創(chuàng)建為主索引字段?;?qū)⒈咀侄蝿?chuàng)建為侯選索引字段。References Tag:說明本表與之建立永久聯(lián)系的父表及父表的索引名。Foreign Key:創(chuàng)建一個(gè)外部索引(非主索引),并與一個(gè)父表建立關(guān)聯(lián)。Primary Key Tag :以作為索引表達(dá)式建立主索引,索引名為第七十一張,PPT共九十一頁,
44、創(chuàng)作于2022年6月5.4.1 表的定義,Unique Tag :以作為索引表達(dá)式建立候選索引,索引名為,Foreign Key Tag Nodup References Tag:以作為索引表達(dá)式建立外(普通)索引,索引名為,同時(shí)以該字段作為連接字段,通過引用的建立兩數(shù)據(jù)表之間的永久性關(guān)聯(lián)。, Check Error ):定義表記錄的有效性規(guī)則和出錯(cuò)信息。第七十二張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.1 表的定義例5.67:建立一個(gè)自由表KZScreate table kzs free(學(xué)號(hào) c(6), 姓名; c(8), 性別 c(2), 年齡 n(3) null, 入學(xué)年月 d
45、)第七十三張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.1 表的定義例5.68 建立教學(xué)管理數(shù)據(jù)庫,再用SQL命令建立學(xué)生表、課程表、成績(jī)表。create database kkkcreate table 學(xué)生(學(xué)號(hào) c(8) primary key, 姓名 c(8) not null, 性別 c(2), 年齡 n(3) check 年齡16 and 年齡0) error 面積應(yīng)該大于0)第七十六張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.1 表的定義create table 職工(倉庫號(hào) C(5),職工號(hào) c(5) primary key,工資 i check(工資=1000 an
46、d 工資=5000)error “工資值的范圍在1000-5000!“ default 1200,foreign key 倉庫號(hào) tag 倉庫號(hào) references 倉庫1)create table 供應(yīng)商(供應(yīng)商號(hào) c(5) primary key,供應(yīng)商名 c(20),地址 c(20)第七十七張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.1 表的定義create table 訂購單(職工號(hào) c(5),供應(yīng)商號(hào) c(5),訂購單號(hào) c(5) primary key,訂購日期 d,foreign key 職工號(hào) tag 職工號(hào) references 職工1,foreign key 供應(yīng)商
47、號(hào) tag 供應(yīng)商號(hào) references 供應(yīng)商1)第七十八張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.2 表結(jié)構(gòu)的修改Alter Table命令用于修改表結(jié)構(gòu),可以增添字段、刪除字段、改變字段的定義、增添或刪除約束等。第七十九張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.2 表結(jié)構(gòu)的修改Alter Table命令有3種格式。格式1:Alter Table Add | Alter Column (字段寬度, ) Null | Not Null CheckError Default Primary Key | UniqueReferences Tag 第八十張,PPT共九十一頁,創(chuàng)作
48、于2022年6月5.4.2 表結(jié)構(gòu)的修改功能:這種格式用來添加字段或修改字段的參數(shù) ??梢孕薷淖侄蔚念愋?、寬度、有效性規(guī)則等,但不能修改字段名,不能刪除字段及已定義的字段有效性規(guī)則。不管是否修改字段類型,必須將字段名和類型一同在命令中列出。第八十一張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.2 表結(jié)構(gòu)的修改例5.70 為課程表增加一個(gè)新的字段“學(xué)時(shí)”(數(shù)值型,寬度2)。Alter table 課程 add 學(xué)時(shí) n(2) check 學(xué)時(shí)0 error “學(xué)時(shí)應(yīng)該大于0例5.71將課程表的“課程名”字段的寬度改為14Alter table 課程 alter 課程名c(14) 例5.72
49、為“訂購單”表增加一個(gè)新字段“總金額”(貨幣類型)alter table 訂購單 add 總金額 y check 總金額0 error “總金額應(yīng)該大于0“例5.73 將訂購單的“訂購單號(hào)”字段的寬度改為6alter table 訂購單 alter 訂購單號(hào) c(6)第八十二張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.2 表結(jié)構(gòu)的修改格式2:ALTER TABLE ALTER COLUMN NULL | NOT NULL SET CHECKERROR SET DEFAULT DROP DEFAULTDROP CHECK功能:這種格式主要用于定義、修改和刪除字段的有效性規(guī)則和默認(rèn)值定義。第八十三張,PPT共九十一頁,創(chuàng)作于2022年6月5.4.2 表結(jié)構(gòu)的修改例5.74 修改“訂購單”表字段“總金額”的有效性規(guī)則alter table 訂購單 alter 總金額 set check 總金額100 error 總金額應(yīng)該大于100“例5.75 刪除“訂購單”表字段“總金額”的有效性規(guī)則alter table 訂購單 alter 總金額 drop check例5.76 修改課
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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年現(xiàn)代管理學(xué)的前沿話題及試題及答案
- 行政公文寫作測(cè)試的試題及答案綜合解析
- 變革領(lǐng)導(dǎo)的角色與挑戰(zhàn)試題及答案
- 2025年建筑工程考試突圍試題及答案
- 2025年建筑工程考試評(píng)估體系試題及答案
- 共同投資生意合同范例
- 2025年自考行政管理內(nèi)容架構(gòu)試題及答案
- 企業(yè)店轉(zhuǎn)讓合同范例
- 行政管理的制度變遷與改革方向試題及答案
- 行政管理的文化傳承試題及答案
- 通信施工培訓(xùn)課件
- 專題18 圓錐曲線(橢圓、雙曲線、拋物線)小題綜合(學(xué)生卷)-2025年高考之近十年真題數(shù)學(xué)分項(xiàng)匯編
- 七年級(jí)下冊(cè)《一元一次不等式的應(yīng)用》課件與練習(xí)
- 產(chǎn)業(yè)園合作框架協(xié)議書范本
- 《電泳涂裝工藝》課件
- 2025年度咖啡廳員工培訓(xùn)服務(wù)合同范本
- 2025年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫含答案解析
- 檔案安全知識(shí)培訓(xùn)
- 建筑公司禮儀培訓(xùn)
- 夏糧收購倉儲(chǔ)培訓(xùn)
- 大學(xué)生心理健康教育知到智慧樹章節(jié)測(cè)試課后答案2024年秋湖南中醫(yī)藥大學(xué)
評(píng)論
0/150
提交評(píng)論