第3章VF中SQL語(yǔ)言的應(yīng)用1

上傳人:仙*** 文檔編號(hào):34578237 上傳時(shí)間:2021-10-21 格式:PPT 頁(yè)數(shù):43 大?。?02.52KB
收藏 版權(quán)申訴 舉報(bào) 下載
第3章VF中SQL語(yǔ)言的應(yīng)用1_第1頁(yè)
第1頁(yè) / 共43頁(yè)
第3章VF中SQL語(yǔ)言的應(yīng)用1_第2頁(yè)
第2頁(yè) / 共43頁(yè)
第3章VF中SQL語(yǔ)言的應(yīng)用1_第3頁(yè)
第3頁(yè) / 共43頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《第3章VF中SQL語(yǔ)言的應(yīng)用1》由會(huì)員分享,可在線閱讀,更多相關(guān)《第3章VF中SQL語(yǔ)言的應(yīng)用1(43頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第十章 VF中SQL語(yǔ)言的應(yīng)用n第一節(jié)第一節(jié) SQL語(yǔ)言概述語(yǔ)言概述 n第二節(jié)第二節(jié) 數(shù)據(jù)查詢數(shù)據(jù)查詢n第三節(jié)第三節(jié) 數(shù)據(jù)操縱數(shù)據(jù)操縱n第四節(jié)第四節(jié) 數(shù)據(jù)定義數(shù)據(jù)定義 SQLSQL語(yǔ)言簡(jiǎn)介語(yǔ)言簡(jiǎn)介 SQLSQL(Structured Query LanguageStructured Query Language)語(yǔ)言是一種十分重要的語(yǔ)言是一種十分重要的。 SQLSQL語(yǔ)言語(yǔ)言19861986年成為國(guó)際標(biāo)準(zhǔn)語(yǔ)言年成為國(guó)際標(biāo)準(zhǔn)語(yǔ)言 SQL SQL語(yǔ)言有兩種使用方式,即可語(yǔ)言有兩種使用方式,即可以作為以作為自含式語(yǔ)言自含式語(yǔ)言,在數(shù)據(jù)庫(kù)管理系,在數(shù)據(jù)庫(kù)管理系統(tǒng)中獨(dú)立使用,又可以作為統(tǒng)中獨(dú)立使用,又可

2、以作為嵌入式語(yǔ)嵌入式語(yǔ)言言,嵌入許多高級(jí)語(yǔ)言(如,嵌入許多高級(jí)語(yǔ)言(如C C、FORTRANFORTRAN、COBOLCOBOL)中使用。)中使用。 SQLSQL語(yǔ)言的特點(diǎn)語(yǔ)言的特點(diǎn)1 1SQLSQL語(yǔ)言是一種一體化的語(yǔ)言語(yǔ)言是一種一體化的語(yǔ)言 2 2SQLSQL語(yǔ)言是一種高度非過程化的語(yǔ)言。語(yǔ)言是一種高度非過程化的語(yǔ)言。 它沒有必要一步步告訴計(jì)算機(jī)它沒有必要一步步告訴計(jì)算機(jī)“如何如何”去做,而只需要描述清楚用戶要去做,而只需要描述清楚用戶要“做什做什么么”,SQLSQL語(yǔ)言就可以將要求交給系統(tǒng),語(yǔ)言就可以將要求交給系統(tǒng),自動(dòng)完成全部工作。它的大多數(shù)語(yǔ)句都是自動(dòng)完成全部工作。它的大多數(shù)語(yǔ)句都是

3、獨(dú)立執(zhí)行、與上下文無(wú)關(guān)。獨(dú)立執(zhí)行、與上下文無(wú)關(guān)。3 3語(yǔ)言簡(jiǎn)潔,易學(xué)易用語(yǔ)言簡(jiǎn)潔,易學(xué)易用SQL的命令動(dòng)詞SQL功能 命令動(dòng)詞數(shù)據(jù)查詢數(shù)據(jù)查詢 SELECT數(shù)據(jù)定義數(shù)據(jù)定義 CREATE、DROP、ALTER數(shù)據(jù)操縱數(shù)據(jù)操縱 INSERT、UPDATE、DELETE數(shù)據(jù)控制數(shù)據(jù)控制 GRANT、REVOKE(VFP中不中不能用)能用)操作不需要打開表7二、二、 SQLSQL語(yǔ)言的基本概念語(yǔ)言的基本概念SQLSQL語(yǔ)言支持關(guān)系型數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)。其中外模語(yǔ)言支持關(guān)系型數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)。其中外模式對(duì)應(yīng)于式對(duì)應(yīng)于視圖(視圖(ViewView)和部分和部分基本表(基本表(Base TableB

4、ase Table),),模式對(duì)應(yīng)于基本表,內(nèi)模式對(duì)應(yīng)于存儲(chǔ)文件。模式對(duì)應(yīng)于基本表,內(nèi)模式對(duì)應(yīng)于存儲(chǔ)文件?;颈砘颈硎潜旧愍?dú)立存在的表,在是本身獨(dú)立存在的表,在SQLSQL語(yǔ)言中一個(gè)關(guān)語(yǔ)言中一個(gè)關(guān)系對(duì)應(yīng)一個(gè)表。一些基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件,一個(gè)系對(duì)應(yīng)一個(gè)表。一些基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件,一個(gè)表可以帶若干索引,索引存放在存儲(chǔ)文件中。表可以帶若干索引,索引存放在存儲(chǔ)文件中。存儲(chǔ)文件的邏輯結(jié)構(gòu)組成了關(guān)系型數(shù)據(jù)庫(kù)的內(nèi)模存儲(chǔ)文件的邏輯結(jié)構(gòu)組成了關(guān)系型數(shù)據(jù)庫(kù)的內(nèi)模式。而存儲(chǔ)文件的物理文件結(jié)構(gòu)是任意的。式。而存儲(chǔ)文件的物理文件結(jié)構(gòu)是任意的。視圖是從基本表或其他視圖中導(dǎo)出的表,它本身視圖是從基本表或其他視圖中導(dǎo)

5、出的表,它本身不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫(kù)中,也就是說(shuō)數(shù)據(jù)庫(kù)只存放在視不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫(kù)中,也就是說(shuō)數(shù)據(jù)庫(kù)只存放在視力的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放力的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中,因此視圖是一個(gè)虛表。在導(dǎo)出視圖的基本表中,因此視圖是一個(gè)虛表。1 1、數(shù)據(jù)定義數(shù)據(jù)定義命令命令* * CREATE TABLE-SQLCREATE TABLE-SQL(建立表結(jié)構(gòu))(建立表結(jié)構(gòu)) ALTER TABLE-SQLALTER TABLE-SQL(修改表結(jié)構(gòu))(修改表結(jié)構(gòu)) DROP TABLE-SQLDROP TABLE-SQL(刪除表)(刪除表)2 2、數(shù)據(jù)修改、

6、數(shù)據(jù)修改命令命令 INSERT-SQLINSERT-SQL(插入數(shù)據(jù))(插入數(shù)據(jù))* * DELETE-SQLDELETE-SQL(刪除數(shù)據(jù))(刪除數(shù)據(jù))* * UPDATE-SQLUPDATE-SQL(更新數(shù)據(jù))(更新數(shù)據(jù))3 3、SQLSQL數(shù)據(jù)查詢數(shù)據(jù)查詢 在數(shù)據(jù)庫(kù)中對(duì)數(shù)據(jù)的操作,很在數(shù)據(jù)庫(kù)中對(duì)數(shù)據(jù)的操作,很多時(shí)侯是查詢,因此,數(shù)據(jù)查詢是多時(shí)侯是查詢,因此,數(shù)據(jù)查詢是數(shù)據(jù)庫(kù)的核心操作。而在數(shù)據(jù)庫(kù)的核心操作。而在SQLSQL語(yǔ)言中,語(yǔ)言中,查詢語(yǔ)言中只有一條查詢命令,即查詢語(yǔ)言中只有一條查詢命令,即SELECTSELECT語(yǔ)句。語(yǔ)句。 10.2 數(shù)據(jù)查詢n數(shù)據(jù)查詢通過數(shù)據(jù)查詢通過Selec

7、t語(yǔ)句表達(dá)語(yǔ)句表達(dá)n語(yǔ)句格式語(yǔ)句格式S E L E C T A L L | D I S T I N C T , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC 10.2 數(shù)據(jù)查詢nSELECT子句子句:指定要顯示的屬性列:指定要顯示的屬性列nFROM子句子句:指定查詢對(duì)象:指定查詢對(duì)象(基本表或視圖基本表或視圖)nWHERE子句子句:指定查詢條件:指定查詢條件nGROUP BY子句子句:對(duì)查詢結(jié)果按指定列的值分組,:對(duì)查詢結(jié)果按指定列的值分組,該屬性列值相等的元組為一個(gè)組。通常會(huì)在每組該屬性列值相等的元組為一個(gè)組。通常會(huì)在每組中作用集函數(shù)。中作用集

8、函數(shù)。nHAVING短語(yǔ)短語(yǔ):篩選出只有滿足指定條件的組:篩選出只有滿足指定條件的組nORDER BY子句子句:對(duì)查詢結(jié)果表按指定列值的升:對(duì)查詢結(jié)果表按指定列值的升序或降序排序序或降序排序 10.2 數(shù)據(jù)查詢n整個(gè)整個(gè)Select語(yǔ)句的含義:語(yǔ)句的含義:n根據(jù)根據(jù)Where子句的條件表達(dá)式,從子句的條件表達(dá)式,從From子句指定子句指定的基本表或視圖中找出滿足條件的元組,再按的基本表或視圖中找出滿足條件的元組,再按Select子句中的目標(biāo)列表達(dá)式,選出元組中的屬子句中的目標(biāo)列表達(dá)式,選出元組中的屬性值形成結(jié)果表。如果有性值形成結(jié)果表。如果有Group子句,則將結(jié)果子句,則將結(jié)果按按的值進(jìn)行分

9、組,該屬性列值相等的的值進(jìn)行分組,該屬性列值相等的元組為一個(gè)組。元組為一個(gè)組。如果如果Group子句帶子句帶Having短語(yǔ),短語(yǔ),則只有滿足指定條件的組才可以輸出則只有滿足指定條件的組才可以輸出。如果有。如果有Order子句,則結(jié)果還要按子句,則結(jié)果還要按的值升序的值升序或降序排列?;蚪敌蚺帕?。10.2 數(shù)據(jù)查詢n注意:注意:n編寫編寫SQL語(yǔ)句之前,要知道各個(gè)表的結(jié)構(gòu)和聯(lián)系,語(yǔ)句之前,要知道各個(gè)表的結(jié)構(gòu)和聯(lián)系,即數(shù)據(jù)庫(kù)的模式。即數(shù)據(jù)庫(kù)的模式。nSQL一般寫成多行,用續(xù)行符一般寫成多行,用續(xù)行符(;)接在最后,但接在最后,但SQL語(yǔ)句完成的那行不加續(xù)行符。語(yǔ)句完成的那行不加續(xù)行符。n表達(dá)式和

10、表達(dá)式和SQL中的中的符號(hào)的書寫必須使用半角符號(hào)符號(hào)的書寫必須使用半角符號(hào)10.2.1 單表查詢n單表查詢單表查詢:From子句后只有一個(gè)表的查詢子句后只有一個(gè)表的查詢nFrom子句的格式:子句的格式:FROM 數(shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)名! 表名表名 AS本地別名本地別名 n數(shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)名!:可選,用來(lái)指出哪個(gè)數(shù)據(jù)庫(kù)中的表:可選,用來(lái)指出哪個(gè)數(shù)據(jù)庫(kù)中的表n本地別名:可選,給數(shù)據(jù)表起另一個(gè)名字,在后本地別名:可選,給數(shù)據(jù)表起另一個(gè)名字,在后面可以用別名代替原表名面可以用別名代替原表名n分下面三種使用情況舉例分下面三種使用情況舉例n1. 查詢所有的列查詢所有的列n2. 查詢指定的列查詢指定的列n3.查詢經(jīng)

11、過計(jì)算的值或更改列標(biāo)題名查詢經(jīng)過計(jì)算的值或更改列標(biāo)題名1. 查詢所有列n如果如果SELECT中的中的為為*,表示查詢所有列,表示查詢所有列n例例10.1 返回返回“學(xué)生表學(xué)生表”中的所有行和所有列中的所有行和所有列set default to “D:我的我的數(shù)據(jù)庫(kù)項(xiàng)目數(shù)據(jù)庫(kù)項(xiàng)目”open database “D:我的我的數(shù)據(jù)庫(kù)項(xiàng)目數(shù)據(jù)庫(kù)項(xiàng)目數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)教學(xué)管理教學(xué)管理數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù).dbc”select * ;from 教學(xué)管理數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù)!學(xué)生表學(xué)生表n例例10.2 查詢成績(jī)表中的所有記錄查詢成績(jī)表中的所有記錄set default to “D:我的數(shù)據(jù)庫(kù)項(xiàng)目我的數(shù)據(jù)庫(kù)項(xiàng)目”open

12、database “D:我的數(shù)據(jù)庫(kù)項(xiàng)目我的數(shù)據(jù)庫(kù)項(xiàng)目數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)教學(xué)管理教學(xué)管理數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù).dbc”select * ;from 成績(jī)表成績(jī)表2. 查詢指定列 (投影操作)n要查詢指定列,要在要查詢指定列,要在SELECT的的中中指定列名,在這些列上進(jìn)行投影。指定列名,在這些列上進(jìn)行投影。n例例10.3 檢索學(xué)生表中的學(xué)號(hào)、姓名、性別和籍貫檢索學(xué)生表中的學(xué)號(hào)、姓名、性別和籍貫set default to “D:我的數(shù)據(jù)庫(kù)項(xiàng)目我的數(shù)據(jù)庫(kù)項(xiàng)目”nopen database “D:我的數(shù)據(jù)庫(kù)項(xiàng)目我的數(shù)據(jù)庫(kù)項(xiàng)目數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)教教學(xué)管理數(shù)據(jù)庫(kù)學(xué)管理數(shù)據(jù)庫(kù).dbc”nselect 學(xué)號(hào)學(xué)號(hào),姓名姓名,性別

13、性別,籍貫籍貫;nfrom 學(xué)生表學(xué)生表3.查詢經(jīng)過計(jì)算的值或更改列標(biāo)題名nSELECT子句中可以使用運(yùn)算符來(lái)對(duì)列進(jìn)行計(jì)算得到結(jié)果子句中可以使用運(yùn)算符來(lái)對(duì)列進(jìn)行計(jì)算得到結(jié)果nSELECT子句可以用子句可以用更改字段名更改字段名n例例10.4 對(duì)學(xué)生表的入學(xué)成績(jī)除以對(duì)學(xué)生表的入學(xué)成績(jī)除以600,求相對(duì)成績(jī),其顯示的字段名為,求相對(duì)成績(jī),其顯示的字段名為“相對(duì)成績(jī)相對(duì)成績(jī)”set default to “D:我的數(shù)據(jù)庫(kù)項(xiàng)目我的數(shù)據(jù)庫(kù)項(xiàng)目”open database “D:我的數(shù)據(jù)庫(kù)項(xiàng)目我的數(shù)據(jù)庫(kù)項(xiàng)目數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù).dbc”select 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)

14、/600 as 相對(duì)成績(jī)相對(duì)成績(jī);from 學(xué)生表學(xué)生表n例例10.5 求所有學(xué)生在求所有學(xué)生在2004年的年齡年的年齡set default to “D:我的數(shù)據(jù)庫(kù)項(xiàng)目我的數(shù)據(jù)庫(kù)項(xiàng)目”open database “D:我的數(shù)據(jù)庫(kù)項(xiàng)目我的數(shù)據(jù)庫(kù)項(xiàng)目數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù).dbc”select 學(xué)號(hào)學(xué)號(hào),姓名姓名,2004-year(出生日期出生日期) as 年齡年齡;from 學(xué)生表學(xué)生表二、選擇表中的若干元組二、選擇表中的若干元組(選擇操作選擇操作)n使用使用SELECT語(yǔ)句的語(yǔ)句的WHERE子句的條件來(lái)實(shí)行選擇子句的條件來(lái)實(shí)行選擇操作操作n1. 消除取值重復(fù)的行消除取值重

15、復(fù)的行n有時(shí)兩個(gè)本來(lái)不完全相同的元組,在選擇某些列后,可能有時(shí)兩個(gè)本來(lái)不完全相同的元組,在選擇某些列后,可能變成完全相同了。如果指定變成完全相同了。如果指定DISTINCT短語(yǔ),則表示在計(jì)短語(yǔ),則表示在計(jì)算時(shí)要取消指定列中的重復(fù)值。如果不指定算時(shí)要取消指定列中的重復(fù)值。如果不指定DISTINCT短短語(yǔ)或指定語(yǔ)或指定ALL短語(yǔ)短語(yǔ)(ALL為默認(rèn)值為默認(rèn)值),則表示不取消重復(fù)值。,則表示不取消重復(fù)值。n例例10.6:輸出學(xué)生表中所有的籍貫。:輸出學(xué)生表中所有的籍貫。select distinct 籍貫籍貫;from 學(xué)生表學(xué)生表二、選擇表中的若干元組二、選擇表中的若干元組(選擇操作選擇操作)2.查

16、詢滿足條件的元組查詢滿足條件的元組查詢滿足指定條件的元組可以通過查詢滿足指定條件的元組可以通過WHERE子句實(shí)現(xiàn),子句實(shí)現(xiàn),WHERE子句常用的查詢條件如子句常用的查詢條件如表表10.1所示。所示。=等于等于=小于等于小于等于=準(zhǔn)確等于準(zhǔn)確等于 AND與,用于多重條件與,用于多重條件 LIKE字符匹配字符匹配 OR或,用于多重條件或,用于多重條件 或或 != 或或 # 不等于不等于 NOT非,用于條件取非非,用于條件取非大于大于 BETWEENAND確定范圍確定范圍 =大于等于大于等于IN確定集合確定集合 、=、=、=、#(或或!=或或)、= =。 n例例10.8:查找入學(xué)成績(jī)大于等于:查找入

17、學(xué)成績(jī)大于等于600的同的同學(xué)的學(xué)號(hào)、姓名和入學(xué)成績(jī)。學(xué)的學(xué)號(hào)、姓名和入學(xué)成績(jī)。select 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)成績(jī)?nèi)雽W(xué)成績(jī);from 學(xué)生表學(xué)生表;where 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)= 600 二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)2.查詢滿足條件的元組之查詢滿足條件的元組之(1)大小比較大小比較n例例10.9:查找學(xué)生表中的少數(shù)民族學(xué)生。:查找學(xué)生表中的少數(shù)民族學(xué)生。select 學(xué)號(hào)學(xué)號(hào),姓名姓名;from 學(xué)生表學(xué)生表;where 少數(shù)民族否少數(shù)民族否 = .T.n例例10-10:求:求1987年以后出生的學(xué)生學(xué)號(hào)年以后出生的學(xué)生學(xué)號(hào)和姓名。和姓名。selec

18、t 學(xué)號(hào)學(xué)號(hào),姓名姓名,出生日期出生日期;from 學(xué)生表學(xué)生表;where 出生日期出生日期=1987/01/01二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(2)多重條件查詢多重條件查詢nSELECT語(yǔ)句提供邏輯運(yùn)算符語(yǔ)句提供邏輯運(yùn)算符AND和和OR,可用來(lái)組合聯(lián)結(jié)多,可用來(lái)組合聯(lián)結(jié)多個(gè)查詢條件。個(gè)查詢條件。 n例例10.11:查找入學(xué)成績(jī)?cè)冢翰檎胰雽W(xué)成績(jī)?cè)?00分以上的少數(shù)民族學(xué)生的學(xué)分以上的少數(shù)民族學(xué)生的學(xué)號(hào)、姓名和少數(shù)民族否。號(hào)、姓名和少數(shù)民族否。select 學(xué)號(hào)學(xué)號(hào),姓名姓名,少數(shù)民族否少數(shù)民族否;from 學(xué)生表

19、學(xué)生表;where 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) = 500 and 少數(shù)民族否少數(shù)民族否 = .T.n例例10.12:查找入學(xué)成績(jī)?cè)冢翰檎胰雽W(xué)成績(jī)?cè)?70分以上的女性學(xué)生,顯示學(xué)分以上的女性學(xué)生,顯示學(xué)號(hào)、姓名、性別和入學(xué)成績(jī)。號(hào)、姓名、性別和入學(xué)成績(jī)。select 學(xué)號(hào)學(xué)號(hào),姓名姓名,性別性別,入學(xué)成績(jī)?nèi)雽W(xué)成績(jī);from 學(xué)生表學(xué)生表;where 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) = 570 and 性別性別 = 女女nAND的優(yōu)先級(jí)高于的優(yōu)先級(jí)高于OR,但我們可以用括號(hào)改變優(yōu)先級(jí)。,但我們可以用括號(hào)改變優(yōu)先級(jí)。 二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的

20、元組之(3)確定范圍確定范圍n謂詞謂詞BETWEENAND用來(lái)限定范圍,其中用來(lái)限定范圍,其中BETWEEN后后是范圍的下限是范圍的下限(即低值即低值),AND后是范圍的上限(即高值)。后是范圍的上限(即高值)。n n例例10.13:求入學(xué)成績(jī)?cè)冢呵笕雽W(xué)成績(jī)?cè)?00到到600間的學(xué)生學(xué)號(hào)、姓名和入間的學(xué)生學(xué)號(hào)、姓名和入學(xué)成績(jī)。學(xué)成績(jī)。select 學(xué)生表學(xué)生表.學(xué)號(hào)學(xué)號(hào), 學(xué)生表學(xué)生表.姓名姓名, 學(xué)生表學(xué)生表.入學(xué)成績(jī)?nèi)雽W(xué)成績(jī);from 教學(xué)管理數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù)!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) between 500 and 600上述上述SQL語(yǔ)句的條件等價(jià)于

21、如下語(yǔ)句語(yǔ)句的條件等價(jià)于如下語(yǔ)句where 學(xué)生表學(xué)生表.入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) = 500 and 學(xué)生表學(xué)生表.入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) = 600二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(3)確定范圍確定范圍n如果要求入學(xué)成績(jī)不在如果要求入學(xué)成績(jī)不在500到到600間的學(xué)生學(xué)間的學(xué)生學(xué)號(hào)、姓名和入學(xué)成績(jī),使用下列號(hào)、姓名和入學(xué)成績(jī),使用下列SQL語(yǔ)句:語(yǔ)句:select 學(xué)生表學(xué)生表.學(xué)號(hào)學(xué)號(hào), 學(xué)生表學(xué)生表.姓名姓名, 學(xué)生表學(xué)生表.入學(xué)成績(jī)?nèi)雽W(xué)成績(jī);from 教學(xué)管理數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù)!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.

22、入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) not between 1000 and 600 二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(4)確定集合確定集合n使用謂詞使用謂詞 IN , NOT IN n:用逗號(hào)分隔的一組取值:用逗號(hào)分隔的一組取值n例例10.14:求籍貫為:求籍貫為“江西南昌江西南昌”或或“吉林吉林”的學(xué)生學(xué)號(hào)、姓的學(xué)生學(xué)號(hào)、姓名和籍貫。名和籍貫。select 學(xué)生表學(xué)生表.學(xué)號(hào)學(xué)號(hào), 學(xué)生表學(xué)生表.姓名姓名, 學(xué)生表學(xué)生表.籍貫籍貫;from 教學(xué)管理數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù)!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.籍貫籍貫 in (吉

23、林吉林,江西南昌江西南昌)n上述上述SQL語(yǔ)句可以等價(jià)于如下語(yǔ)句可以等價(jià)于如下SQL語(yǔ)句。語(yǔ)句。select 學(xué)生表學(xué)生表.學(xué)號(hào)學(xué)號(hào), 學(xué)生表學(xué)生表.姓名姓名, 學(xué)生表學(xué)生表.籍貫籍貫;from 教學(xué)管理數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù)!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.籍貫籍貫 = 吉林吉林;or 學(xué)生表學(xué)生表.籍貫籍貫 = 江西南昌江西南昌二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(4)確定集合確定集合n例例10.15:求籍貫不為:求籍貫不為“江西南昌江西南昌”和和“吉林吉林”的學(xué)生學(xué)號(hào)、的學(xué)生學(xué)號(hào)、姓名和籍貫。姓名和籍貫。se

24、lect 學(xué)生表學(xué)生表.學(xué)號(hào)學(xué)號(hào), 學(xué)生表學(xué)生表.姓名姓名, 學(xué)生表學(xué)生表.籍貫籍貫;from 教學(xué)管理數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù)!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.籍貫籍貫 not in (吉林吉林,江西南昌江西南昌)n上述上述SQL語(yǔ)句可以等價(jià)于如下語(yǔ)句可以等價(jià)于如下SQL語(yǔ)句。語(yǔ)句。select 學(xué)生表學(xué)生表.學(xué)號(hào)學(xué)號(hào), 學(xué)生表學(xué)生表.姓名姓名, 學(xué)生表學(xué)生表.籍貫籍貫;from 教學(xué)管理數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù)!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.籍貫籍貫 != 吉林吉林;and 學(xué)生表學(xué)生表.籍貫籍貫 != 江西南昌江西南昌二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操

25、作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(5)字符匹配字符匹配n謂詞謂詞LIKE可用來(lái)進(jìn)行字符串的匹配??捎脕?lái)進(jìn)行字符串的匹配。格式格式:nNOT LIKE ESCAPE n :指定匹配模板,固定字符串或含通配符的字符串:指定匹配模板,固定字符串或含通配符的字符串n當(dāng)匹配模板為固定字符串時(shí),可以用當(dāng)匹配模板為固定字符串時(shí),可以用 = = 運(yùn)算符取代運(yùn)算符取代 LIKE LIKE 謂謂詞,用詞,用 # #、!= != 或或 運(yùn)算符取代運(yùn)算符取代 NOT LIKE NOT LIKE 謂詞謂詞n通配符通配符:%(%(百分號(hào)百分號(hào)) )和和_(_(下劃線下劃線) )n% % 代表任意長(zhǎng)度代表

26、任意長(zhǎng)度( (長(zhǎng)度可以為長(zhǎng)度可以為0)0)的字符串。例如的字符串。例如a%ba%b表示以表示以a a開開頭,以頭,以b b結(jié)尾的任意長(zhǎng)度的字符串。結(jié)尾的任意長(zhǎng)度的字符串。n如如acbacb,addgbaddgb,abab等都滿足該匹配串等都滿足該匹配串 n代表任意單個(gè)字符。例如代表任意單個(gè)字符。例如a_ba_b表示以表示以a a開頭,以開頭,以b b結(jié)尾的長(zhǎng)度為結(jié)尾的長(zhǎng)度為3 3的任意字符串。如的任意字符串。如acbacb,afbafb等都滿足該匹配串等都滿足該匹配串二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(5)字符匹配字符

27、匹配例題n例例10-16:查找以姓:查找以姓“李李”開頭的學(xué)生學(xué)號(hào)和姓名。開頭的學(xué)生學(xué)號(hào)和姓名。select 學(xué)號(hào)學(xué)號(hào),姓名姓名;from 學(xué)生表學(xué)生表;where 姓名姓名 like 李李%“n例例10-17:查找以:查找以“強(qiáng)強(qiáng)”字為最后一個(gè)字符的學(xué)生字為最后一個(gè)字符的學(xué)生學(xué)號(hào)和姓名。學(xué)號(hào)和姓名。select 學(xué)號(hào)學(xué)號(hào),姓名姓名;from 學(xué)生表學(xué)生表;where 姓名姓名 like %強(qiáng)強(qiáng)二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(5)字符匹配字符匹配例題n例例10-18:查找第二個(gè)字符為:查找第二個(gè)字符為“永永”字的學(xué)

28、生學(xué)號(hào)字的學(xué)生學(xué)號(hào)和姓名。和姓名。select 學(xué)號(hào)學(xué)號(hào),姓名姓名;from 學(xué)生表學(xué)生表;where 姓名姓名 like _永永%“n例例10-19:查找江西籍的男性學(xué)生的學(xué)號(hào)和姓名:查找江西籍的男性學(xué)生的學(xué)號(hào)和姓名select 學(xué)號(hào)學(xué)號(hào),姓名姓名,性別性別,籍貫籍貫;from 學(xué)生表學(xué)生表;where 籍貫籍貫 like 江西江西%;and 性別性別 = 男男二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(5)字符匹配字符匹配例題n例例10-20:查找吉林或遼寧籍的學(xué)生學(xué)號(hào)、姓名、性別和籍:查找吉林或遼寧籍的學(xué)生學(xué)號(hào)、姓名、性

29、別和籍貫。貫。select 學(xué)號(hào)學(xué)號(hào),姓名姓名,性別性別,籍貫籍貫;from 學(xué)生表學(xué)生表;where 籍貫籍貫 like 吉林吉林%;or 籍貫籍貫 like 遼寧遼寧%“n例例10-21:查找非吉林和遼寧籍的學(xué)生學(xué)號(hào)、姓名、性別和:查找非吉林和遼寧籍的學(xué)生學(xué)號(hào)、姓名、性別和籍貫。籍貫。select 學(xué)號(hào)學(xué)號(hào),姓名姓名,性別性別,籍貫籍貫;from 學(xué)生表學(xué)生表;where not (籍貫籍貫 like 吉林吉林%);and not (籍貫籍貫 like 遼寧遼寧%)二、二、選擇表中的若干元組(選擇表中的若干元組(查詢結(jié)果輸出到表查詢結(jié)果輸出到表)n2.查詢滿足條件的元組之查詢滿足條件的元組

30、之(6)查詢結(jié)果輸出到表查詢結(jié)果輸出到表nSELECT默認(rèn)輸出給用戶瀏覽默認(rèn)輸出給用戶瀏覽。SELECT同時(shí)提供同時(shí)提供INTO或或TO子句來(lái)將查詢結(jié)果輸出重定向,其格式為:子句來(lái)將查詢結(jié)果輸出重定向,其格式為:INTO | TO FILE ADDITIVE | TO PRINTERn1)INTO n表示將查詢結(jié)果保存到目標(biāo)中,表示將查詢結(jié)果保存到目標(biāo)中,目標(biāo)的形式有三種:目標(biāo)的形式有三種:nARRAY :將查詢結(jié)果存到指定的數(shù)組中。:將查詢結(jié)果存到指定的數(shù)組中。nCURSOR :將查詢結(jié)果存到一個(gè)游標(biāo)中。所謂:將查詢結(jié)果存到一個(gè)游標(biāo)中。所謂游標(biāo)是一個(gè)臨時(shí)表,不同之處在于一旦游標(biāo)關(guān)閉就被刪除。

31、游標(biāo)是一個(gè)臨時(shí)表,不同之處在于一旦游標(biāo)關(guān)閉就被刪除。nDBF | TABLE :將查詢結(jié)果存到一個(gè)表,如:將查詢結(jié)果存到一個(gè)表,如果該表已經(jīng)打開,則系統(tǒng)自動(dòng)關(guān)閉該表。如果已經(jīng)設(shè)置了果該表已經(jīng)打開,則系統(tǒng)自動(dòng)關(guān)閉該表。如果已經(jīng)設(shè)置了SET SAFETY OFF(將安全功能關(guān)閉將安全功能關(guān)閉),則重新打開它不提,則重新打開它不提示。如果沒有指定后綴,則默認(rèn)為示。如果沒有指定后綴,則默認(rèn)為.dbf。在。在SELECT命令命令執(zhí)行完后,該表為打開狀態(tài)。執(zhí)行完后,該表為打開狀態(tài)。 二、二、選擇表中的若干元組(選擇表中的若干元組(查詢結(jié)果輸出到表查詢結(jié)果輸出到表)n2.查詢滿足條件的元組之查詢滿足條件的元

32、組之(6)查詢結(jié)果輸出到表查詢結(jié)果輸出到表n2)TO FILE ADDITIVE 將查詢結(jié)果將查詢結(jié)果輸出到指定的文本文件,輸出到指定的文本文件,ADDTIVE表示將結(jié)果追加表示將結(jié)果追加到原文件后面,否則將覆蓋原有文件。到原文件后面,否則將覆蓋原有文件。n3)TO PRINTER 的功能是將查詢結(jié)果送打印機(jī)輸?shù)墓δ苁菍⒉樵兘Y(jié)果送打印機(jī)輸出。出。n例例10-22:將籍貫為:將籍貫為“吉林吉林”或或“遼寧遼寧”的學(xué)生學(xué)號(hào)、的學(xué)生學(xué)號(hào)、姓名、性別和籍貫輸出到姓名、性別和籍貫輸出到D盤的根目錄。盤的根目錄。open database “D數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù)教學(xué)管理數(shù)據(jù)庫(kù).DBC” &打開數(shù)據(jù)

33、庫(kù)打開數(shù)據(jù)庫(kù)set default to D:&設(shè)置輸出的目錄設(shè)置輸出的目錄select 學(xué)號(hào)學(xué)號(hào),姓名姓名,性別性別,籍貫籍貫;from 學(xué)生表學(xué)生表;into dbf aa; where 籍貫籍貫 like “吉林吉林%” or 籍貫籍貫 like “遼遼寧寧%” &運(yùn)行查詢運(yùn)行查詢close all&關(guān)閉數(shù)據(jù)庫(kù)關(guān)閉數(shù)據(jù)庫(kù)use D:aa.dbf&打開數(shù)據(jù)庫(kù)打開數(shù)據(jù)庫(kù)aa.dbfbrowse&瀏覽查詢結(jié)果瀏覽查詢結(jié)果三、對(duì)查詢結(jié)果排序三、對(duì)查詢結(jié)果排序n使用使用ORDER BY子句子句n可以按一個(gè)或多個(gè)屬性列排序可以按一個(gè)或多個(gè)屬性列排序n升序:升序:ASC;降序:;降序:DESC;缺省值

34、為升序;缺省值為升序n當(dāng)排序列含空值時(shí)當(dāng)排序列含空值時(shí)nASC:排序列為空值的元組最后顯示:排序列為空值的元組最后顯示nDESC:排序列為空值的元組最先顯示:排序列為空值的元組最先顯示 三、對(duì)查詢結(jié)果排序三、對(duì)查詢結(jié)果排序舉例舉例n例例10-23:查詢所有學(xué)生的入學(xué)成績(jī),查詢結(jié):查詢所有學(xué)生的入學(xué)成績(jī),查詢結(jié)果按入學(xué)成績(jī)的降序排列。果按入學(xué)成績(jī)的降序排列。nselect 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)成績(jī)?nèi)雽W(xué)成績(jī);nfrom 學(xué)生表學(xué)生表;norder by 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) descn例例10-24:查詢所有學(xué)生的入學(xué)成績(jī),查詢結(jié):查詢所有學(xué)生的入學(xué)成績(jī),查詢結(jié)果按入學(xué)成績(jī)的升序排列。果按入學(xué)成績(jī)

35、的升序排列。n select 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)成績(jī)?nèi)雽W(xué)成績(jī);nfrom 學(xué)生表學(xué)生表;norder by 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)?nèi)?、?duì)查詢結(jié)果排序三、對(duì)查詢結(jié)果排序舉例舉例n例例10-25:按入學(xué)成績(jī)排降序和出生日期排降:按入學(xué)成績(jī)排降序和出生日期排降序輸出學(xué)號(hào)、姓名、入學(xué)成績(jī)和出生日期。序輸出學(xué)號(hào)、姓名、入學(xué)成績(jī)和出生日期。select 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)成績(jī)?nèi)雽W(xué)成績(jī),出生日期出生日期;from 學(xué)生表學(xué)生表;order by 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) desc, 出生日期出生日期 desc四、使用聚集函數(shù)四、使用聚集函數(shù)n聚集函數(shù):指作用在一個(gè)集合上的函數(shù),如聚集函數(shù):指作用在一個(gè)集合上的

36、函數(shù),如求和函數(shù)求和函數(shù)sum、求平均值、求平均值avg函數(shù)函數(shù) nSQL中的聚集函數(shù)中的聚集函數(shù) 函數(shù)函數(shù)含義含義AVG(DISTINCT|ALL )計(jì)算一列值的平均值計(jì)算一列值的平均值(此列必須是數(shù)值此列必須是數(shù)值型型)COUNT(DISTINCT|ALL *)統(tǒng)計(jì)元組個(gè)數(shù)統(tǒng)計(jì)元組個(gè)數(shù)COUNT(DISTINCT|ALL )統(tǒng)計(jì)一列中值的個(gè)數(shù)統(tǒng)計(jì)一列中值的個(gè)數(shù)MIN(DISTINCT|ALL )求一列值中的最小值求一列值中的最小值MAX(DISTINCT|ALL )求一列值中的最大值求一列值中的最大值SUM(DISTINCT|ALL )計(jì)算一列值的總和計(jì)算一列值的總和(此列必須是數(shù)值型此列

37、必須是數(shù)值型)四、使用聚集函數(shù)四、使用聚集函數(shù)例題例題n例例10-26:求學(xué)生表中入學(xué)成績(jī)?cè)冢呵髮W(xué)生表中入學(xué)成績(jī)?cè)?00分以上分以上的人數(shù)。的人數(shù)。select count(*);from 學(xué)生表學(xué)生表;where 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) = 600n例例10-27:求學(xué)生表中入學(xué)成績(jī)的平均成績(jī):求學(xué)生表中入學(xué)成績(jī)的平均成績(jī)select avg(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī));from 學(xué)生表學(xué)生表五、對(duì)查詢結(jié)果分組五、對(duì)查詢結(jié)果分組 n使用使用GROUP BY子句分組子句分組 n細(xì)化集函數(shù)的作用對(duì)象細(xì)化集函數(shù)的作用對(duì)象n未對(duì)查詢結(jié)果分組,集函數(shù)將作用于整個(gè)查詢結(jié)果未對(duì)查詢結(jié)果分組,集函數(shù)將作用于整個(gè)查詢結(jié)果n

38、對(duì)查詢結(jié)果分組后,集函數(shù)將分別作用于每個(gè)組對(duì)查詢結(jié)果分組后,集函數(shù)將分別作用于每個(gè)組 課程號(hào)課程號(hào)課程名課程名開課學(xué)期開課學(xué)期課程類別號(hào)課程類別號(hào)課時(shí)數(shù)課時(shí)數(shù)學(xué)分學(xué)分A0101鄧小平理論鄧小平理論101322B1001計(jì)算機(jī)應(yīng)用計(jì)算機(jī)應(yīng)用基礎(chǔ)基礎(chǔ)202644C3004微機(jī)操作微機(jī)操作202322n例例10-28:按課程類別號(hào),求各種類別課程的門數(shù):按課程類別號(hào),求各種類別課程的門數(shù) select 課程類別號(hào)課程類別號(hào),count(*);from 課程表課程表;group by 課程類別號(hào)課程類別號(hào) 課程類別號(hào)課程類別號(hào)Cnt011022五、對(duì)查詢結(jié)果分組五、對(duì)查詢結(jié)果分組 n例例10-29:求

39、各個(gè)年級(jí)的班數(shù):求各個(gè)年級(jí)的班數(shù) select 年級(jí)年級(jí),count(*);from 班級(jí)表班級(jí)表;group by 年級(jí)年級(jí)班級(jí)號(hào)班級(jí)號(hào)專業(yè)名稱專業(yè)名稱年級(jí)年級(jí) 班主任姓名班主任姓名所在學(xué)院所在學(xué)院班級(jí)人數(shù)班級(jí)人數(shù)ICS0301 計(jì)算機(jī)科學(xué)技術(shù)計(jì)算機(jī)科學(xué)技術(shù)200301班班2003李一梅李一梅信息管理學(xué)信息管理學(xué)0ICS0302 計(jì)算機(jī)科學(xué)技術(shù)計(jì)算機(jī)科學(xué)技術(shù)200302班班2003張華張華信息管理學(xué)信息管理學(xué)0CPA0401注冊(cè)會(huì)計(jì)師注冊(cè)會(huì)計(jì)師200401班班2004王平王平會(huì)計(jì)學(xué)院會(huì)計(jì)學(xué)院0CPA0402注冊(cè)會(huì)計(jì)師注冊(cè)會(huì)計(jì)師200402班班2004馬曉明馬曉明會(huì)計(jì)學(xué)院會(huì)計(jì)學(xué)院0CPA0403注冊(cè)會(huì)計(jì)師注冊(cè)會(huì)計(jì)師200403班班2004 會(huì)計(jì)學(xué)院會(huì)計(jì)學(xué)院0年級(jí)年級(jí)Cnt2003220043五、對(duì)查詢結(jié)果分組五、對(duì)查詢結(jié)果分組nGROUP BY子句的用法子句的用法nGROUP BY子句的作用對(duì)象是查詢的中間結(jié)果表子句的作用對(duì)象是查詢的中間結(jié)果表n分組方法:按指定的一列或多列值分組,值相分組方法:按指定的一列或多列值分組,值相等的為一組等的為一組n使用使用GROUP BY子句后,子句后,SELECT子句的列名子句的列名列表中只能出現(xiàn)分組屬性和聚集函數(shù)列表中只能出現(xiàn)分組屬性和聚集函數(shù)

展開閱讀全文
溫馨提示:
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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!