數(shù)據(jù)查詢功能_第1頁(yè)
數(shù)據(jù)查詢功能_第2頁(yè)
數(shù)據(jù)查詢功能_第3頁(yè)
數(shù)據(jù)查詢功能_第4頁(yè)
數(shù)據(jù)查詢功能_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)查詢功能第一頁(yè),共八十四頁(yè),2022年,8月28日5.1關(guān)系運(yùn)算在關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)分別存儲(chǔ)在不同的二維表中,因此二維表具有一定的獨(dú)立性。同時(shí),數(shù)據(jù)庫(kù)又是具有邏輯關(guān)系的數(shù)據(jù)集合,不同二維表中的數(shù)據(jù)又是相互聯(lián)系的。為了從二維表中提取數(shù)據(jù)、生成面向業(yè)務(wù)分析的信息,可以借助于關(guān)系運(yùn)算。關(guān)系運(yùn)算又可分為兩類。一類是傳統(tǒng)的關(guān)系運(yùn)算,包括并、叉、交、笛卡兒積;另一類是專門的關(guān)系運(yùn)算,包括選擇、投影和連接。第二頁(yè),共八十四頁(yè),2022年,8月28日5.1.1傳統(tǒng)的關(guān)系運(yùn)算并(Union)運(yùn)算:設(shè)R和S是n元關(guān)系,且兩者對(duì)應(yīng)屬性的數(shù)據(jù)類型相同。定義R和S的并運(yùn)算為R?S={t|t∈R?t∈S} ?代表或者的含義即:或?qū)儆陉P(guān)系R、或?qū)儆陉P(guān)系S的記錄的集合。差(Difference)運(yùn)算:設(shè)R和S是n元關(guān)系,且兩者對(duì)應(yīng)屬性的數(shù)據(jù)類型相同。定義R和S的差運(yùn)算為R?S={t|t∈R?t?S} ?代表并且的含義即:屬于關(guān)系R、但不屬于關(guān)系S的記錄的集合。交(Intersection)運(yùn)算:設(shè)R和S是n元關(guān)系,且兩者對(duì)應(yīng)屬性的數(shù)據(jù)類型相同。定義R和S的交運(yùn)算為R?S={t|t∈R?t∈S}=R?(R?S)即:既屬于關(guān)系R、又屬于關(guān)系S的記錄的集合。并、差、交運(yùn)算的前提:關(guān)系R和關(guān)系S有相同的屬性結(jié)構(gòu)。第三頁(yè),共八十四頁(yè),2022年,8月28日5.1.1傳統(tǒng)的關(guān)系運(yùn)算第四頁(yè),共八十四頁(yè),2022年,8月28日5.1.1傳統(tǒng)的關(guān)系運(yùn)算笛卡爾積(CartesianProduct)運(yùn)算:設(shè)R是一個(gè)n元關(guān)系,S是一個(gè)m元關(guān)系,定義R和S的笛卡爾積運(yùn)算為R?S={(r1,r2,┈,rn,s1,s2,┈,sm)|(r1,r2,┈,rn)∈R?(s1,s2,┈,sm)∈S}第五頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算選擇(Selection):設(shè)R是一個(gè)n元關(guān)系,F(xiàn)是一個(gè)形如riθc的公式,其中θ∈{=,≠,>,<,≤,≥},riθc表示屬性值ri和指定值c的比較關(guān)系(實(shí)際上隱含著一個(gè)條件,稱θ為關(guān)系運(yùn)算符)。定義R的選擇運(yùn)算為

σF(R)={(r1,r2,┈,ri,┈,rn)|(r1,r2,┈,ri,┈,rn)∈R?riθc}即:在關(guān)系R中選擇某一屬性值滿足一定條件(與指定值的比較關(guān)系成立)的記錄。第六頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算例1,在如下表Student中,若要找出所有女學(xué)生的元組,就可以使用選擇運(yùn)算來(lái)實(shí)現(xiàn),其中的條件riθc是:Sex=“女”。StudentIDNameSexBirthdayEntrancescore981101趙文化男2-28-80500981102徐逸華男6-7-81630981103郭茜茜女11-17-82650981201錢途男5-1-80380981202高涵男11-06-80630981203李曉鳴女11-17-82400 σSex=“女”(Student)={t|t∈Student?t.Sex=“女”}選擇運(yùn)算是對(duì)單個(gè)關(guān)系進(jìn)行水平分解,是從行的角度進(jìn)行的運(yùn)算。第七頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算例2,在如下表Student中,若要找出所有性別為女且入學(xué)成績(jī)?cè)?00分以上(包括500分)的學(xué)生記錄,也可以使用選擇運(yùn)算來(lái)實(shí)現(xiàn),其中的條件是:(Sex=“女”)?(Entrancescore≥500)。StudentIDNameSexBirthdayEntrancescore981101趙文化男2-28-80500981102徐逸華男6-7-81630981103郭茜茜女11-17-82650981201錢途男5-1-80380981202高涵男11-06-80630981203李曉鳴女11-17-82400σ(Sex=“女”)?(Entrancescore

≥500)(Student)={t|t∈Student?t.Sex=“女”?t.Entrancescore

≥500}選擇運(yùn)算中的條件可以是多個(gè)簡(jiǎn)單條件的邏輯組合。第八頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算投影(Projection):設(shè)R是一個(gè)n元關(guān)系,定義R的投影運(yùn)算為Πi1,i2,┈,im(R)={(ri1,ri2,┈,rim)|(r1,r2,┈,ri1,ri2,┈,rim,┈,rn)∈R}其中i1,i2,┈,im表示所選取屬性列的編號(hào),且m<n。即:從關(guān)系R中選取若干屬性列組成新的關(guān)系。第九頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算例如,在如下表Student中,若要僅顯示所有學(xué)生的StudentID(學(xué)號(hào))、Name(姓名)和Sex(性別),那么可以使用投影運(yùn)算來(lái)實(shí)現(xiàn)。StudentIDNameSexBirthdayEntrancescore981101趙文化男2-28-80500981102徐逸華男6-7-81630981103郭茜茜女11-17-82650981201錢途男5-1-80380981202高涵男11-06-80630981203李曉鳴女11-17-82400

ΠStudentID,Name,Sex(Student)投影運(yùn)算是對(duì)單個(gè)關(guān)系進(jìn)行垂直分解,是從列的角度進(jìn)行的運(yùn)算。第十頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算連接(Join)運(yùn)算:設(shè)R是n元關(guān)系,S是m元關(guān)系,A是R的屬性,B是S的屬性,A和B的值域具有相同的數(shù)據(jù)類型,θ∈{=,≠,>,<,≤,≥}。定義R和S的連接(Jion)運(yùn)算為R?AθBS={rs|r∈R?s∈S?(r[A]θs[B])}其中,r[A]表示元組r在屬性A上的值,s[B]表示元組s在屬性B上的值。r=(r1,r2,┈r[A],┈,rn),s=(s1,s2,┈,s[B]┈,sm),rs形如(r1,r2,┈r[A],┈,rn,s1,s2,┈,s[B]┈,sm)。并稱A和B是連接屬性。第十一頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算需要注意的是,連接屬性可以有不同的名稱,但必須表示相同的含義并有相同的數(shù)據(jù)類型,以保證屬性值的可比性。第十二頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算需要特別注意的是,等值連接與一對(duì)多表間關(guān)系有著密切的聯(lián)系:一對(duì)多表間關(guān)系為等值連接運(yùn)算提供了基礎(chǔ),通過(guò)一對(duì)多表間關(guān)系中的關(guān)聯(lián)字段可以進(jìn)行等值連接運(yùn)算。實(shí)際上,等值連接運(yùn)算中的連接屬性就是一對(duì)多表間關(guān)系中的關(guān)聯(lián)字段。StudentID是關(guān)系Student的主鍵,StudentNO是關(guān)系CourseGrade相對(duì)于關(guān)系Student的外鍵(關(guān)系CourseGrade的主鍵是StudentID和Course的組合);關(guān)系Student和關(guān)系CourseGrade是父表和子表的一對(duì)多表間關(guān)系,關(guān)聯(lián)字段在關(guān)系Student和關(guān)系CourseGrade中分別是StudentID和StudentNO,同時(shí)也是等值連接運(yùn)算中的連接屬性。第十三頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算由此可見,在一對(duì)多表間關(guān)系的基礎(chǔ)上,將關(guān)聯(lián)字段作為連接屬性可以進(jìn)行等值連接運(yùn)算,從而將父表與子表中的數(shù)據(jù)有機(jī)地聯(lián)系在一起。在上述等值連接運(yùn)算的結(jié)果關(guān)系中,學(xué)生姓名(Name)與課程成績(jī)(Grade)的匹配正是通過(guò)等值連接運(yùn)算得到的。第十四頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算等值連接和笛卡兒積的比較第十五頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算若在等值連接的結(jié)果關(guān)系中去掉重復(fù)的屬性,或者說(shuō),連接屬性在結(jié)果關(guān)系中只出現(xiàn)一次,則此連接稱為自然連接。第十六頁(yè),共八十四頁(yè),2022年,8月28日5.1.2專門的關(guān)系運(yùn)算通過(guò)4.3.3和4.3.4兩節(jié)的介紹,我們已經(jīng)知道:在關(guān)系數(shù)據(jù)庫(kù)中,為了減少數(shù)據(jù)冗余,業(yè)務(wù)數(shù)據(jù)是分散地存儲(chǔ)在多個(gè)二維表中的,每個(gè)二維表具有相對(duì)的獨(dú)立性。但二維表之間又存在著相互聯(lián)系,二維表之間的聯(lián)系主要是指父表與子表之間的一對(duì)多聯(lián)系——通過(guò)關(guān)聯(lián)字段將父表與子表中的數(shù)據(jù)聯(lián)系起來(lái)。連接運(yùn)算就具體實(shí)現(xiàn)了相關(guān)表中的數(shù)據(jù)聯(lián)系。第十七頁(yè),共八十四頁(yè),2022年,8月28日5.1.3關(guān)系運(yùn)算的總結(jié)關(guān)系運(yùn)算是對(duì)關(guān)系進(jìn)行的閉合運(yùn)算,因此,運(yùn)算對(duì)象是關(guān)系,并且運(yùn)算的結(jié)果仍為關(guān)系。并、差、交、笛卡兒積為二元關(guān)系運(yùn)算,即是對(duì)兩個(gè)關(guān)系進(jìn)行的運(yùn)算,并且并、差、交運(yùn)算要求兩個(gè)關(guān)系的對(duì)應(yīng)屬性有相同的含義和數(shù)據(jù)類型。選擇、投影為一元關(guān)系運(yùn)算,即對(duì)單個(gè)關(guān)系進(jìn)行的運(yùn)算;選擇運(yùn)算是從行的角度進(jìn)行的運(yùn)算,投影運(yùn)算是從列的角度進(jìn)行的運(yùn)算。連接為二元關(guān)系運(yùn)算,其中的兩個(gè)關(guān)系是通過(guò)連接屬性完成運(yùn)算的,且連接屬性必須有相同的數(shù)據(jù)類型并表示相同的含義。在關(guān)系數(shù)據(jù)庫(kù)中,等值連接運(yùn)算是最常見的連接運(yùn)算。在RDBMS中,數(shù)據(jù)查詢功能就是通過(guò)選擇、投影和等值連接運(yùn)算完成的。換句話說(shuō),從數(shù)據(jù)庫(kù)中的若干表提取所需要的數(shù)據(jù),都要借助于選擇、投影和等值連接運(yùn)算才能實(shí)現(xiàn)。在Access數(shù)據(jù)庫(kù)中,“查詢”對(duì)象中主要體現(xiàn)和包含了關(guān)系的選擇、投影和等值連接運(yùn)算。第十八頁(yè),共八十四頁(yè),2022年,8月28日5.2查詢的設(shè)計(jì)與創(chuàng)建在Access數(shù)據(jù)庫(kù)中,查詢(Query)可以從多個(gè)表中提取數(shù)據(jù)、并對(duì)數(shù)據(jù)進(jìn)行組合和分析。使用查詢,可以按照不同的準(zhǔn)則或方式對(duì)表中的數(shù)據(jù)進(jìn)行抽取,以得到用戶需要的數(shù)據(jù)和信息。第十九頁(yè),共八十四頁(yè),2022年,8月28日5.2.1查詢、關(guān)系運(yùn)算及SELECT命令在Access數(shù)據(jù)庫(kù)中,大部分查詢可以使用數(shù)據(jù)查詢語(yǔ)言(DataQueryLanguage,DQL)中的SELECT命令來(lái)實(shí)現(xiàn)數(shù)據(jù)查詢功能。SELECT命令的基本語(yǔ)法格式為 SELECT字段名1[,字段名2…] FROM表名 [WHERE條件表達(dá)式] [GROUPBY字段列表] [ODRDEBY字段名ASC|DESC]關(guān)系的選擇、投影和等值連接運(yùn)算都可以通過(guò)SELECT命令來(lái)體現(xiàn)和實(shí)現(xiàn)。第二十頁(yè),共八十四頁(yè),2022年,8月28日5.2.1查詢、關(guān)系運(yùn)算及SELECT命令選擇運(yùn)算σSex=“女”(Student)={t|t∈Student?t.Sex=“女”}可以使用如下SELECT命令來(lái)實(shí)現(xiàn)SELECTStudentID,Name,Sex,Birthday,ScoreFROMStudentWHERESex=“女”

投影運(yùn)算ΠStudentID,Name,Sex(Student)可以使用如下SELECT命令來(lái)實(shí)現(xiàn)SELECTStudentID,Name,SexFROMStudent多數(shù)情況下,一個(gè)查詢對(duì)象對(duì)應(yīng)著一個(gè)SELECT命令第二十一頁(yè),共八十四頁(yè),2022年,8月28日5.2.2查詢的視圖在Access數(shù)據(jù)庫(kù)中,查詢對(duì)象有五種視圖。這五種視圖及其作用分別如下:1.設(shè)計(jì)視圖:用于創(chuàng)建新的查詢對(duì)象,或者修改已有的查詢對(duì)象;2.?dāng)?shù)據(jù)表視圖:可以以二維表的形式顯示查詢結(jié)果;3.SQL視圖:用于查看查詢對(duì)象所對(duì)應(yīng)的SELECT命令,該命令屬于SQL語(yǔ)句;4.?dāng)?shù)據(jù)透視表視圖:以表格形式對(duì)查詢結(jié)果進(jìn)行進(jìn)一步的多維分析;5.?dāng)?shù)據(jù)透視圖視圖:以圖形方式顯示、對(duì)比查詢結(jié)果。第二十二頁(yè),共八十四頁(yè),2022年,8月28日5.2.2查詢的視圖查詢的設(shè)計(jì)視圖查詢的含義是:從“供應(yīng)商”和“產(chǎn)品”表中查詢單價(jià)在10與20之間(包括10和20)的產(chǎn)品信息,并檢索出其中的公司名稱、產(chǎn)品名稱、單價(jià)等三個(gè)字段上的數(shù)據(jù),而且將查詢結(jié)果按照“公司名稱”的降序排列。第二十三頁(yè),共八十四頁(yè),2022年,8月28日5.2.3在設(shè)計(jì)視圖中創(chuàng)建查詢?cè)贏ccess數(shù)據(jù)庫(kù)中,創(chuàng)建查詢有兩種方法:1.在設(shè)計(jì)視圖中創(chuàng)建查詢;2.使用向?qū)?chuàng)建查詢。其中,“在設(shè)計(jì)視圖中創(chuàng)建查詢”的方法最為靈活、有效和實(shí)用,本章將詳細(xì)介紹?!揪毩?xí)5-1(P85)】查詢單價(jià)在10元和20元之間(包括10元和20元)的產(chǎn)品數(shù)據(jù),要求在查詢結(jié)果中列出每個(gè)產(chǎn)品的供應(yīng)商的公司名稱以及相應(yīng)的產(chǎn)品名稱,并將查詢結(jié)果按照公司名稱的降序排列。第二十四頁(yè),共八十四頁(yè),2022年,8月28日5.2.3在設(shè)計(jì)視圖中創(chuàng)建查詢“羅斯文”示例數(shù)據(jù)庫(kù)中的表間關(guān)系及對(duì)應(yīng)的關(guān)聯(lián)字段父表子表關(guān)聯(lián)字段表間關(guān)系類型父表子表供應(yīng)商產(chǎn)品供應(yīng)商ID供應(yīng)商ID一對(duì)多類別產(chǎn)品類別ID類別ID一對(duì)多客戶訂單客戶ID客戶ID一對(duì)多雇員訂單雇員ID雇員ID一對(duì)多運(yùn)貨商訂單運(yùn)貨商ID運(yùn)貨商一對(duì)多訂單訂單明細(xì)訂單ID訂單ID一對(duì)多產(chǎn)品訂單明細(xì)產(chǎn)品ID產(chǎn)品ID一對(duì)多第二十五頁(yè),共八十四頁(yè),2022年,8月28日5.2.3在設(shè)計(jì)視圖中創(chuàng)建查詢SELECT供應(yīng)商.公司名稱,產(chǎn)品.產(chǎn)品名稱,產(chǎn)品.單價(jià)③

FROM供應(yīng)商INNERJOIN產(chǎn)品ON供應(yīng)商.供應(yīng)商ID=產(chǎn)品.供應(yīng)商ID①WHERE(((產(chǎn)品.單價(jià))>=10And(產(chǎn)品.單價(jià))<=20))②ORDERBY供應(yīng)商.公司名稱DESC;④第二十六頁(yè),共八十四頁(yè),2022年,8月28日5.2.3在設(shè)計(jì)視圖中創(chuàng)建查詢第二十七頁(yè),共八十四頁(yè),2022年,8月28日5.2.4在查詢中使用條件來(lái)檢索特定記錄

條件是查詢中用來(lái)識(shí)別所需特定記錄的限制準(zhǔn)則。使用查詢條件,可以從數(shù)據(jù)來(lái)源中檢索出具有指定特征的記錄。在查詢的設(shè)計(jì)視圖中指定條件,就是在設(shè)計(jì)網(wǎng)格中某字段對(duì)應(yīng)的“條件”單元格中輸入相應(yīng)的表達(dá)式,表達(dá)式描述了所查詢的記錄在該字段上的取值具有什么樣的特征。查詢條件中的表達(dá)式可以是常量、變量、運(yùn)算符、字段名和函數(shù)等元素按照一定規(guī)則的組合,代表著一定的準(zhǔn)則。第二十八頁(yè),共八十四頁(yè),2022年,8月28日5.2.4在查詢中使用條件來(lái)檢索特定記錄

在設(shè)計(jì)視圖中創(chuàng)建查詢條件的常見辦法有:1.檢索字段值為指定常量。例如,如果只查詢“產(chǎn)品名稱”為“鴨肉”的產(chǎn)品記錄,只需要在“產(chǎn)品名稱”字段下方對(duì)應(yīng)的“條件”單元格中輸入“鴨肉”即可。2.檢索字段值介于指定值之間的記錄,即通過(guò)使用Between...And運(yùn)算符或比較運(yùn)算符(=、<、>、<>、<=和>=)來(lái)創(chuàng)建條件,具體例子如表5-2-2所示。表5-2-2字段值介于指定值之間的查詢條件表達(dá)式含義>234大于234的數(shù)<>10不等于10的數(shù)Between1And101到10的數(shù)值(包括1和10)Between#1996-1-1#And#1996-12-31#日期由1996-1-1到1996-12-31第二十九頁(yè),共八十四頁(yè),2022年,8月28日5.2.4在查詢中使用條件來(lái)檢索特定記錄

3.使用通配符和Like運(yùn)算符檢索部分或完全匹配的內(nèi)容。所謂通配符(WildcardCharacter),就是可用于替代一個(gè)或多個(gè)字符的特殊鍵盤字符。常見的通配符如下表所示。字符用法示例*代表任意數(shù)目的任意字符,包括空格wh*可以找到what、white和why?代表任何單個(gè)字符b?ll可以找到ball、bell和bill#代表任何單個(gè)數(shù)字字符1#3可以找到103、113、123[]與方括號(hào)內(nèi)任何單個(gè)字符匹配b[ae]ll可以找到ball和bell但找不到bill!匹配任何不在方括號(hào)之內(nèi)的字符b[!ae]ll可以找到bill和bull但找不到ball或bell_與范圍內(nèi)的任何一個(gè)字符匹配。必須按照ASCII碼以遞增次序來(lái)指定區(qū)域b[a-c]d可以找到bad、bbd和bcd例如,為了查找“產(chǎn)品名稱”字段包括“X…X魚”的產(chǎn)品記錄,則可以在該字段對(duì)應(yīng)的“條件”單元格中輸入Like“*魚”,這樣就可能找出“產(chǎn)品名稱”為“雪魚”、“黃魚”、“金槍魚”的產(chǎn)品記錄;而如果在“條件”單元格中輸入Like“?魚”,則只可能找出“產(chǎn)品名稱”為“雪魚”、“黃魚”的產(chǎn)品記錄,而找不出“產(chǎn)品名稱”為“金槍魚”的產(chǎn)品記錄。第三十頁(yè),共八十四頁(yè),2022年,8月28日5.2.4在查詢中使用條件來(lái)檢索特定記錄

4.檢索指定值范圍以外的記錄。例如,可以在“客戶ID”字段對(duì)應(yīng)的“條件”單元格中輸入NotLike“A*”,以查找“客戶ID”不是以字母A開頭的客戶記錄。又例如,在“單價(jià)”字段對(duì)應(yīng)的“條件”單元格輸入Not10(此條件等價(jià)于<>10),以查找“單價(jià)”不為10的產(chǎn)品記錄。5.用In運(yùn)算符檢索包括值列表中一個(gè)值的記錄。例如,在“供應(yīng)商”表中查找北京、上?;蛏蜿?yáng)等城市的供應(yīng)商記錄,可以在“城市”字段對(duì)應(yīng)的“條件”單元格中輸入下列表達(dá)式:In("北京","上海","沈陽(yáng)")。第三十一頁(yè),共八十四頁(yè),2022年,8月28日5.2.4在查詢中使用條件來(lái)檢索特定記錄

6.構(gòu)造復(fù)合的條件。

當(dāng)需要檢索必須同時(shí)滿足多個(gè)條件的數(shù)據(jù)時(shí),可以使用And邏輯運(yùn)算符將這些條件連接起來(lái)。例如,為了表示“單價(jià)在10元和20元之間(包括10元和20元)”的條件,既可以在“單價(jià)”字段對(duì)應(yīng)的“條件”單元格中輸入表達(dá)式“Between10And20”,也可以輸入表達(dá)式“>=10And<=20”。當(dāng)需要檢索只需符合多個(gè)條件之一的數(shù)據(jù)時(shí),則可以使用Or邏輯運(yùn)算符將這些條件連接起來(lái)。例如,在“產(chǎn)品名稱”字段對(duì)應(yīng)的“條件”單元格中輸入表達(dá)式:"鴨肉"Or"雞肉",則表示檢索“產(chǎn)品名稱”為“鴨肉”或“雞肉”的產(chǎn)品記錄。第三十二頁(yè),共八十四頁(yè),2022年,8月28日5.2.4在查詢中使用條件來(lái)檢索特定記錄

6.構(gòu)造復(fù)合的條件。

在相同字段或不同字段對(duì)應(yīng)的“條件”或“或”單元格中輸入表達(dá)式,也可以構(gòu)造出復(fù)合的條件。第三十三頁(yè),共八十四頁(yè),2022年,8月28日5.2.4在查詢中使用條件來(lái)檢索特定記錄

6.構(gòu)造復(fù)合的條件。

((產(chǎn)品IDBetween1And10)AND(單價(jià)>30))Or((產(chǎn)品IDBetween20And30)AND(單價(jià)<10))第三十四頁(yè),共八十四頁(yè),2022年,8月28日5.3選擇查詢?cè)贏ccess數(shù)據(jù)庫(kù)中,根據(jù)對(duì)數(shù)據(jù)來(lái)源的操作方式以及對(duì)查詢結(jié)果組織形式的不同,可以將查詢分為選擇查詢、交叉表查詢、操作查詢、參數(shù)查詢和SQL查詢五大類。本節(jié)首先介紹選擇查詢。在Access數(shù)據(jù)庫(kù)中,選擇查詢是最常見的查詢類型,它從一個(gè)或多個(gè)表中檢索數(shù)據(jù),并且以二維表的形式顯示查詢結(jié)果。【練習(xí)5-1】中所創(chuàng)建的查詢就是一個(gè)選擇查詢,該查詢從“供應(yīng)商”和“產(chǎn)品”表中檢索有關(guān)供應(yīng)商的公司名稱、產(chǎn)品名稱和單價(jià)等產(chǎn)品數(shù)據(jù),并且這些數(shù)據(jù)都直接來(lái)自于相關(guān)表中的對(duì)應(yīng)字段。此外,在Access查詢中,還可以利用Access內(nèi)置函數(shù)從字段數(shù)據(jù)中進(jìn)一步提取信息。第三十五頁(yè),共八十四頁(yè),2022年,8月28日5.3.1利用Access內(nèi)置函數(shù)從字段數(shù)據(jù)中提取信息根據(jù)“出生日期”或“身份證號(hào)碼”推算雇員的“年齡”;將雇員的“姓氏”和“名字”組合成“姓名”。雇員ID身份證號(hào)碼姓氏名字頭銜尊稱出生日期雇用日期上級(jí)1100201196812081122張穎銷售代表女士1968-12-81992-5-122201234196202192189王偉副總裁(銷售)博士1962-2-191992-8-14351012719730830892X李芳銷售代表女士1973-8-301992-4-124340123196809191223鄭建杰銷售代表先生1968-9-191993-5-325623452196503042312趙軍銷售經(jīng)理先生1965-3-41993-10-172【練習(xí)5-2(P92)】“雇員”表第三十六頁(yè),共八十四頁(yè),2022年,8月28日5.3.1利用Access內(nèi)置函數(shù)從字段數(shù)據(jù)中提取信息第三十七頁(yè),共八十四頁(yè),2022年,8月28日5.3.1利用Access內(nèi)置函數(shù)從字段數(shù)據(jù)中提取信息在一個(gè)具體的RDBMS產(chǎn)品中,大都提供了專門的內(nèi)置函數(shù)和運(yùn)算符,利用這些內(nèi)置函數(shù)和運(yùn)算符可以對(duì)表中的數(shù)據(jù)進(jìn)行專門的處理,以便從數(shù)據(jù)中提取更細(xì)的或特定的數(shù)據(jù)。例如,通過(guò)如下形式的表達(dá)式"第"&DatePart("q",[訂購(gòu)日期])&"季度“可以得到類似于“第1季度”、“第2季度”、“第3季度”和“第4季度”這樣的文本串?dāng)?shù)據(jù)。根據(jù)所處理數(shù)據(jù)的類型不同,可以將Access內(nèi)置函數(shù)劃分為算術(shù)函數(shù)、文本函數(shù)、日期/時(shí)間函數(shù)等。每種函數(shù)只能處理特定類型的數(shù)據(jù)。第三十八頁(yè),共八十四頁(yè),2022年,8月28日5.3.1利用Access內(nèi)置函數(shù)從字段數(shù)據(jù)中提取信息一些常用的Access內(nèi)置函數(shù)及其相關(guān)用法函數(shù)類型函數(shù)形式用法說(shuō)明算術(shù)函數(shù)Abs(number_exp)返回?cái)?shù)值表達(dá)式number_exp值的絕對(duì)值。Int(number_exp)返回將數(shù)值表達(dá)式number_exp值向下取整到最接近的整數(shù),即不大于數(shù)值表達(dá)式值的最大整數(shù)。Sqr(number_exp)返回?cái)?shù)值表達(dá)式number_exp值的平方根。Sgn(number_exp)返回?cái)?shù)值表達(dá)式number_exp值的符號(hào)值。即當(dāng)數(shù)值表達(dá)式的值大于0時(shí),返回值為1;當(dāng)數(shù)值表達(dá)式的值等于0時(shí),返回值為0;當(dāng)數(shù)值表達(dá)式的值小于0時(shí),返回值為-1。第三十九頁(yè),共八十四頁(yè),2022年,8月28日5.3.1利用Access內(nèi)置函數(shù)從字段數(shù)據(jù)中提取信息文本函數(shù)Left(text,num_chars)返回文本串text中的第一個(gè)或前幾個(gè)字符。例如,Left("database",4)的返回值為"data"。Right(text,num_chars)返回文本串text中最后一個(gè)或多個(gè)字符。例如,Right("數(shù)據(jù)庫(kù)管理系統(tǒng)",2)的返回值為"系統(tǒng)"。注意:一個(gè)漢字相當(dāng)于一個(gè)字符。Mid(text,num_chars_1,num_chars_2)返回文本串text中從第num_chars_1開始的連續(xù)的num_chars_2個(gè)字符。例如,Mid("DatabaseManagementSystem",10,10)的返回值為"Management"。注意:一個(gè)空格也算一個(gè)字符。Trim(text)除了中間的空格外,清除文本串兩端的所有空格。例如,Trim("RDBMSisuseful!")的返回值為"RDBMSisuseful!"。第四十頁(yè),共八十四頁(yè),2022年,8月28日5.3.1利用Access內(nèi)置函數(shù)從字段數(shù)據(jù)中提取信息日期/時(shí)間函數(shù)Day(date)返回日期型數(shù)據(jù)date的號(hào)數(shù),表示給定日期date是一個(gè)月當(dāng)中的哪一天。Month(date)返回日期型數(shù)據(jù)date的月數(shù),表示給定日期date是一年當(dāng)中的哪個(gè)月。Year(date)返回日期型數(shù)據(jù)date的年數(shù),表示給定日期date是哪一年。DatePart(interval,date)返回日期型數(shù)據(jù)date的對(duì)應(yīng)數(shù)值。參數(shù)interval是要返回的日期部分的縮寫,有效的縮寫示例為:"yyyy"表示四位數(shù)字格式的年份,"q"表示季度,"m"表示月份。例如,DatePart("yyyy",#2008-8-8#)返回2008(相當(dāng)于Year(#2008-8-8#)),DatePart("q",#2008-8-8#)返回3,DatePart("m",#2008-8-8#)返回8(相當(dāng)于Month(#2008-8-8#))。第四十一頁(yè),共八十四頁(yè),2022年,8月28日5.3.2基于記錄分組的選擇查詢?cè)趯?duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行分析時(shí),有時(shí)需要依據(jù)一定的標(biāo)準(zhǔn)將有關(guān)數(shù)據(jù)(記錄)進(jìn)行分組,并在此基礎(chǔ)上對(duì)記錄作總計(jì)、計(jì)數(shù)、平均值以及其他類型的聚合計(jì)算。例如,統(tǒng)計(jì)每個(gè)班的學(xué)生數(shù),就可以將同一個(gè)班的學(xué)生記錄歸入一組,然后對(duì)同一組中的學(xué)號(hào)進(jìn)行計(jì)數(shù),即可得到每個(gè)班的學(xué)生數(shù)。又例如,計(jì)算并對(duì)比每個(gè)季度的銷售額,就可以根據(jù)交易時(shí)間將同一季度的交易記錄歸入同一組并計(jì)算每筆交易的銷售額,然后將同一季度中每筆交易的銷售額加起來(lái),就可以得到該季度的銷售額。Access數(shù)據(jù)庫(kù)中的選擇查詢就可以實(shí)現(xiàn)這種基于記錄分組的聚合計(jì)算。第四十二頁(yè),共八十四頁(yè),2022年,8月28日5.3.2基于記錄分組的選擇查詢【練習(xí)5-3(P95)】創(chuàng)建選擇查詢,統(tǒng)計(jì)每個(gè)供應(yīng)商提供的產(chǎn)品種類數(shù),并顯示供應(yīng)商的公司名稱和對(duì)應(yīng)的產(chǎn)品種類數(shù)?!爱a(chǎn)品”表產(chǎn)品ID產(chǎn)品名稱供應(yīng)商ID類別ID單位數(shù)量單價(jià)庫(kù)存量訂購(gòu)量再訂購(gòu)量1蘋果汁11每箱24瓶¥18.00390102牛奶11每箱24瓶¥19.001740253蕃茄醬12每箱12瓶¥10.001370254鹽22每箱12瓶¥22.0053005麻油22每箱12瓶¥21.350006醬油32每箱12瓶¥25.001200257海鮮粉37每箱30盒¥30.00150108胡椒粉32每箱30盒¥40.00600第四十三頁(yè),共八十四頁(yè),2022年,8月28日5.3.2基于記錄分組的選擇查詢SELECT供應(yīng)商.公司名稱,Count(產(chǎn)品.產(chǎn)品ID)AS產(chǎn)品ID之計(jì)數(shù)FROM供應(yīng)商INNERJOIN產(chǎn)品ON供應(yīng)商.供應(yīng)商ID=產(chǎn)品.供應(yīng)商IDGROUPBY供應(yīng)商.公司名稱;第四十四頁(yè),共八十四頁(yè),2022年,8月28日5.3.2基于記錄分組的選擇查詢基于“分組”的聚合函數(shù)和其他選項(xiàng)選定若要計(jì)算使用下列字段數(shù)據(jù)類型總計(jì)字段值的總和數(shù)字、日期/時(shí)間、貨幣和自動(dòng)編號(hào)平均值字段值的平均值數(shù)字、日期/時(shí)間、貨幣和自動(dòng)編號(hào)最小值字段值的最小值文本、數(shù)字、日期/時(shí)間、貨幣和自動(dòng)編號(hào)最大值字段值的最大值文本、數(shù)字、日期/時(shí)間、貨幣和自動(dòng)編號(hào)計(jì)數(shù)字段值的個(gè)數(shù)文本、備注、數(shù)字、日期/時(shí)間、貨幣、自動(dòng)編號(hào)、是/否和OLE對(duì)象分組定義要執(zhí)行計(jì)算的分組。例如,如果要按類別計(jì)算“銷售額總計(jì)”,就對(duì)“類別名稱”字段選定“分組”第四十五頁(yè),共八十四頁(yè),2022年,8月28日5.3.2基于記錄分組的選擇查詢【練習(xí)5-4(P98)】采用記錄分組的查詢方法,對(duì)每張訂單的銷售額小計(jì)(不考慮折扣情況)進(jìn)行統(tǒng)計(jì)查詢,要求顯示訂單ID、客戶的公司名稱和每張訂單的銷售額小計(jì)。第四十六頁(yè),共八十四頁(yè),2022年,8月28日5.3.2基于記錄分組的選擇查詢第四十七頁(yè),共八十四頁(yè),2022年,8月28日5.3.2基于記錄分組的選擇查詢第四十八頁(yè),共八十四頁(yè),2022年,8月28日5.4交叉表查詢【練習(xí)5-5(P101)】根據(jù)查詢結(jié)果設(shè)計(jì)分組選擇查詢(由學(xué)生自己完成)。下圖是一個(gè)分組選擇查詢的數(shù)據(jù)表視圖,其中,“公司名稱”和“類別名稱”為分組基準(zhǔn)字段,第3列為某供應(yīng)商提供的某大類別的產(chǎn)品種類數(shù)。第四十九頁(yè),共八十四頁(yè),2022年,8月28日5.4交叉表查詢【練習(xí)5-6(P102)】創(chuàng)建查詢結(jié)果(數(shù)據(jù)表視圖)如下圖所示的交叉表查詢。第五十頁(yè),共八十四頁(yè),2022年,8月28日5.4.1創(chuàng)建交叉表查詢第五十一頁(yè),共八十四頁(yè),2022年,8月28日5.4.2多級(jí)交叉表查詢【練習(xí)5-7(P103)】建立查詢結(jié)果(數(shù)據(jù)表視圖)如上圖所示的交叉表查詢,其中的“年度”和“季度”以“訂購(gòu)日期”為標(biāo)準(zhǔn),計(jì)算銷售額時(shí)不考慮折扣情況。第五十二頁(yè),共八十四頁(yè),2022年,8月28日5.4.2多級(jí)交叉表查詢“羅斯文”示例數(shù)據(jù)庫(kù)中的表間關(guān)系及對(duì)應(yīng)的關(guān)聯(lián)字段父表子表關(guān)聯(lián)字段表間關(guān)系類型父表子表供應(yīng)商產(chǎn)品供應(yīng)商ID供應(yīng)商ID一對(duì)多類別產(chǎn)品類別ID類別ID一對(duì)多客戶訂單客戶ID客戶ID一對(duì)多雇員訂單雇員ID雇員ID一對(duì)多運(yùn)貨商訂單運(yùn)貨商ID運(yùn)貨商一對(duì)多訂單訂單明細(xì)訂單ID訂單ID一對(duì)多產(chǎn)品訂單明細(xì)產(chǎn)品ID產(chǎn)品ID一對(duì)多第五十三頁(yè),共八十四頁(yè),2022年,8月28日5.4.2多級(jí)交叉表查詢第五十四頁(yè),共八十四頁(yè),2022年,8月28日5.5操作查詢

在Access數(shù)據(jù)庫(kù)中還可以創(chuàng)建操作查詢,操作查詢能夠在一次操作中對(duì)表中的多條記錄進(jìn)行改動(dòng)或移動(dòng)。在Access數(shù)據(jù)庫(kù)中,操作查詢有生成表查詢、更新查詢、追加查詢和刪除查詢等四種類型。第五十五頁(yè),共八十四頁(yè),2022年,8月28日5.5.1生成表查詢?cè)谏杀聿樵冎?,可以利用一個(gè)或多個(gè)表中的全部或部分?jǐn)?shù)據(jù)生成新表?!揪毩?xí)5-8(P105)】利用“產(chǎn)品”表中的數(shù)據(jù),生成如表5-8所示的新表,新表中僅包含產(chǎn)品ID在10與15之間的產(chǎn)品數(shù)據(jù)。表5-8由生成表查詢生成的新表產(chǎn)品ID產(chǎn)品名稱10蟹11民眾奶酪12德國(guó)奶酪13龍蝦14沙茶15味精第五十六頁(yè),共八十四頁(yè),2022年,8月28日5.5.1生成表查詢?cè)诓藛螜谥羞x擇【查詢】|【生成表查詢】命令SELECT產(chǎn)品.產(chǎn)品ID,產(chǎn)品.產(chǎn)品名稱INTO生成表查詢創(chuàng)建的新表FROM產(chǎn)品WHERE(((產(chǎn)品.產(chǎn)品ID)Between10And15));第五十七頁(yè),共八十四頁(yè),2022年,8月28日5.5.2更新查詢?cè)诟虏樵冎?,能夠?qū)Ρ碇卸鄺l記錄在若干字段上的值同時(shí)進(jìn)行更改。【練習(xí)5-9(P107)】在“訂單”表中,將“訂購(gòu)日期”為1996-7-8的訂單的“到貨日期”更改為1996-8-4?!痉治觥吭诖烁虏樵冎校坝嗁?gòu)日期”是查詢條件的基準(zhǔn)字段,需要對(duì)哪些記錄進(jìn)行相應(yīng)的更改是根據(jù)“訂購(gòu)日期”的值判斷的;如果某訂單的“訂購(gòu)日期”為1996-7-8,則需要將其對(duì)應(yīng)的“到貨日期”更改為1996-8-4。第五十八頁(yè),共八十四頁(yè),2022年,8月28日5.5.2更新查詢?cè)诓藛螜谥羞x擇【查詢】|【更新查詢】命令UPDATE訂單SET訂單.到貨日期=#8/4/1996#WHERE(((訂單.訂購(gòu)日期)=#7/8/1996#));從嚴(yán)格意義上說(shuō),該更新查詢的SQL語(yǔ)句是數(shù)據(jù)操作語(yǔ)言當(dāng)中的一條UPDATE命令。第五十九頁(yè),共八十四頁(yè),2022年,8月28日5.5.3追加查詢利用追加查詢,可以從一個(gè)表中提取部分字段上的數(shù)據(jù)、然后向另一個(gè)表追加這些數(shù)據(jù),但這兩個(gè)表中的對(duì)應(yīng)字段應(yīng)該有相同的數(shù)據(jù)類型?!揪毩?xí)5-10(P108)】創(chuàng)建追加查詢,將“新類別”表中的數(shù)據(jù)追加到“類別”表。【分析】在“新類別”表和“類別”表中,“類別ID”、“類別名稱”和“說(shuō)明”是共有的字段,并且對(duì)應(yīng)字段的數(shù)據(jù)類型相同。另一方面,雖然“類別ID”字段在兩個(gè)表中都是主鍵,但是主鍵上的值并不沖突,所以可以將“新類別”表中的數(shù)據(jù)追加到“類別”表中。第六十頁(yè),共八十四頁(yè),2022年,8月28日5.5.3追加查詢?cè)诓藛螜谥羞x擇【查詢】|【追加查詢】命令I(lǐng)NSERTINTO類別(類別ID,類別名稱,說(shuō)明)SELECT新類別.類別ID,新類別.類別名稱,新類別.說(shuō)明FROM新類別;第六十一頁(yè),共八十四頁(yè),2022年,8月28日5.5.4刪除查詢當(dāng)表中有大量記錄需要?jiǎng)h除時(shí),可以在“數(shù)據(jù)表視圖”中使用手動(dòng)方式刪除這些記錄,但這種方法效率較低。而借助“刪除查詢”刪除指定記錄則是更為有效的方法?!揪毩?xí)5-11(P109)】創(chuàng)建刪除查詢,從“類別”表中刪除“類別ID”在9至11之間的3條記錄?!痉治觥吭诖藙h除查詢中,“類別ID”是查詢條件中的基準(zhǔn)字段,需要對(duì)哪些記錄進(jìn)行相應(yīng)的刪除操作是根據(jù)“類別ID”的值決定的——如果某條記錄在“類別ID”字段上的值在9至11之間,則需要將其從“類別”表中刪除。第六十二頁(yè),共八十四頁(yè),2022年,8月28日5.5.4刪除查詢?cè)诓藛螜谥羞x擇【查詢】|【刪除查詢】命令DELETE類別.類別IDFROM類別WHERE(((類別.類別ID)>=9And(類別.類別ID)<=11));從嚴(yán)格意義上說(shuō),該刪除查詢的SQL語(yǔ)句是數(shù)據(jù)操作語(yǔ)言當(dāng)中的一條DELETE命令。第六十三頁(yè),共八十四頁(yè),2022年,8月28日5.6參數(shù)查詢?cè)诒竟?jié)之前介紹的選擇查詢和交叉表查詢中,查詢條件是預(yù)先定義好的。一旦查詢?cè)O(shè)計(jì)好之后,查詢結(jié)果中所包含的數(shù)據(jù)就會(huì)固定下來(lái),即每次運(yùn)行查詢都會(huì)獲得相同的數(shù)據(jù)?!揪毩?xí)5-12(P110)】(由學(xué)生自己完成)創(chuàng)建選擇查詢,并以訂購(gòu)日期為基準(zhǔn)字段,查詢1996年度第四季度每個(gè)客戶的訂單情況。要求列出客戶的公司名稱、訂單ID及對(duì)應(yīng)的訂購(gòu)日期,并且將查詢結(jié)果按公司名稱的升序排列。第六十四頁(yè),共八十四頁(yè),2022年,8月28日5.6參數(shù)查詢【練習(xí)5-13(P111)】創(chuàng)建參數(shù)查詢,并以訂購(gòu)日期為基準(zhǔn)字段,查詢某一時(shí)間段內(nèi)每個(gè)客戶的訂單情況。要求列出客戶的公司名稱、訂單ID及對(duì)應(yīng)的訂購(gòu)日期,并且將查詢結(jié)果按公司名稱的升序排列。【分析】為了實(shí)現(xiàn)該查詢的要求,需要使用“客戶”和“訂單”兩個(gè)表中的數(shù)據(jù)。并且這兩個(gè)表可以通過(guò)關(guān)聯(lián)字段“客戶ID”連接在一起。此外,某一時(shí)間段是在運(yùn)行查詢時(shí)臨時(shí)指定的,為此可以設(shè)置“開始日期”與“結(jié)束日期”兩個(gè)參數(shù)。第六十五頁(yè),共八十四頁(yè),2022年,8月28日5.6參數(shù)查詢參數(shù)查詢所對(duì)應(yīng)的SELECT命令SELECT客戶.公司名稱,訂單.訂單ID,訂單.訂購(gòu)日期FROM客戶INNERJOIN訂單ON客戶.客戶ID=訂單.客戶IDWHERE(((訂單.訂購(gòu)日期)Between[開始日期]And[終止日期]))ORDERBY客戶.公司名稱;第六十六頁(yè),共八十四頁(yè),2022年,8月28日5.7SQL查詢?cè)谠O(shè)計(jì)視圖中,通過(guò)鼠標(biāo)和鍵盤的組合操作,我們能夠直觀、便捷地創(chuàng)建選擇查詢、交叉表查詢、操作查詢和參數(shù)查詢;與此同時(shí),Access會(huì)自動(dòng)地生成這些查詢對(duì)應(yīng)的SQL語(yǔ)句。但Access數(shù)據(jù)庫(kù)中,有些特殊的查詢無(wú)法在設(shè)計(jì)視圖中創(chuàng)建,只能通過(guò)在SQL視圖中直接輸入SQL語(yǔ)句來(lái)創(chuàng)建。這些只能在SQL視圖中直接輸入SQL語(yǔ)句來(lái)創(chuàng)建的查詢,稱為SQL查詢。在Access數(shù)據(jù)庫(kù)中,SQL查詢可分為以下四類:聯(lián)合查詢、子查詢、數(shù)據(jù)定義查詢和傳遞查詢。本小節(jié)只介紹前三種SQL查詢。第六十七頁(yè),共八十四頁(yè),2022年,8月28日5.7.1聯(lián)合查詢SELECT供應(yīng)商.公司名稱,供應(yīng)商.城市FROM供應(yīng)商;SELECT客戶.公司名稱,客戶.城市FROM客戶;在一個(gè)新建查詢的SQL視圖中直接輸入

SELECT供應(yīng)商.公司名稱,供應(yīng)商.城市FROM供應(yīng)商UNION

SELECT客戶.公司名稱,客戶.城市FROM客戶ORDERBY城市;第六十八頁(yè),共八十四頁(yè),2022年,8月28日5.7.2子查詢?cè)贏ccess數(shù)據(jù)庫(kù)中,可以將一個(gè)查詢的結(jié)果作為另一個(gè)查詢的輸入。其中,前一個(gè)查詢稱為子查詢,后一個(gè)查詢稱為主查詢?;蛘哒f(shuō),子查詢包含在主查詢中??梢允褂迷O(shè)計(jì)視圖創(chuàng)建主查詢,再在主查詢的設(shè)計(jì)視圖中輸入子查詢對(duì)應(yīng)的SELECT命令。通常情況下,子查詢出現(xiàn)在主查詢的條件當(dāng)中?!揪毩?xí)5-14(P113)】從“產(chǎn)品”表中,查詢單價(jià)在平均值之上的產(chǎn)品信息,要求列出“產(chǎn)品ID”、“產(chǎn)品名稱”和“單價(jià)”等產(chǎn)品信息。第六十九頁(yè),共八十四頁(yè),2022年,8月28日5.7.2子查詢利用子查詢求出單價(jià)的平均值SELECTAvg(產(chǎn)品.單價(jià))AS單價(jià)之平均值FROM產(chǎn)品第七十頁(yè),共八十四頁(yè),2022年,8月28日5.7.2子查詢?cè)谥鞑樵兊臈l件中使用子查詢SELECT產(chǎn)品.產(chǎn)品ID,產(chǎn)品.產(chǎn)品名稱,產(chǎn)品.單價(jià)FROM產(chǎn)品WHERE(產(chǎn)品.單價(jià)>(SELECTAvg(產(chǎn)品.單價(jià))AS單價(jià)之平均值FROM產(chǎn)品));需要特別注意的是,單價(jià)的平均值是一個(gè)“單獨(dú)的值”。這種情況下,子查詢必須包含“一行一列”的查詢結(jié)果,或者說(shuō),子查詢的結(jié)果必須是一個(gè)值。第七十一頁(yè),共八十四頁(yè),2022年,8月28日5.7.2子查詢【練習(xí)5-15(P114)】創(chuàng)建主查詢/子查詢,找出“華北”地區(qū)供應(yīng)商提供的所有產(chǎn)品,并列出“產(chǎn)品ID”、“供應(yīng)商ID”和“產(chǎn)品名稱”?!痉治觥渴紫?,需要從“供應(yīng)商”表中找出“華北”地區(qū)的供應(yīng)商的“供應(yīng)商ID”列表,為此可以在設(shè)計(jì)視圖中創(chuàng)建一個(gè)子查詢,進(jìn)而得到子查詢對(duì)應(yīng)的SELECT命令;然后,再?gòu)摹爱a(chǎn)品”表中找出“供應(yīng)商ID”在子查詢結(jié)果(即“供應(yīng)商ID”列表)中的產(chǎn)品記錄,即可同時(shí)找出這些產(chǎn)品的“產(chǎn)品ID”、“供應(yīng)商ID”和“產(chǎn)品名稱”。第七十二頁(yè),共八十四頁(yè),2022年,8月28日5.7.2子查詢創(chuàng)建子查詢,從“供應(yīng)商”表中找出所有“華北”地區(qū)的供應(yīng)商SELECT供應(yīng)商.供應(yīng)商IDFROM供應(yīng)商WHERE供應(yīng)商.地區(qū)="華北"子查詢的查詢結(jié)果是“多行一列”的“供應(yīng)商ID”列表

第七十三頁(yè),共八十四頁(yè),2022年,8月28日5.7.2子查詢創(chuàng)建主查詢,從“產(chǎn)品”表中找出“華北”地區(qū)供應(yīng)商提供的所有產(chǎn)品SELECT產(chǎn)品.產(chǎn)品ID,產(chǎn)品.供應(yīng)商ID,產(chǎn)品.產(chǎn)品名稱FROM產(chǎn)品WHERE產(chǎn)品.供應(yīng)商IDIn(SELECT供應(yīng)商.供應(yīng)商IDFROM供應(yīng)商WHERE供應(yīng)商.地區(qū)="華北")第七十四頁(yè),共八十四頁(yè),2022年,8月28日5.7.3數(shù)據(jù)定義查詢使用數(shù)據(jù)定義查詢,能夠創(chuàng)建、刪除、更改表,或創(chuàng)建表的索引。從本質(zhì)上說(shuō),Access數(shù)據(jù)庫(kù)中的數(shù)據(jù)定義查詢就是數(shù)據(jù)定義語(yǔ)言(DataDefinitionLanguage,DDL)當(dāng)中的數(shù)據(jù)定義語(yǔ)句。每個(gè)數(shù)據(jù)定義查詢只能由一個(gè)數(shù)據(jù)定義語(yǔ)句完成。在數(shù)據(jù)定義查詢中,可以使用以下數(shù)據(jù)定義語(yǔ)句:CREATETABLE,創(chuàng)建表。ALTERTABLE,在已有表中添加新字段或約束,也可以刪除已有字段(及該字段上的數(shù)據(jù))。DROPTABLE,從數(shù)據(jù)庫(kù)中刪除表。第七十五頁(yè),共八十四頁(yè),2022年,8月28日5.7.3數(shù)據(jù)定義查詢【練習(xí)5-16(P115)】按照以下要求,使用CREATETABLE命令創(chuàng)建“產(chǎn)品1”表。1.關(guān)系模式:產(chǎn)品1(產(chǎn)品ID、產(chǎn)品名稱、單位數(shù)量、單價(jià));2.其中“產(chǎn)品ID”為主鍵;3.字段的數(shù)據(jù)類型及字段屬性如下表所示。

“產(chǎn)品1”表中字段的數(shù)據(jù)類型及字段屬性字段名稱數(shù)據(jù)類型字段大?。ㄗ侄螌傩裕┊a(chǎn)品ID數(shù)字整型產(chǎn)品名稱文本40單位數(shù)量文本20單價(jià)貨幣CREATETABLE產(chǎn)品1(產(chǎn)品IDINTEGER,產(chǎn)品名稱TEXT(40),單位數(shù)量TEXT(20),單價(jià)CURRENCY,PRIMARYKEY(產(chǎn)品ID))

在一個(gè)新建查詢的SQL視圖中輸入上述CREATETABLE命令第七十六頁(yè),共八十四頁(yè),2022年,8月28日5.8結(jié)構(gòu)化查詢語(yǔ)言在關(guān)系型數(shù)據(jù)庫(kù)中,結(jié)構(gòu)化查詢語(yǔ)言(StructuredQueryLanguage,SQL)是用于對(duì)存放在計(jì)算機(jī)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行組織、管理和檢索的工具。盡管查詢是設(shè)計(jì)SQL的最初目的,但SQL決不僅僅是一個(gè)查詢工具,SQL可用于控制RDBMS提供給用戶的所有功能,包括:數(shù)據(jù)定義(DataDefinition):SQL可用于定義被存放數(shù)據(jù)的結(jié)構(gòu)和組織,以及數(shù)據(jù)項(xiàng)之間的關(guān)系。數(shù)據(jù)查詢/檢索(DataQuery/Retrieval):SQL能使用戶或應(yīng)用程序從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)并使用這些數(shù)據(jù)。數(shù)據(jù)操縱(DataManipulation):用戶或應(yīng)用程序通過(guò)SQL更改數(shù)據(jù)庫(kù),如增加新數(shù)據(jù),刪除舊數(shù)據(jù),修改已存入的數(shù)據(jù)等。存取控制(AccessControl):SQL可用來(lái)限制用戶檢索、增加和修改數(shù)據(jù)的權(quán)限,保護(hù)所存儲(chǔ)的數(shù)據(jù)不被非法存取。數(shù)據(jù)共享(DataSharing):SQL可用于調(diào)整數(shù)據(jù)讓并發(fā)用戶共享,以保證用戶之間彼此不受影響。數(shù)據(jù)完整性(DataIntegrity):SQL能對(duì)數(shù)據(jù)庫(kù)的完整性條件作出規(guī)定,以使數(shù)據(jù)庫(kù)中的數(shù)據(jù)不會(huì)因?yàn)樾薷奈蓙y或系統(tǒng)出錯(cuò)而被破壞。第七十七頁(yè),共八十四頁(yè),2022年,8月28日5.8結(jié)構(gòu)化查詢語(yǔ)言對(duì)前面已經(jīng)學(xué)過(guò)的SQL命令的歸納和總結(jié)RDBMS的功能SQL的分類SQL命令SQL命令的作用數(shù)據(jù)定義功能數(shù)據(jù)定義語(yǔ)言(DataDefinitionLanguage,DDL)CREATETABLE創(chuàng)建/定義表ALTERTABLE對(duì)已有表的結(jié)構(gòu)進(jìn)行修改DROPTABLE刪除已有表數(shù)據(jù)操縱功能數(shù)據(jù)操縱語(yǔ)言(DataManipulationLanguage,DML)INSERTINTO在表中插入記錄UPDATE對(duì)表中指定記錄的某字段值進(jìn)行修改DELETE從表中刪除指定記錄數(shù)據(jù)查詢功能數(shù)據(jù)查詢語(yǔ)言(DataQueryLanguage,DQL)SELECT從表中提取滿足條件的數(shù)據(jù)第七十八頁(yè),共八十四頁(yè),2022年,8月28日5.8結(jié)構(gòu)化查詢語(yǔ)言使用SQL對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢的工作原理及過(guò)程

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論