




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 查詢的創(chuàng)建和使用4.1 查詢概述4.1.1 查詢的概念u 根據(jù)給定的條件從數(shù)據(jù)庫(kù)的一個(gè)或多個(gè)表中篩選出符合條件的記錄,構(gòu)成一個(gè)數(shù)據(jù)集合,供使用者查看、更改和分析使用。u 查詢從中獲取數(shù)據(jù)的表稱為查詢的數(shù)據(jù)源。u 查詢的結(jié)果是一個(gè)動(dòng)態(tài)的數(shù)據(jù)集合,會(huì)隨著數(shù)據(jù)源的變化而變化。查詢的主要功能:1.提取數(shù)據(jù)可以從一個(gè)或多個(gè)表或查詢中重新組合、檢索出用戶需要的數(shù)據(jù)??梢詮囊粋€(gè)或多個(gè)表中選擇部分或全部字段,也可以從一個(gè)或多個(gè)表中將符合條件的記錄選取出來(lái)。2.數(shù)據(jù)更新更新操作包括添加、修改、刪除記錄。查詢的主要功能:3.實(shí)現(xiàn)計(jì)算在查詢中對(duì)相關(guān)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、計(jì)算,還可以建立新的字段來(lái)保存計(jì)算的結(jié)果,這樣
2、可以簡(jiǎn)化處理工作,用戶不必每次都在原始數(shù)據(jù)上進(jìn)行檢索,從而提高了整個(gè)數(shù)據(jù)庫(kù)的性能。4.產(chǎn)生新的表并可作為其他對(duì)象的數(shù)據(jù)源可以建立一個(gè)新表來(lái)保存查詢的結(jié)果。查詢的結(jié)果還可作為窗體、報(bào)表等對(duì)象的數(shù)據(jù)源。4.1.2 查詢的類型1.選擇查詢最常用、最基本的一種查詢。它可以根據(jù)用戶提供的條件,從一個(gè)或多個(gè)表中檢索數(shù)據(jù),并且在數(shù)據(jù)表中顯示結(jié)果。2.參數(shù)查詢是一種交互式查詢,在建立查詢時(shí)為用戶留有動(dòng)態(tài)參數(shù)接口。在執(zhí)行參數(shù)查詢時(shí)會(huì)顯示一個(gè)對(duì)話框,提示用戶根據(jù)需要輸入查詢條件,然后再檢索相應(yīng)的記錄。參數(shù)查詢具有很強(qiáng)的靈活性。3.交叉表查詢可以計(jì)算并重新組織數(shù)據(jù)的結(jié)構(gòu),更加方便地分析數(shù)據(jù)。交叉表查詢可以計(jì)算數(shù)據(jù)的
3、平均值、總計(jì)、最大值、最小值或其他類型的總和。4.1.2 查詢的類型4.操作查詢操作查詢用于添加、更改或刪除數(shù)據(jù)。操作查詢有以下4種類型:u刪除查詢:刪除查詢可以從一個(gè)或多個(gè)表中刪除一組記錄。u追加查詢:追加查詢可將一組記錄添加到一個(gè)或多個(gè)表的尾部。運(yùn)行追加查詢的結(jié)果是向相關(guān)表中自動(dòng)添加記錄,增加表的記錄數(shù)。u更新查詢:更新查詢可根據(jù)指定條件對(duì)一個(gè)或多個(gè)表中的記錄進(jìn)行更改。u生成表查詢:生成表查詢是利用一個(gè)或多個(gè)表中的全部或部分?jǐn)?shù)據(jù)創(chuàng)建新表。4.1.2 查詢的類型5.SQL查詢SQL是一種結(jié)構(gòu)化查詢語(yǔ)言,是數(shù)據(jù)庫(kù)操作的工業(yè)化標(biāo)準(zhǔn)語(yǔ)言,所有的數(shù)據(jù)庫(kù)管理系統(tǒng)都支持這種語(yǔ)言。SQL查詢就是使用SQL
4、語(yǔ)句創(chuàng)建的查詢。4.1.3 查詢視圖1.設(shè)計(jì)視圖設(shè)計(jì)視圖用于對(duì)查詢?cè)O(shè)計(jì)進(jìn)行編輯,通過(guò)設(shè)計(jì)視圖可以創(chuàng)建SQL之外的各種類型查詢。2.數(shù)據(jù)表視圖數(shù)據(jù)表視圖用于查看查詢運(yùn)行的結(jié)果,是查詢的數(shù)據(jù)瀏覽器。3.SQL視圖SQL視圖是查看和編輯SQL語(yǔ)句的窗口,可以查看用設(shè)計(jì)視圖創(chuàng)建的查詢所產(chǎn)生的SQL語(yǔ)句,也可以對(duì)SQL語(yǔ)句進(jìn)行編輯和修改。4.1.3 查詢視圖4.數(shù)據(jù)透視表和數(shù)據(jù)透視圖視圖在數(shù)據(jù)透視表和數(shù)據(jù)透視圖視圖中,可以根據(jù)需要生成數(shù)據(jù)透視表和數(shù)據(jù)透視圖,從而對(duì)數(shù)據(jù)進(jìn)行分析,得到直觀的分析結(jié)果。4.2 選擇查詢的創(chuàng)建選擇查詢的概念:根據(jù)用戶提供的條件,從一個(gè)或多個(gè)表中檢索數(shù)據(jù),并且在數(shù)據(jù)表中顯示結(jié)果。
5、1.建立單表查詢【例4-1】查詢學(xué)生的基本信息,要求顯示學(xué)生的學(xué)號(hào)、姓名、性別、出生日期和院系等信息,所建查詢命名為“學(xué)生基本信息查詢”。4.2.1 使用簡(jiǎn)單查詢向?qū)?.建立多表查詢當(dāng)所需要查詢的信息來(lái)自兩個(gè)或兩個(gè)以上的表或查詢時(shí)就需要建立多表查詢。建立多表查詢的各個(gè)表必須要有關(guān)聯(lián)字段,并且事先應(yīng)通過(guò)這些關(guān)聯(lián)字段建立了表間關(guān)系?!纠?-2】查詢學(xué)生的課程成績(jī),要求顯示“學(xué)號(hào)”、“姓名”、“課程號(hào)”、“課程名稱”和“成績(jī)” 。4. 2.2 使用查詢?cè)O(shè)計(jì)視圖u 打開(kāi)查詢?cè)O(shè)計(jì)視圖的方法u 查詢?cè)O(shè)計(jì)視圖的結(jié)構(gòu)【例4-3】查詢?cè)合禐椤靶畔W(xué)院”的學(xué)生信息,要求顯示“學(xué)號(hào)”、“姓名”、“出生日期”及“籍貫
6、”?!纠?-4】查詢選修了“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程的學(xué)生信息,要求顯示“學(xué)號(hào)”、“姓名”、“院系”及“課程名稱”和“成績(jī)”,并按成績(jī)降序顯示。4.2.3 查詢條件u打開(kāi)表達(dá)式生成器的方法u表達(dá)式生成器的結(jié)構(gòu)表達(dá)式就是運(yùn)算符、常量、函數(shù)和字段名稱、控件和屬性的任意組合,計(jì)算結(jié)果為單個(gè)值。1.常量(1)數(shù)字型常量:如分?jǐn)?shù)“89”、“90”等。(2)文本型常量:如“信息學(xué)院”、“物流學(xué)院”等,可使用“*”和“?”通配符。(3)日期型常量:如出生日期#1992-7-1#。(4)是否型常量:Yes、No、True、False。(5)空字段值:“Is Null”表示字段值為空,“Is Not Null”表示
7、字段值不為空。表達(dá)式中常用的運(yùn)算符有算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、標(biāo)識(shí)符和特殊操作符。u算術(shù)運(yùn)算符:如+、-、*、/等。u關(guān)系運(yùn)算符:如、=、=、=、。u邏輯運(yùn)算符:如AND、OR、NOT。u標(biāo)識(shí)符:通常是一個(gè)對(duì)象的名字,一般指的是字段的名字。引用字段名稱時(shí)需要用“ ”將其名稱括起來(lái)。2. 表達(dá)式中的運(yùn)算符(1)用邏輯運(yùn)算符組合條件uAnd表示當(dāng)兩個(gè)操作數(shù)的值都為T(mén)RUE時(shí),表達(dá)式的值才為T(mén)RUE。u Or表示兩個(gè)操作數(shù)的值有一個(gè)為T(mén)RUE時(shí),表達(dá)式的值就為T(mén)RUE。用Or運(yùn)算符可將條件進(jìn)行擴(kuò)展。u Not則生成操作數(shù)的相反值。(2)用關(guān)系運(yùn)算符組合條件(3)用Between運(yùn)算符組合條
8、件Between運(yùn)算符也可用于指定字段的取值范圍,范圍之間用And連接。(4)用like組合條件Like運(yùn)算符用于查找字段的部分值,格式為: Like 字符模式在所定義的字符模式中,可用“?”表示該位置可匹配任何一個(gè)字符;用“*”表示該位置可匹配零個(gè)或多個(gè)字符;用“#”表示該位置可匹配一個(gè)數(shù)字;用“ ”描述一個(gè)范圍。(5)用In組合條件In運(yùn)算符用于指定字段的一系列的值,與like不同,in運(yùn)算中不允許使用通配符。3.函數(shù)函數(shù)常用的數(shù)值函數(shù)函數(shù) 功能Abs(數(shù)值表達(dá)式)返回?cái)?shù)值表達(dá)式值的絕對(duì)值Int(數(shù)值表達(dá)式)返回?cái)?shù)值表達(dá)式值的整數(shù)部分Sqr(數(shù)值表達(dá)式)返回?cái)?shù)值表達(dá)式值的平方根Sgn(數(shù)值
9、表達(dá)式)返回?cái)?shù)值表達(dá)式值的符號(hào)值常用的文本函數(shù)函數(shù) 功能Left(字符串表達(dá)式,n)從字符串表達(dá)式左側(cè)第1個(gè)字符開(kāi)始截取n個(gè)字符Right(字符串表達(dá)式,n)從字符串表達(dá)式右側(cè)第1個(gè)字符開(kāi)始截取n個(gè)字符Len(字符串表達(dá)式)返回字符串表達(dá)式中字符的個(gè)數(shù)Mid(字符 串 表 達(dá) 式 ,n1,n2)從字符串表達(dá)式左邊n1位置開(kāi)始,截取連續(xù)n2個(gè)字符常用的日期時(shí)間函數(shù)常用的日期時(shí)間函數(shù)函數(shù) 功能Now()返回系統(tǒng)當(dāng)前的日期時(shí)間Date()返回系統(tǒng)當(dāng)前的日期Time()返回系統(tǒng)當(dāng)前的時(shí)間Day(日期表達(dá)式)返回日期中的日Month(日期表達(dá)式)返回日期中的月份Year(日期表達(dá)式)返回日期中的年份4.
10、2.4 編輯編輯查詢查詢1.增加字段2.刪除字段3.修改字段4.移動(dòng)字段5.調(diào)整設(shè)計(jì)網(wǎng)格的列寬4.3在查詢中進(jìn)行在查詢中進(jìn)行計(jì)算計(jì)算4.3.1 查詢中的計(jì)算功能u 預(yù)定義計(jì)算u 自定義計(jì)算查詢中的常用計(jì)算查詢中的常用計(jì)算計(jì)算名 功能合計(jì) 計(jì)算一組記錄中某個(gè)字段值的總和平均值 計(jì)算一組記錄中某個(gè)字段值的平均值最大值 計(jì)算一組記錄中某個(gè)字段值的最大值最小值 計(jì)算一組記錄中某個(gè)字段值的最小值計(jì)數(shù) 計(jì)算一組記錄中記錄的個(gè)數(shù)First 一組記錄中某個(gè)字段的第一個(gè)值Last 一組記錄中某個(gè)字段的最后一個(gè)值Expression 創(chuàng)建一個(gè)由表達(dá)式產(chǎn)生的計(jì)算字段Where 設(shè)定分組條件以便選擇記錄4.3.2 總
11、計(jì)總計(jì)查詢查詢總計(jì)查詢是通過(guò)對(duì)查詢?cè)O(shè)計(jì)視圖窗口中的總計(jì)行進(jìn)行設(shè)置實(shí)現(xiàn)的,用于對(duì)查詢中的全部記錄進(jìn)行總和、平均值、最大值、最小值的計(jì)算?!纠?-5】查詢?nèi)W(xué)生的入學(xué)成績(jī)情況:平均入學(xué)成績(jī)、最高成績(jī)和最低成績(jī),并定義查詢字段依次為平均分、最高分、最低分。4.3.3 分組總計(jì)查詢分組是指在查詢?cè)O(shè)計(jì)窗口中指定某一字段為分組字段,將該字段值相同的所有記錄組合在一起,并對(duì)分組進(jìn)行統(tǒng)計(jì)計(jì)算。【例4-6】查詢?nèi)8髟合祵W(xué)生的入學(xué)成績(jī)情況:即查詢各院系的平均入學(xué)成績(jī)、最高成績(jī)和最低成績(jī),定義查詢字段依次為平均分、最高分、最低分,并要求平均分保留小數(shù)點(diǎn)后1位。4.3.4 添加計(jì)算字段當(dāng)需要統(tǒng)計(jì)的數(shù)據(jù)在表中沒(méi)有相
12、應(yīng)的字段,或者用于計(jì)算的數(shù)據(jù)值來(lái)源于多個(gè)字段時(shí),應(yīng)在設(shè)計(jì)網(wǎng)格中添加一個(gè)計(jì)算字段,計(jì)算字段是指根據(jù)一個(gè)或多個(gè)表中的一個(gè)或多個(gè)字段并使用表達(dá)式建立的新字段?!纠?-7】計(jì)算所有學(xué)生的年齡,要求顯示每個(gè)學(xué)生的“學(xué)號(hào)”、“姓名”和“年齡”?!纠?-8】 查詢每個(gè)學(xué)生的獎(jiǎng)學(xué)金級(jí)別,要求顯示的字段有:“學(xué)號(hào)”、“姓名”、“院系”、“入學(xué)成績(jī)”和“獎(jiǎng)學(xué)金等級(jí)”。獎(jiǎng)學(xué)金等級(jí)的劃分標(biāo)準(zhǔn)是:入學(xué)成績(jī)=650 的為“一級(jí)” ,620= 入學(xué)成績(jī)650 的為“二級(jí)”,590=入學(xué)成績(jī)620的為“三級(jí)” ,否則沒(méi)有。iif( )函數(shù)的格式如下:iif( 條件表達(dá)式1,表達(dá)式2,表達(dá)式3)功能:首先計(jì)算條件表達(dá)式1,若條
13、件表達(dá)式1的值為真返回表達(dá)式2的值否則返回表達(dá)式3的值。4.4 其他查詢的設(shè)計(jì)4.4.1 交叉表查詢交叉表查詢以一種緊湊的、類似于電子表格的形式顯示查詢字段,并且可以計(jì)算該字段的合計(jì)或平均值等。使用交叉表查詢計(jì)算和重構(gòu)數(shù)據(jù),可以簡(jiǎn)化數(shù)據(jù)分析。1.交叉表查詢向?qū)А纠?-9】建立學(xué)生與課程成績(jī)交叉表查詢,統(tǒng)計(jì)每名學(xué)生選修課程的成績(jī)。2.設(shè)計(jì)視圖中的交叉表查詢【例4-10】利用交叉表查詢,統(tǒng)計(jì)每名學(xué)生選修課程情況。要求顯示學(xué)生“姓名”、選課數(shù)量、平均成績(jī)以及所學(xué)課程的成績(jī)。4. 4.2 參數(shù)查詢創(chuàng)建這種參數(shù)的查詢只要在查詢?cè)O(shè)計(jì)窗口中,在要定義為參數(shù)的字段的條件行中輸入用“”括起來(lái)的提示信息,在運(yùn)行查
14、詢時(shí)這些提示信息出現(xiàn)在“輸入?yún)?shù)值”輸入框的上方,然后保存查詢文件?!纠?-11】創(chuàng)建一個(gè)帶有參數(shù)的查詢,要求先輸入學(xué)生的學(xué)號(hào),之后顯示該學(xué)生的“學(xué)號(hào)”、“姓名”、“性別”、“課程名稱”及“成績(jī)”。4.4.3 操作查詢Access2010的操作查詢包括以下幾種查詢:u 生成表查詢。利用從一個(gè)或多個(gè)表獲得的數(shù)據(jù)創(chuàng)建一個(gè)新的表。 u 更新查詢。對(duì)一個(gè)或多個(gè)表中的多個(gè)記錄的某些字段的值進(jìn)行修改。u 追加查詢。為一個(gè)或多個(gè)表添加從一個(gè)或多個(gè)表中獲得的一組記錄。u 刪除查詢。對(duì)一個(gè)或多個(gè)表中滿足條件的一組記錄進(jìn)行刪除操作。1.生成表查詢【例4-12】在“新教務(wù)管理數(shù)據(jù)庫(kù)”中創(chuàng)建一個(gè)“不及格學(xué)生名單”的表
15、。要求該表中要有:“學(xué)號(hào)”、“姓名”、“性別”、“院系”、“課程名稱”和“成績(jī)”等字段?!纠?-13】將“學(xué)生”表中院系為“信息學(xué)院”的學(xué)生記錄保存到當(dāng)前數(shù)據(jù)庫(kù)名為“信息學(xué)院學(xué)生名單”的新表中。2. 更新查詢【例4-14】在“不及格學(xué)生名單”表中添加一個(gè)“補(bǔ)考日期”字段,并將“2012/10/10” 輸入到“補(bǔ)考日期”字段中。3.追加查詢【例4-15】將“學(xué)生”表中院系為物流學(xué)院的所有學(xué)生追加到“信息學(xué)院學(xué)生名單”表中。4.刪除查詢【例4-16】將“信息學(xué)院學(xué)生名單”表中院系字段為“物流學(xué)院”的所有學(xué)生刪除。4.4.4 重復(fù)項(xiàng)、不匹配項(xiàng)查詢1.查找重復(fù)項(xiàng)查詢根據(jù)“重復(fù)項(xiàng)查詢向?qū)А彼鶆?chuàng)建的查詢結(jié)
16、果可以確定在表中是否有重復(fù)的記錄,或確定記錄在表中是否共享相同的值?!纠?-17】使用重復(fù)項(xiàng)查詢向?qū)?,在“學(xué)生”表中查詢同名學(xué)生,要求顯示學(xué)生“學(xué)號(hào)”、“姓名”、“性別”和“院系”等字段。2.查找不匹配項(xiàng)查詢?cè)陉P(guān)系數(shù)據(jù)庫(kù)中,當(dāng)建立了一對(duì)多的關(guān)系后,通常在“一方”表中的每一條記錄,與“多方”表中的多條記錄相匹配。但是也有可能存在“多方”表中沒(méi)有記錄與之匹配。因此要執(zhí)行查找不匹配查詢至少需要兩個(gè)表,并且這兩個(gè)表要在同一個(gè)數(shù)據(jù)庫(kù)中?!纠?-18】利用不匹配項(xiàng)查詢,查找出沒(méi)有考試成績(jī)的學(xué)生名單,要求顯示學(xué)生“學(xué)號(hào)”、“姓名”、“性別”和“院系”等字段。 4.5 SQL查詢4.5.1 查詢與SQL視圖A
17、ccess 2010中的查詢是以SQL語(yǔ)句為基礎(chǔ)來(lái)實(shí)現(xiàn)查詢功能的,因此,Access 2010中所有的查詢都可認(rèn)為是SQL查詢。各種查詢操作,系統(tǒng)自動(dòng)地將操作命令轉(zhuǎn)換為SQL語(yǔ)句。只要單擊“SQL視圖”就可以看到系統(tǒng)所生成的SQL代碼。4.5.2 SQL簡(jiǎn)介SQL語(yǔ)言是1974年由Boyce 和Chamberlin公司提出,并首先在IBM公司研制的關(guān)系數(shù)據(jù)庫(kù)原型系統(tǒng)System R上實(shí)現(xiàn)。由于它具有功能豐富、使用靈活、語(yǔ)言簡(jiǎn)捷易學(xué)等特點(diǎn),被業(yè)界廣泛采用。經(jīng)過(guò)不斷修改、擴(kuò)充和完善,1986年被美國(guó)國(guó)家標(biāo)準(zhǔn)局批準(zhǔn)成為關(guān)系型數(shù)據(jù)庫(kù)語(yǔ)言的標(biāo)準(zhǔn)。SQL語(yǔ)言的功能包括以下4個(gè)方面:u數(shù)據(jù)定義語(yǔ)言DDL:定
18、義數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),包括定義表、視圖和索引等。u數(shù)據(jù)操縱語(yǔ)言DML:包括數(shù)據(jù)檢索和數(shù)據(jù)更新兩大操作,其中數(shù)據(jù)更新包括插入、刪除和修改操作。u數(shù)據(jù)控制語(yǔ)言:包括基本表和視圖等的授權(quán)、完整性描述以及事務(wù)開(kāi)始和結(jié)束等控制語(yǔ)句等。u嵌入式SQL語(yǔ)言:SQL語(yǔ)言既可以作為獨(dú)立的語(yǔ)言供終端用戶聯(lián)機(jī)使用,也可以作為宿主型語(yǔ)言嵌入到某種高級(jí)程序設(shè)計(jì)語(yǔ)言中使用。規(guī)定了SQL語(yǔ)言在宿主語(yǔ)言程序中的使用規(guī)則。 SQL語(yǔ)言的應(yīng)用有以下幾個(gè)方面:u在查詢“設(shè)計(jì)”視圖中創(chuàng)建查詢時(shí),Access將在后臺(tái)構(gòu)造等效的SQL語(yǔ)句。u某些查詢不能在設(shè)計(jì)網(wǎng)格中創(chuàng)建。對(duì)于傳遞查詢、數(shù)據(jù)定義查詢和聯(lián)合查詢,必須直接在 SQL 視圖中創(chuàng)建
19、 SQL 語(yǔ)句。u在Access中,某些情況下,Access會(huì)幫助用戶填入SQL語(yǔ)句。SQL語(yǔ)言的功能SQL功能 動(dòng)詞數(shù)據(jù)定義 CREATE,DROP,ALTER數(shù)據(jù)查詢 SELECT數(shù)據(jù)操縱 INSERT,UPDATE,DELETE數(shù)據(jù)控制 GRANT,REVOTE1.CREATE 語(yǔ)句創(chuàng)建表的一般格式為: CREATE TABLE ( () NOT NULL PRIMARY KEY | UNIQUE , () NOT NULL PRIMARY KEY | UNIQUE , );說(shuō)明:其中的是所要定義的基本表的名字,它可以由一個(gè)或若干個(gè)字段組成。各個(gè)字段的數(shù)據(jù)類型必須用字符表示,如字符型用C
20、HAR或TEXT,日期型用DATE,貨幣型用MONEY,備注型用MEMO,整型用INTEGER,單精度用SINGLE表示等等。 定義單個(gè)字段為主鍵時(shí),可以直接在該字段名后加上PRIMARY KEY或UNIQUE關(guān)鍵字。如果要將多個(gè)字段定義為主鍵或唯一鍵,應(yīng)使用PRIMARY KEY或UNIQUE子句?!纠?-19】使用SQL語(yǔ)句創(chuàng)建一個(gè)名為STUDENT的表,其表結(jié)構(gòu)為:學(xué)號(hào)(文本型,10字符,主鍵)、姓名(文本型,8字符,不允許為空值)、性別(文本型,1字符)、出生日期(日期/時(shí)間型)、貸款否(是/否型)、簡(jiǎn)歷(備注型)、照片(OLE對(duì)象型)。 CREATE TABLE STUDENT (學(xué)
21、號(hào)TEXT(10) PRIMARY KEY,姓名 TEXT(8) NOT NULL,性別TEXT(1),出生日期 DATE, 貸款否 LOGICAL,簡(jiǎn)歷 MEMO, 照片 OLEOBJECT );【例4-20】使用SQL語(yǔ)句創(chuàng)建一個(gè)名為COURSE表,其表結(jié)構(gòu)為:課程號(hào)(文本型,3字符,主鍵)、課程名稱(文本型,50字符)、學(xué)分(單精度型)、授課院系(文本型,50字符)。 CREATE TABLE COURSE (課程號(hào)TEXT(3) PRIMARY KEY,課程名稱 TEXT(50),學(xué)分 SINGLE,授課院系TEXT(50);【例4-21】使用SQL語(yǔ)句創(chuàng)建一個(gè)名為SC表,其表結(jié)構(gòu)為:
22、學(xué)號(hào)(文本型,10字符)、課程號(hào)(文本型,3字符)、成績(jī)(單精度型),主鍵由學(xué)號(hào)和課程號(hào)組成。同時(shí)使SC表與STUDENT表之間通過(guò)“學(xué)號(hào)”建立關(guān)系、SC表與COURSE表之間通過(guò)“課程號(hào)”字段建立關(guān)系。 CREATE TABLE SC (學(xué)號(hào) TEXT(10) REFERENCES STUDENT(學(xué)號(hào)),課程號(hào) TEXT(3) REFERENCES COURSE(課程號(hào)),成績(jī) SINGLE,PRIMARY KEY(學(xué)號(hào),課程號(hào)) );2.ALTER(1)在表中添加字段,其一般格式為: ALTER TABLE ADD ()【例4-22】 在STUDENT表中增加一個(gè)“電話號(hào)碼”字段,類型為
23、“長(zhǎng)整型”。 ALTER TABLE STUDENT ADD 電話號(hào)碼 INTEGER;(2)修改字字段的數(shù)據(jù)類型,其一般格式為: ALTER TABLE ALTER () 注意:使用該命令只能修改字段的數(shù)據(jù)類型而不能修改字段名?!纠?-23】 將STUDENT表中新增加的“電話號(hào)碼”字段修改為文本型、大小為8字符。ALTER TABLE STUDENT ALTER 電話號(hào)碼 TEXT(8);(3)刪除字段,其一般格式為: ALTER TABLE DROP 【例4-24】 在STUDENT表中將新增加的“電話號(hào)碼”字段刪除。 ALTER TABLE STUDENT DROP 電話號(hào)碼;3.DR
24、OP(1)刪除索引,其一般格式為: DROP INDEX ON ;(2)刪除表,其一般格式為: DROP TABLE ; 刪除表后,在表上定義的索引也一起被刪除。4.INSERT其一般格式為:INSERT INTO (,,) VALUES(,);說(shuō)明:該語(yǔ)句的功能是將新記錄插入到指定表中,新記錄的字段名1的值為常量1、字段名2的值為常量2,如果INTO后缺省字段名,則必須為新記錄中的每個(gè)字段都賦值,且插入的數(shù)據(jù)類型和順序要與表中定義的字段一一對(duì)應(yīng)?!纠?-25】 向STUDENT表中插入2個(gè)學(xué)生記錄。第一條記錄“學(xué)號(hào)”為“2010011123”,“姓名”為“李榮輝”,“性別”為“男”。第二條記
25、錄“學(xué)號(hào)”為“2010010148”,“姓名”為“黃娟”,“性別”為“女”,“出生日期”為“1990-5-26”,“貸款否”為“是”,其他字段為空值。INSERT INTO STUDENT(學(xué)號(hào),姓名,性別) VALUES(“2010011123”,“李榮輝”,“男”);INSERT INTO STUDENT VALUES(“2010010148”,“黃娟”,“女”,#1990-5-26#,YES,NULL,NULL);5.UPDATE其一般格式為:UPDATE SET = ,=,WHERE ;說(shuō)明:如果不帶WHERE子句,則更新表中所有的記錄。如果帶WHERE子句,則只更新表中滿足條件的記錄
26、?!纠?-26】將STUDENT表中姓名為“李榮輝”的出生日期改為“1991-5-20”。UPDATE STUDENT SET 出生日期=#1991/5/20# where姓名=“李榮輝”;【例4-27】將STUDENT表中所有女生的“貸款否”字段改為“否”。UPDATE STUDENT SET 貸款否=NO WHERE 性別=“女”;6.DELETE其一般格式為:DELETE FROM WHERE ; 說(shuō)明:如果不帶WHERE子句,則刪除表中所有的記錄,但表對(duì)象仍保留在數(shù)據(jù)庫(kù)中。如果帶WHERE子句,則只刪除表中滿足條件的記錄?!纠?-28】 刪除STUDENT表中學(xué)號(hào)為“201001112
27、3”的學(xué)生記錄。 DELETE FROM STUDENT WHERE 學(xué)號(hào)=“2010011123”;4.5.3 SQL查詢的創(chuàng)建SELECT語(yǔ)句的一般格式:SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC 說(shuō)明:根據(jù)WHERE子句的條件表達(dá)式,從FROM子句指定的基本表或查詢中找出滿足條件的記錄,再按SELECT子句中的目標(biāo)列找出元組中的屬性值形成結(jié)果表。ALL為默認(rèn)值,表示所有滿足條件的記錄,DISTINCT用于忽略重復(fù)數(shù)據(jù)的記錄,即在基本表中重復(fù)記錄只出現(xiàn)一次。GROUP子句則表示將結(jié)果按表中的某一字
28、段名(分組項(xiàng))的值進(jìn)行分組,該屬性列值相同的元組為一個(gè)組,每個(gè)組產(chǎn)生結(jié)果表中的一條記錄。GROUP 子句還可以帶HAVING短語(yǔ),表示只有滿足指定條件的組才輸出。ORDER子句將結(jié)果按表中的某一字段名(排序項(xiàng))的值升序或降序排列。1. 單表查詢(1)選擇查詢【例4-29】 從“學(xué)生”中查詢信息學(xué)院的所有學(xué)生的“學(xué)號(hào)”、“姓名”、“性別”和年齡。 SELECT 學(xué)號(hào),姓名,性別,YEAR(DATE()-YEAR(出生日期) AS 年齡 FROM 學(xué)生WHERE 院系=“信息學(xué)院”;(2)排序查詢ORDER BY子句的格式為: ORDER BY ASC|DESC【例4-30】在“成績(jī)”表中查詢80
29、90分的記錄,同一門(mén)課程按成績(jī)降序排。 SELECT * FROM 成績(jī) WHERE 成績(jī) BETWEEN 80 AND 90 ORDER BY 課程號(hào),成績(jī) DESC;TOP短語(yǔ)的格式為: TOP 或 TOP PERCENT【例4-31】 查詢“成績(jī)”表中成績(jī)排在前5名的記錄。 SELECT TOP 5 * FROM 成績(jī) ORDER BY 成績(jī) DESC;(3)分組查詢常用統(tǒng)計(jì)函數(shù)有:COUNT、AVG、SUM、MIN、MAX?!纠?-32】 統(tǒng)計(jì)“學(xué)生”表中各院系的學(xué)生人數(shù)。 SELECT 院系,COUNT(*) AS 各院系人數(shù) FROM 學(xué)生 GROUP BY 院系;【例4-33】 查詢選修了3門(mén)以上課程的學(xué)生學(xué)號(hào)。 SELEC
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度學(xué)生傷害賠償協(xié)議書(shū)(校園意外)
- 二零二五年度道路運(yùn)輸企業(yè)司機(jī)薪酬管理合同
- 2025年度物業(yè)保潔項(xiàng)目管理勞動(dòng)合同
- 二零二五年度業(yè)主委員會(huì)與物業(yè)服務(wù)社區(qū)停車(chē)管理合同
- 2025年度門(mén)面房出租與租賃合同爭(zhēng)議解決協(xié)議
- 典當(dāng)與拍賣(mài)服務(wù)作業(yè)指導(dǎo)書(shū)
- 2025年IT服務(wù)管理培訓(xùn)課件
- 二手住房出售協(xié)議
- 網(wǎng)絡(luò)直播行業(yè)主播言論免責(zé)協(xié)議
- 客戶關(guān)系管理軟件開(kāi)發(fā)外包合同書(shū)
- 第九講:信息與大數(shù)據(jù)倫理問(wèn)題-工程倫理
- 四年級(jí)美術(shù)素養(yǎng)附答案
- 2021年全國(guó)中學(xué)生天文奧林匹克競(jìng)賽預(yù)賽試題及答案
- 四年級(jí)下冊(cè)音樂(lè)教案-2.2我們美麗的祖國(guó) |接力版
- Quantum軟件培訓(xùn)手冊(cè)
- 走近人工智能
- 服裝市場(chǎng)營(yíng)銷項(xiàng)目2服裝市場(chǎng)營(yíng)銷環(huán)境分析課件
- 中國(guó)傳媒大學(xué)《當(dāng)代電視播音主持教程》課件
- 制造業(yè)信息化管理系統(tǒng)架構(gòu)規(guī)劃
- 《納米復(fù)合材料》第2章 納米復(fù)合材料概論
- 建設(shè)工程圍擋標(biāo)準(zhǔn)化管理圖集(2022年版)
評(píng)論
0/150
提交評(píng)論