Access中的查詢(xún)剖析PPT教學(xué)課件_第1頁(yè)
Access中的查詢(xún)剖析PPT教學(xué)課件_第2頁(yè)
Access中的查詢(xún)剖析PPT教學(xué)課件_第3頁(yè)
Access中的查詢(xún)剖析PPT教學(xué)課件_第4頁(yè)
Access中的查詢(xún)剖析PPT教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩97頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 41查詢(xún)概述 存儲(chǔ)數(shù)據(jù)的目的是為了重復(fù)使用這些數(shù)據(jù)。在使用這些數(shù)據(jù)時(shí),用戶(hù)根據(jù)自己的需求可以從單個(gè)數(shù)據(jù)表中獲取所需要的信息,也可從多個(gè)相關(guān)的數(shù)據(jù)表中獲得信息,所采用的手段就是使用查詢(xún)技術(shù)。 Access提供的查詢(xún)功能為用戶(hù)提供了從若干個(gè)數(shù)據(jù)表中獲取信息的手段,是分析和處理數(shù)據(jù)的一種重要工具。 第1頁(yè)/共102頁(yè)4.1.1查詢(xún)的概念 查詢(xún)是指向數(shù)據(jù)庫(kù)提出請(qǐng)求,要求數(shù)據(jù)庫(kù)按照特定的需求在指定的數(shù)據(jù)源中進(jìn)行查找,提取指定的字段,返回一個(gè)新的數(shù)據(jù)集合,這個(gè)集合就是查詢(xún)結(jié)果。 利用不同的查詢(xún),可以方便、快捷地瀏覽數(shù)據(jù)表中的數(shù)據(jù),同時(shí)利用查詢(xún)可以實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析與計(jì)算等操作,查詢(xún)還可以作為窗體和報(bào)表的

2、數(shù)據(jù)源。 查詢(xún)也可以看做一個(gè)“表”,只不過(guò)是以表或查詢(xún)?yōu)閿?shù)據(jù)來(lái)源的再生表,是動(dòng)態(tài)的數(shù)據(jù)集合。第2頁(yè)/共102頁(yè) 查詢(xún)主要有以下幾方面的功能。(1)選擇字段和記錄 (2)修改記錄(3)統(tǒng)計(jì)和計(jì)算(4)建立新表(5)為其他數(shù)據(jù)庫(kù)對(duì)象提供數(shù)據(jù)源第3頁(yè)/共102頁(yè) 根據(jù)對(duì)數(shù)據(jù)源的操作方式以及查詢(xún)結(jié)果,Access提供的查詢(xún)可以分為五種類(lèi)型,分別是選擇查詢(xún)、交叉表查詢(xún)、參數(shù)查詢(xún)、操作查詢(xún)和SQL查詢(xún)。1選擇查詢(xún) 選擇查詢(xún)是最常用的查詢(xún)類(lèi)型,它能夠根據(jù)用戶(hù)所指定的查詢(xún)條件,從一個(gè)或多個(gè)數(shù)據(jù)表中獲取數(shù)據(jù)并顯示結(jié)果,還可以利用查詢(xún)條件對(duì)記錄進(jìn)行分組,并進(jìn)行求總計(jì)、計(jì)數(shù)、平均值等運(yùn)算。4.1.2查詢(xún)的類(lèi)型第4頁(yè)

3、/共102頁(yè)2交叉表查詢(xún) 交叉表查詢(xún)將源數(shù)據(jù)或查詢(xún)中的數(shù)據(jù)分組,一組在數(shù)據(jù)表的左側(cè),另一組在數(shù)據(jù)表的上部,數(shù)據(jù)表內(nèi)行與列的交叉單元格處顯示表中數(shù)據(jù)的某個(gè)統(tǒng)計(jì)值。 交叉表查詢(xún)可以計(jì)算并重新組織數(shù)據(jù)表的結(jié)構(gòu)。這是一種可以將表中的數(shù)據(jù)看作字段的查詢(xún)方法。3參數(shù)查詢(xún) 參數(shù)查詢(xún)?yōu)橛脩?hù)提供了更加靈活的查詢(xún)方式,通過(guò)參數(shù)來(lái)設(shè)計(jì)查詢(xún)準(zhǔn)則,由用戶(hù)輸入查詢(xún)條件并根據(jù)此條件返回查詢(xún)結(jié)果。第5頁(yè)/共102頁(yè)4操作查詢(xún) 操作查詢(xún)是指在查詢(xún)中對(duì)源數(shù)據(jù)表進(jìn)行操作,可以對(duì)表中的記錄進(jìn)行追加、修改、刪除和更新。操作查詢(xún)包括刪除查詢(xún)、更新查詢(xún)、追加查詢(xún)和生成表查詢(xún)。5SQL查詢(xún) SQL是指使用結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL創(chuàng)建的查詢(xún)。用戶(hù)

4、可以使用查詢(xún)?cè)O(shè)計(jì)器創(chuàng)建查詢(xún),還可以使用SQL語(yǔ)句創(chuàng)建查詢(xún),實(shí)現(xiàn)對(duì)數(shù)據(jù)的查詢(xún)和更新操作。第6頁(yè)/共102頁(yè) 查詢(xún)共有五種視圖,分別是設(shè)計(jì)視圖、數(shù)據(jù)表視圖、SQL視圖、數(shù)據(jù)透視表視圖和數(shù)據(jù)透視圖。(1)設(shè)計(jì)視圖 設(shè)計(jì)視圖就是查詢(xún)?cè)O(shè)計(jì)器,通過(guò)該視圖可以創(chuàng)建除SQL之外的各種類(lèi)型查詢(xún)。(2)數(shù)據(jù)表視圖 數(shù)據(jù)表視圖是查詢(xún)的數(shù)據(jù)瀏覽器,用于查看查詢(xún)運(yùn)行結(jié)果。4.1.3 查詢(xún)視圖第7頁(yè)/共102頁(yè)(3)SQL視圖 SQL視圖是查看和編輯SQL語(yǔ)句的窗口,通過(guò)該窗口可以查看用查詢(xún)?cè)O(shè)計(jì)器創(chuàng)建的查詢(xún)所產(chǎn)生的SQL語(yǔ)句,也可以對(duì)SQL語(yǔ)句進(jìn)行編輯和修改。(4)數(shù)據(jù)透視表視圖和數(shù)據(jù)透視圖 在數(shù)據(jù)透視表視圖和數(shù)據(jù)透視圖

5、中,可以根據(jù)需要生成數(shù)據(jù)透視表和數(shù)據(jù)透視圖,從而對(duì)數(shù)據(jù)進(jìn)行分析,得到直觀的分析結(jié)果。第8頁(yè)/共102頁(yè) 在Access中,創(chuàng)建查詢(xún)的方法主要兩種,使用查詢(xún)?cè)O(shè)計(jì)視圖創(chuàng)建查詢(xún)和使用查詢(xún)向?qū)?chuàng)建查詢(xún)。 1使用查詢(xún)?cè)O(shè)計(jì)視圖創(chuàng)建查詢(xún) 使用查詢(xún)?cè)O(shè)計(jì)視圖創(chuàng)建查詢(xún)首先要打開(kāi)查詢(xún)?cè)O(shè)計(jì)視圖窗口,然后根據(jù)需要進(jìn)行查詢(xún)定義,具體操作步驟如下:(1)打開(kāi)數(shù)據(jù)庫(kù)。4.1.4 創(chuàng)建查詢(xún)方法第9頁(yè)/共102頁(yè)(2)選擇“創(chuàng)建”選項(xiàng)卡的“查詢(xún)”組,單擊“查詢(xún)?cè)O(shè)計(jì)”按鈕,打開(kāi)“查詢(xún)?cè)O(shè)計(jì)器”窗口,如圖4-1所示。 第10頁(yè)/共102頁(yè)查詢(xún)?cè)O(shè)計(jì)器窗口由兩部分組成,上半部分是數(shù)據(jù)源窗口,用于顯示查詢(xún)所涉及的數(shù)據(jù)源,可以是數(shù)據(jù)表或查詢(xún),

6、下半部分是查詢(xún)定義窗口,也稱(chēng)為QBE網(wǎng)格,主要包括以下內(nèi)容:字段:查詢(xún)結(jié)果中所顯示的字段。表:查詢(xún)的數(shù)據(jù)源,即查詢(xún)結(jié)果中字段的來(lái)源。排序:查詢(xún)結(jié)果中相應(yīng)字段的排序方式。顯示:當(dāng)相應(yīng)字段的復(fù)選框被選中時(shí),則在結(jié)構(gòu)中顯示,否則不顯示。條件:即查詢(xún)條件,同一行中的多個(gè)準(zhǔn)則之間是邏輯“與”的關(guān)系。或:查詢(xún)條件,表示多個(gè)條件之間的“或”的關(guān)系。第11頁(yè)/共102頁(yè)(3)在打開(kāi)查詢(xún)?cè)O(shè)計(jì)視圖窗口的同時(shí)打開(kāi)彈出“顯示表”對(duì)話框,如圖所示。第12頁(yè)/共102頁(yè)(4)在“顯示表”對(duì)話框中,選擇作為數(shù)據(jù)源的表或查詢(xún),將其添加到查詢(xún)?cè)O(shè)計(jì)器窗口的數(shù)據(jù)源窗口中。在查詢(xún)?cè)O(shè)計(jì)器窗口的QBE網(wǎng)格中,單擊該按鈕即可打開(kāi)下拉列表,

7、通過(guò)“字段”列表框選擇所需字段,選中的字段將顯示在QBE網(wǎng)格中。 第13頁(yè)/共102頁(yè) 除此之外,還可以為顯示的信息指定標(biāo)題、調(diào)整字段的寬度和改變顯示順序等操作。 調(diào)整字段的寬度和改變顯示順序直接用鼠標(biāo)拖動(dòng)即可實(shí)現(xiàn)。拖動(dòng)字段的邊界可以改變字段的寬度;調(diào)整字段顯示順序只需將指定的字段拖曳到指定的位置即可;而為顯示的信息指定標(biāo)題可以在需要指定標(biāo)題的字段名或表達(dá)式的前邊輸入“標(biāo)題:”即可。 第14頁(yè)/共102頁(yè)(5)在查詢(xún)?cè)O(shè)計(jì)器窗口的QBE網(wǎng)格中,打開(kāi)“排序”列表框,可以指定查詢(xún)的排序關(guān)鍵字和排序方式。排序方式分為升序、降序和不排序三種。(6)使用“顯示”復(fù)選框可以設(shè)置某個(gè)字段是否在查詢(xún)結(jié)果中顯示,

8、若復(fù)選框被選中,則顯示該字段,否則不顯示。(7)在“條件”文本框中輸入查詢(xún)條件,或者利用表達(dá)式生成器輸入查詢(xún)條件。(8)保存查詢(xún),創(chuàng)建查詢(xún)完成 第15頁(yè)/共102頁(yè)2使用查詢(xún)向?qū)?chuàng)建查詢(xún) 使用查詢(xún)向?qū)?chuàng)建查詢(xún),就是使系統(tǒng)提供的查詢(xún)向?qū)В凑障到y(tǒng)的引導(dǎo),完成查詢(xún)的創(chuàng)建。 查詢(xún)向?qū)Ч灿兴姆N類(lèi)型: 簡(jiǎn)單查詢(xún)向?qū)?交叉表查詢(xún)向?qū)?查找重復(fù)項(xiàng)查詢(xún)向?qū)?查找不匹配項(xiàng)查詢(xún)向?qū)У?6頁(yè)/共102頁(yè)操作步驟如下:(1)打開(kāi)數(shù)據(jù)庫(kù)。(2)選擇“創(chuàng)建”選項(xiàng)卡的“查詢(xún)”組,單擊“查詢(xún)向?qū)А卑粹o,打開(kāi)“新建查詢(xún)”對(duì)話框,如圖4-6所示。圖4-6 “新建查詢(xún)”對(duì)話框第17頁(yè)/共102頁(yè)(3)在“新建查詢(xún)”對(duì)話框中,選擇所

9、需的查詢(xún)向?qū)?,根?jù)系統(tǒng)的引導(dǎo)選擇參數(shù)或輸入相應(yīng)的信息。(4)保存查詢(xún),完成查詢(xún)創(chuàng)建。第18頁(yè)/共102頁(yè)4.1.5 運(yùn)行查詢(xún) 查詢(xún)創(chuàng)建完成后,將保存在數(shù)據(jù)庫(kù)中。運(yùn)行查詢(xún)后才能看到查詢(xún)結(jié)果。可以通過(guò)下面的方法運(yùn)行查詢(xún)。(1)在上下文選項(xiàng)卡“查詢(xún)工具|設(shè)計(jì)”的“結(jié)果”組中單擊“運(yùn)行”按鈕。(2)在上下文選項(xiàng)卡“查詢(xún)工具|設(shè)計(jì)”的“結(jié)果”組中單擊“視圖”按鈕。(3)在導(dǎo)航窗口中選擇要運(yùn)行的查詢(xún)雙擊。(4)在導(dǎo)航窗口中選擇查詢(xún)對(duì)象右單擊,在快捷菜單中選擇“打開(kāi)”命令。(5)在查詢(xún)?cè)O(shè)計(jì)視圖窗口的標(biāo)題欄右單擊,在快捷菜單中選擇“數(shù)據(jù)表視圖”。 第19頁(yè)/共102頁(yè)42 選擇查詢(xún) 選擇查詢(xún)是最常用的查詢(xún)類(lèi)型

10、,它能夠根據(jù)用戶(hù)所指定的查詢(xún)條件,從一個(gè)或多個(gè)數(shù)據(jù)表中獲取數(shù)據(jù)并顯示結(jié)果,還可以利用查詢(xún)條件對(duì)記錄進(jìn)行分組,并進(jìn)行求總計(jì)、計(jì)數(shù)、平均值等運(yùn)算。 選擇查詢(xún)產(chǎn)生的結(jié)果是一個(gè)動(dòng)態(tài)記錄集,不會(huì)改變?cè)磾?shù)據(jù)表中的數(shù)據(jù)。 第20頁(yè)/共102頁(yè) 設(shè)計(jì)查詢(xún)時(shí),要確定查詢(xún)目標(biāo)。首先要確定查詢(xún)的數(shù)據(jù)源,查詢(xún)的數(shù)據(jù)源可以是表和已經(jīng)建立的查詢(xún),然后再確定需要顯示的字段或表達(dá)式。 【實(shí)例4-1】在選課管理數(shù)據(jù)庫(kù)中,創(chuàng)建以下查詢(xún)。(1)查詢(xún)學(xué)生的學(xué)號(hào)、姓名和性別。(2)查詢(xún)學(xué)生的所有信息。(3)查詢(xún)學(xué)生的學(xué)號(hào)、姓名及所修課程的課程號(hào)。(4)查詢(xún)學(xué)生的學(xué)號(hào)、姓名、選課名稱(chēng)和成績(jī)。4.2.1 簡(jiǎn)單查詢(xún)第21頁(yè)/共102頁(yè)【操作

11、步驟】打開(kāi)數(shù)據(jù)庫(kù)“選課管理”。 選擇“創(chuàng)建”選項(xiàng)卡中的“查詢(xún)”組,單擊“查詢(xún)?cè)O(shè)計(jì)”按鈕,打開(kāi)查詢(xún)?cè)O(shè)計(jì)器窗口,在“顯示表”對(duì)話框中選擇“學(xué)生”表雙擊,將學(xué)生表添加到查詢(xún)?cè)O(shè)計(jì)視圖的數(shù)據(jù)源窗口中,如圖4-8所示。 第22頁(yè)/共102頁(yè)通過(guò)字段下拉列表按鈕選擇字段“學(xué)號(hào)”、“姓名”和“性別”,這些字段將顯示在查詢(xún)定義窗口中,如圖所示。保存查詢(xún)“學(xué)生信息”,完成查詢(xún)的創(chuàng)建。第23頁(yè)/共102頁(yè) 如果查詢(xún)的數(shù)據(jù)源是兩個(gè)或以上的表或查詢(xún),在設(shè)計(jì)查詢(xún)需要?jiǎng)?chuàng)建數(shù)據(jù)源之間的連接關(guān)系。 查詢(xún)連接的類(lèi)型,共分為三種:內(nèi)部連接、左連接和右連接。(1)內(nèi)部連接內(nèi)部連接是指將兩個(gè)表中連接字段相等的記錄提取出來(lái)進(jìn)行合并,從中

12、選取所需要的字段形成一條記錄,顯示在查詢(xún)結(jié)果中。內(nèi)部連接是系統(tǒng)默認(rèn)的連接類(lèi)型。4.2.2 查詢(xún)中的連接類(lèi)型第24頁(yè)/共102頁(yè)(2)左連接左連接是指取左表中的所有記錄和右表中連接字段相等的記錄作為查詢(xún)的結(jié)果。(3)右連接右連接是指取右表中的所有記錄和左表中連接字段相等的記錄作為查詢(xún)的結(jié)果。 如果查詢(xún)中使用的表或查詢(xún)之間沒(méi)有建立連接關(guān)系,那么查詢(xún)將以笛卡爾積的形式產(chǎn)生查詢(xún)結(jié)果。也就是說(shuō),一個(gè)表的每一條記錄和另一個(gè)表的所有記錄連接構(gòu)成新的記錄,這樣就會(huì)在查詢(xún)結(jié)果中產(chǎn)生大量的數(shù)據(jù)。第25頁(yè)/共102頁(yè) 在實(shí)際應(yīng)用中,經(jīng)常查詢(xún)滿(mǎn)足某個(gè)條件的記錄,這需要在查詢(xún)時(shí)進(jìn)行查詢(xún)條件的設(shè)置。例如,查詢(xún)所有“女同學(xué)

13、”的記錄,查詢(xún)職稱(chēng)為“教授”的教師的信息等等。 通過(guò)在查詢(xún)?cè)O(shè)計(jì)視圖中設(shè)置條件可以實(shí)現(xiàn)條件查詢(xún)。 查詢(xún)中的條件通常使用關(guān)系運(yùn)算符、邏輯運(yùn)算符和一些特殊運(yùn)算符來(lái)表示。 4.2.3 查詢(xún)中條件的設(shè)置第26頁(yè)/共102頁(yè)1條件的表示(1)關(guān)系運(yùn)算 關(guān)系運(yùn)算符由、=、=、=和等符號(hào)構(gòu)成,主要用于數(shù)據(jù)之間的比較,其運(yùn)算結(jié)果為邏輯值,即“真”和“假”。如表所示。 關(guān)系運(yùn)算符關(guān)系運(yùn)算符含義含義大于大于=大于等于大于等于小于小于=小于等于小于等于=等于等于不等于不等于第27頁(yè)/共102頁(yè)(2)邏輯運(yùn)算 邏輯運(yùn)算符由Not、And和Or構(gòu)成,主要用于多個(gè)條件的判定,其運(yùn)算結(jié)果是邏輯值。如表4-2所示。關(guān)系運(yùn)算符關(guān)

14、系運(yùn)算符含義含義Not邏輯非邏輯非And邏輯與邏輯與Or邏輯或邏輯或第28頁(yè)/共102頁(yè)(3)其他運(yùn)算 Access提供了一些特殊運(yùn)算符用于對(duì)記錄進(jìn)行過(guò)濾,常用的特殊運(yùn)算符如表4-3所示。關(guān)系運(yùn)算符關(guān)系運(yùn)算符含義含義In指定值屬于列表中所列出的值指定值屬于列表中所列出的值Betweenand 指定值的范圍在指定值的范圍在到到之間之間Is 與與null一起使用確定字段值是否為空值一起使用確定字段值是否為空值Like用通配符查找文本型字段是否與其匹配用通配符查找文本型字段是否與其匹配通配符通配符“?”匹配任意單個(gè)字符;匹配任意單個(gè)字符;“*”匹配任意多個(gè)字匹配任意多個(gè)字符;符;“#”匹配任意單個(gè)數(shù)

15、字;匹配任意單個(gè)數(shù)字;“!”不匹配指定的字符;不匹配指定的字符;字符列表字符列表匹配任何在列表中的單個(gè)字符匹配任何在列表中的單個(gè)字符第29頁(yè)/共102頁(yè)2查詢(xún)條件的設(shè)置 在查詢(xún)?cè)O(shè)計(jì)視圖中,設(shè)置查詢(xún)條件應(yīng)使用QBE網(wǎng)格中的條件選項(xiàng)來(lái)設(shè)置。首先選擇需設(shè)置條件的字段,然后在“條件”文本框中輸入條件。條件的輸入格式與表達(dá)式的格式略有不同,通常省略字段名。 如果有多個(gè)條件,且涉及到不同的字段,則分別設(shè)置相應(yīng)字段的條件。如果兩個(gè)條件之間and運(yùn)算符連接,則輸入的信息放在同一行中;如果兩個(gè)條件之間or 運(yùn)算符連接,則輸入的信息放在不同行中。 第30頁(yè)/共102頁(yè)3 查詢(xún)舉例【實(shí)例4-2】在教學(xué)管理數(shù)據(jù)庫(kù)中,

16、創(chuàng)建以下查詢(xún)。(1)查詢(xún)1985年以后出生的學(xué)生的學(xué)號(hào)、姓名和出生日期。(2)查詢(xún)家庭住址在“海淀區(qū)”的同學(xué)的姓名和家庭住址。(3)查詢(xún)學(xué)號(hào)前2位是“05”或“06”的同學(xué)的姓名和專(zhuān)業(yè)。 (4)查詢(xún)職稱(chēng)是“教授”或“副教授”的教師的姓名、性別和職稱(chēng)。 第31頁(yè)/共102頁(yè)(5)查詢(xún)職稱(chēng)為“中級(jí)以上”職稱(chēng)的教師的姓名、性別和職稱(chēng)。(6)查詢(xún)選修“C程序設(shè)計(jì)”課程的學(xué)生的學(xué)號(hào)、姓名和成績(jī)。(7)查詢(xún)“高等數(shù)學(xué)”大于90分或“計(jì)算機(jī)基礎(chǔ)”大于85的同學(xué)的姓名、課程和成績(jī)。(8)查詢(xún)未參加考試的同學(xué)的學(xué)號(hào)、姓名和課程名稱(chēng)。第32頁(yè)/共102頁(yè)【操作步驟】以(3)和(6)為例。(3)查詢(xún)學(xué)號(hào)前2位是“0

17、5”或“06”的同學(xué)的姓名和專(zhuān)業(yè)。 打開(kāi)數(shù)據(jù)庫(kù)“選課管理”,選擇“創(chuàng)建”選項(xiàng)卡的“查詢(xún)”組,單擊“查詢(xún)?cè)O(shè)計(jì)”按鈕,打開(kāi)查詢(xún)?cè)O(shè)計(jì)器窗口,將“學(xué)生”表添加到查詢(xún)?cè)O(shè)計(jì)視圖的數(shù)據(jù)源窗口中。 將字段“學(xué)號(hào)”、“姓名”和“專(zhuān)業(yè)”添加到查詢(xún)定義窗口中,同時(shí)將學(xué)號(hào)字段的“顯示”復(fù)選按鈕取消;對(duì)應(yīng)“系號(hào)”字段,在“條件”行輸入“l(fā)ike 056* ”,如圖所示。第33頁(yè)/共102頁(yè)保存查詢(xún),運(yùn)行結(jié)果如圖所示。第34頁(yè)/共102頁(yè)(6)查詢(xún)選修“C程序設(shè)計(jì)”課程的學(xué)生的學(xué)號(hào)、姓名和成績(jī)。 打開(kāi)查詢(xún)?cè)O(shè)計(jì)器窗口,將“學(xué)生”、“課程”和“選課”表添加到查詢(xún)?cè)O(shè)計(jì)視圖的數(shù)據(jù)源窗口中。 將學(xué)生表中的字段“學(xué)號(hào)”、“姓名”、課

18、程表中的字段“課程名稱(chēng)”和“選課”表中的字段“成績(jī)”依次添加到查詢(xún)定義窗口中,同時(shí)將“課程名稱(chēng)”字段的“顯示”復(fù)選按鈕取消;對(duì)應(yīng)“課程名稱(chēng)”字段,在“條件”行輸入“=C程序設(shè)計(jì)”,如圖所示。第35頁(yè)/共102頁(yè)第36頁(yè)/共102頁(yè)保存查詢(xún)。運(yùn)行結(jié)果如圖所示。 第37頁(yè)/共102頁(yè)4.2.4 在查詢(xún)中進(jìn)行計(jì)算和統(tǒng)計(jì) 在設(shè)計(jì)選擇查詢(xún)時(shí),除了進(jìn)行條件設(shè)置外,還可以進(jìn)行計(jì)算和分類(lèi)匯總。 例如,計(jì)算學(xué)生的年齡、計(jì)算教師的工齡、統(tǒng)計(jì)教師的工資、按性別統(tǒng)計(jì)學(xué)生數(shù)、按系別統(tǒng)計(jì)教師的任務(wù)工作量等,這需要在查詢(xún)?cè)O(shè)計(jì)時(shí)使用表達(dá)式及查詢(xún)統(tǒng)計(jì)功能。第38頁(yè)/共102頁(yè)1表達(dá)式 用運(yùn)算符將常量、變量、函數(shù)連接起來(lái)的式子稱(chēng)

19、為表達(dá)式,表達(dá)式計(jì)算將產(chǎn)生一個(gè)結(jié)果??梢岳帽磉_(dá)式在查詢(xún)中設(shè)置條件或定義計(jì)算字段。 Access系統(tǒng)提供了算術(shù)運(yùn)算、關(guān)系運(yùn)算、字符運(yùn)算和邏輯運(yùn)算等4種基本運(yùn)算表達(dá)式第39頁(yè)/共102頁(yè)2系統(tǒng)函數(shù) 函數(shù)是一個(gè)預(yù)先定義的程序模塊函數(shù)。包括標(biāo)準(zhǔn)函數(shù)和用戶(hù)自定義函數(shù)。 標(biāo)準(zhǔn)函數(shù)可分為數(shù)學(xué)函數(shù)、字符串處理函數(shù)、日期/時(shí)間函數(shù)、聚合函數(shù)等,其中聚合函數(shù)可直接用于查詢(xún)中。函數(shù)及功能列表如表4-5所示。第40頁(yè)/共102頁(yè)函數(shù)名稱(chēng)函數(shù)名稱(chēng)功能功能Sum計(jì)算指定字段值的總和。適用于數(shù)字、日期計(jì)算指定字段值的總和。適用于數(shù)字、日期/時(shí)間、貨幣型字段時(shí)間、貨幣型字段Avg計(jì)算指定字段值的平均值。適用于數(shù)字、日期計(jì)算

20、指定字段值的平均值。適用于數(shù)字、日期/時(shí)間、貨幣型字段時(shí)間、貨幣型字段Min計(jì)算指定字段值的最大值。適用于文本、數(shù)字、日期計(jì)算指定字段值的最大值。適用于文本、數(shù)字、日期/時(shí)間、貨幣時(shí)間、貨幣型字段型字段Max計(jì)算指定字段值的最小值。適用于文本、數(shù)字、日期計(jì)算指定字段值的最小值。適用于文本、數(shù)字、日期/時(shí)間、貨幣時(shí)間、貨幣型字段型字段Count計(jì)算指定字段值的計(jì)數(shù)。當(dāng)字段中的值為空(計(jì)算指定字段值的計(jì)數(shù)。當(dāng)字段中的值為空(null)時(shí),將不計(jì)算)時(shí),將不計(jì)算在內(nèi)在內(nèi)Var計(jì)算指定字段值方差值。適用于文本、數(shù)字、日期計(jì)算指定字段值方差值。適用于文本、數(shù)字、日期/時(shí)間、貨幣型時(shí)間、貨幣型字段字段St

21、Dev計(jì)算指定字段值標(biāo)準(zhǔn)差值。適用于文本、數(shù)字、日期計(jì)算指定字段值標(biāo)準(zhǔn)差值。適用于文本、數(shù)字、日期/時(shí)間、貨幣時(shí)間、貨幣型字段型字段First返回指定字段的第一個(gè)值。返回指定字段的第一個(gè)值。Last返回指定字段的最后一個(gè)值。返回指定字段的最后一個(gè)值。Expression在字段中自定義計(jì)算公式,可以套用多個(gè)總計(jì)函數(shù)在字段中自定義計(jì)算公式,可以套用多個(gè)總計(jì)函數(shù)第41頁(yè)/共102頁(yè)3查詢(xún)舉例【實(shí)例4-3】在選課管理數(shù)據(jù)庫(kù)中,創(chuàng)建以下查詢(xún)。(1)查詢(xún)學(xué)生的學(xué)號(hào)、姓名、出生日期并計(jì)算年齡。(2)統(tǒng)計(jì)各系學(xué)生的平均年齡。(3)統(tǒng)計(jì)各年份出生的學(xué)生人數(shù)。 (4)統(tǒng)計(jì)每位教師的所教課程的總學(xué)時(shí)。(5)統(tǒng)計(jì)“計(jì)

22、算機(jī)系”教師的課程總學(xué)時(shí)數(shù)。(6)統(tǒng)計(jì)學(xué)生的課程總成績(jī)和平均成績(jī)。第42頁(yè)/共102頁(yè)【操作步驟】 打開(kāi)數(shù)據(jù)庫(kù)“選課管理”,在數(shù)據(jù)庫(kù)中選擇查詢(xún)?yōu)椴僮鲗?duì)象,單擊“在設(shè)計(jì)視圖中創(chuàng)建查詢(xún)”選項(xiàng),打開(kāi)查詢(xún)?cè)O(shè)計(jì)器窗口,將查詢(xún)所需要的表添加到查詢(xún)?cè)O(shè)計(jì)視圖的數(shù)據(jù)源窗口中。第43頁(yè)/共102頁(yè)(1)查詢(xún)學(xué)生的學(xué)號(hào)、姓名、出生日期并計(jì)算年齡 將學(xué)生表的字段“學(xué)號(hào)”、“姓名”、“出生日期”添加到QBE網(wǎng)格中,然后在空白列中輸入“年齡: Year(Date()-Year(出生日期)”,其中,Year(Date()-Year(出生日期)是計(jì)算年齡的表達(dá)式,而“年齡:”用于設(shè)置年齡的顯示標(biāo)題,如圖所示,保存查詢(xún)。第44

23、頁(yè)/共102頁(yè)(6)統(tǒng)計(jì)學(xué)生的課程總成績(jī)和平均成績(jī) 將學(xué)生表的字段“學(xué)號(hào)”、“姓名”、選課表的字段“成績(jī)”添加到查詢(xún)定義窗口中,注意,將成績(jī)字段添加2次。然后在“總計(jì)”行中,對(duì)應(yīng)“學(xué)號(hào)”和“姓名”字段,選擇“分組”;對(duì)應(yīng)第1個(gè)“成績(jī)”字段,選擇“合計(jì)”并添加標(biāo)題“總成績(jī)”,對(duì)應(yīng)第2個(gè)“成績(jī)”字段,選擇“平均值”并添加標(biāo)題“平均成績(jī)”,如圖所示。第45頁(yè)/共102頁(yè)43 交叉表查詢(xún) 交叉表查詢(xún)通常以一個(gè)字段作為表的行標(biāo)題,以另一個(gè)字段的取值作為列標(biāo)題,在行和列的交叉點(diǎn)單元格處獲得數(shù)據(jù)的匯總信息,以達(dá)到數(shù)據(jù)統(tǒng)計(jì)的目的。 交叉表查詢(xún)既可以通過(guò)交叉表查詢(xún)向?qū)?lái)創(chuàng)建,也可以在設(shè)計(jì)視圖中創(chuàng)建。第46頁(yè)/共

24、102頁(yè)【實(shí)例4-4】在選課管理數(shù)據(jù)庫(kù)中,創(chuàng)建以下交叉表查詢(xún)。(1)查詢(xún)學(xué)生的各門(mén)課成績(jī)。(2)查詢(xún)教師的所授課程及學(xué)時(shí)。(3)查詢(xún)各系男、女教師的人數(shù)。(4)查詢(xún)學(xué)生單科成績(jī)、平均成績(jī)及總成績(jī)。第47頁(yè)/共102頁(yè)【操作步驟】以(1) 為例 打開(kāi)數(shù)據(jù)庫(kù)“選課管理”,選擇“創(chuàng)建”選項(xiàng)卡的“查詢(xún)”組,單擊“查詢(xún)?cè)O(shè)計(jì)”按鈕,打開(kāi)“查詢(xún)?cè)O(shè)計(jì)器”窗口。 將學(xué)生表、課程表和選課表添加到查詢(xún)?cè)O(shè)計(jì)視圖的數(shù)據(jù)源窗口中,同時(shí)將學(xué)生表的字段“學(xué)號(hào)”、“姓名”、課程表中的“課程名稱(chēng)”以及選課表的字段“成績(jī)”添加到查詢(xún)定義窗口中。第48頁(yè)/共102頁(yè) 選擇“查詢(xún)工具”選項(xiàng)卡的“查詢(xún)類(lèi)型”組,單擊“交叉表”按鈕,查詢(xún)定

25、義窗口中將出現(xiàn)“總計(jì)”和“交叉表”行,首先,在“交叉表”行,對(duì)應(yīng)“學(xué)號(hào)”和“姓名”字段選擇“行標(biāo)題”、對(duì)應(yīng)“課程名稱(chēng)”選擇“列標(biāo)題”,對(duì)應(yīng)“成績(jī)”字段,選擇“值”,然后,在“總計(jì)”行,對(duì)應(yīng)“學(xué)號(hào)”、“姓名”和“課程名稱(chēng)”字段選擇“group by”,對(duì)應(yīng)“成績(jī)”字段,選擇“First”,如圖所示。第49頁(yè)/共102頁(yè)第50頁(yè)/共102頁(yè)保存查詢(xún)并運(yùn)行,運(yùn)行結(jié)果如圖所示。圖4-43 查詢(xún)(1)運(yùn)行結(jié)果 第51頁(yè)/共102頁(yè)說(shuō)明(1)在交叉表查詢(xún)?cè)O(shè)計(jì)時(shí),如果在“交叉表”行中,設(shè)置某個(gè)字段的選項(xiàng)為“值”,則在“總計(jì)”行中可以有多種選擇,每個(gè)選項(xiàng)都與表4-5的系統(tǒng)函數(shù)相對(duì)應(yīng)。如果獲取的數(shù)據(jù)是單一數(shù)據(jù),

26、則可以選擇“第一條記錄”或“最后一條記錄”。(2)本案例的(4)是利用交叉查詢(xún)的結(jié)果創(chuàng)建的查詢(xún),數(shù)據(jù)源是已經(jīng)創(chuàng)建的查詢(xún)。 第52頁(yè)/共102頁(yè)44 參數(shù)查詢(xún) 參數(shù)查詢(xún)是一種動(dòng)態(tài)查詢(xún),可以在每次運(yùn)行查詢(xún)時(shí)輸入不同的條件值,系統(tǒng)根據(jù)給定的參數(shù)值確定查詢(xún)結(jié)果,而參數(shù)值在創(chuàng)建查詢(xún)時(shí)不需定義。這種查詢(xún)完全由用戶(hù)控制,能一定程度上適應(yīng)應(yīng)用的變化需要,提高查詢(xún)效率。參數(shù)查詢(xún)一般創(chuàng)建在選擇查詢(xún)基礎(chǔ)上,在運(yùn)行查詢(xún)時(shí)會(huì)出現(xiàn)一個(gè)或多個(gè)對(duì)話框,要求輸入查詢(xún)條件。 根據(jù)查詢(xún)中參數(shù)個(gè)數(shù)的不同,參數(shù)查詢(xún)可以分為單參數(shù)查詢(xún)和多參數(shù)查詢(xún)。第53頁(yè)/共102頁(yè)【實(shí)例4-5】在教學(xué)管理數(shù)據(jù)庫(kù)中,創(chuàng)建以下參數(shù)查詢(xún)。(1)按學(xué)號(hào)查詢(xún)學(xué)

27、生的所有信息。(2)按系名查詢(xún)學(xué)生的選課成績(jī)。(3)按年級(jí)查詢(xún)學(xué)生的姓名、性別和所在系。(4)在最低分和最高分之間查詢(xún)學(xué)生的學(xué)號(hào)、姓名、以及“高等數(shù)學(xué)”課程成績(jī)。 第54頁(yè)/共102頁(yè)【操作步驟】(2)按系名查詢(xún)學(xué)生的選課成績(jī) 將學(xué)生表、選課表、課程表和系部表添加到查詢(xún)?cè)O(shè)計(jì)視圖的數(shù)據(jù)源窗口中,將學(xué)生表的“學(xué)號(hào)”、“姓名”字段、課程表的“課程名稱(chēng)”、選課表的“成績(jī)”和系部表的“系名稱(chēng)”添加到查詢(xún)定義窗口中,對(duì)應(yīng)“系名稱(chēng)”字段,在“條件”行輸入“輸入學(xué)生系名:”,如圖所示。 第55頁(yè)/共102頁(yè)第56頁(yè)/共102頁(yè)(4)在最低分和最高分之間查詢(xún)學(xué)生的學(xué)號(hào)、姓名、以及“高等數(shù)學(xué)”課程成績(jī)。將學(xué)生表、

28、選課表、課程表添加到查詢(xún)?cè)O(shè)計(jì)視圖的數(shù)據(jù)源窗口中,將學(xué)生表的“學(xué)號(hào)”、“姓名”字段、課程表的“課程名稱(chēng)”、選課表的“成績(jī)”添加到查詢(xún)定義窗口中,對(duì)應(yīng)“課程名稱(chēng)”字段,在“條件”行輸入“高等數(shù)學(xué)”,對(duì)應(yīng)“成績(jī)”字段,在“條件”行輸入“Between 最低分And 最高分”,如圖所示。 第57頁(yè)/共102頁(yè)第58頁(yè)/共102頁(yè) 保存查詢(xún)并運(yùn)行,顯示第一個(gè)“輸入?yún)?shù)值”對(duì)話框,輸入最低分“70”,單擊“確定”按鈕打開(kāi)第二個(gè)“輸入?yún)?shù)值”對(duì)話框,輸入最高分“90”,單擊“確定”按鈕,如圖4-54所示。系統(tǒng)會(huì)顯示高等數(shù)學(xué)成績(jī)介于70 和90之間的學(xué)生信息。第59頁(yè)/共102頁(yè)說(shuō)明:(1)在參數(shù)查詢(xún)中,在“

29、條件”行中輸入的參數(shù)條件實(shí)際上是一個(gè)變量,運(yùn)行查詢(xún)時(shí)用戶(hù)輸入的參數(shù)將存儲(chǔ)在該變量中,執(zhí)行查詢(xún)時(shí)系統(tǒng)自動(dòng)將字段或表達(dá)式的值與該變量的值進(jìn)行比較,根據(jù)比較的結(jié)果顯示相應(yīng)的結(jié)果。(2)在查詢(xún)(4)中,表達(dá)式“Mid(學(xué)號(hào),1,2)”調(diào)用了字符串處理函數(shù)Mid(),它的功能是取學(xué)號(hào)字段的前2位。 第60頁(yè)/共102頁(yè)45 操作查詢(xún) 前面介紹的查詢(xún)是按照用戶(hù)的需求,根據(jù)一定的條件從已有的數(shù)據(jù)源中選擇滿(mǎn)足特定準(zhǔn)則的數(shù)據(jù)形成一個(gè)動(dòng)態(tài)集,將已有的數(shù)據(jù)源再組織或增加新的統(tǒng)計(jì)結(jié)果,這種查詢(xún)方式不改變數(shù)據(jù)源中原有的數(shù)據(jù)狀態(tài)。 操作查詢(xún)是在選擇查詢(xún)的基礎(chǔ)上創(chuàng)建的,可以對(duì)表中的記錄進(jìn)行追加、修改、刪除和更新。操作查詢(xún)包

30、括刪除查詢(xún)、更新查詢(xún)、追加查詢(xún)和生成表查詢(xún)。 第61頁(yè)/共102頁(yè) 刪除查詢(xún)又稱(chēng)為刪除記錄的查詢(xún),可以從一個(gè)或多個(gè)數(shù)據(jù)表中刪除記錄。 使用刪除查詢(xún),將刪除整條記錄,而非只刪除記錄中的字段值。記錄一經(jīng)刪除將不能恢復(fù),因此在刪除記錄前要做好數(shù)據(jù)備份。刪除查詢(xún)?cè)O(shè)計(jì)完成后,需要運(yùn)行查詢(xún)才能將需要?jiǎng)h除的記錄刪除。4.5.1刪除查詢(xún)第62頁(yè)/共102頁(yè)【實(shí)例4-6】在選課管理數(shù)據(jù)庫(kù)中,創(chuàng)建以下刪除查詢(xún)。(1)刪除成績(jī)不及格的學(xué)生的選課記錄。 (2)刪除04級(jí)學(xué)生的記錄。 說(shuō)明: 由于表間存在著關(guān)系,在進(jìn)行刪除查詢(xún)時(shí)要注意到表間的關(guān)系,若關(guān)系完整性設(shè)置了級(jí)聯(lián),當(dāng)刪除一對(duì)多關(guān)系中“一”方的表中的記錄時(shí),那么“

31、多”方表中與之相關(guān)聯(lián)的記錄也會(huì)被刪除。 第63頁(yè)/共102頁(yè) 在數(shù)據(jù)庫(kù)操作中,如果只對(duì)表中少量數(shù)據(jù)進(jìn)行修改,可以直接在表操作環(huán)境下,通過(guò)手工進(jìn)行修改。 如果需要成批修改數(shù)據(jù),可以使用系統(tǒng)提供的更新查詢(xún)功能來(lái)實(shí)現(xiàn)。 更新查詢(xún)可以對(duì)一個(gè)或多個(gè)表中符合查詢(xún)條件的數(shù)據(jù)進(jìn)行批量的修改。4.5.2 更新查詢(xún)第64頁(yè)/共102頁(yè)【實(shí)例4-7】在教學(xué)管理數(shù)據(jù)庫(kù)中,創(chuàng)建以下更新查詢(xún)。(1)將不及格學(xué)生的課程成績(jī)置0。(2)將所有必修課程的學(xué)時(shí)增加8學(xué)時(shí),學(xué)分增加0.5學(xué)分(假設(shè)必修課程的課程編號(hào)以字母B開(kāi)頭)。第65頁(yè)/共102頁(yè)【操作步驟】 打開(kāi)數(shù)據(jù)庫(kù)“選課管理”,選擇“創(chuàng)建”選項(xiàng)卡的“查詢(xún)”組,單擊“查詢(xún)?cè)O(shè)

32、計(jì)”按鈕,打開(kāi)“查詢(xún)?cè)O(shè)計(jì)器”窗口。(1)將不及格學(xué)生的課程成績(jī)置0 將選課表添加到查詢(xún)?cè)O(shè)計(jì)視圖的數(shù)據(jù)源窗口中,同時(shí)將“成績(jī)”字段添加到查詢(xún)定義窗口中。選擇上下文選項(xiàng)卡“查詢(xún)工具”的“查詢(xún)類(lèi)型”組,單擊“更新查詢(xún)”按鈕,則在查詢(xún)定義窗口中出現(xiàn)“更新到”行。在“條件”行輸入“60”,然后在“更新到”行輸入0,如圖所示。第66頁(yè)/共102頁(yè)第67頁(yè)/共102頁(yè)保存查詢(xún),輸入查詢(xún)名“將不及格學(xué)生的課程成績(jī)置0”,查詢(xún)?cè)O(shè)置完成。運(yùn)行查詢(xún),系統(tǒng)自動(dòng)顯示更新數(shù)據(jù)對(duì)話框,如圖所示。 單擊“確定”按鈕,滿(mǎn)足條件的記錄將被自動(dòng)更新。第68頁(yè)/共102頁(yè)(2)將所有必修課程的學(xué)時(shí)增加8學(xué)時(shí),學(xué)分增加0.5學(xué)分 將課

33、程表添加到查詢(xún)?cè)O(shè)計(jì)視圖的數(shù)據(jù)源窗口中,同時(shí)將“課程號(hào)”、“學(xué)時(shí)”、“學(xué)分”字段添加到QBE網(wǎng)格中,然后將“課程號(hào)”修改為表達(dá)式“Mid(課程號(hào),1,1)”。右單擊數(shù)據(jù)源窗口,在快捷菜單中選擇“查詢(xún)類(lèi)型|更新查詢(xún)”,則在QBE網(wǎng)格中出現(xiàn)“更新到”行。對(duì)應(yīng)表達(dá)式“Mid(課程號(hào),1,1)”在“條件”行輸入“B”,對(duì)應(yīng)“學(xué)時(shí)”和“學(xué)分”字段,在“更新到”行分別輸入“學(xué)時(shí)+8”和“學(xué)分+.5”,如圖所示。 第69頁(yè)/共102頁(yè)保存查詢(xún),輸入查詢(xún)名“將所有必修課程的學(xué)時(shí)學(xué)分增加”,查詢(xún)?cè)O(shè)置完成。第70頁(yè)/共102頁(yè)4.5.3 追加查詢(xún) 追加查詢(xún)可以從一個(gè)或多個(gè)表將一組記錄追加到一個(gè)或多個(gè)表的尾部,可以大

34、大提高數(shù)據(jù)輸入的效率。【實(shí)例4-8】在教學(xué)管理數(shù)據(jù)庫(kù)中,新增加一個(gè)新生檔案表,其結(jié)構(gòu)與學(xué)生表相似,創(chuàng)建追加查詢(xún),將新生檔案表中的數(shù)據(jù)追加到學(xué)生表中。 第71頁(yè)/共102頁(yè)4.5.4生成表查詢(xún) 生成表查詢(xún)可以使查詢(xún)的運(yùn)行結(jié)果以表的形式存儲(chǔ),生成一個(gè)新表,這樣就可以利用一個(gè)或多個(gè)表或已知的查詢(xún)?cè)賱?chuàng)建表,從而使數(shù)據(jù)庫(kù)中的表可以創(chuàng)建新表,實(shí)現(xiàn)數(shù)據(jù)資源的多次利用及重組數(shù)據(jù)集合。 【實(shí)例4-9】在選課管理數(shù)據(jù)庫(kù)中,創(chuàng)建以下生成表查詢(xún)。(1)查詢(xún)計(jì)算機(jī)系學(xué)生的學(xué)號(hào)、姓名和性別并生成學(xué)生名單表。(2)查詢(xún)學(xué)生的各門(mén)課成績(jī)并生成成績(jī)表。第72頁(yè)/共102頁(yè)46 使用向?qū)?chuàng)建查詢(xún) 利用查詢(xún)?cè)O(shè)計(jì)視圖可以按照用戶(hù)的需

35、求設(shè)置查詢(xún)條件,選擇需要的字段和表達(dá)式,還可以利用查詢(xún)對(duì)源數(shù)據(jù)表進(jìn)行操作,這種方法對(duì)使用者的要求較高。 如果使用查詢(xún)向?qū)?chuàng)建查詢(xún),就可以按照Access系統(tǒng)提供的查詢(xún)向?qū)?,按照系統(tǒng)的引導(dǎo),完成查詢(xún)的創(chuàng)建。這種方法容易學(xué)習(xí)和掌握。 查詢(xún)向?qū)в兴姆N類(lèi)型:簡(jiǎn)單查詢(xún)向?qū)?、交叉表查?xún)向?qū)А⒉檎抑貜?fù)項(xiàng)查詢(xún)向?qū)Ш筒檎也黄ヅ漤?xiàng)查詢(xún)向?qū)?。?3頁(yè)/共102頁(yè)4.6.1簡(jiǎn)單查詢(xún)向?qū)?簡(jiǎn)單查詢(xún)向?qū)в糜趧?chuàng)建最簡(jiǎn)單的選擇查詢(xún),這種方法操作過(guò)程簡(jiǎn)單易用。【實(shí)例4-10】在選課管理數(shù)據(jù)庫(kù)中,使用簡(jiǎn)單查詢(xún)向?qū)Р樵?xún)課程的基本信息。第74頁(yè)/共102頁(yè)4.6.2交叉表查詢(xún)向?qū)?交叉表查詢(xún)向?qū)в糜趧?chuàng)建交叉表查詢(xún)查詢(xún),它的顯示數(shù)據(jù)來(lái)

36、源于某個(gè)字段的值或統(tǒng)計(jì)值。【實(shí)例4-11】在選課管理數(shù)據(jù)庫(kù)中,使用交叉表查詢(xún)向?qū)?chuàng)建查詢(xún)按系別統(tǒng)計(jì)教師各職稱(chēng)的人數(shù)。第75頁(yè)/共102頁(yè)4.6.3查找重復(fù)項(xiàng)查詢(xún)向?qū)?利用查找重復(fù)項(xiàng)查詢(xún)向?qū)Э梢圆樵?xún)表中是否出現(xiàn)重復(fù)的記錄,或者確定記錄在表中是否共享相同的值,或?qū)Ρ碇芯哂邢嗤侄蔚闹档挠涗涍M(jìn)行統(tǒng)計(jì)等等。例如,學(xué)生表中是否有相同的記錄,統(tǒng)計(jì)職稱(chēng)相同的人數(shù)等?!緦?shí)例4-12】在選課管理數(shù)據(jù)庫(kù)中,使用查找重復(fù)項(xiàng)查詢(xún)向?qū)Р樵?xún)是否有同一個(gè)學(xué)生選課成績(jī)相同的記錄。第76頁(yè)/共102頁(yè)4.6.4 查找不匹配項(xiàng)查詢(xún)向?qū)?具有“一對(duì)多”的表中,在“一”方的表中的每一條記錄,在“多”方可以有多條記錄與之對(duì)應(yīng),但也可以

37、沒(méi)有任何記錄與之對(duì)應(yīng),使用查找不匹配項(xiàng)查詢(xún)向?qū)Э梢圆樵?xún)?cè)谝粋€(gè)表中查找與另一個(gè)表沒(méi)有相關(guān)記錄的記錄?!緦?shí)例4-13】在選課管理數(shù)據(jù)庫(kù)中,使用查找不匹配項(xiàng)查詢(xún)向?qū)?chuàng)建查詢(xún)沒(méi)有選課的學(xué)生記錄。第77頁(yè)/共102頁(yè) 47 SQL查詢(xún) SQL查詢(xún)是使用SQL語(yǔ)言創(chuàng)建的一種查詢(xún)。SQL(Structured Query Language)結(jié)構(gòu)化查詢(xún)語(yǔ)言是標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫(kù)語(yǔ)言。SQL語(yǔ)言的功能包括數(shù)據(jù)定義、數(shù)據(jù)查詢(xún)、數(shù)據(jù)操縱和數(shù)據(jù)控制4個(gè)部分。 每個(gè)查詢(xún)都對(duì)應(yīng)著一個(gè)SQL查詢(xún)命令。當(dāng)用戶(hù)使用查詢(xún)向?qū)Щ虿樵?xún)?cè)O(shè)計(jì)器創(chuàng)建查詢(xún)時(shí),系統(tǒng)會(huì)自動(dòng)生成對(duì)應(yīng)的SQL命令,可以在SQL視圖中查看,除此之外,用戶(hù)還可以直接通過(guò)

38、SQL視圖窗口輸入SQL命令來(lái)創(chuàng)建查詢(xún)。 第78頁(yè)/共102頁(yè) 4.7.1 SQL語(yǔ)言的特點(diǎn) SQL語(yǔ)言具有以下特點(diǎn):(1)高度的綜合(2)高度非過(guò)程化(3)交互式與嵌入式相結(jié)合(4)語(yǔ)言簡(jiǎn)潔,易學(xué)易用第79頁(yè)/共102頁(yè) 4.7.2 SQL語(yǔ)言的數(shù)據(jù)定義功能 SQL語(yǔ)言的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引,具體地說(shuō),是指表、視圖和索引等對(duì)象的創(chuàng)建、修改和刪除,在Access中沒(méi)有視圖,這里只介紹定義表和定義索引。1定義基本表 定義基本表使用CREATE TABLE命令,其語(yǔ)法格式為:CREATE TABLE ( ,),第80頁(yè)/共102頁(yè) 該語(yǔ)句的功能是,創(chuàng)建一個(gè)以為名的,以指定的列

39、屬性定義的表結(jié)構(gòu)。其中,是所定義的基本表的名稱(chēng),它可以由一個(gè)或多個(gè)屬性(列)組成,和用來(lái)定義與該表有關(guān)的完整性約束條件,這些完整性約束條件將被保存在數(shù)據(jù)庫(kù)中,當(dāng)用戶(hù)對(duì)表中數(shù)據(jù)進(jìn)行操作時(shí),系統(tǒng)將自動(dòng)檢查該操作是否違背這些完整性約束條件。第81頁(yè)/共102頁(yè)2修改基本表 修改基本表使用ALTER TABLE命令,其語(yǔ)法格式為:ALTER TABLE ADD ,DROP ALTER 該語(yǔ)句的功能是,修改以為名的表結(jié)構(gòu)。其中,ADD子句用于增加新列和新的完整性約束條件。DROP子句用于刪除指定的列和完整性。ALTER子句用于修改原有的列的定義,包括列名、列寬和列的數(shù)據(jù)類(lèi)型。第82頁(yè)/共102頁(yè)3刪除表

40、 刪除表使用DROP TABLE命令,其語(yǔ)法格式為:DROP TABLE 該語(yǔ)句的功能是,刪除以為名的表。4創(chuàng)建索引創(chuàng)建索引使用CREATE INDEX命令,其語(yǔ)法格式為: CREATE UNIQUE INDEX ON (ASC|DESC),ASC|DESC,該語(yǔ)句的功能是,為指定的表創(chuàng)建索引。其中,ASC|DESC是指索引值的排列順序,UNIQUE表示唯一索引。第83頁(yè)/共102頁(yè)5刪除索引創(chuàng)建索引使用DROP INDEX命令,其語(yǔ)法格式為:DROP INDEX 該語(yǔ)句的功能是,刪除指定的索引。6SQL數(shù)據(jù)定義實(shí)例【實(shí)例4-14】使用SQL語(yǔ)言完成下列操作(1)創(chuàng)建一個(gè)表:student,它

41、由學(xué)號(hào)、姓名、性別、年齡和專(zhuān)業(yè)5個(gè)屬性列組成,其中學(xué)號(hào)和姓名屬性不能為空,并且唯一。(2)在student表中增加一個(gè)“入學(xué)時(shí)間”列,其數(shù)據(jù)類(lèi)型為日期型。第84頁(yè)/共102頁(yè)(3)刪除student表中姓名唯一的約束。(4)分別按照姓名字段為student表創(chuàng)建索引,索引名為xmsy。(5)刪除姓名索引。【SQL命令】(1)CREATE TABLE student (學(xué)號(hào) char(10)NOT NULL UNIQUE,姓名 char(12)NOT NULL UNIQUE,性別 char(2),年齡 int,專(zhuān)業(yè) char(15)(2)ALTER TABLE student ADD入學(xué)時(shí)間 d

42、ate(3)ALTER TABLE student DROP UNIQUE(姓名)(4)CREATE INDEX xmsy ON student(學(xué)號(hào))(5)DROP INDEX xmsy 第85頁(yè)/共102頁(yè) 4.7.3 SQL語(yǔ)言的數(shù)據(jù)操縱功能 SQL的數(shù)據(jù)操縱包括表中數(shù)據(jù)更新、數(shù)據(jù)插入和數(shù)據(jù)刪除等相關(guān)操作。1數(shù)據(jù)更新 數(shù)據(jù)更新使用UPDATE命令,其語(yǔ)法格式為:UPDATE SET=,= WHERE該語(yǔ)句的功能是,用表達(dá)式的值更新指定表中指定列的值。其中,=用表達(dá)式的值更新指定列的值。where子句用于設(shè)置篩選條件,選擇滿(mǎn)足指定條件的記錄進(jìn)行數(shù)據(jù)更新。第86頁(yè)/共102頁(yè)2數(shù)據(jù)插入 數(shù)據(jù)

43、插入使用INSERT命令,其語(yǔ)法格式為:INSERT INTO (列名1 ,列名2, )VALUES (常量1 ,常量2, )該語(yǔ)句的功能是,將一個(gè)新記錄插入到指定的表中。其中,INTO子句中的(列名1 ,列名2, )指表中插入新值的列,如果省略該選項(xiàng),則新插入記錄的每一列必須在VALUES子句中有值對(duì)應(yīng)。VALUES子句中的(常量1 ,常量2, )指表中插入新列的值,各常量的數(shù)據(jù)類(lèi)型必須與INTO子句中所對(duì)應(yīng)列的數(shù)據(jù)類(lèi)型相同,且個(gè)數(shù)也要匹配。第87頁(yè)/共102頁(yè)3數(shù)據(jù)刪除 數(shù)據(jù)刪除使用DELETE命令,其語(yǔ)法格式為:DELETE FROM WHERE 該語(yǔ)句的功能是,刪除指定表中滿(mǎn)足條件的記

44、錄。如果省略where子句,則刪除表中的所有數(shù)據(jù)。 第88頁(yè)/共102頁(yè)4SQL數(shù)據(jù)操縱實(shí)例【實(shí)例4-15】使用SQL語(yǔ)言完成下列操作(1)在student表中插入一條新記錄(08010001,趙丹,男,26,計(jì)算機(jī)應(yīng)用)(2)將所有學(xué)生的年齡增加1。(3)刪除學(xué)號(hào)為04010001的記錄。【SQL命令】(1)INSERT INTO student(學(xué)號(hào),姓名,性別,年齡,專(zhuān)業(yè))VALUES (08010001,趙丹,男,26,計(jì)算機(jī)應(yīng)用)(2)UPDATE student SET年齡=年齡+1(3)DELETE FROM student WHERE 學(xué)號(hào)=04010001第89頁(yè)/共102頁(yè)

45、4.7.4 SQL語(yǔ)言的數(shù)據(jù)查詢(xún)功能 數(shù)據(jù)查詢(xún)是SQL的核心功能,SQL語(yǔ)言提供了SELECT語(yǔ)句用于檢索和顯示數(shù)據(jù)庫(kù)中表的信息,該語(yǔ)句功能強(qiáng)大,使用方式靈活,可用一個(gè)語(yǔ)句實(shí)現(xiàn)多種方式的查詢(xún)。SELECT語(yǔ)句的格式為:SELECT ALL| DISTINCT , FROM INNER JOINON WHERE GROUP BY HAVING ORDER BY ASC|DESC第90頁(yè)/共102頁(yè)該語(yǔ)句的功能是,從指定的表或查詢(xún)中找出符合條件的記錄,按目標(biāo)列表達(dá)式的設(shè)定,選出記錄中的字段值形成查詢(xún)結(jié)果。其中,ALL| DISTINCT表示記錄的范圍,ALL表示所有記錄,DISTINCT表示不包括重復(fù)行的記錄。表示查詢(xún)結(jié)果中顯示的數(shù)據(jù),一般為列名或表達(dá)式。FROM子句表示數(shù)據(jù)源,即查詢(xún)所涉及的相關(guān)表或已有的查詢(xún)。WHERE子

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論