




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章建立和使用查詢1、各種查詢的創(chuàng)建及使用方法2、SQL查詢語句的基本格式3、用Access中的工具進(jìn)行SQL查詢。知識重點(diǎn)4.1查詢對象的概述
4.1.1查詢對象的概念
查詢是Access進(jìn)行數(shù)據(jù)查找并對數(shù)據(jù)進(jìn)行分析、計(jì)算、更新及其他加工處理的數(shù)據(jù)庫對象。查詢是通過從一個或多個表中提取數(shù)據(jù)并進(jìn)行加工處理而生成的。查詢本身也是一個表結(jié)構(gòu),僅僅是一個結(jié)構(gòu),也就是說并不占有相應(yīng)的物理空間,它在使用的時候是根據(jù)結(jié)構(gòu)從相應(yīng)的表中提取數(shù)據(jù)。當(dāng)對應(yīng)表中的數(shù)據(jù)發(fā)生變化時,查詢也進(jìn)行相應(yīng)的更新。查詢結(jié)果可以作為窗體、報(bào)表或是數(shù)據(jù)訪問頁等其他數(shù)據(jù)庫對象的數(shù)據(jù)源。查詢分為4類:選擇查詢:可以進(jìn)行數(shù)據(jù)的檢索和統(tǒng)計(jì);參數(shù)查詢:根據(jù)用戶提供的數(shù)據(jù)參數(shù)進(jìn)行數(shù)據(jù)的檢索;動作查詢:在選擇查詢的根底上,對查詢出的結(jié)果進(jìn)行更新操作;SQL查詢:通過編寫SQL語句進(jìn)行數(shù)據(jù)的檢索。4.1.2查詢對象的功能查詢在數(shù)據(jù)庫的管理與使用中的作用:
使用查詢可以快速準(zhǔn)確的將注意力放到目標(biāo)數(shù)據(jù)上,將其他無關(guān)數(shù)據(jù)排除到查詢之外。通過查詢游覽表中的數(shù)據(jù),分析數(shù)據(jù)或修改數(shù)據(jù)。通過操作查詢可以對查詢結(jié)果,也就是目標(biāo)數(shù)據(jù)進(jìn)行操作,方便了用戶操作。查詢雖然本身只是一個結(jié)構(gòu),并不真正具有數(shù)據(jù),但和表一樣可以作為數(shù)據(jù)源為其他數(shù)據(jù)庫對象,例如窗體、報(bào)表等效勞。查詢是一個固定的結(jié)構(gòu),可以將某個經(jīng)常處理的數(shù)據(jù)或統(tǒng)計(jì)定義為查詢,可以減少操作的步驟,不用每次都從原始數(shù)據(jù)中進(jìn)行查詢,提高效率。通過查詢,用戶可以對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和計(jì)算。查詢的結(jié)果有一定生存期。當(dāng)一個查詢關(guān)閉后,其結(jié)果就不存在了。所有記錄都是保存在原來的表中。這樣處理有兩個好處:節(jié)約外存空間。對查詢的要求是多種多樣的,長期使用數(shù)據(jù)庫,必然會生成大批量的、種類繁多的查詢,如果將這些查詢的結(jié)果都保存下來,必然會占用巨大的外存空間。另外,許多查詢用過之后可能再也不會使用了,也沒有必要長期保存。當(dāng)記錄數(shù)據(jù)信息的根本表發(fā)生變化時,仍可用這些查詢進(jìn)行同樣的查找,并且獲得的是變化之后的實(shí)際數(shù)據(jù)。也就是說,可以使查詢結(jié)果與表的更改保持同步。4.2選擇查詢
選擇查詢就是按設(shè)定的條件從數(shù)據(jù)源中查找目標(biāo)數(shù)據(jù)的操作。查詢的結(jié)果是一個二維表結(jié)構(gòu),但這個二維表結(jié)構(gòu)并不實(shí)際存在,只是一個數(shù)據(jù)記錄的動態(tài)集,可以進(jìn)行查看、修改等操作。選擇查詢是數(shù)據(jù)庫應(yīng)用技術(shù)中使用頻率最高的一種查詢。此外,選擇查詢還可以對數(shù)據(jù)進(jìn)行分組等復(fù)雜操作,并針對分組進(jìn)后的數(shù)據(jù)進(jìn)行求和、計(jì)數(shù)、求平均值等匯總計(jì)算。
4.2.1簡單查詢簡單查詢是指對于查詢的結(jié)果沒有條件的限制,只是從一個數(shù)據(jù)源或多個數(shù)據(jù)源中提取感興趣的字段組成一個新的記錄集的查詢方式。簡單查詢的創(chuàng)立主要有兩種方式:設(shè)計(jì)視圖和查詢向?qū)?。新建簡單查詢的步驟如下:第一步:在數(shù)據(jù)庫窗口中選擇【查詢】模塊。第二步:單擊工具欄上的【新建】按鈕,然后在彈出的對話框中選擇新建的方式,如圖4-1所示。圖4-1選擇創(chuàng)立查詢方式窗口第三步:在新建查詢對話框中可以選擇“使用設(shè)計(jì)視圖”或“者向?qū)Х绞健眮韯?chuàng)立簡單查詢,其中向?qū)Х绞礁鶕?jù)查詢類型的不同還可以分成:簡單查詢向?qū)?、交叉表查詢向?qū)?、查找重?fù)項(xiàng)查詢向?qū)?、查找不匹配?xiàng)查詢向?qū)?。查詢的?chuàng)立可以由一個查詢設(shè)計(jì)器或4個查詢向?qū)Ч?種方式來完成,在向?qū)У闹笇?dǎo)下可以完成不同功能的簡單查詢設(shè)計(jì)。1.使用查詢設(shè)計(jì)器創(chuàng)立查詢使用查詢設(shè)計(jì)器創(chuàng)立查詢,具有很高的靈活性?!纠?.1】使用查詢設(shè)計(jì)器創(chuàng)立查詢,查詢所有讀者借閱圖書的“書名”、“價格”與“讀者姓名”。第一步:翻開tushu數(shù)據(jù)庫,選擇【查詢】模塊,【在設(shè)計(jì)視圖中創(chuàng)立查詢】命令或者單擊【新建】按鈕,在如圖4-1的窗體中選擇【設(shè)計(jì)視圖】命令。圖4-1選擇創(chuàng)立查詢方式窗口第二步:選擇查詢涉及到的表。在如圖4-2所示的【顯示表】窗體中選擇查詢所涉及到的表。雙擊需要添加的表名,或是選中表后單擊【添加】按鈕就可以將目標(biāo)表添加到這次查詢中。添加結(jié)束后單擊【關(guān)閉】按鈕,進(jìn)入設(shè)計(jì)視圖。這里將“圖書”、“讀者”和“借還記錄”三個表添加到設(shè)計(jì)器中。圖4-2創(chuàng)立查詢-添加相關(guān)表第三步:選擇查詢涉及的字段。如果事先對表之間的關(guān)系進(jìn)行了正確的配置,三個表之間會自動建立連接。如果表之間沒有建立連接那么需要手動連接相關(guān)表格,連接的方法與創(chuàng)立關(guān)系時相同。如圖4-3所示。圖4-3相關(guān)表自動創(chuàng)立連接將查詢相關(guān)字段添加到字段列表中,添加字段的方法有兩種:第一種,從表單中雙擊目標(biāo)字段,字段會自動添加到窗體下方的字段列表中;第二種,選中目標(biāo)字段,然后按住左鍵,將目標(biāo)字段拖動到字段列表的相應(yīng)位置松開。這里添加讀者表的“dzxm”字段、圖書表的“tsm”和“jiage”字段。視圖下方的各種欄目根據(jù)查詢類型的不同有不同的組合。常用的是:字段:添加與查詢有關(guān)系的字段。表:設(shè)定字段所在的表。顯示:設(shè)定在最后的查詢結(jié)果中是否顯示該字段,如果該字段只是作為查詢條件,而不是最終用戶感興趣的字段,可將該欄目的“√”號勾掉。條件:設(shè)定查詢的條件。第三步:完成創(chuàng)立設(shè)定結(jié)束后對查詢對象進(jìn)行保存,并設(shè)定查詢的名稱。2.使用向?qū)?chuàng)立選擇查詢使用向?qū)?chuàng)立查詢的優(yōu)點(diǎn)是方法比較簡單、直觀,但是缺少靈活性。選擇查詢向?qū)Ц鶕?jù)查詢類型的不同還可以分成:簡單查詢向?qū)?、交叉表查詢向?qū)?、查找重?fù)項(xiàng)查詢向?qū)?、查找不匹配?xiàng)查詢向?qū)А?.簡單查詢向?qū)Ш唵尾樵兿驅(qū)е荒苓M(jìn)行簡單查詢的創(chuàng)立,通常在后期仍然需要對向?qū)?chuàng)立的查詢進(jìn)行補(bǔ)充和調(diào)整。第一步:在翻開的數(shù)據(jù)庫中,選擇【查詢】模塊,單擊工具欄上的【新建】。在如圖4-1所示的“新建查詢”對話框中選擇“簡單查詢向?qū)А辈螕簟敬_定】按鈕。圖4-1選擇創(chuàng)立查詢方式窗口第二步:設(shè)定查詢涉及的表與字段,如圖4-4示。對話框要有三個局部,首先從“表/查詢”下拉控件中選擇某個與查詢有關(guān)的表,例如“借還記錄”表。此時下方“可用字段”列表框中會列出該表中的所有字段。然后依次將本次查詢需要的字段通過動作按鈕添加到右側(cè)的“選定的字段”列表框中。選定結(jié)束后單擊【下一步】。圖4-4創(chuàng)立查詢向?qū)Вx擇相關(guān)字段注意,首先保證相關(guān)表之間建立了正確的表關(guān)系,否那么可能出現(xiàn)不能正確使用向?qū)У那闆r。第三步:彈出的對話框要求指定查詢的名稱以及向?qū)ЫY(jié)束后進(jìn)行的工作。這里使用默認(rèn)的查詢名稱“借閱信息查詢”。設(shè)定結(jié)束后單擊【完成】按鈕。2.查找重復(fù)項(xiàng)查詢向?qū)Р檎抑貜?fù)項(xiàng)是指從某字段中查找重復(fù)的數(shù)據(jù),并可以將這些數(shù)據(jù)對應(yīng)的其他字段顯示出來?!纠?.2】查找那些用戶借閱了2本以上的圖書,并顯示借還的日期。實(shí)際就是查找那些在“借還記錄”表“jszh〔借書證〕”字段中存在重復(fù)情況的記錄。第一步:翻開tushu數(shù)據(jù)庫,選擇【查詢】模塊,單擊工具欄中的【新建】按鈕,在如圖4-1的窗體中選擇“查找重復(fù)項(xiàng)查詢向?qū)А泵睢D4-1選擇創(chuàng)立查詢方式窗口第二步:彈出的窗體要求用戶選擇重復(fù)數(shù)據(jù)字段所在的表或查詢,如圖4-5所示。選擇“借還記錄”,單擊【下一步】。圖4-5查找重復(fù)項(xiàng)查詢向?qū)В瓟?shù)據(jù)源設(shè)定第三步:彈出的“查找重復(fù)項(xiàng)查詢向?qū)А侄卧O(shè)定”對話框要求設(shè)定查找重復(fù)數(shù)據(jù)的目標(biāo)字段,將左側(cè)“可用字段”中列表中的“jszh”字段添加到右側(cè)的“重復(fù)值字段”列表中,單擊【下一步】。第四步:彈出的“查找重復(fù)項(xiàng)查詢向?qū)А渌侄卧O(shè)定”對話框要求輸入除了重復(fù)字段外還顯示什么字段,如圖4-6所示。這里將左側(cè)“可用字段”列表中的“jhrq”、“jhzh”兩字段添加到右側(cè)“另外的查詢字段”列表中。單擊【下一步】。圖4-6查找重復(fù)項(xiàng)查詢向?qū)В渌侄卧O(shè)定第五步:設(shè)定查詢的名稱以及向?qū)ЫY(jié)束后的工作。向?qū)ЫY(jié)束后有兩種選擇:查看查詢和修改設(shè)計(jì)。如果對查詢結(jié)構(gòu)還需要調(diào)整,那么選擇“修改設(shè)計(jì)”,并進(jìn)入到“查詢設(shè)計(jì)器”窗口對查詢結(jié)構(gòu)進(jìn)行調(diào)整。可以選擇“查看查詢”,查看本次查詢的結(jié)果。設(shè)定后單擊【完成】按鈕。3.查找不匹配項(xiàng)查詢向?qū)Р檎也黄ヅ漤?xiàng)查詢是對兩個表中的兩個字段進(jìn)行比較,查找存在于一個字段中而另一個表中對應(yīng)字段沒有的數(shù)據(jù)?!纠?.3】查找沒有人借閱的圖書名稱。沒有人借閱的圖書就是“圖書”表中有,而“借還記錄”表中沒有的圖書。第一步:翻開tushu數(shù)據(jù)庫,選擇【查詢】模塊,單擊工具欄中的【新建】按鈕,在如圖4-1的窗體中選擇“查找不匹配項(xiàng)查詢”命令。翻開后如圖4-7所示。要求設(shè)定兩個表中的根本表。因?yàn)椴檎覉D書表中存在,而借還記錄表中沒有的圖書,所以根本表應(yīng)該是“圖書”表。單擊【下一步】。圖4-7創(chuàng)立查找不匹配項(xiàng)查詢向?qū)В颈碓O(shè)定第二步:在彈出的“創(chuàng)立查找不匹配項(xiàng)查詢向?qū)В容^表設(shè)定”對話框中選擇用來比較的表,所以這里選擇“借閱信息”表。第三步:彈出的“創(chuàng)立查找不匹配項(xiàng)查詢向?qū)ВO(shè)定比較字段”對話框中設(shè)定用來比較的兩個字段,如圖4-8所示。這進(jìn)而使用“圖書”表的“tsgtm”字段與“借還記錄”表中的“txm”字段進(jìn)行比較,如果“圖書”表中有的“tsgtm”而“借還記錄”表的“tsm”字段中沒有,就說明這本書沒有人借閱。設(shè)定后單擊【下一步】。圖4-8創(chuàng)立查找不匹配項(xiàng)查詢向?qū)ВO(shè)定比較字段第四步:在“創(chuàng)立查找不匹配項(xiàng)查詢向?qū)ВO(shè)定顯示字段”對話框中設(shè)定最后顯示的字段,這里選擇將“可用字段”列表中的“tsm”字段添加到“選定字段”列表中。設(shè)定結(jié)束后單擊【下一步】。第五步:設(shè)定查詢的名稱以及向?qū)ЫY(jié)束后的工作。向?qū)ЫY(jié)束后有兩種選擇:查看查詢和修改設(shè)計(jì)。設(shè)定后單擊【完成】按鈕。4.2.2條件查詢條件查詢是在簡單查詢的根底上,通過查詢條件的設(shè)置來到達(dá)查找目標(biāo)數(shù)據(jù)的操作。條件查詢通常都是通過查詢設(shè)計(jì)器來完成的。條件查詢可以分為單條件查詢和多條件查詢。1.單條件查詢單條件查詢是在查詢中只有一個條件約束查詢結(jié)果。【例4.4】在“圖書”表中查詢“清華大學(xué)出版社”出版的圖書的圖書名和價格。第一步:根據(jù)前面介紹的簡單查詢創(chuàng)立方法,將涉及到的“圖書”表添加到查詢設(shè)計(jì)器中。第二步:將查詢涉及到的字段添加到設(shè)計(jì)器的字段列表中,這里將“tsm”、“jiage”和“cbs”添加到列表中,如圖4-9所示。第三步:設(shè)定查詢需要的條件。在需要設(shè)定條件的字段下方的“條件”欄目中進(jìn)行設(shè)定。這里直接設(shè)定“cbs”字段的條件為“清華大學(xué)出版社”,如圖4-9所示。注意,用戶只需要直接輸入“清華大學(xué)出版社”即可,兩端的雙引號由系統(tǒng)自動生成。圖4-9條件查詢-設(shè)置條件
第四步:單擊工具欄中的【〔運(yùn)行〕】按鈕來查看查詢的結(jié)果。如果沒有問題保存查詢。2.多條件查詢有多個條件來約束查詢結(jié)果的稱為多條件查詢。要求在“條件”欄目和“或”欄目中對條件進(jìn)行設(shè)置。如果在多個“條件”欄目和“或”欄目中都輸入了條件表達(dá)式,Access自動判斷使用And運(yùn)算符或者Or運(yùn)算符進(jìn)行條件組合,組合的原那么如下:在“條件”欄目中的條件使用And連接,查詢時需要全部滿足。在“或”欄目中的不同行的條件使用Or連接,查詢時只需滿足其中一個條件。同行的使用And連接?!纠?.5】建立同時滿足“flh〔分類號〕”為“A”,“jiage(價格)”大小50元,“清華出版社”的圖書信息查詢。第一步:將“圖書”表添加到查詢設(shè)計(jì)器中。第二步:三個條件都寫在“條件”欄目中。如圖4-10所示。等同于:flh=“A”andjianjie>50andcbs=“清華大學(xué)出版社”。圖4-10多條件設(shè)置〔a〕圖4-10多條件設(shè)置〔b〕第三步:保存查詢。如果一個條件寫在“條件”欄目中,另兩個條件行分別寫在同一行的“或”欄目上如圖4-11所示。如說明結(jié)果中的數(shù)據(jù),滿足“jiage”大于50,或者同時滿足“flh”為“A”和“cbs”為“清華出版社”。圖4-11查詢條件表達(dá)式生成器三個條件寫在了不同的行中,說明這三個條件為或的關(guān)系。結(jié)果集只要“flh”為“A”,“jiage”大于50和“cbs”為“清華出版社”這三個條件中的一個就可以。4.2.3查詢條件1.條件的使用查詢條件是對查詢結(jié)果的一種限制與約束,得到想看到的數(shù)據(jù)。例如,想查詢某個出版社出版的圖書資料,就可以通過對“cbs”字段的限制來實(shí)現(xiàn)。條件的實(shí)現(xiàn)是通過表達(dá)式完成的。這些表達(dá)式多數(shù)很簡單,例如“男”,指定只顯示該字段的值為“男”的記錄;“Between10And20”,指定顯示該字段的值在10~20之間的記錄。在一個查詢中,可以在一列中或多列中使用條件。條件表達(dá)式的輸入有兩種方式:直接輸入與使用表達(dá)式生成器輸入。直接輸入就是指按照一定的格式將表達(dá)式直接填入對應(yīng)字段的“條件”欄目中。表達(dá)式生成器是Access中專門用來生成表達(dá)式的一種工具,包含著各種格式、對象和函數(shù)等,使用它可以準(zhǔn)確的生成表達(dá)式。表達(dá)式生成器的翻開方法:翻開查詢設(shè)計(jì)器,單擊要設(shè)置條件的字段的“條件”行網(wǎng)格,將插入點(diǎn)移入其中。單擊工具欄上的【〔生成器〕】按鈕,或右鍵單擊并選擇快捷菜單的【生成器】命令,翻開表達(dá)式生成器,如圖4-11所示。圖4-11查詢條件表達(dá)式生成器如果在啟動“表達(dá)式生成器”的網(wǎng)格或“條件”列中已經(jīng)包含了一個值,該值將自動復(fù)制到其中的表達(dá)式框中。標(biāo)準(zhǔn)的表達(dá)式具有很多的格式要求,而“表達(dá)式生成器”中提供的選擇式輸入很好的解決了這個問題,由“表達(dá)式生成器”提供的條件或函數(shù)都具有準(zhǔn)確的結(jié)構(gòu)格式。2.條件表達(dá)式查詢的條件表達(dá)式與設(shè)計(jì)表時字段的有效性規(guī)那么比較相近。如果只是以一個值為條件,只需將這個值輸入到對應(yīng)字段的“【條件】”欄中。如果查詢條件比較復(fù)雜,就要使用條件表達(dá)式了。下面介紹條件表達(dá)式的書寫方法。表達(dá)式中的運(yùn)算符在條件表達(dá)式中,除了使用常規(guī)的+、-等算術(shù)運(yùn)算符之外,還經(jīng)常使用以下幾種特殊的運(yùn)算符。And運(yùn)算符“邏輯與”運(yùn)算符。條件表達(dá)式:<條件一>And<條件二>。要求查詢結(jié)果集中的記錄必須同時滿足由And所連接的兩個條件。Or運(yùn)算符“邏輯或”運(yùn)算符。條件表達(dá)式:<條件一>Or<條件二>。查詢結(jié)果集中的記錄只需要滿足由Or所連接的兩個條件中的一個。In運(yùn)算符要求從一個值域中選擇某一值。例如,In〔“男”,“女”〕等價于“男”O(jiān)r“女”。如果備選內(nèi)容較多,使用In運(yùn)算符要比使用Or更加簡單。Between……And……指定一個數(shù)字范圍。主要用于數(shù)字型、貨幣型、日期型字段。條件表達(dá)式:Between<條件一>And<條件二>。要求查詢結(jié)果記錄集中的記錄值介于條件一與條件二之間,包括兩個臨界點(diǎn)。Like用于按照某種約定的格式進(jìn)行查找,可使用不同含義的通配符來實(shí)現(xiàn)不同程度的模糊查詢。例如,Like“張*”,查找以字符“張”開頭,后面任意長度字符的記錄,而Like“張_”那么指定查找以“張”開頭,后面一個字符的記錄??梢允褂玫耐ㄅ浞绫?-1所示。表4-1字符樣式中的通配符通配符匹配的內(nèi)容?一個字符*零個或多個字符#一個數(shù)字(0~9)[字符表]字符表中的一個字符[!字符表]字符表中不包含的一個字符
[字符表]為字符設(shè)置一個取值范圍,[a-z]、[0-9]、[!0-9]等,用“-”來隔開范圍的上下界。例如,表達(dá)式:Like“[0-9]*”的含義為:查找以0~9的某一個數(shù)字開頭,后面任意字符的字符串。又如,表達(dá)式:Like“DataBase?[a-z]#[!0-9]*”的含義為:查找以“DataBase”開頭,第二個為任意字符,第三個為a~z中的任意一個字符,第四個為數(shù)字,第五個為非0~9的任何字符,其后為任意字符的字符串。表達(dá)式的例子表4-2是一些條件表達(dá)式的例子。表4-2表達(dá)式例如表達(dá)式意義定價>50定價大于50Between#1/2/2007#And#12/30/20072007年1月2日到2007年12月30日圖書名稱Like“*數(shù)據(jù)庫*”“圖書名稱”包含“數(shù)據(jù)庫”字符In(“黨員”,“團(tuán)員”,“群眾”)黨員、團(tuán)員或群眾Len([出版社])>Val(5)出版社字段長度在5個字符以上借閱日期<Date()-10借閱日期在30天之前身份證號IsNotNull“身份證號”字段不為空4.3參數(shù)查詢前面章節(jié)介紹的查詢條件都是在創(chuàng)立查詢時設(shè)定好的,是一種固定的條件。例如查詢條件為“清華大學(xué)出版社”,只能固定的查詢“清華大學(xué)出版社”的圖書,如果想查詢其他出版社的圖書就需要回到查詢設(shè)計(jì)器中進(jìn)行條件的修改。于是Access提供了智能參數(shù)查詢功能。參數(shù)查詢就是在運(yùn)行查詢的時候,首先需要輸入?yún)?shù),在根據(jù)參數(shù)進(jìn)行查詢的操作。參數(shù)查詢根據(jù)其查詢形式分為兩種:★單參數(shù)查詢:執(zhí)行查詢時只需要輸入一個條件參數(shù)。★多參數(shù)查詢:執(zhí)行查詢時,針對多組條件,需要輸入多個參數(shù)條件。
4.3.1單參數(shù)查詢使用參數(shù)查詢時,數(shù)據(jù)庫系統(tǒng)首先要求輸入查詢的參數(shù),再根據(jù)參數(shù)進(jìn)行相應(yīng)的參數(shù)查詢,這種查詢方式具有更好的靈活性?!纠?.5】查詢某本圖書的價格。第一步:進(jìn)入“查詢設(shè)計(jì)器”,“圖書”表添加到查詢中。第二步:將涉及到的字段添加到下方的字段列表中。這里需要顯示圖書的書名和價格,所以添加“tsm”和“jiage”。第三步:在窗體上方灰色局部單擊鼠標(biāo)右鍵,從彈出的菜單中選擇【參數(shù)】命令,如圖4-12所示。圖4-12參數(shù)查詢-參數(shù)菜單第四步:在彈出的參數(shù)窗口中對參數(shù)進(jìn)行設(shè)計(jì)。此題根據(jù)書名進(jìn)行查詢,所以創(chuàng)立一個名為“請輸入書名”的參數(shù),如圖4-13所示。注意:第一,參數(shù)的數(shù)據(jù)類型必須與參數(shù)字段的數(shù)據(jù)類型相同,這里需要和“tsm”的數(shù)據(jù)類型相同;第二,這里的參數(shù)名稱會出現(xiàn)在進(jìn)行查詢時的參數(shù)輸入框中,如圖4-30所示,所以要根據(jù)要求輸入。圖4-13參數(shù)查詢-參數(shù)設(shè)定第五步:將設(shè)定好的參數(shù)名填入相應(yīng)字段的“條件”欄目中?!罢堓斎霑眳?shù)填入到“tsm”字段的“條件”欄中,如圖4-14所示。注意,參數(shù)的名稱需要用方括號“[]”擴(kuò)起來。圖4-14參數(shù)查詢-參數(shù)與字段綁定第六步:保存查詢,并命名。第七步:每次使用的時候,系統(tǒng)會首先要求輸入?yún)?shù),如圖4-15所示。注意:窗體中的提示語句就是參數(shù)名稱“請輸入書名”,所以參數(shù)的名稱應(yīng)該根據(jù)實(shí)際情況設(shè)定。圖4-15參數(shù)查詢-輸入?yún)?shù)
4.3.2多參數(shù)查詢
多參數(shù)查詢的創(chuàng)立方式與單參數(shù)查詢的創(chuàng)立方式相同。只是當(dāng)建立參數(shù)的時候需要建立多個參數(shù),而運(yùn)行查詢的時候也需要輸入多個條件參數(shù)?!纠?.5】依出版社和類別查詢圖書信息。第一步:翻開查詢設(shè)計(jì)器,將“圖書”表添加到設(shè)計(jì)器中。第二步:翻開參數(shù)設(shè)計(jì)窗口,并將查詢中設(shè)計(jì)的字段添加到設(shè)計(jì)器中。這里添加“tsm”、“jiage”、“cbs”和“flh”4個字段。第三步:創(chuàng)立多個參數(shù)。在圖4-13中輸入“請輸入出版社”和“請輸入類別”兩個參數(shù)。第四步:在“cbs”和“flh”字段的“條件”欄目中輸入相應(yīng)參數(shù),保存退出。當(dāng)使用多參數(shù)查詢的時候,系統(tǒng)會按參數(shù)順序依次要求用戶輸入查詢參數(shù)的值。4.4操作查詢
在前面的內(nèi)容中介紹過,查詢除了對數(shù)據(jù)有檢索功能外,還是數(shù)據(jù)庫其他操作的一個根底。例如對數(shù)據(jù)的修改、刪除,甚至是添加都有可能是以查詢?yōu)橄葲Q條件的。下面介紹的幾種操作查詢就是在查詢的根底上對查詢的結(jié)果進(jìn)行操作。操作查詢同樣具有選擇和參數(shù)查詢的特征,只是在二者的根底上增加了操作功能。操作查詢除了可以操作數(shù)據(jù)外,還可以添加表。Access數(shù)據(jù)庫系統(tǒng)允許創(chuàng)立4中操作查詢:生成表查詢、更新查詢、追加查詢和刪除查詢。4.4.1生成表查詢生成表查詢是指從一個或多個表中查詢出目標(biāo)數(shù)據(jù),并將這些數(shù)據(jù)存儲到一個新的表中。生成新表中的字段屬性及主鍵屬性會繼承源表中字段的屬性。每次運(yùn)行該查詢都會生成新表?!纠?.6】在tushu數(shù)據(jù)庫中創(chuàng)立“高價圖書”表,將價格超過50元的圖書書名及價格保存到新表中。第一步:翻開“查詢設(shè)計(jì)器”,并將“圖書”表添加到查詢中。第二步:單擊菜單【查詢】中的【生成表查詢】命令,如圖4-16所示。圖4-16生成表查詢-選擇生成表查詢第三步:彈出的對話框要求設(shè)定新表的名稱以及新表保存的數(shù)據(jù)庫,如圖4-17所示。將表的名稱設(shè)定為“高價圖書”,保存在當(dāng)前數(shù)據(jù)庫中,單擊【確定】。圖4-17生成表查詢-新表名稱設(shè)定第四步:回到“查詢設(shè)計(jì)器”后,利用條件查詢的方法將價格高于50元的書名與價格查詢出來,保存該查詢并退出。第五步:雙擊剛剛保存的查詢,彈出如圖4-18所示的提示窗口,要求確認(rèn)操作。單擊【是】,系統(tǒng)會生成題中要求建立的“高價圖書”表。圖4-18生成表查詢-確認(rèn)生成新表4.4.2刪除查詢刪除查詢可以將查詢出來的數(shù)據(jù)進(jìn)行刪除操作。刪除后的數(shù)據(jù)是不能被恢復(fù)的,所以在進(jìn)行刪除前應(yīng)切換到“數(shù)據(jù)表視圖”進(jìn)行查看,確定查詢出來的數(shù)據(jù)是需要刪除的數(shù)據(jù)?!纠?.6】刪除價格大于10的圖書的資料。第一步:翻開“查詢設(shè)計(jì)器”,并將“圖書”表添加到查詢中。第二步:單擊菜單【查詢】中的【刪除查詢】命令。第三步:將涉及到的字段添加到字段列表中。因?yàn)楦鶕?jù)價格進(jìn)行刪除,所以添加“jiage”字段,并在“條件”欄中輸入“>10”,如圖4-19所示。注意:刪除查詢并不是選擇什么字段就只刪除該字段的內(nèi)容,而是將符合該條件的所有記錄刪除,所以這里雖然只設(shè)置了“jiage”字段,但是運(yùn)行該查詢會將所有10元以上的圖書都刪除。圖4-19刪除查詢第四步:保存查詢。雙擊查詢可以進(jìn)行刪除操作。4.4.3更新查詢更新查詢可以將查詢出來的結(jié)果進(jìn)行批量的修改。使用更新查詢首先將要修改的數(shù)據(jù)查詢出來,然后使用一個表達(dá)式將數(shù)據(jù)進(jìn)行修改。更新查詢會改變數(shù)據(jù)的物理信息,所以在使用前一定要確認(rèn)沒有錯誤,以免造成數(shù)據(jù)的破壞?!纠?.7】將“圖書”表中清華大學(xué)出版社的所有圖書的價格增加10元。第一步:翻開“查詢設(shè)計(jì)器”,并將“圖書”表添加到查詢中。第二步:單擊菜單【查詢】中的【更新查詢】命令,此時“查詢設(shè)計(jì)器”下方的字段列表結(jié)構(gòu)會發(fā)生一些改變,出現(xiàn)了一個“更新到”欄目。第三步:將查詢涉及到的字段添加到字段列表中,此題需要添加“cbs”和“jiage”兩個字段。第四步:條件設(shè)定。首先在“cbs”字段的“條件”中設(shè)定“清華大學(xué)出版社”。然后在“jiage”字段的“更新到”欄目中設(shè)定“[jiage]+10”,將價格在原有根底上增加10元,如圖4-20所示。圖4-20更新查詢第五步:保存查詢,并雙擊保存后的查詢。4.4.4追加查詢
追加查詢是將查詢出來的結(jié)果添加到另一個表中的操作,這些記錄將被保存在目標(biāo)表中的結(jié)尾。執(zhí)行追加查詢的前提是,追加局部的數(shù)據(jù)必須在目標(biāo)表中存在對應(yīng)字段?!纠?.8】將40元到50元的圖書的書名和價格追加到【例4.6】建立的“高級圖書”表中。第一步:翻開“查詢設(shè)計(jì)器”,并將“圖書”表添加到查詢中。第二步:單擊菜單【查詢】中的【追加查詢】命令。第三步:彈出的窗體要求設(shè)定數(shù)據(jù)要追加的目標(biāo)表。根據(jù)題意,將數(shù)據(jù)追加到“高價圖書”表。設(shè)定后單擊【確定】。第四步:回到“查詢設(shè)計(jì)器”后,將目標(biāo)字段添加到字段列表中。這里添加“tsm”和“jiage”字段。然后設(shè)定查詢條件:價格介于40到50之間,就是在“jiage”的“條件”欄目里添加條件:“>40And<=50”,然后在“追加到”欄目中設(shè)置分別將字段追加到那些新字段中,如圖4-21所示。單擊“追加到”欄目,從彈出的下拉框中選擇對應(yīng)表的相應(yīng)字段。第五步:保存查詢,并雙擊查詢執(zhí)行。圖4-21追加查詢-設(shè)計(jì)視圖4.5交叉表查詢4.5.1認(rèn)識交叉表查詢在數(shù)據(jù)庫的實(shí)際應(yīng)用當(dāng)中,一些數(shù)據(jù)的統(tǒng)計(jì)需要首先將數(shù)據(jù)按照一定規(guī)律分組后再操作,例如,查詢各出版社的圖書數(shù)量、查詢各類圖書的平均價格等。交叉表查詢就是首先按照一個或一組屬性對數(shù)據(jù)進(jìn)行分組,然后對分組后的數(shù)據(jù)進(jìn)行操作的查詢。4.5.2交叉表查詢向?qū)Ы徊姹聿樵兪且环N比較特殊的查詢方式,是將表或其他查詢中的一些數(shù)據(jù)作為新的字段,用另一種方式來查看數(shù)據(jù),通常用來進(jìn)行數(shù)據(jù)的各種計(jì)算,例如:求和、平均值、最大值、最小值和計(jì)數(shù)等?!纠?.9】在tushu數(shù)據(jù)庫中查詢各類圖書的平均價格第一步:實(shí)際是要求將圖書按照類別進(jìn)行分組,然后求每組的平均價格。在新建查詢窗體中雙擊【交叉表查詢向?qū)А?,進(jìn)入到數(shù)據(jù)源設(shè)定窗口,如圖4-22所示。第二步:在窗體內(nèi)設(shè)置需要使用的數(shù)據(jù)源。注意,交叉表查詢的記錄源必須是唯一的,所以窗體中聲明:如果包含多個表的字段,需要先創(chuàng)立一個包含這些字段的查詢。此題設(shè)計(jì)到的字段都來源于“圖書表”,所以這里選中“圖書表”,單擊【下一步】。圖4-22交叉表查詢-數(shù)據(jù)源設(shè)定第三步:彈出的窗體要求設(shè)定分組的依據(jù)字段,也就是行標(biāo)題,如圖4-23所示。題意是按照類別統(tǒng)計(jì)平均價格,所以這里按照圖書的類別分組。將“可用字段”列表中的“flh”字段添加到“選定字段”列表中作為分組依據(jù)。設(shè)定結(jié)束單擊【下一步】。第四步:彈出的窗體要求設(shè)定除了顯示平均價格外,還需要顯示什么字段作為依據(jù),也就是列標(biāo)題,這里選擇書名作為列標(biāo)題。設(shè)定后單擊【下一步】。圖4-23創(chuàng)立交叉表查詢-行標(biāo)題設(shè)定第五步:彈出的窗體要求設(shè)定具體統(tǒng)計(jì)的數(shù)據(jù)內(nèi)容,如圖4-24所示。因?yàn)轭}中要求統(tǒng)計(jì)每組的平均價格,所以在中部的“字段”列表中選中“jiage”字段,然后在右側(cè)的“函數(shù)”字段中選中“平均”選項(xiàng)。設(shè)定結(jié)束后單擊【下一步】。第六步:向?qū)ЫY(jié)束后有兩種選擇:查看查詢和修改設(shè)計(jì)。如果對查詢結(jié)構(gòu)還需要調(diào)整,那么可以選擇“修改設(shè)計(jì)”,并進(jìn)入到“查詢設(shè)計(jì)器”窗口對查詢結(jié)構(gòu)進(jìn)行調(diào)整。否那么可以選擇“查看查詢”。單擊【完成】按鈕。圖4-24創(chuàng)立交叉表查詢-統(tǒng)計(jì)項(xiàng)設(shè)定4.5.3交叉表查詢的設(shè)計(jì)視圖可以使用靈活性更大的設(shè)計(jì)窗體方式自行創(chuàng)立交叉表查詢?!纠?.10】在“設(shè)計(jì)視圖”中重新設(shè)計(jì)查詢各類圖書的平均價格第一步:創(chuàng)立一個新的查詢,翻開查詢設(shè)計(jì)器,并將圖書表添加到查詢設(shè)計(jì)器中。第二步:在“查詢設(shè)計(jì)器”中單擊【查詢】菜單中的【交叉表查詢】命令。第三步:使用設(shè)計(jì)器創(chuàng)立表查詢必需要設(shè)置3項(xiàng)內(nèi)容,分別是:行標(biāo)題、列標(biāo)題、統(tǒng)計(jì)列。行標(biāo)題:用作分組的字段,通常由兩個字段組成,一個作為分組依據(jù),一個作為分組后統(tǒng)計(jì)的值。列標(biāo)題:除了行標(biāo)題和統(tǒng)計(jì)結(jié)果外顯示的字段。值列:用來統(tǒng)計(jì)的字段,需要設(shè)置統(tǒng)計(jì)的類型。根據(jù)題意,對字段進(jìn)行如下設(shè)置,如圖4-25所示。:使用“flh”作為行標(biāo)題中的分組字段,將“總計(jì)”項(xiàng)設(shè)置為“分組”,“交叉表”項(xiàng)設(shè)置為“行標(biāo)題”;使用“jiage”作為行標(biāo)題中的統(tǒng)計(jì)值,并將“總計(jì)”項(xiàng)設(shè)置為“平均值”,“交叉表”項(xiàng)設(shè)置為“行標(biāo)題”;使用“tsm”作為列標(biāo)題,將“總計(jì)”項(xiàng)設(shè)置為“分組”,“交叉表”項(xiàng)設(shè)置為“列標(biāo)題”;使用“jiage”作為值列,將“總計(jì)”項(xiàng)設(shè)置為“平均值”,“交叉表”項(xiàng)設(shè)置為“值”。圖4-25交叉表查詢的字段設(shè)置第四步:保存退出4.6在查詢中進(jìn)行計(jì)算4.6.1查詢中的計(jì)算功能查詢除了可以查找數(shù)據(jù)庫中保存的數(shù)據(jù)外,還可以進(jìn)行計(jì)算。例如,計(jì)算一個字段值的總和或平均值,對兩個字段進(jìn)行算術(shù)運(yùn)算。查詢中有常規(guī)計(jì)算和自定義計(jì)算兩種根本計(jì)算。1.常規(guī)計(jì)算常規(guī)計(jì)算是指利用現(xiàn)有字段,對記錄組進(jìn)行統(tǒng)計(jì)或匯總,包括求和、求平均值、記錄數(shù)、最小值、最大值等。2.自定義計(jì)算自定義計(jì)算就是使用一個或多個字段中的數(shù)據(jù)在進(jìn)行計(jì)算,并使用一個新創(chuàng)立的字段顯示出來。4.6.2總計(jì)查詢1.總計(jì)查詢的創(chuàng)立Access的某些特定功能,如分組、求和、求平均值等,在查詢設(shè)計(jì)器中是無法直接使用的。必須單擊查詢設(shè)計(jì)工具欄上的【〔總計(jì)〕】按鈕,通過Access系統(tǒng)在查詢設(shè)計(jì)器下部設(shè)計(jì)網(wǎng)格中插入的一個“總計(jì)”行進(jìn)行計(jì)算。在查詢設(shè)計(jì)器中的【總計(jì)】欄目中,可以為某個字段指定一個用于總計(jì)計(jì)算的匯總函數(shù),包括“總和”、“平均值”、“計(jì)數(shù)”、“最大值”、“最小值”、“標(biāo)準(zhǔn)偏差”、“方差”等?!纠?.11】統(tǒng)計(jì)所有圖書的平均價格。第一步:翻開查詢設(shè)計(jì)器,將目標(biāo)表“圖書”添加到查詢中。第二步:將涉及到的“jiage”字段添加到窗體下方的“字段”欄目中。第三步:單擊查詢設(shè)計(jì)工具欄上的按鈕,系統(tǒng)會在在查詢設(shè)計(jì)器下半部的設(shè)計(jì)網(wǎng)格中插入一個“總計(jì)”行。第四步:題目要求統(tǒng)計(jì)所有圖書的平均價格,先將“jiage”字段添加到下方的欄目中,然后單擊“jiage”字段的“總計(jì)”欄目,并在下拉列表中選擇平均值“平均值”,如圖4-26所示。圖4-26總計(jì)查詢-設(shè)計(jì)視圖圖4-27總計(jì)查詢-結(jié)果第六步:設(shè)置結(jié)束,保存退出。運(yùn)行可得到查詢結(jié)果,如圖4-27所示。在總計(jì)查詢中,因?yàn)橛?jì)算字段是根據(jù)原有字段計(jì)算或統(tǒng)計(jì)得來,所以沒有自己的字段名稱,如圖4-27所示,得到的平均價格系統(tǒng)默認(rèn)生成的名稱為“jiage之Avg”。生成的名稱呼明了字段的來源,但是不美觀,所以通常在總計(jì)查詢中對新字段重新命名。如果不想使用Access自動命名的字段標(biāo)題,可以用以下兩種方法指定查詢中某個字段的標(biāo)題。1〕在設(shè)計(jì)視圖中,在計(jì)算字段的“字段”欄目中自己命名新字段。方法是在該字段名稱前自己輸入一個新名稱,并用英文冒號隔開。例如上題的“jiage”字段改成“平均價格:jiage”。這樣,在顯示結(jié)果的時候,該字段不會使用系統(tǒng)默認(rèn)名稱,而使用“平均價格”。2〕單擊要指定標(biāo)題的字段欄任意位置,選擇快捷菜單中的【屬性】命令,彈出“字段屬性”對話框,在其中的“標(biāo)題”屬性欄中輸入自定義的字段標(biāo)題,如圖4-28所示。圖4-28新字段-字段屬性窗體2.總計(jì)統(tǒng)計(jì)的分類“總計(jì)”欄目中包含12個選項(xiàng),其中9個為匯總函數(shù),其他為非函數(shù)選項(xiàng)。1〕匯總函數(shù)用于創(chuàng)立總計(jì)字段的匯總函數(shù)如表4-3所示。表4-3查詢使用的匯總函數(shù)英文名含義適用的數(shù)據(jù)類型Sum總計(jì)數(shù)值、日期/時間、貨幣、自動編號Avg平均值數(shù)值、日期/時間、貨幣、自動編號Min最小值文本、日期/時間、貨幣、自動編號Max最大值文本、數(shù)值、日期/時間、貨幣、自動編號Count計(jì)數(shù)文本、備注、數(shù)值、日期/時間、貨幣、自動編號、是/否、OLE對象StDev標(biāo)準(zhǔn)差數(shù)值、日期/時間、貨幣、自動編號Var方差數(shù)值、日期/時間、貨幣、自動編號First第一條記錄所有類型Last最后一條記錄所有類型其中,“計(jì)數(shù)”函數(shù)用于統(tǒng)計(jì)記錄的個數(shù),也就是行數(shù)。對于空白值也統(tǒng)計(jì)在內(nèi),但空值不進(jìn)行統(tǒng)計(jì)。2〕非函數(shù)選項(xiàng)分組〔GroupBy〕分組字段。表達(dá)式〔Expression〕創(chuàng)立表達(dá)式包含總計(jì)函數(shù)的計(jì)算字段。通常,在表達(dá)式中使用多個函數(shù)時,將創(chuàng)立計(jì)算字段。條件〔Where〕指定不用于分組的字段準(zhǔn)那么。如果選擇了這一項(xiàng)Access將去除“顯示”復(fù)選框,隱藏查詢結(jié)果中的這個字段。4.6.3分組總計(jì)查詢分組總計(jì)查詢是指在統(tǒng)計(jì)計(jì)算之前,先將數(shù)據(jù)按照要求進(jìn)行分組,對分組后的數(shù)據(jù)進(jìn)行計(jì)算統(tǒng)計(jì)。【例4.12】創(chuàng)立一個具有分類統(tǒng)計(jì)功能的查詢。查詢各個出版社圖書的平均價格,顯示出版社的名稱和平均價格。第一步:翻開查詢設(shè)計(jì)器,將目標(biāo)表“圖書”添加到查詢中。第二步:將涉及到的“cbs”和“jiage”字段添加到窗體下方的“字段”欄目中。第三步:單擊查詢設(shè)計(jì)工具欄上的【〔總計(jì)〕】按鈕,進(jìn)入總計(jì)查詢狀態(tài)。第四步:題目要求按照出版社統(tǒng)計(jì)平均價格,也就是按出版社分組,所以單擊“cbs”字段的“總計(jì)”欄目,并在下拉列表中選擇分組“分組”。第五步:題目要求按出版社統(tǒng)計(jì)平均價格,所以單擊“jiage”字段的“總計(jì)”欄目,并在下拉列表中選擇“平均值”,如圖4-29所示。圖4-29總計(jì)查詢-設(shè)計(jì)視圖第六步:設(shè)置結(jié)束,保存退出。運(yùn)行可得到查詢結(jié)果。4.6.4添加計(jì)算字段在設(shè)計(jì)表時,一些可以通過其他字段計(jì)算或統(tǒng)計(jì)得到的字段是不會直接作為字段保存在表中的,如果需要這些字段的值,那么可以在查詢設(shè)計(jì)設(shè)器中通過添加計(jì)算字段來實(shí)現(xiàn)。這樣可以節(jié)省存儲空間,減少系統(tǒng)維護(hù)表格的代價。利用新計(jì)算字段,可以用一個或多個字段的值進(jìn)行數(shù)值、日期及文本等各種計(jì)算。計(jì)算字段是對表或查詢中的數(shù)值型字段進(jìn)行橫向計(jì)算產(chǎn)生結(jié)果的字段,是在查詢中自定義的字段。創(chuàng)立計(jì)算字段的方法是將表達(dá)式直接輸入到查詢設(shè)計(jì)網(wǎng)格中的【字段】格中。格式為:新字段名稱:字段計(jì)算表達(dá)式【例4.13】創(chuàng)立一個具有計(jì)算字段的查詢。假設(shè)圖書的每頁有1000字,查詢每本圖書的圖書名和大致字?jǐn)?shù)。使用“圖書”表中的“ys”字段乘上1000,即可以計(jì)算出圖書的大致字?jǐn)?shù)。新字段的表達(dá)式應(yīng)該是:“字?jǐn)?shù):[ys]*1000”。圖4-30新字段-設(shè)定表達(dá)式填寫在一個空白的“字段”欄目中,如圖4-30所示。注意,表達(dá)式中的冒號為半角符號。創(chuàng)立結(jié)束后,運(yùn)行查詢便可以看見新字段。4.7SQL查詢4.7.1SELECT語句簡介SQL〔StructuredQueryLanguage〕語言是一種被關(guān)系數(shù)據(jù)庫產(chǎn)品廣泛使用的標(biāo)準(zhǔn)結(jié)構(gòu)化查詢語言。結(jié)構(gòu)化查詢語言是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語言,其功能包括查詢、操縱、定義和控制四個方面,是一個通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言。目前,SQL語言已經(jīng)被確定為關(guān)系數(shù)據(jù)庫系統(tǒng)的國際標(biāo)準(zhǔn),被絕大多數(shù)商品化的關(guān)系數(shù)據(jù)庫系統(tǒng)采用,受到用戶的普遍接受。SQL語言可以對數(shù)據(jù)庫進(jìn)行多種操作,例如定義、查詢等等,其中數(shù)據(jù)查詢是數(shù)據(jù)庫的核心操作,其功能是指根據(jù)用戶的需要以一種可讀的方式從數(shù)據(jù)庫中提取所需數(shù)據(jù),由SQL的數(shù)據(jù)操縱語言的SELECT語句實(shí)現(xiàn)。SELECT語句是SQL中用途最廣泛的一條語句,具有靈活的使用方式和豐富的功能。4.7.2查詢語句的格式一個完整的SELECT語句包括SELECT、FROM、WHERE、GROUPBY和ORDERBY子句。它具有數(shù)據(jù)查詢、統(tǒng)計(jì)、分組和排序的功能。它的語法及各子句的功能如下。SELECT[ALL︱DISTINCT][<目標(biāo)列表達(dá)式>[,…n]]FROM<表名或視圖名>[,<表名或視圖名>[…n]][WHERE<條件表達(dá)式>][GROUPBY<列名l>[HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC︱DESC]];從指定的根本表或視圖中,選擇滿足條件的元組數(shù)據(jù),并對它們進(jìn)行分組、統(tǒng)計(jì)、排序和投影,形成查詢結(jié)果集。1〕各子句的說明〔1〕其中SELECT和FROM語句為必選子句,而其他子句為任選子句;〔2〕SELECT子句該子句用于指明查詢結(jié)果集的目標(biāo)列,<目標(biāo)列表達(dá)式>是指查詢結(jié)果集中包含的列名,可以是直接從根本表或視圖中投影得到的字段,或是與字段相關(guān)的表達(dá)式或數(shù)據(jù)統(tǒng)計(jì)的函數(shù)表達(dá)式,目標(biāo)列還可以是常量。DISTINCT說明要去掉重復(fù)的元組,ALL表示所有滿足條件的元組。省略<目標(biāo)列表達(dá)式>表示結(jié)果集中包含<表名或視圖名>中的所有列,此時<目標(biāo)列表達(dá)式>可以使用*代替。如果目標(biāo)列中使用了兩個根本表或與視圖中相同的列名,要在列名前加表名限定,即使用“<表名>.<列名>”表示?!?〕FROM子句該子句用于指明要查詢的數(shù)據(jù)來自哪些根本表。查詢操作需要的根本表名之間用“,”分割?!?〕WHERE子句該子句通過條件表達(dá)式描述對根本表或視圖中元組的選擇條件。該語句執(zhí)行時,以元組為單位,逐個考察每個元組是否滿足WHERE子句中給出的條件,將不滿足條件的元組篩選掉,所以WHERE子句中的表達(dá)式也稱為元組的過濾條件?!?〕GROUPBY子句該子句的作用是將結(jié)果集按<列名1>的值進(jìn)行分組,即將該列值相等的元組分為一組,每個組產(chǎn)生結(jié)果集中的一個元組,可以實(shí)現(xiàn)數(shù)據(jù)的分組統(tǒng)計(jì)。當(dāng)SELECT子句后的<目標(biāo)列表達(dá)式>中有統(tǒng)計(jì)函數(shù),且查詢語句中有分組子句時,那么統(tǒng)計(jì)為分組統(tǒng)計(jì),否那么為對整個結(jié)果集進(jìn)行統(tǒng)計(jì)。GROUPBY子句后可以使用HAVING<條件表達(dá)式>短語,它用來限定分組必須滿足的條件。HAVING必須跟隨GROUPBY子句使用?!?〕ORDERBY子句該子句的作用是對結(jié)果集按<列名2>的值的升序〔ASC〕或降序〔DESC〕進(jìn)行排序。查詢結(jié)果集可以按多個排序列進(jìn)行排序,根據(jù)各排序列的重要性從左向右列出。2〕SELECT語句的執(zhí)行過程根據(jù)WHERE子句的條件表達(dá)式,從FROM子句指定的根本表或視圖中找出滿足條件的元組,再按SELECT子句中的目標(biāo)列表達(dá)式,選出元組中的列值形成結(jié)果集。如果有GROUP子句,那么將結(jié)果集按<列名l>的值進(jìn)行分組,該屬性列值相等的元組為一個組,每個組產(chǎn)生結(jié)果集中的一個元組。如果GROUPBY子句后帶HAVING短語,那么只有滿足指定條件的組才予以輸出。如果有ORDERBY子句,那么結(jié)果集還要按<列名2>的值的升序或降序排序。SQL語言的所有查詢都是利用SELECT語句完成的,它對數(shù)據(jù)庫的操作十分方便靈活,原因在于SELECT語句中的成分豐富多彩,有許多可選形式,尤其是目標(biāo)列和條件表達(dá)式。下面以學(xué)生管理數(shù)據(jù)庫為例,分別介紹使用SELECT語句進(jìn)行單表查詢、連接查詢、嵌套查詢和組合查詢。4.7.3SQL查詢窗體在Access數(shù)據(jù)庫系統(tǒng)中,執(zhí)行任何SQL語句都是在查詢的設(shè)計(jì)窗體內(nèi)完成。首先進(jìn)入查詢分析器,關(guān)閉用來添加表的【顯示表】窗體。然后通過工具欄左端的【(SQL視圖)】按鈕或者是視圖菜單中的【SQL視圖】命令,將編輯窗體切換到SQL視圖,如圖4-32所示。4.7.4單表查詢單表查詢指在查詢過程中只涉及一個表的查詢語句。單表查詢是最根本的查詢語句?!纠?.14】查詢清華大學(xué)出版社圖書的資料。具體操作方法:第一步:翻開數(shù)據(jù)庫tushu主窗口,單擊“對象”列表中的“查詢”,單擊工具欄上的【新建】,選擇“設(shè)計(jì)視圖”,單擊【確定】按鈕。第二步:關(guān)閉“顯示表”對話框,選擇菜單欄【視圖】|【SQL視圖】,如圖4-31所示圖4-31SQL菜單圖4-32選擇查詢-SQL輸入窗口第三步:在圖4-32所示的窗口中輸入如下命令:Select*From圖書Wherecbs=“清華大學(xué)出版社”切換到設(shè)計(jì)視圖,可以看到“字段”中增加一了個“cbs”,“表”中為“圖書”,條件為“清華大學(xué)出版社”,如圖4-33所示。圖4-33設(shè)計(jì)視圖-選擇查詢第四步:保存查詢,查看查詢結(jié)果。提示: 例中的from語句用于設(shè)置查詢的數(shù)據(jù)源來,而where語句用于設(shè)置顯示字段的條件?!纠?.15】在圖書表中查詢價格在20~50〔包括20與50〕之間的圖書的書名和出版社。操作步驟:前兩步同【例4.15】,第三步,在SQL窗口中輸入如下命令:Selecttsm,cbsFrom圖書Wherejiagebetween20and504.7.5多表查詢在一個數(shù)據(jù)庫中多個根本表之間一般都存在著某種內(nèi)在的聯(lián)系,它們?yōu)橛脩艄餐峁┫鄳?yīng)的信息。因此在對數(shù)據(jù)庫的一個查詢中經(jīng)常需要同時涉及多個根本表中的相關(guān)內(nèi)容。把這種在一個查詢中同時涉及兩個以上的根本表的查詢稱為連接查詢,實(shí)際上它是數(shù)據(jù)庫最主要的查詢功能1〕條件連接查詢的一般格式:當(dāng)一個查詢涉及到數(shù)據(jù)庫的多個根本表時,必須要按照一定的條件將這些表連接在一起,以便共同為用戶提供相應(yīng)信息。用來連接兩個根本表的條件稱為連接條件或連接謂詞,一般格式為:Select<目標(biāo)列>From<表名>Where[<表名l>.]<列名l>=[<表名2>.]<列名2>連接條件中的列名稱為連接字段。連接條件中,連接字段類型必須是可比的,但名稱不一定是相同的。條件通過WHERE子句表達(dá)。在WHERE子句中,有時既有連接條件又有元組選擇條件,這時它們之間用AND〔與〕操作符銜接?!纠?.16】查詢有借還記錄的每個讀者的姓名、借還記錄情況。(學(xué)生信息表中的“xh”字段與借還記錄表中的“jszh”相對應(yīng))前兩步同【例4.14】,第三步,在SQL窗口中輸入如下命令:Select學(xué)生信息.xm,借還記錄.*From學(xué)生信息,借還記錄Where學(xué)生信息.xh=借還記錄.jszh;運(yùn)行結(jié)果如以下圖4-34所示。圖4-34例4.16的查詢結(jié)果在“設(shè)計(jì)視圖”下看的效果如圖4-35所示。圖4-35例4.16在設(shè)計(jì)視圖下的效果如果在where語句中,既有連接條件又有查詢條件,一定要首先書寫連接條件。例如:查詢借閱了定價大于50元圖書的讀者信息。Select讀者.*From讀者,借還記錄,圖書Where讀者.jszh=選課.jszhand圖書.tsgtm=借還記錄.txmand圖書.jiage>502〕通過JOIN連接查詢的格式:聯(lián)接格式為:Select<目標(biāo)列>From<表名1>InnerJoin|LeftJoin|
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京2025年江蘇南京金陵華興實(shí)驗(yàn)學(xué)校招聘編外教師2人筆試歷年參考題庫附帶答案詳解-1
- 大學(xué)生心理健康教育 課件 03人格
- 行政管理制度
- 2022屆湖南省岳陽市岳陽縣第一中學(xué)高二下學(xué)期期中考試+化學(xué)試題+
- 應(yīng)急氣象與災(zāi)害預(yù)警
- 大疆在農(nóng)業(yè)無人機(jī)領(lǐng)域的市場滲透與技術(shù)創(chuàng)新
- 兒童閱讀分享會課件
- 業(yè)主公共維修資金理財(cái)產(chǎn)品的選擇策略
- 旅游景點(diǎn)主題探索
- 運(yùn)營管理電子課件
- 貴州省2025年初中學(xué)業(yè)水平考試英語模擬練習(xí)卷(含答案含聽力二維碼無音頻及原文)
- 2025廣東深圳證券交易所及其下屬單位信息技術(shù)專業(yè)人員招聘筆試參考題庫附帶答案詳解
- 2025年溫州市圖盛供電服務(wù)有限公司招聘筆試參考題庫含答案解析
- 尼康D3200中文說明書(完整版)
- 文明施工、環(huán)境保護(hù)管理體系與措施
- 汽車租賃項(xiàng)目投標(biāo)書
- 有效咳嗽咳痰課件
- 2024《整治形式主義為基層減負(fù)若干規(guī)定》全文課件
- 20以內(nèi)加減法口算題(10000道)(A4直接打印-每頁100題)
- SHAFER氣液聯(lián)動執(zhí)行機(jī)構(gòu)培訓(xùn)
- 經(jīng)典老歌簡譜100首
評論
0/150
提交評論