版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 數(shù)據(jù)處理與SQL,4.1 查詢文件的創(chuàng)建和使用 4.2 結(jié)構(gòu)化查詢語(yǔ)言(SQL) 4.3 視圖的創(chuàng)建和使用,4.1 查詢文件的創(chuàng)建和使用,4.1.1 利用查詢?cè)O(shè)計(jì)器創(chuàng)建查詢 4.1.2 查詢文件的修改 4.1.3 利用查詢向?qū)?chuàng)建查詢,三種方法創(chuàng)建查詢文件: 使用查詢?cè)O(shè)計(jì)器 使用查詢向?qū)?直接編寫(xiě)SELECT-SQL語(yǔ)句(4.2介紹),4.1.1 利用查詢?cè)O(shè)計(jì)器創(chuàng)建查詢,(1)啟動(dòng)查詢?cè)O(shè)計(jì)器 常用方法: 使用項(xiàng)目管理器:打開(kāi)項(xiàng)目管理器,在“數(shù)據(jù)”選項(xiàng)卡中選定“查詢”后單擊“新建” 從“文件”菜單或常用工具欄選擇“新建” 使用命令:CREATE QUERY,4.1.1 利用查詢?cè)O(shè)計(jì)器創(chuàng)建
2、查詢,(2) 添加數(shù)據(jù)源 查詢?cè)O(shè)計(jì)器被啟動(dòng)的同時(shí)彈出“添加表或視圖”對(duì)話框,用于添加查詢的數(shù)據(jù)源。,(3)在查詢?cè)O(shè)計(jì)器中建立查詢 “字段”選項(xiàng)卡:指定查詢輸出列 “聯(lián)接”選項(xiàng)卡:設(shè)置表之間的聯(lián)接關(guān)系 “篩選”選項(xiàng)卡:指定記錄篩選的條件 “排序依據(jù)”選項(xiàng)卡:指定記錄排序的依據(jù) “分組依據(jù)”選項(xiàng)卡:指定記錄分組的依據(jù) “雜項(xiàng)”選項(xiàng)卡:設(shè)置查詢結(jié)果中可否包含重復(fù)的記錄,以及對(duì)查詢記錄的數(shù)目進(jìn)行限制,4.1.1 利用查詢?cè)O(shè)計(jì)器創(chuàng)建查詢,4.1.1 利用查詢?cè)O(shè)計(jì)器創(chuàng)建查詢,(4)保存查詢文件(擴(kuò)展名為QPR) 常用方法:從“文件”菜單或常用工具欄選擇“保存” (5)運(yùn)行查詢文件,查看查詢結(jié)果 常用方法:
3、 “查詢,運(yùn)行查詢” 或常用工具欄中的“運(yùn)行” 使用項(xiàng)目管理器 使用命令:DO QUERY ,4.1.1 利用查詢?cè)O(shè)計(jì)器創(chuàng)建查詢,例4.1(單表查詢) 查詢student表中各專業(yè)非定向?qū)W生的 入學(xué)平均分,并按專業(yè)的升序顯示。 例4.2(多表查詢) 根據(jù)student表和grade表,查詢選修 “02001”課程的所有學(xué)生的學(xué)號(hào),姓名和 成績(jī),并按成績(jī)的降序顯示。,4.1.2 查詢文件的修改,打開(kāi)查詢文件的常用方法 使用項(xiàng)目管理器(若查詢文件已建在某一項(xiàng)目中) 從“文件”菜單或常用工具欄選擇“打開(kāi)” 使用命令:MODIFY QUERY ,4.1.2 查詢文件的修改,選擇查詢結(jié)果的輸出去向 常用
4、方法:“查詢,查詢?nèi)ハ颉?或: “查詢?cè)O(shè)計(jì)器”工具欄中的 “查詢?nèi)ハ颉?七種輸出去向:,4.1.3 利用查詢向?qū)?chuàng)建查詢,查詢向?qū)ь愋?查詢向?qū)В簞?chuàng)建標(biāo)準(zhǔn)的單表或多表查詢,在瀏覽窗口中顯示查詢結(jié)果 打開(kāi)查詢向?qū)СS貌僮鳎?使用項(xiàng)目管理器 使用“文件”菜單、“工具”菜單或常用工具欄 交叉表向?qū)?(了解) 圖形向?qū)?(了解),結(jié)構(gòu)化查詢語(yǔ)言SQL -Structured Query Language) SQL特點(diǎn): 一體化 高度非過(guò)程化 簡(jiǎn)潔但功能強(qiáng)大 關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的國(guó)際標(biāo)準(zhǔn)語(yǔ)言,4.2 結(jié)構(gòu)化查詢語(yǔ)言(SQL),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句 4.2.2 數(shù)據(jù)定義功能及語(yǔ)句 4.2.3 數(shù)據(jù)操
5、縱功能及語(yǔ)句,4.2 結(jié)構(gòu)化查詢語(yǔ)言(SQL),SQL的核心是數(shù)據(jù)查詢語(yǔ)句SELECT-SQL。 通過(guò)“查詢?cè)O(shè)計(jì)器”或“查詢向?qū)А鄙傻牟樵兾募?nèi)容就是一條SELECT-SQL語(yǔ)句。 在“查詢?cè)O(shè)計(jì)器”環(huán)境中查看當(dāng)前查詢文件內(nèi) SECTCT-SQL語(yǔ)句的方法: “查詢,查看SQL” 或 “查詢?cè)O(shè)計(jì)器”工具欄中的 “顯示SQL窗口”,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,例4.1的SQL語(yǔ)句,例4.2的SQL語(yǔ)句,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,SELECT-SQL語(yǔ)句常用格式: SELECT /* FROM WHERE ORDER BY ASC/DESC GROUP B
6、Y HAVING TO|INTO ,注: 該命令若分行輸入,需在每行(結(jié)束行除外)行末加續(xù)行標(biāo)記“;”,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,SELECT /* 指定查詢輸出列, “*”表示所有字段 在查詢?cè)O(shè)計(jì)器方法中,用“字段”選項(xiàng)卡實(shí)現(xiàn) FROM 指定查詢數(shù)據(jù)所在表 在查詢?cè)O(shè)計(jì)器方法中,用“添加表或視圖”對(duì)話框?qū)崿F(xiàn),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,WHERE 用于指定記錄篩選的條件,無(wú)where子句表示無(wú)條件查詢 在查詢?cè)O(shè)計(jì)器方法中,用“篩選”選項(xiàng)卡實(shí)現(xiàn) ORDER BY ASC/DESC 用于指定記錄排序的依據(jù),無(wú)order by子句表示無(wú)排序要求 在查詢?cè)O(shè)計(jì)器方法中,用“排序依據(jù)”選項(xiàng)卡實(shí)現(xiàn)
7、,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,GROUP BY HAVING 指定記錄分組的依據(jù),無(wú)group by子句表示無(wú)分組要求 在查詢?cè)O(shè)計(jì)器方法中,用“分組依據(jù)”選項(xiàng)卡實(shí)現(xiàn) TO|INTO 指定查詢結(jié)果的輸出去向, 默認(rèn)輸出為瀏覽窗口-名為“查詢”的只讀臨時(shí)表 在查詢?cè)O(shè)計(jì)器方法中,用“查詢?nèi)ハ颉睂?duì)話框?qū)崿F(xiàn),簡(jiǎn)單查詢 SELECT |* FROM 1)查詢?nèi)啃畔ⅲ河谩?”表示全部字段。 例4.4 查詢STUDENT表的全部信息。 SELECT * FROM STUDENT 2)查詢部分字段內(nèi)容:逐一列出所需字段并以“,”分隔。 例4.5 查詢STUDENT表中所有學(xué)生的學(xué)號(hào)、姓名和專業(yè)。 SELE
8、CT 學(xué)號(hào),姓名,專業(yè) FROM STUDENT,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,3)查詢結(jié)果不包含重復(fù)記錄: 在SELECT后使用DISTINCT選項(xiàng)。 例4.6 根據(jù)GRADE表查詢課程號(hào)(要求課程號(hào)不重復(fù))。 SELECT DISTINCT 課程號(hào) FROM GRADE,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,4)查詢輸出常量、表達(dá)式的值,可以為常量或表達(dá)式取一個(gè)有含義的名稱作為查詢結(jié)果的列標(biāo)題。,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,例4.7 查詢顯示STUDENT表中所有學(xué)生的學(xué)校、學(xué)號(hào)、姓名和年齡。假設(shè)學(xué)校為“福州大學(xué)”。 SELECT “福州大學(xué)” AS 學(xué)校,學(xué)號(hào),姓名,; YEAR(DAT
9、E()-YEAR(出生日期) AS 年齡; FROM STUDENT 或缺省AS: SELECT “福州大學(xué)” 學(xué)校,學(xué)號(hào),姓名,; YEAR(DATE()-YEAR(出生日期) 年齡; FROM STUDENT,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,不指定列標(biāo)題的查詢結(jié)果,指定列標(biāo)題的查詢結(jié)果,5)簡(jiǎn)單統(tǒng)計(jì)查詢:輸出列使用了統(tǒng)計(jì)函數(shù),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,例4.8 查詢顯示STUDENT表中所有學(xué)生的平均入學(xué)總分、最高入學(xué)總分和最低入學(xué)總分。 SELECT AVG(入學(xué)總分) AS 平均入學(xué)總分,; MAX(入學(xué)總分) AS 最高入學(xué)總分,; MIN(入學(xué)
10、總分) AS 最低入學(xué)總分 ; FROM STUDENT,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,條件查詢 SELECT FROM WHERE 條件的表達(dá)形式有: NOT LIKE NOT BETWEEN AND IS NOT NULL NOT IN (/),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,1)關(guān)系運(yùn)算符的使用 例4.9 查詢STUDENT表中入學(xué)總分大于等于570分的學(xué)生學(xué)號(hào)、姓名和入學(xué)總分。 SELECT 學(xué)號(hào),姓名,入學(xué)總分 ; FROM STUDENT WHERE 入學(xué)總分=570 例4.10 查詢STUDENT表中男生的學(xué)號(hào)和姓名。 SELECT 學(xué)號(hào),姓名 ; FROM student W
11、HERE 性別=男,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,2)邏輯運(yùn)算符的使用 例4.11 查詢STUDENT表中所有“工商管理”專業(yè)男生的學(xué)號(hào)和姓名。 SELECT 學(xué)號(hào),姓名 FROM STUDENT ; WHERE 專業(yè)=”工商管理” AND 性別=”男”,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,2)邏輯運(yùn)算符的使用 例4.12 查詢STUDENT表中所有“工商管理”專業(yè)和“社會(huì)學(xué)”專業(yè)男生的學(xué)號(hào)、姓名及專業(yè)。 SELECT 學(xué)號(hào),姓名,專業(yè) FROM STUDENT ; WHERE (專業(yè)=”工商管理” OR 專業(yè)=”社會(huì)學(xué)”); AND 性別=男,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,3) LIKE運(yùn)算
12、符的使用 例4.13 查詢STUDENT表中“01”學(xué)院學(xué)生(即學(xué)號(hào)以“01”打頭)的信息。 SELECT * FROM STUDENT WHERE 學(xué)號(hào) LIKE 01%,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,通配式中的%表示0到任意個(gè)任意字符,3) LIKE運(yùn)算符的使用 例4.14 查詢STUDENT表中姓“陳”的05級(jí)學(xué)生(即學(xué)號(hào)的第3-4為為“05”)的信息。 SELECT * FROM STUDENT ; WHERE 姓名 LIKE 陳% AND 學(xué)號(hào) LIKE _05%,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,_表示單個(gè)任意字符,4) BETWEEN運(yùn)算符的使用 例4.15 查STUDENT表中
13、86年上半年出生的學(xué)生人數(shù)。 SELECT COUNT(*) FROM STUDENT; WHERE 出生日期 BETWEEN; 1986/01/01 AND 1986/6/30,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,例4.16 查詢STUDENT表中入學(xué)總分低于550分或高于585分的學(xué)生信息。 SELECT * FROM STUDENT; WHERE 入學(xué)總分 NOT BETWEEN 550 AND 585 或用BETWEEN()函數(shù): SELECT * FROM STUDENT; WHERE NOT BETWEEN(入學(xué)總分,550,585),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,5) IN運(yùn)算符的
14、使用 例4.17 查詢STUDENT表中名為李和、陳紅或許文強(qiáng)的學(xué)生的信息。 SELECT * FROM STUDENT ; WHERE 姓名 IN(李和,陳紅,許文強(qiáng)),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,6) IS NULL運(yùn)算符的使用 例4.18 查詢GRADE表中已考試課程的課程號(hào)。 SELECT DISTINCT 課程號(hào) FROM GRADE ; WHERE 成績(jī) IS NOT NULL,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,對(duì)查詢結(jié)果排序 SELECT TOP n PERCENT FROM WHERE ORDER BY ASC|DESC 排序依據(jù)有以下幾種形式: ,4.2.1 數(shù)據(jù)查詢功能及
15、語(yǔ)句,1)排序輸出查詢到的所有記錄 例4.19 查詢STUDENT表中的學(xué)生信息,并按入學(xué)總分降序、入學(xué)總分相同者按出生日期升序顯示。 SELECT * FROM STUDENT; ORDER BY 入學(xué)總分 DESC,出生日期 ASC 例4.20 查詢STUDENT表中所有學(xué)生的學(xué)號(hào)、姓名和年齡,并按年齡由小到大的順序排列。 SELECT 學(xué)號(hào),姓名,; YEAR(DATE()-YEAR(出生日期) AS 年齡 ; FROM STUDENT ORDER BY 年齡,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,升序ASC可缺省,表達(dá)式不能直接寫(xiě)在ORDER BY子句中,2)用TOP選項(xiàng)限制輸出的記錄數(shù) 例
16、4.21 查詢STUDENT表中的入學(xué)總分排在前3位的學(xué)生信息。 SELECT TOP 3 * FROM STUDENT ; ORDER BY 入學(xué)總分 DESC 若將TOP 3 改為T(mén)OP 3 PERCENT,即: SELECT TOP 3 PERCENT * FROM STUDENT ; ORDER BY 入學(xué)總分 DESC 則表示查詢STUDENT表中的入學(xué)總分排在前3% 的學(xué)生信息。,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,分組統(tǒng)計(jì)查詢 SELECT FROM WHERE GROUP BY HAVING 分組依據(jù)有以下幾種形式: ,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,例4.22 根據(jù)STUDENT
17、表統(tǒng)計(jì)各專業(yè)學(xué)生的人數(shù)和平均入學(xué)總分并輸出。 SELECT 專業(yè), COUNT(*) AS 學(xué)生數(shù),; AVG(入學(xué)總分) AS 平均入學(xué)總分; FROM STUDENT GROUP BY 專業(yè),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,例4.23 統(tǒng)計(jì)各專業(yè)學(xué)生的人數(shù)和平均入學(xué)總分,僅要求輸出平均入學(xué)總分大于等于560分的信息。 SELECT 專業(yè),COUNT(*) AS 學(xué)生數(shù),; AVG(入學(xué)總分) AS 平均入學(xué)總分 FROM STUDENT; GROUP BY 專業(yè) HAVING 平均入學(xué)總分=560,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,HAVING子句指定的是分組后哪些記錄能作為查詢的最終結(jié)果輸
18、出,例4.24 統(tǒng)計(jì)各專業(yè)中入學(xué)總分大于等于560分的學(xué)生的人數(shù)和平均入學(xué)總分并輸出。 SELECT 專業(yè),COUNT(*) AS 學(xué)生數(shù),; AVG(入學(xué)總分) AS 平均入學(xué)總分 FROM STUDENT; GROUP BY 專業(yè) WHERE 入學(xué)總分=560,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,WHERE子句指定哪些記錄能參加分組,聯(lián)接查詢 (四種類型): 內(nèi)部聯(lián)接:連接結(jié)果由左表和右表中滿足聯(lián)接條件的記錄組成,是最常用的聯(lián)接類型 左聯(lián)接: 包含左表全部記錄及右表中滿足聯(lián)接條件的記錄 右聯(lián)接: 包含右表全部記錄及左表中滿足聯(lián)接條件的記錄 完全聯(lián)接:包含兩個(gè)表的全部記錄,4.2.1 數(shù)據(jù)查詢功
19、能及語(yǔ)句,(1)兩表內(nèi)部聯(lián)接 實(shí)現(xiàn)1)SELECT FROM INNER JOIN ON 實(shí)現(xiàn)2)SELECT FROM , WHERE 例: SELECT * FROM STUDENT INNER JOIN GRADE; ON STUDENT.學(xué)號(hào)=GRADE.學(xué)號(hào) 或 SELECT * FROM STUDENT,GRADE ; WHERE STUDENT.學(xué)號(hào)=GRADE.學(xué)號(hào),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,例4.25 根據(jù)STUDENT表和GRADE表,查詢選修“02001”課程的所有學(xué)生的學(xué)號(hào)、姓名和成績(jī),并按成績(jī)降序顯示。 SELECT S.學(xué)號(hào),姓名,成績(jī); FROM STUDE
20、NT S INNER JOIN GRADE G; ON S.學(xué)號(hào)=G.學(xué)號(hào); WHERE 課程號(hào)=02001; ORDER BY 成績(jī) DESC,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,可指定S、G分別為表STUDENT、GRADE的別名,注意:學(xué)號(hào)不唯一,要加前綴(表名或表別名);姓名、成績(jī)、課程號(hào)唯一,則可缺省前綴。,(2)兩表左聯(lián)接、右聯(lián)接或完全聯(lián)接查詢 SELECT FROM IEFT|RIGHT|FULL JOIN ON 例4.27 根據(jù)COLLEGE表和STUDENT表,查詢所有學(xué)院的學(xué)生信息,包括學(xué)院名稱、學(xué)號(hào)和姓名。如果某個(gè)學(xué)院無(wú)學(xué)生,也要顯示該學(xué)院的名稱。 SELECT 學(xué)院名稱,學(xué)
21、號(hào),姓名; FROM COLLEGE LEFT JOIN STUDENT ; ON 學(xué)院代碼=LEFT(學(xué)號(hào),2),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,(3)多表聯(lián)接查詢 例4.28 查詢所有學(xué)生各門(mén)課程的成績(jī)信息,包括學(xué)號(hào)、姓名、課程號(hào)、課程名、學(xué)分和成績(jī),并按學(xué)號(hào)從小到大順序排列,學(xué)號(hào)相同的記錄按課程號(hào)從小到大順序排列。,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,(3)多表聯(lián)接查詢 SELECT STUDENT.學(xué)號(hào),姓名,GRADE.課程號(hào),; 課程名,學(xué)分,成績(jī); FROM STUDENT,GRADE,COURSE; WHERE STUDENT.學(xué)號(hào)=GRADE.學(xué)號(hào) AND ; GRADE.課程號(hào)
22、= COURSE.課程號(hào); ORDER BY STUDENT.學(xué)號(hào),COURSE.課程號(hào),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,例4.28 用INNER JOIN實(shí)現(xiàn): SELECT STUDENT.學(xué)號(hào),姓名,GRADE.課程號(hào),; 課程名,學(xué)分,成績(jī); FROM STUDENT; INNER JOIN GRADE; INNER JOIN COURSE; ON GRADE.課程號(hào)= COURSE.課程號(hào); ON STUDENT.學(xué)號(hào)=GRADE.學(xué)號(hào); ORDER BY STUDENT.學(xué)號(hào),COURSE.課程號(hào),4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,嵌套查詢: 在一個(gè)SELECT-SQL語(yǔ)句的WHER
23、E子句中嵌入另一個(gè)SELECT-SQL語(yǔ)句。外層查詢稱為父查詢,內(nèi)層查詢稱為子查詢。 常用格式: SELECT FROM WHERE IN ( SELECT FROM WHERE ) 功能:首先執(zhí)行子查詢,其結(jié)果構(gòu)成一個(gè)集合,然后從父表中查詢指定字段值屬于該集合的記錄。,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,例4.29 根據(jù)STUDENT表和GRADE表,查詢有不及格成績(jī)的學(xué)生學(xué)號(hào)和姓名。 SELECT 學(xué)號(hào),姓名 FROM STUDENT; WHERE 學(xué)號(hào) IN ; (SELECT 學(xué)號(hào) FROM GRADE WHERE 成績(jī)60) 可用聯(lián)接查詢實(shí)現(xiàn): SELECT DISTINCT STUDE
24、NT.學(xué)號(hào),姓名; FROM STUDENT,GRADE; WHERE STUDENT.學(xué)號(hào)=GRADE.學(xué)號(hào) AND 成績(jī)60,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,查詢輸出去向 SELECT-SQL語(yǔ)句默認(rèn)輸出到瀏覽窗口,可通過(guò)INTO或TO子句改變輸出去向。 INTO ARRAY INTO CURSOR INTO TABLE TO FILE ADDITIVE TO PRINTER TO SCREEN,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,(1)INTO ARRAY 將查詢結(jié)果存放到指定的二維數(shù)組中,每行存放一條記錄,每列對(duì)應(yīng)于查詢結(jié)果的一列。,例4.30 從STUDENT表中查出所有專業(yè)名稱(不重復(fù)
25、),并將查詢結(jié)果保存在數(shù)組ZY中。 SELECT DISTINCT 專業(yè) FROM STUDENT ; INTO ARRAY ZY 注:若查出4個(gè)專業(yè)名稱,則分別存放在數(shù)組元素ZY(1,1)、ZY(1,2)、ZY(1,3)、ZY(1,4)中,也可看作一維數(shù)組元素ZY(1)、ZY(2)、ZY(3)、ZY(4) 。,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,(2)INTO TABLE 將查詢結(jié)果保存到指定的自由表文件(.DBF)中。自動(dòng)作為當(dāng)前表打開(kāi)著(但不打開(kāi)瀏覽窗口),例4.31 對(duì)STUDENT表按專業(yè)統(tǒng)計(jì)平均入學(xué)總分,并將統(tǒng)計(jì)結(jié)果保存在ZYHZ表中。 SELECT 專業(yè), AVG(入學(xué)總分); FR
26、OM STUDENT; GROUP BY 專業(yè); INTO TABLE ZYHZ,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,(3)INTO CURSOR 將查詢結(jié)果保存到指定的只讀臨時(shí)表中, 自動(dòng)作為當(dāng)前表打開(kāi)在內(nèi)存(但不打開(kāi)瀏覽窗口),一旦關(guān)閉該表則自動(dòng)刪除。,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,例4.32 根據(jù)STUDENT、COURSE和GRADE表,查詢學(xué)號(hào)為“0305001”的學(xué)生的姓名、所學(xué)課程名及成績(jī),并將查詢結(jié)果保存在臨時(shí)表TEMP中。 SELECT 姓名,課程名,成績(jī); FROM STUDENT,COURSE,GRADE ; WHERE STUDENT.學(xué)號(hào)
27、=GRADE.學(xué)號(hào) ; AND COURSE.課程號(hào)=GRADE.課程號(hào) ; AND STUDENT.學(xué)號(hào)=0305001 ; INTO CURSOR TEMP,(4)TO FILE ADDITIVE 將查詢結(jié)果保存到指定的文本文件(.TXT)中。ADDITIVE選項(xiàng)表示追加式存入。 (5)TO PRINTER 將查詢結(jié)果直接輸出到打印機(jī)。 (6)TO SCREEN 將查詢結(jié)果直接顯示在VFP的系統(tǒng)主窗口中。,4.2.1 數(shù)據(jù)查詢功能及語(yǔ)句,1.創(chuàng)建表結(jié)構(gòu)語(yǔ)句: CREATE TABLE-SQL (了解),CREATE TABLE FREE ( (,) , (,) ,),例如: CREATE
28、TABLE STUDENT_NEW ; (學(xué)號(hào) C(7),姓名 C(8),出生日期 D,; 定向否 L,入學(xué)總分 N(6,1),簡(jiǎn)歷 M),4.2.2 數(shù)據(jù)定義功能及語(yǔ)句,4.2.2 數(shù)據(jù)定義功能及語(yǔ)句,4.2.2 數(shù)據(jù)定義功能及語(yǔ)句,例4.34 在“教學(xué)管理”數(shù)據(jù)庫(kù)中創(chuàng)建TEST表,表結(jié)構(gòu)如下:學(xué)號(hào)(字符型,7)、課程號(hào)(字符型,5)、考試時(shí)間(日期型,可為空)、考試地點(diǎn)(字符型,10,可為空),并以學(xué)號(hào)+課程號(hào)為索引表達(dá)式建立名為SC的候選索引。 OPEN DATABASE 教學(xué)管理 CREATE TABLE TEST; (學(xué)號(hào) C(7), 課程號(hào) C(5),考試時(shí)間 D NULL,; 考
29、試地點(diǎn) C(10) NULL,; UNIQUE 學(xué)號(hào)+課程號(hào) TAG SC),4.2.2 數(shù)據(jù)定義功能及語(yǔ)句,2.修改表結(jié)構(gòu)語(yǔ)句: ALTER TABLE-SQL (了解)(1) 添加新字段 ALTER TABLE ADD (,) (2) 刪除或修改字段名 ALTER TABLE DROP RENAME TO ,4.2.2 數(shù)據(jù)定義功能及語(yǔ)句,(3)重設(shè)已有字段的類型、寬度和部分字段級(jí)約束 ALTER TABLE ALTER (,) PRIMARY KEY UNIQUE NULL NOT NULL,4.2.2 數(shù)據(jù)定義功能及語(yǔ)句,(4)重設(shè)或刪除已有字段的有效性規(guī)則和默認(rèn)值 ALTER TAB
30、LE ALTER SET DEFAULT DROP DEFAULT SET CHECK ERROR DROP CHECK NULL NOT NULL,4.2.2 數(shù)據(jù)定義功能及語(yǔ)句,(5)重設(shè)或刪除表級(jí)約束 ALTER TABLE SET CHECK ERROR DROP CHECK ADD PRIMARY KEY TAG DROP PRIMARY KEY ADD UNIQUE TAG DROP UNIQUE TAG ,4.2.2 數(shù)據(jù)定義功能及語(yǔ)句,3.刪除表語(yǔ)句: DROP TABLE-SQL,刪除表結(jié)構(gòu)和數(shù)據(jù),不可恢復(fù) DROP TABLE 例4.38 刪除“教學(xué)管理”數(shù)據(jù)庫(kù)中的TEST
31、表。 OPEN DATABASE 教學(xué)管理 DROP TABLE TEST,4.2.2 數(shù)據(jù)定義功能及語(yǔ)句,1.記錄插入語(yǔ)句:INSERT-SQL INSERT INTO (,) VALUES (, ),4.2.3 數(shù)據(jù)操縱功能及語(yǔ)句,若按表中字段排列順序依次給新記錄各個(gè)字段賦值,可缺省字段名表,4.2.3 數(shù)據(jù)操縱功能及語(yǔ)句,例4.39 向TEACHER表追加一條新記錄:教師號(hào)“T66101”,姓名“王小明”,職稱“講師”,學(xué)院代碼“03”。 INSERT INTO TEACHER(教師號(hào),姓名,職稱,學(xué)院代碼); VALUES(T66101,王小明,講師,03) 或: INSERT INT
32、O TEACHER ; VALUES(T66101,王小明,講師,03),2. 記錄邏輯刪除語(yǔ)句: DELETE-SQL DELETE FROM WHERE 例4.40 將TEACHER表中03學(xué)院的教師記錄邏輯刪除。 DELETE FROM TEACHER WHERE 學(xué)院代碼=03,4.2.3 數(shù)據(jù)操縱功能及語(yǔ)句,3. 記錄更新語(yǔ)句:UPDATE-SQL UPDATE SET = ,=, WHERE 例4.41 將TEACHER表中張明的職稱改為“教授”。 UPDATE TEACHER SET 職稱=教授; WHERE 姓名=張明,4.2.3 數(shù)據(jù)操縱功能及語(yǔ)句,視圖是從數(shù)據(jù)表或其他視圖中檢
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年1月江蘇揚(yáng)州市機(jī)關(guān)生活服務(wù)中心招聘廚師2人考試參考試題及答案解析
- 首都醫(yī)科大學(xué)附屬北京回龍觀醫(yī)院派遣人員招聘5人考試參考試題及答案解析
- 2026廣西柳州市融安縣招聘城鎮(zhèn)公益性崗位人員30人考試備考試題及答案解析
- 2026青海西寧市婦幼保健計(jì)劃生育服務(wù)中心招聘6人考試備考試題及答案解析
- 2026遼寧鞍山市海城市融媒體中心公益性崗位招聘2人考試參考試題及答案解析
- 2026山西忻州市五寨縣廉潔征兵考試參考題庫(kù)及答案解析
- 2026青海智特安全環(huán)境技術(shù)服務(wù)有限公司招聘技術(shù)員6人考試備考試題及答案解析
- 2026年黃山學(xué)院師資博士后招聘11名筆試模擬試題及答案解析
- 2026上海復(fù)旦大學(xué)附屬腫瘤醫(yī)院泌尿外科大學(xué)科團(tuán)隊(duì)招聘考試參考試題及答案解析
- 2026貴州畢節(jié)市財(cái)政局選聘監(jiān)管企業(yè)兼職外部董事考試參考試題及答案解析
- 安全技術(shù)與管理畢業(yè)論文
- 2025年新疆中考數(shù)學(xué)真題試卷及答案
- 溫嶺市恩力天金屬表面處理有限公司年處理10萬(wàn)噸磷化金屬表面技改項(xiàng)目環(huán)評(píng)報(bào)告
- 職務(wù)侵占罪法律培訓(xùn)
- 【2025版】人教版(PEP)三年級(jí)下冊(cè)英語(yǔ)教學(xué)工作計(jì)劃(及進(jìn)度表)
- 勞動(dòng)仲裁申請(qǐng)書(shū)電子版模板
- JJF 1183-2025 溫度變送器校準(zhǔn)規(guī)范
- 2024“五史”全文課件
- 家用燃?xì)庠罱Y(jié)構(gòu)、工作原理、配件介紹、常見(jiàn)故障處理
- 人教版七年級(jí)數(shù)學(xué)上冊(cè)期末試題及參考答案(偏難)
- 關(guān)節(jié)攣縮的治療及預(yù)防
評(píng)論
0/150
提交評(píng)論