歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

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

  • 資源ID:34578237       資源大?。?span id="6111111" class="font-tahoma">802.52KB        全文頁數(shù):43頁
  • 資源格式: PPT        下載積分:10積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

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

第十章 VF中SQL語言的應(yīng)用n第一節(jié)第一節(jié) SQL語言概述語言概述 n第二節(jié)第二節(jié) 數(shù)據(jù)查詢數(shù)據(jù)查詢n第三節(jié)第三節(jié) 數(shù)據(jù)操縱數(shù)據(jù)操縱n第四節(jié)第四節(jié) 數(shù)據(jù)定義數(shù)據(jù)定義 SQLSQL語言簡介語言簡介 SQLSQL(Structured Query LanguageStructured Query Language)語言是一種十分重要的語言是一種十分重要的。 SQLSQL語言語言19861986年成為國際標(biāo)準(zhǔn)語言年成為國際標(biāo)準(zhǔn)語言 SQL SQL語言有兩種使用方式,即可語言有兩種使用方式,即可以作為以作為自含式語言自含式語言,在數(shù)據(jù)庫管理系,在數(shù)據(jù)庫管理系統(tǒng)中獨(dú)立使用,又可以作為統(tǒng)中獨(dú)立使用,又可以作為嵌入式語嵌入式語言言,嵌入許多高級(jí)語言(如,嵌入許多高級(jí)語言(如C C、FORTRANFORTRAN、COBOLCOBOL)中使用。)中使用。 SQLSQL語言的特點(diǎn)語言的特點(diǎn)1 1SQLSQL語言是一種一體化的語言語言是一種一體化的語言 2 2SQLSQL語言是一種高度非過程化的語言。語言是一種高度非過程化的語言。 它沒有必要一步步告訴計(jì)算機(jī)它沒有必要一步步告訴計(jì)算機(jī)“如何如何”去做,而只需要描述清楚用戶要去做,而只需要描述清楚用戶要“做什做什么么”,SQLSQL語言就可以將要求交給系統(tǒng),語言就可以將要求交給系統(tǒng),自動(dòng)完成全部工作。它的大多數(shù)語句都是自動(dòng)完成全部工作。它的大多數(shù)語句都是獨(dú)立執(zhí)行、與上下文無關(guān)。獨(dú)立執(zhí)行、與上下文無關(guān)。3 3語言簡潔,易學(xué)易用語言簡潔,易學(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語言的基本概念語言的基本概念SQLSQL語言支持關(guān)系型數(shù)據(jù)庫的三級(jí)模式結(jié)構(gòu)。其中外模語言支持關(guān)系型數(shù)據(jù)庫的三級(jí)模式結(jié)構(gòu)。其中外模式對(duì)應(yīng)于式對(duì)應(yīng)于視圖(視圖(ViewView)和部分和部分基本表(基本表(Base TableBase Table),),模式對(duì)應(yīng)于基本表,內(nèi)模式對(duì)應(yīng)于存儲(chǔ)文件。模式對(duì)應(yīng)于基本表,內(nèi)模式對(duì)應(yīng)于存儲(chǔ)文件?;颈砘颈硎潜旧愍?dú)立存在的表,在是本身獨(dú)立存在的表,在SQLSQL語言中一個(gè)關(guān)語言中一個(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ù)庫的內(nèi)模存儲(chǔ)文件的邏輯結(jié)構(gòu)組成了關(guān)系型數(shù)據(jù)庫的內(nèi)模式。而存儲(chǔ)文件的物理文件結(jié)構(gòu)是任意的。式。而存儲(chǔ)文件的物理文件結(jié)構(gòu)是任意的。視圖是從基本表或其他視圖中導(dǎo)出的表,它本身視圖是從基本表或其他視圖中導(dǎo)出的表,它本身不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫中,也就是說數(shù)據(jù)庫只存放在視不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫中,也就是說數(shù)據(jù)庫只存放在視力的定義而不存放視圖對(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ù)修改、數(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ù)庫中對(duì)數(shù)據(jù)的操作,很在數(shù)據(jù)庫中對(duì)數(shù)據(jù)的操作,很多時(shí)侯是查詢,因此,數(shù)據(jù)查詢是多時(shí)侯是查詢,因此,數(shù)據(jù)查詢是數(shù)據(jù)庫的核心操作。而在數(shù)據(jù)庫的核心操作。而在SQLSQL語言中,語言中,查詢語言中只有一條查詢命令,即查詢語言中只有一條查詢命令,即SELECTSELECT語句。語句。 10.2 數(shù)據(jù)查詢n數(shù)據(jù)查詢通過數(shù)據(jù)查詢通過Select語句表達(dá)語句表達(dá)n語句格式語句格式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ù)。中作用集函數(shù)。nHAVING短語短語:篩選出只有滿足指定條件的組:篩選出只有滿足指定條件的組nORDER BY子句子句:對(duì)查詢結(jié)果表按指定列值的升:對(duì)查詢結(jié)果表按指定列值的升序或降序排序序或降序排序 10.2 數(shù)據(jù)查詢n整個(gè)整個(gè)Select語句的含義:語句的含義:n根據(jù)根據(jù)Where子句的條件表達(dá)式,從子句的條件表達(dá)式,從From子句指定子句指定的基本表或視圖中找出滿足條件的元組,再按的基本表或視圖中找出滿足條件的元組,再按Select子句中的目標(biāo)列表達(dá)式,選出元組中的屬子句中的目標(biāo)列表達(dá)式,選出元組中的屬性值形成結(jié)果表。如果有性值形成結(jié)果表。如果有Group子句,則將結(jié)果子句,則將結(jié)果按按的值進(jìn)行分組,該屬性列值相等的的值進(jìn)行分組,該屬性列值相等的元組為一個(gè)組。元組為一個(gè)組。如果如果Group子句帶子句帶Having短語,短語,則只有滿足指定條件的組才可以輸出則只有滿足指定條件的組才可以輸出。如果有。如果有Order子句,則結(jié)果還要按子句,則結(jié)果還要按的值升序的值升序或降序排列?;蚪敌蚺帕小?0.2 數(shù)據(jù)查詢n注意:注意:n編寫編寫SQL語句之前,要知道各個(gè)表的結(jié)構(gòu)和聯(lián)系,語句之前,要知道各個(gè)表的結(jié)構(gòu)和聯(lián)系,即數(shù)據(jù)庫的模式。即數(shù)據(jù)庫的模式。nSQL一般寫成多行,用續(xù)行符一般寫成多行,用續(xù)行符(;)接在最后,但接在最后,但SQL語句完成的那行不加續(xù)行符。語句完成的那行不加續(xù)行符。n表達(dá)式和表達(dá)式和SQL中的中的符號(hào)的書寫必須使用半角符號(hào)符號(hào)的書寫必須使用半角符號(hào)10.2.1 單表查詢n單表查詢單表查詢:From子句后只有一個(gè)表的查詢子句后只有一個(gè)表的查詢nFrom子句的格式:子句的格式:FROM 數(shù)據(jù)庫名數(shù)據(jù)庫名! 表名表名 AS本地別名本地別名 n數(shù)據(jù)庫名數(shù)據(jù)庫名!:可選,用來指出哪個(gè)數(shù)據(jù)庫中的表:可選,用來指出哪個(gè)數(shù)據(jù)庫中的表n本地別名:可選,給數(shù)據(jù)表起另一個(gè)名字,在后本地別名:可選,給數(shù)據(jù)表起另一個(gè)名字,在后面可以用別名代替原表名面可以用別名代替原表名n分下面三種使用情況舉例分下面三種使用情況舉例n1. 查詢所有的列查詢所有的列n2. 查詢指定的列查詢指定的列n3.查詢經(jīng)過計(jì)算的值或更改列標(biāo)題名查詢經(jīng)過計(jì)算的值或更改列標(biāo)題名1. 查詢所有列n如果如果SELECT中的中的為為*,表示查詢所有列,表示查詢所有列n例例10.1 返回返回“學(xué)生表學(xué)生表”中的所有行和所有列中的所有行和所有列set default to “D:我的我的數(shù)據(jù)庫項(xiàng)目數(shù)據(jù)庫項(xiàng)目”open database “D:我的我的數(shù)據(jù)庫項(xiàng)目數(shù)據(jù)庫項(xiàng)目數(shù)據(jù)庫數(shù)據(jù)庫教學(xué)管理教學(xué)管理數(shù)據(jù)庫數(shù)據(jù)庫.dbc”select * ;from 教學(xué)管理數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫!學(xué)生表學(xué)生表n例例10.2 查詢成績表中的所有記錄查詢成績表中的所有記錄set default to “D:我的數(shù)據(jù)庫項(xiàng)目我的數(shù)據(jù)庫項(xiàng)目”open database “D:我的數(shù)據(jù)庫項(xiàng)目我的數(shù)據(jù)庫項(xiàng)目數(shù)據(jù)庫數(shù)據(jù)庫教學(xué)管理教學(xué)管理數(shù)據(jù)庫數(shù)據(jù)庫.dbc”select * ;from 成績表成績表2. 查詢指定列 (投影操作)n要查詢指定列,要在要查詢指定列,要在SELECT的的中中指定列名,在這些列上進(jìn)行投影。指定列名,在這些列上進(jìn)行投影。n例例10.3 檢索學(xué)生表中的學(xué)號(hào)、姓名、性別和籍貫檢索學(xué)生表中的學(xué)號(hào)、姓名、性別和籍貫set default to “D:我的數(shù)據(jù)庫項(xiàng)目我的數(shù)據(jù)庫項(xiàng)目”nopen database “D:我的數(shù)據(jù)庫項(xiàng)目我的數(shù)據(jù)庫項(xiàng)目數(shù)據(jù)庫數(shù)據(jù)庫教教學(xué)管理數(shù)據(jù)庫學(xué)管理數(shù)據(jù)庫.dbc”nselect 學(xué)號(hào)學(xué)號(hào),姓名姓名,性別性別,籍貫籍貫;nfrom 學(xué)生表學(xué)生表3.查詢經(jīng)過計(jì)算的值或更改列標(biāo)題名nSELECT子句中可以使用運(yùn)算符來對(duì)列進(jìn)行計(jì)算得到結(jié)果子句中可以使用運(yùn)算符來對(duì)列進(jìn)行計(jì)算得到結(jié)果nSELECT子句可以用子句可以用更改字段名更改字段名n例例10.4 對(duì)學(xué)生表的入學(xué)成績除以對(duì)學(xué)生表的入學(xué)成績除以600,求相對(duì)成績,其顯示的字段名為,求相對(duì)成績,其顯示的字段名為“相對(duì)成績相對(duì)成績”set default to “D:我的數(shù)據(jù)庫項(xiàng)目我的數(shù)據(jù)庫項(xiàng)目”open database “D:我的數(shù)據(jù)庫項(xiàng)目我的數(shù)據(jù)庫項(xiàng)目數(shù)據(jù)庫數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫.dbc”select 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)成績?nèi)雽W(xué)成績/600 as 相對(duì)成績相對(duì)成績;from 學(xué)生表學(xué)生表n例例10.5 求所有學(xué)生在求所有學(xué)生在2004年的年齡年的年齡set default to “D:我的數(shù)據(jù)庫項(xiàng)目我的數(shù)據(jù)庫項(xiàng)目”open database “D:我的數(shù)據(jù)庫項(xiàng)目我的數(shù)據(jù)庫項(xiàng)目數(shù)據(jù)庫數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫.dbc”select 學(xué)號(hào)學(xué)號(hào),姓名姓名,2004-year(出生日期出生日期) as 年齡年齡;from 學(xué)生表學(xué)生表二、選擇表中的若干元組二、選擇表中的若干元組(選擇操作選擇操作)n使用使用SELECT語句的語句的WHERE子句的條件來實(shí)行選擇子句的條件來實(shí)行選擇操作操作n1. 消除取值重復(fù)的行消除取值重復(fù)的行n有時(shí)兩個(gè)本來不完全相同的元組,在選擇某些列后,可能有時(shí)兩個(gè)本來不完全相同的元組,在選擇某些列后,可能變成完全相同了。如果指定變成完全相同了。如果指定DISTINCT短語,則表示在計(jì)短語,則表示在計(jì)算時(shí)要取消指定列中的重復(fù)值。如果不指定算時(shí)要取消指定列中的重復(fù)值。如果不指定DISTINCT短短語或指定語或指定ALL短語短語(ALL為默認(rèn)值為默認(rèn)值),則表示不取消重復(fù)值。,則表示不取消重復(fù)值。n例例10.6:輸出學(xué)生表中所有的籍貫。:輸出學(xué)生表中所有的籍貫。select distinct 籍貫籍貫;from 學(xué)生表學(xué)生表二、選擇表中的若干元組二、選擇表中的若干元組(選擇操作選擇操作)2.查詢滿足條件的元組查詢滿足條件的元組查詢滿足指定條件的元組可以通過查詢滿足指定條件的元組可以通過WHERE子句實(shí)現(xiàn),子句實(shí)現(xiàn),WHERE子句常用的查詢條件如子句常用的查詢條件如表表10.1所示。所示。=等于等于=小于等于小于等于=準(zhǔn)確等于準(zhǔn)確等于 AND與,用于多重條件與,用于多重條件 LIKE字符匹配字符匹配 OR或,用于多重條件或,用于多重條件 或或 != 或或 # 不等于不等于 NOT非,用于條件取非非,用于條件取非大于大于 BETWEENAND確定范圍確定范圍 =大于等于大于等于IN確定集合確定集合 、=、=、=、#(或或!=或或)、= =。 n例例10.8:查找入學(xué)成績大于等于:查找入學(xué)成績大于等于600的同的同學(xué)的學(xué)號(hào)、姓名和入學(xué)成績。學(xué)的學(xué)號(hào)、姓名和入學(xué)成績。select 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)成績?nèi)雽W(xué)成績;from 學(xué)生表學(xué)生表;where 入學(xué)成績?nèi)雽W(xué)成績= 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)和姓名。和姓名。select 學(xué)號(hào)學(xué)號(hào),姓名姓名,出生日期出生日期;from 學(xué)生表學(xué)生表;where 出生日期出生日期=1987/01/01二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(2)多重條件查詢多重條件查詢nSELECT語句提供邏輯運(yùn)算符語句提供邏輯運(yùn)算符AND和和OR,可用來組合聯(lián)結(jié)多,可用來組合聯(lián)結(jié)多個(gè)查詢條件。個(gè)查詢條件。 n例例10.11:查找入學(xué)成績?cè)冢翰檎胰雽W(xué)成績?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é)生表學(xué)生表;where 入學(xué)成績?nèi)雽W(xué)成績 = 500 and 少數(shù)民族否少數(shù)民族否 = .T.n例例10.12:查找入學(xué)成績?cè)冢翰檎胰雽W(xué)成績?cè)?70分以上的女性學(xué)生,顯示學(xué)分以上的女性學(xué)生,顯示學(xué)號(hào)、姓名、性別和入學(xué)成績。號(hào)、姓名、性別和入學(xué)成績。select 學(xué)號(hào)學(xué)號(hào),姓名姓名,性別性別,入學(xué)成績?nèi)雽W(xué)成績;from 學(xué)生表學(xué)生表;where 入學(xué)成績?nèi)雽W(xué)成績 = 570 and 性別性別 = 女女nAND的優(yōu)先級(jí)高于的優(yōu)先級(jí)高于OR,但我們可以用括號(hào)改變優(yōu)先級(jí)。,但我們可以用括號(hào)改變優(yōu)先級(jí)。 二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(3)確定范圍確定范圍n謂詞謂詞BETWEENAND用來限定范圍,其中用來限定范圍,其中BETWEEN后后是范圍的下限是范圍的下限(即低值即低值),AND后是范圍的上限(即高值)。后是范圍的上限(即高值)。n n例例10.13:求入學(xué)成績?cè)冢呵笕雽W(xué)成績?cè)?00到到600間的學(xué)生學(xué)號(hào)、姓名和入間的學(xué)生學(xué)號(hào)、姓名和入學(xué)成績。學(xué)成績。select 學(xué)生表學(xué)生表.學(xué)號(hào)學(xué)號(hào), 學(xué)生表學(xué)生表.姓名姓名, 學(xué)生表學(xué)生表.入學(xué)成績?nèi)雽W(xué)成績;from 教學(xué)管理數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.入學(xué)成績?nèi)雽W(xué)成績 between 500 and 600上述上述SQL語句的條件等價(jià)于如下語句語句的條件等價(jià)于如下語句where 學(xué)生表學(xué)生表.入學(xué)成績?nèi)雽W(xué)成績 = 500 and 學(xué)生表學(xué)生表.入學(xué)成績?nèi)雽W(xué)成績 = 600二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(3)確定范圍確定范圍n如果要求入學(xué)成績不在如果要求入學(xué)成績不在500到到600間的學(xué)生學(xué)間的學(xué)生學(xué)號(hào)、姓名和入學(xué)成績,使用下列號(hào)、姓名和入學(xué)成績,使用下列SQL語句:語句:select 學(xué)生表學(xué)生表.學(xué)號(hào)學(xué)號(hào), 學(xué)生表學(xué)生表.姓名姓名, 學(xué)生表學(xué)生表.入學(xué)成績?nèi)雽W(xué)成績;from 教學(xué)管理數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.入學(xué)成績?nèi)雽W(xué)成績 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ù)庫教學(xué)管理數(shù)據(jù)庫!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.籍貫籍貫 in (吉林吉林,江西南昌江西南昌)n上述上述SQL語句可以等價(jià)于如下語句可以等價(jià)于如下SQL語句。語句。select 學(xué)生表學(xué)生表.學(xué)號(hào)學(xué)號(hào), 學(xué)生表學(xué)生表.姓名姓名, 學(xué)生表學(xué)生表.籍貫籍貫;from 教學(xué)管理數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.籍貫籍貫 = 吉林吉林;or 學(xué)生表學(xué)生表.籍貫籍貫 = 江西南昌江西南昌二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(4)確定集合確定集合n例例10.15:求籍貫不為:求籍貫不為“江西南昌江西南昌”和和“吉林吉林”的學(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ù)庫教學(xué)管理數(shù)據(jù)庫!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.籍貫籍貫 not in (吉林吉林,江西南昌江西南昌)n上述上述SQL語句可以等價(jià)于如下語句可以等價(jià)于如下SQL語句。語句。select 學(xué)生表學(xué)生表.學(xué)號(hào)學(xué)號(hào), 學(xué)生表學(xué)生表.姓名姓名, 學(xué)生表學(xué)生表.籍貫籍貫;from 教學(xué)管理數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫!學(xué)生表學(xué)生表;where 學(xué)生表學(xué)生表.籍貫籍貫 != 吉林吉林;and 學(xué)生表學(xué)生表.籍貫籍貫 != 江西南昌江西南昌二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(5)字符匹配字符匹配n謂詞謂詞LIKE可用來進(jìn)行字符串的匹配。可用來進(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% % 代表任意長度代表任意長度( (長度可以為長度可以為0)0)的字符串。例如的字符串。例如a%ba%b表示以表示以a a開開頭,以頭,以b b結(jié)尾的任意長度的字符串。結(jié)尾的任意長度的字符串。n如如acbacb,addgbaddgb,abab等都滿足該匹配串等都滿足該匹配串 n代表任意單個(gè)字符。例如代表任意單個(gè)字符。例如a_ba_b表示以表示以a a開頭,以開頭,以b b結(jié)尾的長度為結(jié)尾的長度為3 3的任意字符串。如的任意字符串。如acbacb,afbafb等都滿足該匹配串等都滿足該匹配串二、二、選擇表中的若干元組選擇表中的若干元組(選擇操作選擇操作)n2.查詢滿足條件的元組之查詢滿足條件的元組之(5)字符匹配字符匹配例題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é)生學(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)、姓名、性別和籍貫。貫。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.查詢滿足條件的元組之查詢滿足條件的元組之(6)查詢結(jié)果輸出到表查詢結(jié)果輸出到表nSELECT默認(rèn)輸出給用戶瀏覽默認(rèn)輸出給用戶瀏覽。SELECT同時(shí)提供同時(shí)提供INTO或或TO子句來將查詢結(jié)果輸出重定向,其格式為:子句來將查詢結(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)閉就被刪除。游標(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.查詢滿足條件的元組之查詢滿足條件的元組之(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ù)庫數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫教學(xué)管理數(shù)據(jù)庫.DBC” &打開數(shù)據(jù)庫打開數(shù)據(jù)庫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ù)庫關(guān)閉數(shù)據(jù)庫use D:aa.dbf&打開數(shù)據(jù)庫打開數(shù)據(jù)庫aa.dbfbrowse&瀏覽查詢結(jié)果瀏覽查詢結(jié)果三、對(duì)查詢結(jié)果排序三、對(duì)查詢結(jié)果排序n使用使用ORDER BY子句子句n可以按一個(gè)或多個(gè)屬性列排序可以按一個(gè)或多個(gè)屬性列排序n升序:升序:ASC;降序:;降序:DESC;缺省值為升序;缺省值為升序n當(dāng)排序列含空值時(shí)當(dāng)排序列含空值時(shí)nASC:排序列為空值的元組最后顯示:排序列為空值的元組最后顯示nDESC:排序列為空值的元組最先顯示:排序列為空值的元組最先顯示 三、對(duì)查詢結(jié)果排序三、對(duì)查詢結(jié)果排序舉例舉例n例例10-23:查詢所有學(xué)生的入學(xué)成績,查詢結(jié):查詢所有學(xué)生的入學(xué)成績,查詢結(jié)果按入學(xué)成績的降序排列。果按入學(xué)成績的降序排列。nselect 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)成績?nèi)雽W(xué)成績;nfrom 學(xué)生表學(xué)生表;norder by 入學(xué)成績?nèi)雽W(xué)成績 descn例例10-24:查詢所有學(xué)生的入學(xué)成績,查詢結(jié):查詢所有學(xué)生的入學(xué)成績,查詢結(jié)果按入學(xué)成績的升序排列。果按入學(xué)成績的升序排列。n select 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)成績?nèi)雽W(xué)成績;nfrom 學(xué)生表學(xué)生表;norder by 入學(xué)成績?nèi)雽W(xué)成績?nèi)?、?duì)查詢結(jié)果排序三、對(duì)查詢結(jié)果排序舉例舉例n例例10-25:按入學(xué)成績排降序和出生日期排降:按入學(xué)成績排降序和出生日期排降序輸出學(xué)號(hào)、姓名、入學(xué)成績和出生日期。序輸出學(xué)號(hào)、姓名、入學(xué)成績和出生日期。select 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)成績?nèi)雽W(xué)成績,出生日期出生日期;from 學(xué)生表學(xué)生表;order by 入學(xué)成績?nèi)雽W(xué)成績 desc, 出生日期出生日期 desc四、使用聚集函數(shù)四、使用聚集函數(shù)n聚集函數(shù):指作用在一個(gè)集合上的函數(shù),如聚集函數(shù):指作用在一個(gè)集合上的函數(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ù)值型此列必須是數(shù)值型)四、使用聚集函數(shù)四、使用聚集函數(shù)例題例題n例例10-26:求學(xué)生表中入學(xué)成績?cè)冢呵髮W(xué)生表中入學(xué)成績?cè)?00分以上分以上的人數(shù)。的人數(shù)。select count(*);from 學(xué)生表學(xué)生表;where 入學(xué)成績?nèi)雽W(xué)成績 = 600n例例10-27:求學(xué)生表中入學(xué)成績的平均成績:求學(xué)生表中入學(xué)成績的平均成績select avg(入學(xué)成績?nèi)雽W(xué)成績);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對(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:求各個(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ù)

注意事項(xiàng)

本文(第3章VF中SQL語言的應(yīng)用1)為本站會(huì)員(仙***)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(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),我們立即給予刪除!