access數(shù)據(jù)庫第三章_第1頁
access數(shù)據(jù)庫第三章_第2頁
access數(shù)據(jù)庫第三章_第3頁
access數(shù)據(jù)庫第三章_第4頁
access數(shù)據(jù)庫第三章_第5頁
已閱讀5頁,還剩82頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第3章 查詢的設(shè)計與使用 講授4學(xué)時 上機(jī)4學(xué)時總體要求:掌握查詢的作用和分類熟練掌握查詢的各種視圖掌握各類查詢的設(shè)計和作用掌握SQL語言的基礎(chǔ)掌握SQL查詢的設(shè)計和使用學(xué)習(xí)重難點:熟練掌握各類查詢視圖和各類查詢的設(shè)計掌握SQL語句基本格式和SQL查詢的應(yīng)用 主要內(nèi)容:3.1 查詢的概念3.2 查詢的創(chuàng)建3.3 SQL語言基礎(chǔ)3.1 查詢的概念查詢是具有條件檢索和計算功能的數(shù)據(jù)庫對象。查詢是以表或查詢?yōu)閿?shù)據(jù)源的再生表。查詢對象不是數(shù)據(jù)的集合,而是操作的集合。查詢的運行結(jié)果是一個動態(tài)數(shù)據(jù)集合。 3.1.1 查詢的作用與功能查詢按一定的條件生成一個動態(tài)數(shù)據(jù)集:通過使用查詢可按不同的方式來查看、更改

2、和分析數(shù)據(jù);利用查詢對選擇的記錄組執(zhí)行多種類型的計算。通過使用查詢生成新的數(shù)據(jù)表。通過使用查詢實現(xiàn)數(shù)據(jù)源表數(shù)據(jù)的刪除、更新或追加;查詢也可以作為窗體、報表或數(shù)據(jù)訪問頁的數(shù)據(jù)源,實現(xiàn)多個表作為數(shù)據(jù)源 3.1.2 查詢的分類 選擇查詢參數(shù)查詢操作查詢交叉表查詢SQL查詢3.1.3 、查詢視圖 查詢視圖主要用于設(shè)計、修改查詢或按不同方式查看查詢結(jié)果,在Access中提供了三種常用視圖,分別是數(shù)據(jù)表視圖、設(shè)計視圖、SQL視圖。1查詢的數(shù)據(jù)表視圖查詢的數(shù)據(jù)表視圖是以行和列的格式顯示查詢結(jié)果數(shù)據(jù)的窗口。在這個視圖中,可以進(jìn)行字段編輯、添加和刪除數(shù)據(jù)、查找數(shù)據(jù)、排序、篩選等操作,還可以進(jìn)行視圖的顯示風(fēng)格的設(shè)

3、計。查詢的數(shù)據(jù)表視圖具體的操作方法和數(shù)據(jù)表操作一樣。2查詢的設(shè)計視圖 查詢的設(shè)計視圖是用來設(shè)計查詢的窗口,是查詢設(shè)計器的圖形化表示。查詢設(shè)計視圖由上、下兩個窗口構(gòu)成,即表/查詢顯示窗口和查詢設(shè)計網(wǎng)格窗口(也稱為QBE網(wǎng)格)(1)表/查詢顯示窗口它是當(dāng)前查詢所包含的數(shù)據(jù)源(表和查詢)以及表間關(guān)系。在這個窗口里可以添加或刪除表,可以建立表間關(guān)系。(2)查詢設(shè)計網(wǎng)格它用于設(shè)計顯示查詢字段、查詢準(zhǔn)則等。其中每一行都包含查詢字段的相關(guān)信息,列是查詢的字段列表。 在查詢的設(shè)計視圖下,Access2003還提供了查詢屬性設(shè)置,可以方便地控制查詢的運行要設(shè)置查詢屬性,可以在表/查詢窗口內(nèi)右擊,在彈出菜單中單擊

4、【屬性】命令或直接單擊數(shù)據(jù)庫工具欄中的【屬性】按鈕常用的查詢屬性設(shè)置主要包括下列幾項:說明:對查詢的相關(guān)說明輸出所有字段:該屬性用來控制查詢中字段的輸出,只有當(dāng)用戶設(shè)計的查詢用于窗體并希望查詢中表的所有字段也適用于窗體時才可以設(shè)置為“是”,沒有特別要求時請使用默認(rèn)的“否”。上限值:當(dāng)用戶希望查詢返回“第一個”或“上限”記錄時,可以使用該選擇項。唯一的記錄:運用該選項可以來消除查詢中重復(fù)行的目的。運行權(quán)限:當(dāng)在網(wǎng)絡(luò)上與其他用戶一起共享時,從安全的角度出發(fā)點,可以使用該選項來設(shè)置用戶的查看數(shù)據(jù)和修改數(shù)據(jù)的權(quán)限。記錄鎖定:對于網(wǎng)絡(luò)中共享的查詢來說,可以使用該選項來控制查詢編輯的整體層次。3查詢的SQ

5、L視圖 查詢的SQL視圖是用來顯示或編輯打開查詢的SQL語句的窗口。 3.2 查詢的創(chuàng)建 在Access 2003中,可以通過三種方式創(chuàng)建查詢通過向?qū)?chuàng)建查詢通過查詢的設(shè)計視圖創(chuàng)建查詢通過SQL視圖創(chuàng)建查詢3.2.1 創(chuàng)建選擇查詢 選擇查詢是可以按照一定的準(zhǔn)則從一個或多個表中獲取數(shù)據(jù),并按照所需的次序進(jìn)行排列顯示。可以使用選擇查詢對記錄進(jìn)行分組,并且對記錄作總計、計數(shù)、平均以及其他類型的計算?!纠?-1】在“學(xué)籍管理”數(shù)據(jù)庫中的“學(xué)生基本情況表”中查詢出所有女生信息?!纠吭凇傲_斯文”數(shù)據(jù)庫的“客戶”表中篩選公司名稱分別為“華科”、“悅?!钡乃锌蛻粲涗?。【例】在“羅斯文”數(shù)據(jù)庫的“客戶”表中

6、找出城市為“大連”、聯(lián)系人為“王先生”的記錄。【例】在“羅斯文”數(shù)據(jù)庫的 “產(chǎn)品”表中查詢所有中止銷售的產(chǎn)品記錄。 并按類別的降序排列。操作要點:在數(shù)據(jù)庫窗口中,選擇“查詢”對象“在設(shè)計視圖中創(chuàng)建查詢”選項在“顯示表”窗口中添加被查詢的表或查詢要查詢網(wǎng)格中設(shè)置查詢準(zhǔn)則 3.2.2 創(chuàng)建交叉表查詢 交叉表查詢是一類特殊的查詢,允許用戶在行列交叉處查看計算的結(jié)果。交叉表查詢主要用來計算數(shù)據(jù)總和、平均值、計數(shù)或其他類型的總值?!纠?-2】在“學(xué)籍管理”數(shù)據(jù)庫中從“學(xué)生基本情況表”、“選課表”查詢學(xué)生各科成績錄入次數(shù)?!纠縿?chuàng)建交叉表查詢,統(tǒng)計“學(xué)籍管理”數(shù)據(jù)庫 “學(xué)生基本情況表”中各專業(yè)的男女生人數(shù)

7、?!纠繉Α皩W(xué)籍管理”數(shù)據(jù)庫創(chuàng)建交叉表查詢,統(tǒng)計每位同學(xué)的選課成績。操作要點:在數(shù)據(jù)庫窗口中選擇“在設(shè)計視圖中創(chuàng)建查詢” 在顯示表窗口中添加被查詢的表或查詢通過【查詢】的【交叉表查詢】命令,將選擇查詢轉(zhuǎn)換成交叉表查詢在查詢網(wǎng)格中設(shè)置查詢準(zhǔn)則3.2.3 創(chuàng)建參數(shù)查詢參數(shù)查詢也是一類特殊的查詢,參數(shù)特指查詢準(zhǔn)則中的變量,在查詢運行時會顯示對話框提示用戶輸入變量的值?!纠?-3】在“學(xué)籍管理”數(shù)據(jù)庫中,創(chuàng)建一個“學(xué)生年份查詢”查詢,輸入年份后從“學(xué)生基本情況表”表中查詢出生在本年份的學(xué)生姓名與出生日期?!纠吭凇傲_斯文”數(shù)據(jù)庫中以折扣為參數(shù)創(chuàng)建“訂單明細(xì)”表的參數(shù)查詢?!纠吭凇皩W(xué)籍管理”數(shù)據(jù)庫中,

8、查詢“學(xué)生基本情況表”中入學(xué)成績在某一分?jǐn)?shù)段的學(xué)生名單。操作要點:在數(shù)據(jù)庫窗口中選擇“在設(shè)計視圖中創(chuàng)建查詢 ”在“顯示表”窗口 添加表設(shè)置參數(shù)3.2.4 創(chuàng)建操作查詢操作查詢又稱為動作查詢,就是通過查詢完成某些動作。根據(jù)動作操作查詢又可分為:追加查詢更新查詢刪除查詢生成表查詢 1創(chuàng)建生成表查詢 生成表查詢實際上是將查詢的動態(tài)數(shù)據(jù)集轉(zhuǎn)化成了新的數(shù)據(jù)表?!纠?-4】在“學(xué)籍管理”數(shù)據(jù)庫中,由“學(xué)生基本情況表”表和“選課表”表查詢創(chuàng)建“2005學(xué)年成績表”表,表包含“學(xué)號”、“姓名”、“課程編碼”、“成績”、“學(xué)年”字段?!纠繉ⅰ皩W(xué)籍管理”數(shù)據(jù)庫中“學(xué)生基本情況表”表中所有專業(yè)為“計算機(jī)科學(xué)”的記

9、錄生成一張新表,名為“專業(yè)表”。操作要點:在數(shù)據(jù)庫窗口中選擇“在設(shè)計視圖中創(chuàng)建查詢”在“顯示表”窗口 添加表【查詢】【生成表查詢】菜單命令 設(shè)置查詢準(zhǔn)則 2創(chuàng)建追加查詢 追加查詢是從一個或多個表中將一組記錄追加到另一個表的尾部的查詢方式?!纠?-5】在“學(xué)籍管理”數(shù)據(jù)庫中,以“教師基本情況表”復(fù)制一個“教師表”,只復(fù)制結(jié)構(gòu),建立一個追加查詢,將“教師基本情況表”中“職稱”是“講師”的記錄追加到“教師表”中?!纠繉ⅰ皩W(xué)籍管理”數(shù)據(jù)庫中“學(xué)生基本情況”表中專業(yè)為“電子技術(shù)”的記錄追加到前面例題創(chuàng)建的“專業(yè)表”中。操作要點:選擇“在設(shè)計視圖中創(chuàng)建查詢 ”在“顯示表”窗口 添加表【查詢】【追加查詢】

10、菜單命令 設(shè)置查詢準(zhǔn)則 3創(chuàng)建更新查詢 更新查詢就是用從一個或多個表中查詢出來的結(jié)果去更新一個或多個表中的數(shù)據(jù)內(nèi)容的查詢?!纠?-6】在“學(xué)籍管理”數(shù)據(jù)庫中,從“教師基本情況表”中查詢出“教師表”中教師的相對應(yīng)的“學(xué)歷”去更新“教師表”中的“學(xué)歷”?!纠繉ⅰ傲_斯文”數(shù)據(jù)庫的“訂單明細(xì)”表中的所有產(chǎn)品的單價打8折。操作要點:選擇在設(shè)計視圖中創(chuàng)建查詢 在“顯示表”窗口 添加表【查詢】【更新查詢】菜單命令 設(shè)置查詢準(zhǔn)則4創(chuàng)建刪除查詢 刪除查詢是指從一個或多個表中刪除一組記錄的查詢,使用刪除查詢是刪除整條記錄,而不是記錄中的相應(yīng)查詢中所選擇的字段?!纠?-7】在“學(xué)籍管理”數(shù)據(jù)庫中創(chuàng)建一個刪除查詢,

11、把“2005學(xué)年成績表”中成績低于60分的記錄刪除?!纠繉ⅰ皩W(xué)籍管理”數(shù)據(jù)庫中“學(xué)生基本情況表”中專業(yè)為“計算機(jī)科學(xué)”和“電子技術(shù)”的所有記錄刪除。操作要點:在數(shù)據(jù)庫窗口中復(fù)制表結(jié)構(gòu)選擇在設(shè)計視圖中創(chuàng)建查詢 在“顯示表”窗口 添加表【查詢】【刪除查詢】菜單命令 設(shè)置查詢準(zhǔn)則設(shè)置查詢準(zhǔn)則邏輯運算符運算符功能舉例含義and邏輯與=80 and 90大于等于80并且小于90or邏輯或“北京”or “上?!北本┗蛘呱虾ot邏輯非Not “黨員”非黨員比較運算符運算符功能舉例含義= 等于=“王明”等于“王明”小于大于90大于90=小于等于=大于等于=#99-1-1#1999年1月1日以后不等于“漢”

12、不等于漢族設(shè)置查詢準(zhǔn)則其它運算符運算符功能舉例含義Between決定一個數(shù)值是否在一個指定值的范圍內(nèi)Between 1 And 10在1到10之間?;?qū)懗桑?0 and =10In決定一個字符串是否是一列表值的成員In (“電子系”,“機(jī)械系”)表示“電子系”或“機(jī)械系”。或?qū)懗桑骸半娮酉怠?Or “機(jī)械系”Is與Null一起使用,以決定一個值是否是Null或Not NullIs NullIs Not Null表示該字段無數(shù)據(jù)。表示該字段有數(shù)據(jù)。Like查找相匹配的文字,用通配符來設(shè)定文字的匹配條件。?代表任意一個字符,*代表任意連續(xù)字符,#代表任意一個數(shù)字位,0-9代表數(shù)字位,a-z代表字母

13、位,!表排除。Like “a*”;Like“File?”Like“!0-9*”表示以“a”開頭的字符串。表示以File開頭,后3位為任意字符的字符串。表示以除0到9以外的任何字符開頭的字符串。例:對“學(xué)籍管理”數(shù)據(jù)庫中的“學(xué)生基本情況”表創(chuàng)建查詢,查詢所有非電子工程系的女生情況。例:查詢“羅斯文商貿(mào)”數(shù)據(jù)庫中的“客戶”表中所有“傳真”字段為空的記錄。例: 查詢“羅斯文商貿(mào)”數(shù)據(jù)庫的“客戶”表中所有姓謝的“聯(lián)系人”的記錄。設(shè)置查詢準(zhǔn)則例:以“羅斯文商貿(mào)”數(shù)據(jù)庫中的“訂單明細(xì)”表和“類別”表為基礎(chǔ)創(chuàng)建一個查詢,名為“訂單總額”,其中包含“訂單明細(xì)”表中的產(chǎn)品ID、單價、數(shù)量、折扣字段和“類別”表中

14、的類別名稱字段。 訂單銷售額單價*數(shù)量*(1折扣) 添加計算字段例:對“學(xué)籍管理”數(shù)據(jù)庫中的“期末成績”表創(chuàng)建查詢,統(tǒng)計每位同學(xué)的總分并按降序排列。輸出學(xué)號、姓名、總分字段。 添加計算字段例: 對“學(xué)籍管理”數(shù)據(jù)庫中的“選課”表創(chuàng)建查詢,統(tǒng)計每門課程的平均分、最高分和最低分。查詢結(jié)果如下圖所示。添加合計字段例:總計“客戶”表中每個公司的訂單總量(查詢結(jié)果包含“客戶”表的公司名稱字段與“訂單明細(xì)”表中的“數(shù)量”字段。)查詢計算函數(shù)名及功能函數(shù)名 功能SUM計算組中該字段所有值的和AVG計算組中該字段的算術(shù)平均值MIN返回組中字段的最小值MAX返回組中字段的最大值COUNT返回行的合計FIRST返

15、回該字段的第一個值LAST返回該字段的最后一個值STDEV計算組中字段所有值的統(tǒng)計標(biāo)準(zhǔn)差VAR計算組中字段所有值的統(tǒng)計方差添加合計字段3.3 SQL語言基礎(chǔ) SQL(Structured Query Language)結(jié)構(gòu)化查詢語言,是一種通用的數(shù)據(jù)庫操作語言。SQL語句最主要的功能就是查詢功能。使用SQL語句不需要在不同的工作區(qū)打開不同的表,只需將要連接的表、查詢所需的字段、篩選記錄的條件、記錄分組的依據(jù)、排序的方式以及查詢結(jié)果的顯示方式,寫在一條SQL語句中,就可以完成特定的工作。3.3.1 數(shù)據(jù)定義 數(shù)據(jù)定義語言(Data Definition Language 簡稱DDL)是SQL語言

16、的重要組成部分,它包括有數(shù)據(jù)表的創(chuàng)建、刪除、更改或在當(dāng)前數(shù)據(jù)庫中表的索引的建立等, Access2003中常用的語句有Create、Drop、 Alter三種。1CREATE語句CREATE TABLE語句用于定義一個新表及其字段和字段約束。其格式為:CREATE TABLE table (field1 type (size) NOT NULL WITH COMPRESSION | WITH COMP index1 , field2 type (size) NOT NULL index2 , . , CONSTRAINT multifieldindex , .)【例3-8】在“學(xué)籍管理”數(shù)據(jù)庫

17、中,用數(shù)據(jù)定義查詢創(chuàng)建一個“示例表”(姓名 文本(6),性別 是/否)。 create table 示例表( 姓名 varchar(6),性別 bit)CREATE INDEX 語句用于為庫中的表創(chuàng)建索引。其格式為: CREATE UNIQUE INDEX index ON table ( field ASC | DESC , field ASC | DESC , ) WITH PRIMARY | DISALLOW NULL | IGNORE NULL 例:為“學(xué)籍管理”數(shù)據(jù)庫的“教師授課表”按“教師編號”升序,“班級編號”的降序創(chuàng)建索引,并指定“教師編號”為主鍵。 Create index

18、教班編號索引 On 教師授課表 (教師編號,班級編號 DESC)2ALTER語句 ATLTER TABLE 語句用來來增加、刪除表的字段和索引以及修改字段屬性的語句。語句的格式為:ALTER TABLE table ADD COLUMN field type(size) NOT NULL CONSTRAINT index | ALTER COLUMN field type(size) | CONSTRAINT multifieldindex | DROP COLUMN field I CONSTRAINT indexname 例:在“學(xué)籍管理”數(shù)據(jù)庫的“教師授課表”中添加(刪除)字段“教師姓名

19、”。 alter table 教師授課表 ADD column 教師姓名 Varchar (6) alter table 教師授課表 Drop column 教師姓名3DROP語句DROP語句用于刪除表或表的索引所用。語句格式為:DROP TABLE table | INDEX index ON table注意:在刪除表或從表中刪除索引之前,必須先關(guān)閉該表。例:刪除前面在“教師授課表”中創(chuàng)建的“教班編號索引”。 DROP index 教班編號索引 on 教師授課表例:刪除“學(xué)籍管理”數(shù)據(jù)庫下的“選課表”。 DROP table 選課表3.3.2 SQL查詢 SQL查詢是利用SELECT語句來書

20、寫的查詢,也就是在查詢的SQL視圖下來完成的查詢SQL命令的所有子句既可以寫在同一行上,也可以分行書寫;大小寫字母的含義相同,命令用分號“;”結(jié)束(也可以不寫) SELECT predicate * | table.* | table.field1 AS alias1 , table.field2 AS alias2 , . FROM tableexpression , . IN externaldatabase WHERE . GROUP BY. HAVING. ORDER BY. 語句的基本格式1SELECT子句SELECT子句中的predicate謂詞ALL、DISTINCT、DISTI

21、NCTROW或TOP,用于限定查詢返回的記錄數(shù)量。如果沒有指定該謂詞將默認(rèn)為ALL,即返回全部記錄;DISTINCT返回所選字段組合完全不用的記錄,如果相同返回一個;DISTINCTROW返回完全不同的記錄,如果兩個或多個記錄相同只返回一個;TOP n 返回特定數(shù)目的記錄,具體數(shù)據(jù)由其后的數(shù)字所定。 【例3-9】從“選課表”中查詢前5條記錄。 SELECT TOP 5 * FROM 選課表DISTINCT和DISTINCTROW不同之處: 前者所指記錄是由SELECT中字段列表所組成的記錄來比較的,而后是按表中的記錄來比較的。 Select distinct 學(xué)期,授課時間 from 教師授課

22、表 Select distinctrow 學(xué)期,授課時間 from 教師授課表SELECT子句中的字段列表,是查詢結(jié)果顯示的標(biāo)題,單表查詢時可以直接用原表的字段名或可以使用“*”代表表中所有字段,如果多表查詢就需使用“表名.字段名”或“表別名.字段名”的格式?!纠?-10】從“學(xué)生基本情況表”和“選課表”中查詢學(xué)生的姓名、課程編碼、成績。 SELECT t.姓名,p.課程編碼,p.成績 FROM 學(xué)生基本情況表 as t ,選課表 as p where t.學(xué)號=p.學(xué)號查詢中使用了計算函數(shù)或查詢,只要該查詢返回含糊的或重復(fù)的Field對象名稱時,都必須使用AS子句來提供Field對象的替代名

23、稱,運用合并計算函數(shù)時必須有GROUP BY子句。函數(shù)說明COUNT統(tǒng)計符合條件的記錄SUM找出指定記錄范圍內(nèi)的數(shù)值字段求和MAX找出指定記錄范圍內(nèi)的最大值MIN找出指定記錄范圍內(nèi)的最小值A(chǔ)VG找出指定記錄范圍內(nèi)的數(shù)值字段求平均值【例3-11】查詢“選課表”中各學(xué)號學(xué)生的總成績。 SELECT 學(xué)號,SUM(成績) AS 總成績 FROM 選課表 group by 學(xué)號SELECT子句字段列表之后加入“INTO “新表名”,即為生成表查詢。例:SELECT TOP 5 * into 選課新表 FROM 選課表2FROM子句FROM子句中單表查詢或多表查詢時已用WHERE子句實現(xiàn)了表間關(guān)系的,只

24、需直接在FROM后面給出表名列表,且表名與表名之間用逗號分隔。 【例3-13】從“學(xué)籍管理”數(shù)據(jù)庫中“教師基本情況表”和“教師授課表”中查詢教師姓名,授課地點、授課時間。SELECT 教師基本情況表.姓名,教師授課表.授課地點,教師授課表.授課時間FROM 教師基本情況表,教師授課表 where 教師基本情況表.教師編號=教師授課表.教師編號FROM子句中表也可以用別名,以方便在SELECT子句中的字段列表的書寫?!纠?-14】用別名書寫【例3-13】 SELECT P.姓名,p.授課地點,p.授課時間 FROM 教師基本情況表 as t ,教師授課表 as p where t.教師編號=p.

25、教師編號 FROM子句中的表如果不是當(dāng)前數(shù)據(jù)庫的表,則需用“IN 數(shù)據(jù)庫名”,而且數(shù)據(jù)庫必須和當(dāng)前數(shù)據(jù)庫處于同一磁盤路徑下。另一種方法是直接在指定表名時全稱,格式為“FROM 磁盤:路徑 數(shù)據(jù)庫.表名”。(4)FROM子句完成表間的連接,表間的連接有三種類型 連接類型說明INNER JOIN內(nèi)連接:查詢結(jié)果是兩個表中公共字段相匹配的記錄LEFT JOIN左連接:查詢結(jié)果是左邊表中所有記錄,而沒有右表中的不匹配的記錄RIGHT JOIN右連接:查詢結(jié)果是右邊表中所有記錄,而沒有左表中的不匹配的記錄以內(nèi)連接來說明表間連接的語句的格式為:FROM INNER JOIN ON 【例3-15】在“學(xué)籍管

26、理”數(shù)據(jù)庫中的“教師基本情況表”和“教師授課表”中查詢教師姓名、授課地點、授課時間。 SELECT 教師基本情況表.姓名,教師授課表.授課地點,教師授課表.授課時間 FROM 教師基本情況表 inner join 教師授課表 on 教師基本情況表.教師編號=教師授課表.教師編號3WHERE子句WHERE子句用于給出查詢條件,只有相匹配這些條件的記錄才能出現(xiàn)在查詢結(jié)果中 。語句的格式為: WHERE 為邏輯表達(dá)式 優(yōu)先順序是NOTANDOR。【例3-16】在“學(xué)籍管理”數(shù)據(jù)庫中的“學(xué)生基本情況表”中查詢出年齡大于23歲的女生。 SELECT * from 學(xué)生基本情況表 WHERE 性別=女 a

27、nd (date()-出生日期)/36523(2)WHERE子句中的特殊運算符 符號含義BETWEEN定義一個區(qū)間范圍IS NULL測試屬性值是否為空LIKE字符串匹配操作IN測試屬性值是否在一組值中LIKE中使用的通配符:“?”表示任意一個字符;“*”表示零個或任意多個字符;“#”表示0到9之間的任意一個數(shù)字;“字符表”表示“字符表”任意一個字符,如0-9或a-z;“!字符表”表示不在字符表中的任意一個字符?!纠?-17】在“學(xué)籍管理”數(shù)據(jù)庫中“學(xué)生基本情況表”中查詢?nèi)雽W(xué)成績在450分到600分之間且專業(yè)屬于“電子技術(shù)”或“計算機(jī)科學(xué)”的學(xué)生。 SELECT 姓名,專業(yè),入學(xué)成績 FROM

28、學(xué)生基本情況表 WHERE (入學(xué)成績 BETWEEN 450 AND 600) AND 專業(yè) IN (電子技術(shù),計算機(jī)科學(xué))4GROUP BY子句使用GROUP BY 子句進(jìn)行分組時,顯示的字段只能是參與分組的字段以及基于分組字段的合計函數(shù)計算結(jié)果?!纠?-18】從“學(xué)籍管理”數(shù)據(jù)庫中“學(xué)生基本情況表”中查詢各專業(yè)的入學(xué)成績平均分。 SELECT 專業(yè),AVG(入學(xué)成績) as 入學(xué)成績平均分 FROM 學(xué)生基本情況表 GROUP BY 專業(yè)用HAVING來選擇參與合并函數(shù)計算的組?!纠?-19】從“學(xué)籍管理”數(shù)據(jù)庫中“學(xué)生基本情況表”中查詢專業(yè)超過2個的各專業(yè)的入學(xué)成績平均分。 SELEC

29、T 專業(yè),AVG(入學(xué)成績) as 入學(xué)成績平均分 FROM 學(xué)生基本情況表 GROUP BY 專業(yè) HAVING COUNT(專業(yè))25ORDER BY 子句RDER BY子句一般在SELECT語句最后,是用來指定查詢結(jié)果以什么順序返回。其格式為: ORDER BY 字段1 ASC | DESC , 字段2 ASC | DESC , .【例3-20】從“學(xué)籍管理”數(shù)據(jù)庫中的“學(xué)生基本情況表”中查詢出學(xué)生學(xué)號、姓名并按姓名降序返回結(jié)果。 SELECT DISTINCT 學(xué)號,姓名 FROM 學(xué)生基本情況表 ORDER BY 姓名 DESC6SQL查詢創(chuàng)建SQL查詢的創(chuàng)建是查詢的SQL視圖下按前

30、面所講SQL查詢語句來完成的?!纠?-21】從“學(xué)籍管理”數(shù)據(jù)庫中的“學(xué)生基本情況表”、“選課表”和“課程表”中查詢學(xué)生姓名、課程名稱和成績。7SQL特殊查詢(1)聯(lián)合查詢 聯(lián)合查詢是使用于將來自一個或多個表或多個查詢的字段(列)組合為查詢結(jié)果中的一個字段或列,執(zhí)行時將返回所包含的表或查詢中對應(yīng)字段的記錄,其格式是在兩個查詢中間加入“UNION”,如要返回重復(fù)記錄時可以在兩個查詢之間加入“UNION ALL”?!纠?-22】在“學(xué)籍管理”數(shù)據(jù)庫中用“2005學(xué)年成績表”表和“選課表”表創(chuàng)建聯(lián)合查詢。 SELECT TOP 3 學(xué)號,成績 FROM 2005學(xué)年成績查詢 UNION SELECT

31、 學(xué)號 ,選課表.成績 FROM 選課表 WHERE 成績(SELECT AVG(入學(xué)成績) FROM 學(xué)生基本情況表) 3.3.3 數(shù)據(jù)操縱在SQL中數(shù)據(jù)操縱是指數(shù)據(jù)的更新、刪除、追加,數(shù)據(jù)操縱的SQL語句有UPDATE、DELETE、INSERT INTO三種 1UPDATE語句 UPDATE語句用于基于特定條件更改指定表中的字段值,當(dāng)需要更改多個記錄或者需要更改的記錄存在于多個表中時,UPDATE 語句是最有用的。UPDATE語句的格式: UPDATE table SET newvalue WHERE criteriaUPDATE對表中記錄的更改不得違反所有的數(shù)據(jù)完整性約束。 【3-24

32、】將“學(xué)籍管理”數(shù)據(jù)庫中的“教師基本情況表”中政治面貌為空的記錄用“非黨員”去更改。 UPDATE 教師基本情況表 SET 政治面貌=非黨員 WHERE 政治面貌 IS NULL2DELETE語句DELETE語句用于從一個或多個表中刪除滿足條件的記錄,使用 DELETE 語句時,只刪除其中的數(shù)據(jù),表的結(jié)構(gòu)和所有表屬性(如字段屬性和索引)依然保持原樣。格式如下: DELETE table.* FROM table WHERE criteriaDELETE語句刪除時,無論DELETE 后table.*指不指定內(nèi)容,刪除均以整條記錄為單位,不會是字段的數(shù)據(jù)。【例3-25】從“學(xué)籍管理”數(shù)據(jù)庫的“學(xué)生

33、基本情況表”中刪除入學(xué)成績低于450的記錄。 DELETE FROM 學(xué)生基本情況表 WHERE 入學(xué)成績4503INSERT INTO語句 INSERT INTO語句用于將一個記錄或多個記錄追加到表中,而且一個記錄的追加和多個記錄的追加格式有所不同。多記錄追加: INSERT INTO target (field1,field2,.) SELECT source.field1,field2,. FROM tableexpression單記錄追加: INSERT INTO target (field1,field2,.) VALUES (value1,value2,.)【例3-26】將“教師基本情況表”中的全部記錄追加到“教師表”中。 INSERT INTO 教師表 ( 教師編號, 教師編號, 性別, 工作時間, 政治面貌, 政治面貌, 學(xué)歷, 職稱, 系別, 聯(lián)系電話 ) SELECT 教師基本情況表.教師編號, 教師基本情況表.姓名, 教師基本情況表.性別, 教師基本情況表.工作時間, 教師基本情況表.政治面貌, 教師基本情況表.政治面貌, 教師基本情況表.學(xué)歷, 教師基本情況表.職稱, 教師基

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論