版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章
查詢本章主要內(nèi)容:查詢概述1查詢的條件2選擇查詢3
4參數(shù)查詢
交叉表查詢5操作查詢6SQL查詢7溫馨提示:由于采用ACCESS版本不同可能運(yùn)行界面略有不同。本章導(dǎo)讀:建立數(shù)據(jù)庫(kù)的最終目的并不僅僅是將數(shù)據(jù)完整、正確的保存在數(shù)據(jù)庫(kù)中,而是為了對(duì)數(shù)據(jù)進(jìn)行各種處理和分析,以便更好的使用它。查詢即是通過(guò)設(shè)置某些條件,從表中獲取所需的數(shù)據(jù),并且方便的對(duì)這些數(shù)據(jù)進(jìn)行更改和分析使用,從而增加了數(shù)據(jù)庫(kù)設(shè)計(jì)的靈活性。本章將詳細(xì)介紹查詢的基本概念、各種查詢的創(chuàng)建和使用等內(nèi)容。其中重點(diǎn)是選擇查詢和操作查詢,難點(diǎn)是交叉表查詢和SQL查詢。表1表2...表n添加條件記錄集合關(guān)系三大運(yùn)算3.1.1查詢的定義Access2016數(shù)據(jù)庫(kù)系統(tǒng)中,查詢可說(shuō)是實(shí)用性最強(qiáng)的一個(gè)對(duì)象。查詢是數(shù)據(jù)處理和數(shù)據(jù)分析的工具,是在指定的一個(gè)或多個(gè)表中,根據(jù)給定的條件從中篩選所需的信息,供用戶查看、更改和分析。查詢的數(shù)據(jù)來(lái)源可以是單表或多表,也可以是已存在的查詢;查詢也可以作為窗體、報(bào)表的數(shù)據(jù)來(lái)源。思考:查詢與之前學(xué)過(guò)的“篩選”有什么區(qū)別?3.1.2查詢的工作原理運(yùn)行查詢時(shí),Access會(huì)根據(jù)查詢條件從數(shù)據(jù)源中查找出滿足的數(shù)據(jù)記錄,并將這些數(shù)據(jù)以數(shù)據(jù)表的形式顯示出來(lái)。這些記錄的集合通常稱為記錄集(Recordset)。記錄集看起來(lái)與“表”非常類似。實(shí)際上,記錄集是記錄的一個(gè)動(dòng)態(tài)集合。除非使用這些記錄直接構(gòu)建一個(gè)表,否則查詢所返回的記錄集并不會(huì)存儲(chǔ)在數(shù)據(jù)庫(kù)中。關(guān)閉查詢時(shí),查詢的動(dòng)態(tài)記錄集就自動(dòng)消失了。也就是說(shuō),Access并不保存查詢結(jié)果的動(dòng)態(tài)記錄集,真正保存的是查詢結(jié)構(gòu),即:查詢用到的表、字段、條件、排序等過(guò)程信息。基于此,查詢的結(jié)果總是與數(shù)據(jù)源中的數(shù)據(jù)保持同步,從而保證了結(jié)果永遠(yuǎn)是數(shù)據(jù)源的最新反映。3.1.3查詢的功能1.選擇字段例如建立一個(gè)查詢,用于查看學(xué)生信息,顯示“學(xué)生”表和“學(xué)生其他情況”表中的所有不重復(fù)字段。2.選擇記錄根據(jù)指定的條件查找所需記錄并顯示。例如建立一個(gè)查詢,只顯示“教師”表中職稱為“副教授”的教師。3.編輯記錄通過(guò)查詢,對(duì)符合條件的記錄進(jìn)行修改、刪除等操作。例如將所有同學(xué)的成績(jī)提高5分;刪除“已轉(zhuǎn)學(xué)”的學(xué)生記錄等。4.實(shí)現(xiàn)計(jì)算在建立查詢的過(guò)程中進(jìn)行各種統(tǒng)計(jì)計(jì)算。例如根據(jù)出生日期計(jì)算學(xué)生的年齡;統(tǒng)計(jì)男女生的人數(shù)等。5.建立新表利用查詢的結(jié)果建立一個(gè)新表。即把查詢所得的“動(dòng)態(tài)記錄集”存儲(chǔ)于表中。例如:查找出所有不及格的學(xué)生記錄,并保存為一個(gè)新表。6.基于查詢創(chuàng)建窗體或報(bào)表使用查詢創(chuàng)建的記錄集中可能正好有報(bào)表或窗體所需的字段和數(shù)據(jù)?;诓樵儎?chuàng)建窗體或報(bào)表就意味著每次打印報(bào)表或打開窗體,都可以看到表中的最新信息。3.1.4查詢的類型ACCESS支持五種查詢方式:選擇查詢、參數(shù)查詢(一種特殊的選擇查詢)交叉表查詢、操作查詢、SQL查詢。各種查詢方式針對(duì)的目標(biāo)不同,對(duì)數(shù)據(jù)的操作方式和結(jié)果也不同。1.選擇查詢選擇查詢是最常用、也是最基本的查詢類型,也是系統(tǒng)默認(rèn)創(chuàng)建的一種類型。所謂“選擇”,顧名思義,是指根據(jù)一定的查詢準(zhǔn)則從一個(gè)或多個(gè)表,或者其它查詢中獲得數(shù)據(jù),并按照所需的排列次序顯示。選擇查詢也可以用來(lái)對(duì)記錄進(jìn)行分組,并且對(duì)記錄作總計(jì)、計(jì)數(shù)、平均值以及其他類型的統(tǒng)計(jì)計(jì)算。選擇查詢包括:簡(jiǎn)單選擇查詢、統(tǒng)計(jì)查詢、重復(fù)項(xiàng)和不匹配項(xiàng)查詢。選擇查詢的創(chuàng)建2.參數(shù)查詢參數(shù)查詢是在執(zhí)行時(shí)顯示對(duì)話框以提示用戶輸入查詢參數(shù)或準(zhǔn)則。與其他查詢不同,參數(shù)查詢的查詢準(zhǔn)則是可以因用戶的要求而改變的,而其他查詢的準(zhǔn)則是事先定義好的。例如:設(shè)計(jì)一個(gè)參數(shù)查詢,用來(lái)查看不同學(xué)期的教學(xué)計(jì)劃,運(yùn)行查詢時(shí),彈出對(duì)話框,提示輸入學(xué)期,每次輸入不同的數(shù)字,得到不同的結(jié)果。這樣,參數(shù)查詢更加靈活。若做成選擇查詢,在學(xué)期字段的“條件”行輸入數(shù)字,則只能固定的只能查看某學(xué)期的教學(xué)計(jì)劃,想看其他學(xué)期的,還得回到查詢?cè)O(shè)計(jì)視圖,修改查詢條件。3.交叉表查詢交叉表查詢可以計(jì)算并重新組織數(shù)據(jù)表的結(jié)構(gòu),主要用于對(duì)數(shù)據(jù)字段的內(nèi)容進(jìn)行匯總統(tǒng)計(jì),結(jié)果顯示在行與列交叉的單元格中。交叉表查詢將源數(shù)據(jù)或查詢中的數(shù)據(jù)分組,一組在數(shù)據(jù)表的左側(cè),一組在數(shù)據(jù)表的上部,數(shù)據(jù)表內(nèi)行與列的交叉單元格中顯示表中數(shù)據(jù)的某個(gè)統(tǒng)計(jì)值,這是一種可以將表中的數(shù)據(jù)看作字段的查詢方法。利用交叉表查詢可以計(jì)算平均值、總計(jì)、計(jì)數(shù)、最大值和最小值等。例如,統(tǒng)計(jì)學(xué)生表中每個(gè)專業(yè)的男女生的人數(shù)。此時(shí),可以將“專業(yè)代碼”作為交叉表的行標(biāo)題,“性別”作為交叉表的列標(biāo)題,統(tǒng)計(jì)的人數(shù)顯示在交叉單元格中。4.操作查詢操作查詢是指在查詢中對(duì)源數(shù)據(jù)表進(jìn)行操作,可以實(shí)現(xiàn)對(duì)表中的記錄進(jìn)行追加、修改、刪除和批量更新。使用這種查詢只需進(jìn)行一次操作就可對(duì)多條記錄進(jìn)行更新或刪除。根據(jù)操作的不同可以分為4種查詢方式。
生成表查詢:生成表查詢利用一個(gè)或多個(gè)表的全部或部分?jǐn)?shù)據(jù)創(chuàng)建新表。刪除查詢:刪除查詢可以從一個(gè)或多個(gè)表中刪除記錄。
更新查詢:更新查詢可對(duì)一個(gè)或多個(gè)表中的一組記錄進(jìn)行批量更改。
追加查詢:追加查詢可將一個(gè)或多個(gè)表中的一組記錄追加到一個(gè)或多個(gè)表的末尾。
5.SQL查詢SQL(StructureQueryLanguage)是一種結(jié)構(gòu)化查詢語(yǔ)言,自從IBM公司1981年推出以來(lái),SQL語(yǔ)言得到了廣泛應(yīng)用。SQL查詢是指用戶使用SQL語(yǔ)言來(lái)創(chuàng)建查詢。上述的任何一種查詢都可以通過(guò)SQL語(yǔ)言來(lái)實(shí)現(xiàn)。在“設(shè)計(jì)視圖”中創(chuàng)建查詢時(shí),Access在后臺(tái)自動(dòng)構(gòu)造等價(jià)的SQL語(yǔ)句??梢栽赟QL視圖中查看和編輯對(duì)應(yīng)查詢的SQL語(yǔ)句,有些SQL查詢無(wú)法在“設(shè)計(jì)視圖”中創(chuàng)建,必須在SQL視圖中創(chuàng)建。3.1.5創(chuàng)建查詢的方法兩種方式:第一種是利用Access查詢向?qū)?,這種方式可以幫助用戶快速的創(chuàng)建查詢。方便、快捷,但是無(wú)法添加查詢條件第二種是在查詢?cè)O(shè)計(jì)視圖中創(chuàng)建,不僅可以完成新建查詢的設(shè)計(jì),也可以修改已有的查詢,還可以修改作為窗體、報(bào)表、數(shù)據(jù)訪問(wèn)頁(yè)記錄源的SQL語(yǔ)句。
使用查詢向?qū)?chuàng)建查詢,就是利用Access系統(tǒng)提供的查詢向?qū)?,按照系統(tǒng)的引導(dǎo),逐步完成查詢的創(chuàng)建。
在Access中,共提供了四種類型的查詢向?qū)?,包括?jiǎn)單查詢向?qū)А⒔徊姹聿樵兿驅(qū)?、查找重?fù)項(xiàng)查詢向?qū)Ш筒檎也黄ヅ漤?xiàng)查詢向?qū)А?.用“查詢向?qū)А眲?chuàng)建查詢【例1】在“教學(xué)管理”數(shù)據(jù)庫(kù)中,利用查詢向?qū)?chuàng)建查詢“學(xué)生基本信息”。功能是用于查詢數(shù)據(jù)庫(kù)“教學(xué)管理”中“學(xué)生”表中的學(xué)號(hào)、姓名和性別字段。單數(shù)據(jù)源【例2】在“教學(xué)管理”數(shù)據(jù)庫(kù)中,利用查詢向?qū)?chuàng)建查詢“專業(yè)詳細(xì)信息”。功能是用于查詢數(shù)據(jù)庫(kù)“教學(xué)管理”中表“專業(yè)”和“學(xué)院”的全部信息,即輸出兩個(gè)表中所有不重復(fù)字段的數(shù)據(jù)。注意:選取字段的順序。多數(shù)據(jù)源【例】在“教學(xué)管理”數(shù)據(jù)庫(kù)中,利用查詢向?qū)?chuàng)建查詢“學(xué)生入學(xué)成績(jī)”。功能是用于在“學(xué)生基本信息”基礎(chǔ)上添加“入學(xué)成績(jī)”字段,所用數(shù)據(jù)源為:查詢“學(xué)生基本信息”和表“學(xué)生其他情況”。【歸納總結(jié)】①使用向?qū)Х?,?shù)據(jù)源可以來(lái)自于一個(gè)表或多個(gè)表,也可以來(lái)自于已有查詢;②使用向?qū)Х▌?chuàng)建查詢,不能設(shè)置查詢條件;③查詢結(jié)果的字段排列順序,取決于最初添加字段時(shí)的順序。3.1.6運(yùn)行查詢多種方法:(1)在查詢?cè)O(shè)計(jì)視圖狀態(tài)下,單擊功能區(qū)“設(shè)計(jì)”選項(xiàng)卡下“結(jié)果”組中的“運(yùn)行”按鈕
;(2)在查詢?cè)O(shè)計(jì)視圖狀態(tài)下,單擊功能區(qū)“設(shè)計(jì)”選項(xiàng)卡下“結(jié)果”組中的“視圖”按鈕
;(3)在查詢?cè)O(shè)計(jì)視圖狀態(tài)下,右鍵單擊設(shè)計(jì)視圖窗口的標(biāo)題欄,在快捷菜單中選擇“數(shù)據(jù)表視圖”;(4)在導(dǎo)航窗口選擇要運(yùn)行的查詢雙擊;(5)在導(dǎo)航窗口選擇要查詢對(duì)象右擊,在快捷菜單中選擇“打開”命令2.使用“設(shè)計(jì)視圖”創(chuàng)建查詢打開設(shè)計(jì)視圖的方式主要有兩種,一是創(chuàng)建一個(gè)新查詢,單擊圖中的“查詢?cè)O(shè)計(jì)”按鈕,即可進(jìn)入查詢?cè)O(shè)計(jì)視圖;另一種方式是打開現(xiàn)有的某個(gè)查詢的設(shè)計(jì)視圖,只要在左側(cè)導(dǎo)航窗格中右擊該查詢,在彈出的快捷菜單中選擇“設(shè)計(jì)視圖”即可。查詢?cè)O(shè)計(jì)器:在查詢?cè)O(shè)計(jì)視圖中,不僅可以創(chuàng)建各種類型的查詢,也可以方便的對(duì)各種查詢進(jìn)行修改。查詢?cè)O(shè)計(jì)視圖由兩部分構(gòu)成,設(shè)計(jì)視圖的上半部分顯示查詢的數(shù)據(jù)源,可以是數(shù)據(jù)表或查詢;下半部分是“設(shè)計(jì)網(wǎng)格”區(qū)。“設(shè)計(jì)網(wǎng)格”區(qū)數(shù)據(jù)源顯示區(qū)注意:不同類型的查詢,設(shè)計(jì)網(wǎng)格中包含的行項(xiàng)目會(huì)有所不同?!纠?.2】在“教學(xué)管理”數(shù)據(jù)庫(kù)中,利用查詢?cè)O(shè)計(jì)視圖創(chuàng)建查詢“學(xué)生成績(jī)?yōu)g覽”,數(shù)據(jù)來(lái)源于三個(gè)表:“學(xué)生”、“課程”和“成績(jī)”,查詢結(jié)果包括字段:學(xué)號(hào)、姓名、性別、專業(yè)代碼、學(xué)期、課程代碼、課程名稱、學(xué)分、考核方式和成績(jī)十個(gè)字段。操作步驟:(1)選取查詢?cè)矗?)選擇字段(3)保存并運(yùn)行選取字段有四種方法:①在上半?yún)^(qū),選中表中某字段,按住鼠標(biāo)左鍵不放,將其拖放到設(shè)計(jì)網(wǎng)格的字段行上;②在上半?yún)^(qū),雙擊表中的某字段,則該字段就被添加到下半?yún)^(qū)的字段行了;③單擊下半?yún)^(qū)設(shè)計(jì)網(wǎng)格中字段行右側(cè)的下拉箭頭,從下拉列表中選取所需字段;④若雙擊上半?yún)^(qū)表中的“*”,則該表的所有字段被添加到查詢結(jié)果中。【說(shuō)明】①在設(shè)計(jì)視圖的上半?yún)^(qū),若要繼續(xù)添加數(shù)據(jù)源,可以通過(guò)單擊右鍵,在彈出的菜單中選擇“顯示表”;若要?jiǎng)h除已添加的數(shù)據(jù)源,可以在數(shù)據(jù)源上單擊右鍵,選擇菜單里的“刪除表”命令;②在查詢?cè)O(shè)計(jì)視圖中,對(duì)于已經(jīng)選取的字段,可以通過(guò)右鍵菜單里的“剪切”命令刪除該選定字段;③在查詢?cè)O(shè)計(jì)視圖中,對(duì)于已經(jīng)選取的字段,可以通過(guò)拖動(dòng)的方法改變字段的次序。本章主要內(nèi)容:查詢概述1查詢的條件2選擇查詢3
4參數(shù)查詢
交叉表查詢5操作查詢6SQL查詢73.2查詢的條件
查詢條件可以由運(yùn)算符、常量、字段值、函數(shù)以及字段名和屬性等任意組合,其中運(yùn)算符、函數(shù)和表達(dá)式是構(gòu)成Access計(jì)算功能的基礎(chǔ)。3.2.1常量
常量是在Access運(yùn)行時(shí)不會(huì)改變其值的項(xiàng)目。某個(gè)具體的值(即常量)在作為查詢條件時(shí),不同類型的字段,有不同的表示方法。3.2.2字段引用在查詢的條件表達(dá)式中若引用字段,需要使用[字段名]的格式。如[姓名]。如果需要指明該字段所屬的數(shù)據(jù)源,則要寫成
[數(shù)據(jù)表名]點(diǎn))。3.2.3運(yùn)算符
運(yùn)算符是構(gòu)成查詢條件的基本元素。運(yùn)算符主要有算術(shù)運(yùn)算符、連接運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、特殊運(yùn)算符、通配符等。1.算術(shù)運(yùn)算符Mod
取余數(shù)5mod2結(jié)果為12.連接運(yùn)算符3.邏輯運(yùn)算符4.關(guān)系運(yùn)算符5.特殊運(yùn)算符Access2010支持的通配符:3.2.4函數(shù)函數(shù)是預(yù)先定義的程序模塊,能實(shí)現(xiàn)特定的功能。函數(shù)可以由用戶自行定義,也可以由系統(tǒng)預(yù)先定義,用戶在使用時(shí)只需給出相應(yīng)的參數(shù)值就可以自動(dòng)完成計(jì)算。其中,系統(tǒng)自定義的函數(shù)稱為標(biāo)準(zhǔn)函數(shù),用戶自己定義的函數(shù)稱為自定義函數(shù)。Access提供了上百個(gè)標(biāo)準(zhǔn)函數(shù),包括數(shù)學(xué)函數(shù)、字符函數(shù)、日期/時(shí)間函數(shù)和聚合函數(shù)等。函數(shù)名(參數(shù)1,參數(shù)2,……)函數(shù)都會(huì)有一個(gè)值1.數(shù)學(xué)函數(shù)2.字符函數(shù)3.日期時(shí)間函數(shù)4.聚合函數(shù)3.2.5查詢中的條件表達(dá)式添加條件的方法:在設(shè)計(jì)視圖中下半?yún)^(qū)的“條件”行輸入。輸入條件表達(dá)式的注意事項(xiàng):(1) 字符串常量要用英文雙引號(hào)("")括起,日期數(shù)據(jù)用雙井號(hào)(##)括起,是/否數(shù)據(jù)用True或False表示,引用字段要用方括號(hào)([])括起。(2) 運(yùn)算符、函數(shù)中的符號(hào)都應(yīng)為半角英文狀態(tài)下輸入,且不區(qū)分大小寫。(3) 邏輯運(yùn)算符與所連接的數(shù)據(jù)之間,要留有空格。(4) 表達(dá)式通常省略字段名。例如,查找性別為男的記錄,用表達(dá)式應(yīng)為,[性別]="男",而在查詢?cè)O(shè)計(jì)器中,只要在對(duì)應(yīng)“性別”字段下面的條件行,輸入"男"即可(等號(hào)也可省略);成績(jī)?cè)?0-70之間,用表達(dá)式應(yīng)為[成績(jī)]>=60and[成績(jī)]<=70,而在查詢?cè)O(shè)計(jì)器中,只要在對(duì)應(yīng)“成績(jī)”字段的條件行,輸入>=60and<=70即可。(5) 當(dāng)有兩個(gè)以上條件時(shí),同行相與,異行相或。(6) 條件中引用表名時(shí),應(yīng)用方括號(hào)括起來(lái),與字段名之間用“!”間隔。如[學(xué)生]![姓名]。本章主要內(nèi)容:查詢概述1查詢的條件2選擇查詢3
4參數(shù)查詢
交叉表查詢5操作查詢6SQL查詢73.3.1不帶條件查詢1.多數(shù)據(jù)源查詢【例3.3】使用查詢?cè)O(shè)計(jì)視圖創(chuàng)建選擇查詢“7學(xué)生成績(jī)?cè)敿?xì)瀏覽”。由于例題3.2“4學(xué)生成績(jī)?yōu)g覽”看不出來(lái)學(xué)生具體的專業(yè),所以需要在“專業(yè)代碼”字段后面添加“專業(yè)名稱”。即查詢結(jié)果中包含:學(xué)號(hào)(升序排列)、姓名、性別、專業(yè)代碼、專業(yè)名稱、學(xué)期(升序排列)、課程代碼(升序排列)、課程名稱、學(xué)分、考核方式、成績(jī)11個(gè)字段的詳細(xì)數(shù)據(jù)信息?!纠}分析】本題是基于已有查詢來(lái)增加字段的,所以選取數(shù)據(jù)源時(shí)可直接選取已有查詢,然后再根據(jù)需要添加“專業(yè)名稱”字段所在的表(即“專業(yè)”表)。這樣比選取多張表作為數(shù)據(jù)源更快捷、方便?!練w納總結(jié)】
①當(dāng)數(shù)據(jù)源為多張表時(shí),表與表之間必須建立關(guān)系。若建查詢之前關(guān)系已經(jīng)建立,則添加表時(shí),關(guān)系會(huì)自動(dòng)添加到查詢?cè)O(shè)計(jì)視圖中;若之前表沒(méi)建立關(guān)系,可以在查詢?cè)O(shè)計(jì)視圖中,添加關(guān)系連線,但這種關(guān)系只在本查詢中有效。本題中數(shù)據(jù)源為一個(gè)查詢和一個(gè)表,所以系統(tǒng)根據(jù)它們的相同字段,自動(dòng)添加了關(guān)系連線。
②當(dāng)“排序”行上出現(xiàn)了兩個(gè)以上的排序字段時(shí),左邊的排序請(qǐng)求高于右邊的。本題可理解為:查詢結(jié)果首先按“學(xué)號(hào)”字段升序排列,當(dāng)學(xué)號(hào)相同時(shí),再按“學(xué)期”字段升序排列,當(dāng)學(xué)期相同時(shí),再按“課程代碼”升序排列。
③可以將本題創(chuàng)建的“學(xué)生成績(jī)?cè)敿?xì)瀏覽”看作是一個(gè)用來(lái)方便瀏覽所有學(xué)生成績(jī)的應(yīng)用平臺(tái),實(shí)際工作中往往不是每次都需要查看所有同學(xué)的成績(jī)數(shù)據(jù),而是只查看某一部分的,所以通過(guò)添加各種查詢條件來(lái)查看,詳見3.3.2及后續(xù)同步實(shí)驗(yàn)。
2.刪除多余關(guān)系查詢
通常在使用“設(shè)計(jì)視圖”創(chuàng)建查詢時(shí),在添加了數(shù)據(jù)源之后,系統(tǒng)會(huì)將數(shù)據(jù)庫(kù)中數(shù)據(jù)表之間的原有關(guān)系自動(dòng)帶入到“設(shè)計(jì)視圖”中來(lái),一般情況下這些關(guān)系是符合題目要求、不需要修改和刪除的。但有時(shí)這些自動(dòng)帶入的關(guān)系會(huì)影響查詢結(jié)果,即會(huì)讓用戶得到一個(gè)錯(cuò)誤的查詢結(jié)果。這時(shí)就必須采用手動(dòng)方法找到并刪除數(shù)據(jù)源表間的某個(gè)關(guān)系,才會(huì)得到正確查詢結(jié)果?!纠?.4】使用設(shè)計(jì)視圖創(chuàng)建選擇查詢“8教學(xué)計(jì)劃瀏覽”。數(shù)據(jù)來(lái)源于四張表“學(xué)院”、“專業(yè)”、“課程”和“教學(xué)計(jì)劃”,要求查詢結(jié)果中包含:專業(yè)代碼(升序)、專業(yè)名稱、學(xué)院代碼、學(xué)院名稱、開課學(xué)期(升序)、課程代碼(升序)、課程名稱、開課學(xué)院代碼、學(xué)分、考核方式10個(gè)字段的詳細(xì)數(shù)據(jù)信息?!纠}分析】“教學(xué)計(jì)劃”表列出的信息是不同專業(yè)在不同的學(xué)期所開設(shè)的不同課程,但由于為減少冗余,表中只顯示專業(yè)代碼和課程代碼,看不出是哪個(gè)專業(yè)開設(shè)哪門課程,瀏覽起來(lái)非常不方便,所以,本題的意圖是擴(kuò)充教學(xué)計(jì)劃表,使用戶瀏覽起來(lái)更加直觀、明確?!纠}分析】在創(chuàng)建本題查詢之前,首先要明確本題的目的?!敖虒W(xué)計(jì)劃”表列出的信息是不同專業(yè)在不同的學(xué)期所開設(shè)的不同課程,但由于為減少冗余,表中只顯示專業(yè)代碼和課程代碼,看不出是哪個(gè)專業(yè)開設(shè)哪門課程,瀏覽起來(lái)非常不方便,所以,本題的意圖是擴(kuò)充教學(xué)計(jì)劃表,使用戶瀏覽起來(lái)更加直觀、明確。建議:在做本題查詢之前,先打開“教學(xué)計(jì)劃”表,查看該表中的總記錄數(shù)(804條)【分析】通過(guò)查看查詢結(jié)果可以看到,經(jīng)過(guò)擴(kuò)充后的教學(xué)計(jì)劃記錄變成了510條,而之前是804條教學(xué)計(jì)劃記錄。顯然,經(jīng)過(guò)查詢丟失了一些記錄。通過(guò)觀察該結(jié)果,發(fā)現(xiàn)“學(xué)院代碼”和“開課學(xué)院代碼”字段完全相同,即本查詢只列出了本學(xué)院為本學(xué)院所開設(shè)的課程,而漏掉了其他學(xué)院為本學(xué)院所開課程。
查詢結(jié)果的錯(cuò)誤原因出在四張數(shù)據(jù)源表默認(rèn)的關(guān)系上。由表“學(xué)院”、“專業(yè)”和“課程”之間形成的默認(rèn)關(guān)聯(lián)關(guān)系(兩個(gè)一對(duì)多關(guān)系)的聯(lián)接屬性如圖所示。總結(jié):在使用“設(shè)計(jì)視圖”創(chuàng)建查詢時(shí),如果在添加表(或查詢)后的默認(rèn)關(guān)聯(lián)關(guān)系中出現(xiàn)一個(gè)表中的同一個(gè)字段同時(shí)與其他多個(gè)表保持一對(duì)多關(guān)聯(lián),則查詢結(jié)果可能會(huì)產(chǎn)生遺漏數(shù)據(jù)現(xiàn)象。解決方法是手動(dòng)刪除“表/查詢顯示區(qū)”中表之間的一個(gè)(或多個(gè))一對(duì)多關(guān)聯(lián),使各個(gè)表之間(相同字段)僅保留單個(gè)關(guān)聯(lián)。改動(dòng):手動(dòng)刪除“表/查詢顯示區(qū)”中表“學(xué)院”與表“課程”之間的一對(duì)多關(guān)聯(lián)。正確結(jié)果:3.復(fù)制查詢及修改字段標(biāo)題【例3.5】復(fù)制例3.4創(chuàng)建的查詢“8教學(xué)計(jì)劃瀏覽”,取名為“9教學(xué)計(jì)劃詳細(xì)瀏覽”。要求在“開課學(xué)院代碼”之后插入“開課學(xué)院名稱”。操作要點(diǎn):1.復(fù)制原有查詢2.在設(shè)計(jì)器中,再次添加“學(xué)院”表3.手動(dòng)建立“學(xué)院_1”和“課程”之間的關(guān)系4.添加“學(xué)院_1”表中的“學(xué)院名稱”字段5.更改重復(fù)的字段標(biāo)題【歸納總結(jié)】本例題涉及的操作知識(shí)點(diǎn):①?gòu)?fù)制、粘貼查詢的操作方法;②添加一個(gè)已有表并手動(dòng)建立關(guān)聯(lián)的操作方法;③在設(shè)計(jì)視圖的“網(wǎng)格設(shè)計(jì)區(qū)”插入列的操作方法;④修改查詢結(jié)果顯示列標(biāo)題的操作方法(冒號(hào)法和右鍵屬性法)。3.3.2條件查詢【例3.6】以“學(xué)生”表為數(shù)據(jù)源,查詢所有女同學(xué)的信息,查詢命名為“女同學(xué)信息”。步驟:略?!纠?.7】以“教師詳細(xì)信息”查詢?yōu)閿?shù)據(jù)源,查詢“經(jīng)濟(jì)學(xué)院”和“外國(guó)語(yǔ)學(xué)院”的所有“副教授”的教師代碼、教師姓名、性別、出生日期、學(xué)院名稱字段,查詢命名為“副教授查詢”。【注意】題目中要求顯示五個(gè)字段,但此處需要選取六個(gè)字段,即需要選取“職稱”字段,因?yàn)榇俗侄坞m然最終不需要顯示,但在下一步的查詢條件中需要用到?!咀⒁狻織l件寫在一行上表示“并且”的關(guān)系,寫在不同行上表示“或者”的關(guān)系。【例3.8】以“學(xué)生”表為數(shù)據(jù)源,統(tǒng)計(jì)出不同專業(yè)各班級(jí)的學(xué)生人數(shù)。最終顯示專業(yè)代碼、班級(jí)和人數(shù)三個(gè)字段。查詢命名為“班級(jí)人數(shù)查詢”。3.3.3匯總查詢
在設(shè)計(jì)選中查詢時(shí),除了進(jìn)行條件查詢外,還可以進(jìn)行統(tǒng)計(jì)查詢。只要在查詢?cè)O(shè)計(jì)視圖中的“網(wǎng)格設(shè)計(jì)區(qū)”添加“總計(jì)”行(單擊“查詢”上下文命令選項(xiàng)卡中的“匯總”按鈕
)即可實(shí)現(xiàn)分組匯總、統(tǒng)計(jì)處理功能?!纠?.8】以“學(xué)生”表為數(shù)據(jù)源,統(tǒng)計(jì)出各班級(jí)的學(xué)生人數(shù)。最終顯示班級(jí)、專業(yè)代碼和人數(shù)三個(gè)字段。查詢命名為“班級(jí)人數(shù)查詢”?!纠}分析】統(tǒng)計(jì)出每個(gè)班級(jí)的學(xué)生人數(shù),即按照班級(jí)來(lái)分組,然后對(duì)每個(gè)小組里的記錄進(jìn)行計(jì)數(shù)操作。對(duì)同一組的記錄,可以按照“學(xué)號(hào)”來(lái)統(tǒng)計(jì)人數(shù),“姓名”字段可以設(shè)置為顯示這一組的第一條記錄(即First選項(xiàng)),而“專業(yè)代碼”因?yàn)榘窗嗉?jí)分組,同一組所有的專業(yè)代碼肯定都一樣,所以,選First還是Last都一樣。學(xué)生人數(shù)大于20的有哪些?【例3.9】以“學(xué)生”表為數(shù)據(jù)源,查詢學(xué)生的學(xué)號(hào)、姓名、出生日期和年齡字段。查詢命名為“學(xué)生年齡查詢”。3.3.4添加計(jì)算字段
當(dāng)需要統(tǒng)計(jì)的數(shù)據(jù)在表中沒(méi)有對(duì)應(yīng)的字段,或者用于計(jì)算的數(shù)據(jù)值來(lái)源于多個(gè)字段時(shí),應(yīng)該在查詢中使用計(jì)算字段,也稱為“構(gòu)造新字段”。創(chuàng)建計(jì)算字段的方法是在查詢?cè)O(shè)計(jì)視圖的下半?yún)^(qū)“字段”行中直接輸入計(jì)算字段及其計(jì)算表達(dá)式?!纠?.9】以“學(xué)生”表為數(shù)據(jù)源,查詢學(xué)生的學(xué)號(hào)、姓名、出生日期和年齡字段。查詢命名為“學(xué)生年齡查詢”?!痉治觥俊澳挲g”字段原表中沒(méi)有,但可以由“出生日期”字段求出,所以,此題需要添加“出生日期”字段兩次。3.3.4添加計(jì)算字段【例3.9拓展】以“學(xué)生”表為數(shù)據(jù)源,查詢不同性別年齡的平均值,最終顯示性別和平均年齡兩個(gè)字段。查詢命名為“學(xué)生平均年齡”?!纠?.10】以“教師”表為數(shù)據(jù)源,統(tǒng)計(jì)不同職稱教師的平均年齡,最后顯示兩個(gè)字的“職稱”和“平均年齡”,并按平均年齡升序排列。查詢命名為“按職稱統(tǒng)計(jì)平均年齡”。步驟:略【說(shuō)明】查詢結(jié)果出現(xiàn)的“#”是因?yàn)樽侄螌挾炔粔蛩?。若想使“平均年齡”字段統(tǒng)一保留幾位小數(shù),可以在查詢?cè)O(shè)計(jì)視圖中用函數(shù)Round來(lái)限制。聚合函數(shù)學(xué)生表中,那些同學(xué)重名了?找找學(xué)生表中,同年同月同日生!3.3.5創(chuàng)建重復(fù)項(xiàng)查詢?cè)跀?shù)據(jù)庫(kù)應(yīng)用中,可能會(huì)出現(xiàn)同一數(shù)據(jù)在不同的地方被多次輸入的情況,從而造成數(shù)據(jù)重復(fù)。當(dāng)數(shù)據(jù)表中的記錄較多,用手工方法很難逐一查找出這些重復(fù)輸入的數(shù)據(jù)。對(duì)于主鍵字段,由于主鍵值不能重復(fù),所以不可能出現(xiàn)重復(fù)值。但對(duì)于非主鍵字段,就難免會(huì)出現(xiàn)重復(fù)值。Access提供的“查找重復(fù)項(xiàng)查詢向?qū)А惫δ芫褪墙鉀Q這類問(wèn)題的,可以用來(lái)檢查非主鍵字段是否存在重復(fù)值?!纠?.11】使用重復(fù)項(xiàng)查詢向?qū)В檎摇皩W(xué)生”表中姓名相同者的信息,命名為“重名學(xué)生查詢”。步驟:略兩種結(jié)果:①②【說(shuō)明】查找重復(fù)項(xiàng)查詢?cè)趲椭鷦?chuàng)建表的主鍵方面有獨(dú)特的作用。當(dāng)一個(gè)表的數(shù)據(jù)來(lái)源于其他文件時(shí)(例如通過(guò)Excel文件導(dǎo)入),想要對(duì)此表設(shè)置主鍵,若有重復(fù)值,則始終無(wú)法建立主鍵,此時(shí),可以通過(guò)查找重復(fù)項(xiàng)查詢來(lái)快速查找重復(fù)數(shù)據(jù)。思考:成績(jī)表中哪些同學(xué)沒(méi)有成績(jī)?3.3.6創(chuàng)建不匹配項(xiàng)查詢
在關(guān)系數(shù)據(jù)庫(kù)中,當(dāng)建立了一對(duì)多的關(guān)系后,通常在“一方”表的每一條記錄,與“多方”表的多條記錄匹配。但是也可能存在,在“多方”表中找不到匹配記錄的情況。例如,在“教學(xué)管理”數(shù)據(jù)庫(kù)中,在“學(xué)生”表的學(xué)生,有可能在“成績(jī)”表中沒(méi)錄入成績(jī),此時(shí),可以使用“查找不匹配項(xiàng)查詢向?qū)А眮?lái)“查漏”?!纠?.12】使用查找不匹配項(xiàng)查詢向?qū)?,確定“學(xué)生”表中還有哪些學(xué)生沒(méi)有輸入各科考試成績(jī)到“成績(jī)”表中,查詢命名為“沒(méi)錄入成績(jī)學(xué)生查詢”。最終查看學(xué)號(hào)、姓名、班級(jí)、專業(yè)代碼、籍貫字段。步驟:略結(jié)果:本章主要內(nèi)容:查詢概述1查詢的條件2選擇查詢3
4參數(shù)查詢
交叉表查詢5操作查詢6SQL查詢7參數(shù)查詢:選擇查詢的條件是固定不變的,例如,指定查找字段“職稱”為“講師”,查詢對(duì)象只是固定查找職稱類教師的信息,如果用戶希望查找其他職稱的教師情況只能再打開查詢對(duì)象在設(shè)計(jì)視圖下修改查詢條件。為了更靈活的實(shí)現(xiàn)查詢,Access提供了另一種實(shí)用工具——參數(shù)查詢。參數(shù)查詢是動(dòng)態(tài)的,它在運(yùn)行查詢時(shí)首先顯示輸入?yún)?shù)對(duì)話框,待用戶輸入?yún)?shù)信息(即查詢條件)后,再檢索出符合輸入?yún)?shù)的查詢結(jié)果。用戶可以建立一個(gè)參數(shù)提示的查詢,也可以建立多個(gè)參數(shù)提示的查詢。要?jiǎng)?chuàng)建參數(shù)查詢,必須在查詢“設(shè)計(jì)視圖”網(wǎng)格設(shè)計(jì)區(qū)的“條件”行上對(duì)應(yīng)單元格中輸入“參數(shù)表達(dá)式”(括在方括號(hào)[]中),“參數(shù)表達(dá)式”一般是一句提示語(yǔ),例如[請(qǐng)輸入……]。3.4.1單參數(shù)查詢【例3.13】復(fù)制查詢“學(xué)生成績(jī)?cè)敿?xì)瀏覽”,并為新查詢?nèi)∶麨椤鞍磳I(yè)名稱參數(shù)查詢的學(xué)生成績(jī)?cè)敿?xì)瀏覽”。【說(shuō)明】①重新運(yùn)行參數(shù)查詢,每次都會(huì)彈出“輸入?yún)?shù)值”對(duì)話框,提示輸入?yún)?shù)值,以得到不同的查詢結(jié)果。由此可以看出,對(duì)于經(jīng)常需要變換查詢條件的查詢來(lái)說(shuō),將其設(shè)計(jì)為參數(shù)查詢最為合適。②參數(shù)也可以是窗體或報(bào)表中的控件的內(nèi)容。其格式為:[Forms]![窗體名稱]![控件名稱]或[Reports]![報(bào)表名稱]![控件名稱]的形式。在后續(xù)章節(jié)操作中將會(huì)用到這種設(shè)置。3.4.2多參數(shù)查詢創(chuàng)建參數(shù)查詢時(shí),還可以使用兩個(gè)或兩個(gè)以上的參數(shù)。多參數(shù)查詢的創(chuàng)建過(guò)程與單參數(shù)查詢的創(chuàng)建過(guò)程完全一樣,只是在查詢?cè)O(shè)計(jì)視圖中將多個(gè)參數(shù)的準(zhǔn)則都放在“條件”行上即可。運(yùn)行多參數(shù)查詢時(shí),會(huì)根據(jù)參數(shù)從左到右排列順序依次彈出各個(gè)“輸入?yún)?shù)值”對(duì)話框,只要根據(jù)提示信息分別輸入?yún)?shù)值后就會(huì)得到滿足多個(gè)參數(shù)要求的查詢結(jié)果。【例3.14】建立查詢“按專業(yè)和學(xué)期查詢教學(xué)計(jì)劃”,以查詢“教學(xué)計(jì)劃詳細(xì)瀏覽”為基礎(chǔ),按輸入,查找不同專業(yè)不同學(xué)期所開設(shè)的課程?!練w納總結(jié)】①在輸入?yún)?shù)表達(dá)式時(shí),方括號(hào)[]必不可少。②方括號(hào)內(nèi)的內(nèi)容為提示語(yǔ),可以省略,但建議將提示語(yǔ)描述準(zhǔn)確、詳細(xì),以幫助輸入者明確輸入準(zhǔn)則。③對(duì)于一般參數(shù)表達(dá)式(不含Like運(yùn)算符)設(shè)計(jì)的參數(shù)查詢是完全匹配查詢,輸入時(shí)必須完整輸入對(duì)應(yīng)字段中確切存在的某個(gè)值,否則查詢結(jié)果為空。④可以借助通配符(通常是“*”)實(shí)現(xiàn)不完全匹配的參數(shù)查詢。例如按照“專業(yè)代碼”參數(shù)查詢,若只記得專業(yè)的前幾位代碼,則可以這樣輸入?yún)?shù)表達(dá)式:like[請(qǐng)輸入專業(yè)代碼:]+”*”,假設(shè)專業(yè)代碼為6位,則每次輸入專業(yè)代碼的前面1-6位都可以查詢出結(jié)果。本章主要內(nèi)容:查詢概述1查詢的條件2選擇查詢3
4參數(shù)查詢
交叉表查詢5操作查詢6SQL查詢73.5.1認(rèn)識(shí)交叉表查詢?cè)薪Y(jié)果:“經(jīng)濟(jì)學(xué)”專業(yè)的學(xué)生成績(jī)?cè)敿?xì)瀏覽交叉表查詢后的結(jié)果交叉表查詢將來(lái)源于某個(gè)表中的字段進(jìn)行分組,一組顯示在交叉表左側(cè)(稱為行標(biāo)題),一組顯示在交叉表上端(稱為列標(biāo)題),并在交叉表行與列交叉處顯示表中某個(gè)字段的計(jì)算值。在創(chuàng)建交叉表時(shí),需要指定三種字段:行標(biāo)題字段、列標(biāo)題字段和值字段。而且,只能指定一個(gè)列字段和一個(gè)值字段。3.5.2使用向?qū)?chuàng)建交叉表查詢注意事項(xiàng):(1)在向?qū)н^(guò)程中,交叉表的數(shù)據(jù)源可以是表,也可以是查詢,但只能是一個(gè)表或一個(gè)查詢。故當(dāng)需要從多個(gè)表中讀取數(shù)據(jù)時(shí),必須先創(chuàng)建一個(gè)查詢。(2)在向?qū)н^(guò)程中,需要指定哪些字段作為行標(biāo)題。最多可選定3個(gè)字段作為行標(biāo)題。(3)在向?qū)н^(guò)程中,需要指定哪一字段作為列標(biāo)題。只能選定1個(gè)字段作為列標(biāo)題。(4)在向?qū)н^(guò)程中,需要指定哪一字段作為值,即要進(jìn)行何種總計(jì)運(yùn)算。也只能指定1個(gè)字段作為值?!纠?.15】用向?qū)Хń⒉樵儭敖?jīng)濟(jì)學(xué)_學(xué)生成績(jī)?cè)敿?xì)瀏覽_交叉表”,以查詢“經(jīng)濟(jì)學(xué)_學(xué)生成績(jī)?cè)敿?xì)瀏覽”為基礎(chǔ),行標(biāo)題為字段“學(xué)號(hào)”、“姓名”、“專業(yè)名稱”,列標(biāo)題為“課程名稱”,交叉匯總項(xiàng)為“成績(jī)”。步驟:略3.5.3使用設(shè)計(jì)視圖創(chuàng)建交叉表查詢?cè)诮徊姹淼脑O(shè)計(jì)視圖中,會(huì)多出兩行:“總計(jì)”行與“交叉表”行?!翱傆?jì)”行中用來(lái)指定是對(duì)字段進(jìn)行分組,還是對(duì)字段進(jìn)行總計(jì)計(jì)算處理。而“交叉表”行則用來(lái)指定是行標(biāo)題、列標(biāo)題,還是值?!菊f(shuō)明】①在設(shè)計(jì)視圖中行標(biāo)題沒(méi)有3個(gè)字段的限制,可以多于3個(gè)字段。②列標(biāo)題字段必須分組?!纠?.16】創(chuàng)建查詢“班級(jí)男女生人數(shù)_交叉表”,以表“學(xué)生”為基礎(chǔ),行標(biāo)題為字段“班級(jí)”,列標(biāo)題為“性別”,交叉匯總項(xiàng)為“學(xué)號(hào)”。本章主要內(nèi)容:查詢概述1查詢的條件2選擇查詢3
4參數(shù)查詢
交叉表查詢5操作查詢6SQL查詢7查詢的數(shù)據(jù)源可以是?操作查詢:1.操作查詢都是在查詢?cè)O(shè)計(jì)視圖中完成的,特別需要選擇查詢類型。2.操作查詢的一個(gè)顯著特點(diǎn)就是具有破壞性:可以批量修改表中數(shù)據(jù)、或者批量刪除表中數(shù)據(jù)、或者向表中追加記錄數(shù)據(jù)、或者將滿足條件的記錄數(shù)據(jù)生成為一個(gè)新表。3.設(shè)計(jì)完成的操作查詢需要運(yùn)行才會(huì)得到結(jié)果,而且結(jié)果不會(huì)出現(xiàn)在“導(dǎo)航窗格”的“查詢”對(duì)象中,而是反映在“表”對(duì)象中。4.由于操作查詢具有破壞性,故在設(shè)計(jì)并運(yùn)行操作查詢前,做好數(shù)據(jù)表的備份保護(hù)工作是非常必要的。3.6.1生成表查詢生成表查詢可以根據(jù)一個(gè)或多個(gè)表中的全部或部分?jǐn)?shù)據(jù)創(chuàng)建新表,還可以將生成的表導(dǎo)出到另一個(gè)數(shù)據(jù)庫(kù)中。利用生成表查詢建立新表時(shí),新表中的字段從數(shù)據(jù)源中繼承原字段的名稱、數(shù)據(jù)類型及字段大小屬性,但是不繼承其他的字段屬性及表的主鍵。如果需要為生成表定義主鍵,需要進(jìn)入新表的設(shè)計(jì)視圖進(jìn)行?!纠?.17】根據(jù)查詢“學(xué)生成績(jī)?cè)敿?xì)瀏覽”,創(chuàng)建名稱為“生成不及格成績(jī)表”的查詢對(duì)象,用于將成績(jī)?cè)?0分以下的學(xué)生信息存儲(chǔ)在一張新表中,新表名為“不及格名單”?!練w納總結(jié)】①在Access中,從表中查詢比從查詢中訪問(wèn)數(shù)據(jù)快的多。因此如果經(jīng)常要從幾個(gè)表中提取數(shù)據(jù),最好的方法就是使用生成表查詢,即從多個(gè)表中提取數(shù)據(jù)組合起來(lái)生成一個(gè)新表。②生成表查詢的步驟:在查詢?cè)O(shè)計(jì)視圖確定新表的字段定義查詢?yōu)椤吧杀聿樵儭鳖愋瓦\(yùn)行查詢生成新表③生成表查詢注意事項(xiàng):如果預(yù)覽到的生成表的記錄集不滿足要求可以暫不運(yùn)行查詢,返回查詢?cè)O(shè)計(jì)視圖進(jìn)行修改,直到滿意為止生成表查詢會(huì)創(chuàng)建兩個(gè)對(duì)象,除了查詢對(duì)象外,以后每次運(yùn)行查詢都會(huì)生成新表對(duì)象,如果定義的表已經(jīng)存在,將覆蓋已有的表④如果想將之前某個(gè)選擇查詢、參數(shù)查詢的運(yùn)行結(jié)果保存下來(lái),利用生成表查詢可以快速達(dá)到目的。3.6.2刪除查詢當(dāng)數(shù)據(jù)庫(kù)中有的數(shù)據(jù)不再需要時(shí),應(yīng)該及時(shí)從數(shù)據(jù)庫(kù)中刪除。刪除一條記錄比較容易,但如果要?jiǎng)h除同一類的一組記錄就需要使用刪除查詢。例如可以使用刪除查詢來(lái)刪除某些空白記錄。如果刪除的記錄來(lái)自多個(gè)表,必須滿足以下幾點(diǎn):(1)表之間必須建立關(guān)系。(2)表之間的關(guān)系需要選中“實(shí)施參照完整性”復(fù)選框。(3)表之間的關(guān)系需要選中“實(shí)施級(jí)聯(lián)刪除相關(guān)記錄”復(fù)選框。【例3.18】制作“學(xué)生”表的備份表,取名為“學(xué)生備份”。創(chuàng)建刪除查詢“刪除已畢業(yè)學(xué)生”,刪除表“學(xué)生備份”中“09級(jí)”的記錄。【例題分析】由于刪除查詢的“危險(xiǎn)性”,而且“學(xué)生”表和其他表之間有千絲萬(wàn)縷的關(guān)系,牽一發(fā)而動(dòng)全身。所以,建議先創(chuàng)建原表的備份表,刪除查詢只針對(duì)備份表操作。“09級(jí)”同學(xué),可以通過(guò)多種方法查找出來(lái),“學(xué)號(hào)”字段、“班級(jí)”字段中都可以?!練w納總結(jié)】1.使用刪除查詢通常會(huì)刪除整個(gè)記錄,而不只是記錄中的部分字段。2.刪除查詢將永久刪除指定表中的記錄,不能恢復(fù)。因此用戶在執(zhí)行刪除查詢操作時(shí)應(yīng)十分慎重,最好對(duì)要?jiǎng)h除記錄的表進(jìn)行備份,以防誤操作而引起的數(shù)據(jù)丟失。3.刪除查詢只能刪除記錄,不能刪除數(shù)據(jù)表。4.刪除查詢中,在“刪除”行的下拉列表中有兩個(gè)選項(xiàng),“Where”的作用是選擇滿足條件的所有記錄,而“From”的作用是選擇連續(xù)的滿足條件的記錄,直到遇到不滿足條件的記錄就停止。5.由于表間存在著關(guān)系,若關(guān)系完整性設(shè)置了級(jí)聯(lián),當(dāng)刪除“一”方表中的記錄時(shí),那么“多”方表的關(guān)聯(lián)記錄也會(huì)被刪除。3.6.3更新查詢【例3.19】創(chuàng)建名稱為“更新選修課學(xué)分”的更新查詢,用于將“課程”表中所有選修課的學(xué)分增加1個(gè)學(xué)分?!咀⒁狻窟\(yùn)行更新查詢一定要注意,每執(zhí)行一次查詢就會(huì)更新一次,如本例中選修課的學(xué)分,執(zhí)行一次將增加一個(gè)學(xué)分。因此,對(duì)于更新對(duì)象是數(shù)字字段的查詢,尤其是累加計(jì)算形式,一定只能運(yùn)行更新查詢一次。3.6.4追加查詢追加查詢是從一個(gè)或多個(gè)表將一組記錄追加到一個(gè)表的尾部。在追加查詢中,要被追加記錄的表必須是已經(jīng)存在的表。這個(gè)表可以是當(dāng)前數(shù)據(jù)庫(kù)的,也可以是另外一個(gè)數(shù)據(jù)庫(kù)的。追加查詢要求數(shù)據(jù)源與待追加的表結(jié)構(gòu)相同,換句話說(shuō),追加查詢就是將一個(gè)數(shù)據(jù)表中的數(shù)據(jù)追加到與之具有相同字段及屬性的數(shù)據(jù)表中。【例3.20】先以“學(xué)生”表作為數(shù)據(jù)源,創(chuàng)建生成表查詢“生成畢業(yè)生檔案”,用于存放所有09級(jí)的學(xué)生記錄,新表命名為“畢業(yè)生檔案表”。然后,創(chuàng)建追加查詢,將“10級(jí)”的學(xué)生記錄追加到該表中。追加查詢命名為“追加10級(jí)學(xué)生”。操作要點(diǎn):1.首先創(chuàng)建生成表查詢“生成畢業(yè)生檔案”并運(yùn)行2.創(chuàng)建追加查詢,并運(yùn)行。【歸納總結(jié)】①查詢名不能和表名相同。②在執(zhí)行操作查詢之前,建議使用“結(jié)果”組的“視圖”按鈕,預(yù)覽即將更改的記錄。如果預(yù)覽結(jié)果就是要操作的記錄,則再執(zhí)行操作查詢,以防誤操作。③為了引起注意,Access在導(dǎo)航窗格中,將每種操作查詢圖標(biāo)的后面都顯示了一個(gè)感嘆號(hào)。各種操作查詢圖標(biāo)如圖所示。本章主要內(nèi)容:查詢概述1查詢的條件2選擇查詢3
4參數(shù)查詢
交叉表查詢5操作查詢6SQL查詢7SQL查詢是使用SQL語(yǔ)言創(chuàng)建的一種查詢。SQL是英文(StructuredQueryLanguage)的縮寫,意思為結(jié)構(gòu)化查詢語(yǔ)言。按照ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL語(yǔ)言標(biāo)準(zhǔn)。在Access中,每個(gè)查詢都對(duì)應(yīng)著一個(gè)SQL查詢命令。當(dāng)用戶使用查詢向?qū)Щ蛟O(shè)計(jì)視圖創(chuàng)建查詢時(shí),系統(tǒng)會(huì)自動(dòng)生成對(duì)應(yīng)的SQL語(yǔ)句命令,可以通過(guò)SQL視圖查看,當(dāng)然,也可以直接在SQL視圖窗口中輸入SQL命令來(lái)創(chuàng)建查詢。3.7.SQL查詢3.7.1SQL語(yǔ)言的特點(diǎn)(1)綜合統(tǒng)一(2)高度非過(guò)程化
(3)共享性(4)語(yǔ)言簡(jiǎn)潔,易學(xué)易用SQL語(yǔ)言功能與其對(duì)應(yīng)命令動(dòng)詞創(chuàng)建表刪除表修改表插入數(shù)據(jù)3.7.2SQL語(yǔ)言的數(shù)據(jù)定義功能SQL語(yǔ)言的數(shù)據(jù)定義功能包括創(chuàng)建表、修改表和刪除表等基本操作。在一般的語(yǔ)法格式描述中使用了如下符號(hào):①<>:表示在實(shí)際的語(yǔ)句中要采用實(shí)際需要的內(nèi)容進(jìn)行替代,真正書寫時(shí)必須去掉該符號(hào);②[]:表示可以根據(jù)需要進(jìn)行選擇,也可以不選,真正書寫時(shí)必須去掉該符號(hào);③|:表示多項(xiàng)選項(xiàng)只能選擇其中之一。1.創(chuàng)建表語(yǔ)句基本格式為:CREATETABLE<表名>(<字段名1><數(shù)據(jù)類型1>[完整性約束條件1][,<字段名2><數(shù)據(jù)類型2>[字段級(jí)完整性約束條件2]][,…][,<字段名n><數(shù)據(jù)類型n>[字段級(jí)完整性約束條件n]])[,<表級(jí)完整性約束條件>]功能:創(chuàng)建一個(gè)以<表名>為名的,以指定的字段屬性定義的表結(jié)構(gòu)?!久钫f(shuō)明】:①<表名>:指需要定義的表的名字。②<字段名>:指定義表中一個(gè)或多個(gè)字段的名稱。③<數(shù)據(jù)類型>:指對(duì)應(yīng)字段的類型,要求每個(gè)字段必須定義名稱和類型。④[字段級(jí)完整性約束條件]:指定義相關(guān)字段的約束條件。⑤[表級(jí)完整性約束條件]:指定義表的約束條件。2.修改表語(yǔ)句基本格式為:ALTERTABLE<表名>[ADD<新字段名><數(shù)據(jù)類型>[完整性約束條件]]
[DROP[<字段名>]……]
[ALTER<字段名><數(shù)據(jù)類型>]功能:修改以<表名>為名的表結(jié)構(gòu)。【命令說(shuō)明】:①ADD子句:用于增加新字段和該字段的完整性約束條件。②DROP子句:用于刪除指定的字段和完整性約束。③ALTER子句:用于修改原有字段屬性,包括字段名稱、數(shù)據(jù)類型等。3.刪除表語(yǔ)句基本格式為:DROPTABLE<表名>功能:刪除以<表名>為名的表。3.7.3SQL語(yǔ)言的數(shù)據(jù)操縱功能1.插入記錄語(yǔ)句基本格式為:INSERTINTO<表名>[(<字段名1>[,<字段名2>…])]
VALUES(<常量1>[,<常量2>…])功能:將一個(gè)新記錄插入到指定的表中?!久钫f(shuō)明】:①<字段名1>[,<字段名2>…]:指表中插入新記錄的字段名。②VALUES(<常量1>[,<常量2>…]):指表中新插入字段的具體值。其中,各常量的數(shù)據(jù)類型必須與INTO子句中所對(duì)應(yīng)字段的數(shù)據(jù)類型相同,且個(gè)數(shù)也要匹配。2.更新記錄語(yǔ)句基本格式為:UPDATE<表名>SET<字段名1>=<表達(dá)式1>[,<字段名2>=<表達(dá)式2>…]
[WHERE<條件>]功能:用表達(dá)式的值更新指定表中指定字段的值?!久钫f(shuō)明】:①<字段名1>=<表達(dá)式1>:用表達(dá)式的值更新指定字段的值,并且一次可以修改多個(gè)字段。②WHERE<條件>:指定被更新記錄字段值所滿足的條件;如果不使用WHERE子句,則更新全部記錄。3.刪除記錄語(yǔ)句基本格式為:DELETE
FROM<表名>WHERE<條件>功能:刪除指定表中滿足條件的記錄。如果省略WHERE子句,則刪除表中全部記錄。3.7.4SQL語(yǔ)言的數(shù)據(jù)查詢功能SQL語(yǔ)言最主要的功能就是查詢功能。1.SELECT語(yǔ)句結(jié)構(gòu)SELECT
<字段列表>FROM
〈表名〉舉例:
1.使用SELECT語(yǔ)句創(chuàng)建查詢,用來(lái)查詢教師表中的教師姓名字段。2.使用SELECT語(yǔ)句創(chuàng)建查詢,用來(lái)查詢教師表中的教師姓名、性別和職稱三個(gè)字段。3.使用SELECT語(yǔ)句創(chuàng)建查詢,用來(lái)查詢教師表中的所有信息。4.使用SELECT語(yǔ)句創(chuàng)建查詢,用來(lái)查詢教師表中的男教師的所有信息。3.7.4SQL語(yǔ)言的數(shù)據(jù)查詢功能SQL語(yǔ)言最主要的功能就是查詢功能。1.SELECT語(yǔ)句結(jié)構(gòu)SELECT
<字段列表>FROM
〈表名1〉[WHERE
〈條件表達(dá)式〉]3.7.4SQL語(yǔ)言的數(shù)據(jù)查詢功能SQL語(yǔ)言最主要的功能就是查詢功能。1.SELECT語(yǔ)句結(jié)構(gòu)SELECT
[ALL|DISTINCT|TOPn]*|<字段列表>FROM
〈表名1〉[,〈表名2〉]...[WHERE
〈條件表達(dá)式〉][GROUPBY〈字段名〉[HAVING〈條件表達(dá)式〉]][ORDERBY〈字段名〉[ASC|DESC]]3.7.4SQL語(yǔ)言的數(shù)據(jù)查詢功能SQL語(yǔ)言最主要的功能就是查詢功能。1.SELECT語(yǔ)句結(jié)構(gòu)SELECT
[ALL|DISTINCT|TOPn]*|<字段列表>as新字段名稱FROM
〈表名1〉[,〈表名2〉]...[WHERE
〈條件表達(dá)式〉][GROUPBY〈字段名〉[HAVING〈條件表達(dá)式〉]][ORDERBY〈字段名〉[ASC|DESC]]3.7.4SQL語(yǔ)言的數(shù)據(jù)查詢功能【命令說(shuō)明】:①ALL:查詢結(jié)果是滿足條件的全部記錄,默認(rèn)值為ALL。②DISTINCT:查詢結(jié)果是不包含重復(fù)行的所有記錄。③TOPn:查詢結(jié)果是前n條記錄,n為整數(shù)。④*:查詢結(jié)果是所有的字段。⑤<字段列表>:使用“,“將各項(xiàng)分開,這些項(xiàng)可以是字段、常數(shù)或系統(tǒng)內(nèi)部的函數(shù)。⑥FROM〈表名〉:說(shuō)明查詢的數(shù)據(jù)源,可以是單個(gè)表,也可以是多個(gè)表。⑦WHERE〈條件表達(dá)式〉:說(shuō)明查詢的條件。⑧GROUPBY:用于對(duì)查詢結(jié)果按指定的字段進(jìn)行分組,可以利用它進(jìn)行分組、匯總。⑨HAVING:必須跟隨“GROUPBY”使用,用來(lái)限定分組必
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 消防五實(shí)n崗責(zé)任制度
- 2025國(guó)考國(guó)家稅務(wù)總局邳州市稅務(wù)局面試題及答案實(shí)例
- 2025年《稅務(wù)稽查工作規(guī)程》知識(shí)考試題庫(kù)及答案解析
- 2025年醫(yī)保工作者的年度工作總結(jié)(3篇)
- 2025醫(yī)院醫(yī)保工作匯報(bào)
- 宣傳演講方案
- 2025年中國(guó)科學(xué)院遺傳與發(fā)育生物學(xué)研究所綜合管理部交通助理崗位招聘?jìng)淇碱}庫(kù)及參考答案詳解一套
- 2026“夢(mèng)工場(chǎng)”招商銀行臺(tái)州分行寒假實(shí)習(xí)生招聘?jìng)淇己诵脑囶}附答案解析
- plc綜合實(shí)際課程設(shè)計(jì)
- 2025年江西省機(jī)關(guān)事務(wù)管理局公開選調(diào)事業(yè)單位工作人員15人備考題庫(kù)及參考答案詳解1套
- 2025云南省人民檢察院招聘22人筆試考試備考試題及答案解析
- 2026年湖南中醫(yī)藥高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫(kù)新版
- 駿馬奔騰啟新程盛世華章譜未來(lái)-2026年馬年學(xué)校元旦主持詞
- 剪刀式登高車專項(xiàng)施工方案
- 22863中級(jí)財(cái)務(wù)會(huì)計(jì)(一)機(jī)考綜合復(fù)習(xí)題
- 油漆車間年終總結(jié)
- 2025年甘肅省水務(wù)投資集團(tuán)有限公司招聘企業(yè)管理人員筆試考試參考試題及答案解析
- 廣東省六校2025-2026學(xué)年高二上學(xué)期12月聯(lián)合學(xué)業(yè)質(zhì)量檢測(cè)語(yǔ)文試題(含答案)
- 2025年10月自考07180廣播播音主持試題及答案
- 鄉(xiāng)村康養(yǎng)項(xiàng)目申請(qǐng)書
- 私人奴隸協(xié)議書范本
評(píng)論
0/150
提交評(píng)論