數(shù)據(jù)庫(kù)原理及應(yīng)用演示文稿_第1頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用演示文稿_第2頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用演示文稿_第3頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用演示文稿_第4頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用演示文稿_第5頁(yè)
已閱讀5頁(yè),還剩46頁(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ù)庫(kù)原理及應(yīng)用演示文稿目前一頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)優(yōu)選數(shù)據(jù)庫(kù)原理及應(yīng)用Ppt2目前二頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)35.1查詢的概念與設(shè)計(jì)5.1.1查詢的概念查詢提供了對(duì)數(shù)據(jù)瀏覽、數(shù)據(jù)重組、統(tǒng)計(jì)分析、編輯修改、輸入輸出等操作。

為了減少數(shù)據(jù)的冗余,不同類別數(shù)據(jù)放到不同的表中?!安樵儭钡淖侄蝸?lái)自很多互相之間有“關(guān)系”的表,這些字段組合成一個(gè)新的數(shù)據(jù)表視圖,但它并不存儲(chǔ)任何的數(shù)據(jù)

(視圖)優(yōu)點(diǎn):1、節(jié)省空間

2、同步更新。查詢得到的是當(dāng)前表中的實(shí)際數(shù)據(jù)。

目前三頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)45.1.2查詢的種類

1、

選擇查詢

從一個(gè)或者多個(gè)表中抽取數(shù)據(jù)。最常見(jiàn)2、

交叉表查詢以行列形式(二維表格)分組匯總數(shù)據(jù)。類似于電子表格。3、

參數(shù)查詢?cè)诓閷r(shí)彈出對(duì)話框,輸入必要的參數(shù),動(dòng)態(tài)地進(jìn)行查詢。4、

操作查詢?cè)试S在一個(gè)查詢操作中更改許多表中的數(shù)據(jù)。刪除查詢、更新查詢、追加查詢和生成表查詢。5、

SQL查詢使用SQL語(yǔ)句,進(jìn)行查詢。

目前四頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)55.1.3創(chuàng)建查詢

1.查詢向?qū)?/p>

“使用向?qū)?chuàng)建查詢”,選擇表,字段??梢詮牟煌谋怼⒆侄沃猩刹樵?。

數(shù)據(jù)來(lái)源:不同的表和已有的查詢2.查詢的數(shù)據(jù)表視圖

查詢的數(shù)據(jù)表視圖看起來(lái)像表

在查詢數(shù)據(jù)表中無(wú)法加入或刪除列,而且不能修改查詢字段的字段名。這是因?yàn)橛刹樵兯傻臄?shù)據(jù)值并不是真正存在的值,而是動(dòng)態(tài)地從表對(duì)象中調(diào)來(lái)的,是表中數(shù)據(jù)的一個(gè)鏡像

可更改數(shù)據(jù)!目前五頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)65.2使用向?qū)?chuàng)建查詢使用簡(jiǎn)單查詢向?qū)?shù)據(jù)來(lái)源:已有的表和查詢目前六頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)7創(chuàng)建子查詢創(chuàng)建子查詢

統(tǒng)計(jì)與匯總分組目前七頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)85.2.3創(chuàng)建基于多表的選擇查詢創(chuàng)建交叉表查詢將多個(gè)表(查詢)中的數(shù)據(jù)集合在一起。抽取數(shù)據(jù)的方式取決于表與表之間的關(guān)系。例:學(xué)號(hào),姓名、課程名稱、分?jǐn)?shù)將一個(gè)表或一個(gè)查詢中的某些字段中的數(shù)據(jù)作為新的字段,按照另外一種方式察看數(shù)據(jù)的查詢。類似電子表格的格式中查看計(jì)算值。在行與列的交叉處可以對(duì)數(shù)據(jù)進(jìn)行各種計(jì)算,包括求和、平均值、最大、最小值、記數(shù)等。交叉表查詢向?qū)?/p>

新的輸出格式目前八頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)95.2.4交叉表查詢?cè)O(shè)計(jì)1.

選擇含有交叉表數(shù)據(jù)的一個(gè)表(或查詢)的名稱。例如:成績(jī)查詢2.

選擇在交叉表中哪些字段的值用來(lái)做行標(biāo)題。最多只能選擇三個(gè)字段。例如:姓名3.

選擇在交叉表中哪些字段的值用來(lái)做列標(biāo)題。例如:課程名4.

選擇在表中的交叉點(diǎn)計(jì)算出什么數(shù)值。例如:求平均Avg5.

為新建的查詢?nèi)∶?,并單擊“完成”按鈕。

可以改變顯示字段的屬性,如“總計(jì)

分?jǐn)?shù):分?jǐn)?shù)”字段僅僅是為了計(jì)算匯總,不要交叉表查詢目前九頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)105.2.4交叉表查詢?cè)O(shè)計(jì)如果多表,先建立多表查詢。交叉表查詢功能方便數(shù)據(jù)查看核算匯總值。目前十頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)115.3在查詢?cè)O(shè)計(jì)器中創(chuàng)建查詢5.2.1查詢?cè)O(shè)計(jì)器

表/查詢顯示窗口

顯示查詢所用到的數(shù)據(jù)來(lái)源

示例查詢?cè)O(shè)計(jì)窗口

顯示查詢中所用到的查詢字段和查詢準(zhǔn)則

目前十一頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)12示例查詢?cè)O(shè)計(jì)窗口查詢?cè)O(shè)計(jì)視圖中的工具條

進(jìn)入查詢?cè)O(shè)計(jì)視圖后,菜單、工具欄都會(huì)發(fā)生了變化。1、字段:

查詢工作表中所使用的字段名稱2、表:

該字段所屬的數(shù)據(jù)表,可以不同的表3、排序:

該字段是否排序、按什么方式排序4、顯示:

該字段是否在查詢表中顯示5、條件:

指定該字段的查詢條件,限制條件6、或:

提供多個(gè)查詢條件目前十二頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)13

查詢的3種視圖1、設(shè)計(jì)視圖2、數(shù)據(jù)表視圖3、SQL視圖

用來(lái)顯示和編輯SQL語(yǔ)句。

目前十三頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)14在查詢?cè)O(shè)計(jì)器中創(chuàng)建選擇查詢例:不及格成績(jī)查詢

目前十四頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)15

參數(shù)查詢?cè)O(shè)計(jì)

一般查詢中的準(zhǔn)則是不變的,如果希望每次查詢都要改變準(zhǔn)則參數(shù)查詢可以在運(yùn)行查詢的過(guò)程中自動(dòng)修改查詢的參數(shù)用戶在執(zhí)行參數(shù)查詢時(shí)會(huì)顯示一個(gè)輸入對(duì)話框以提示用戶輸入信息設(shè)計(jì):

當(dāng)需要對(duì)某個(gè)字段進(jìn)行參數(shù)查詢時(shí),首先切換到這個(gè)查詢的設(shè)計(jì)視圖,然后在作為參數(shù)使用的字段下的“準(zhǔn)則”單元格中,在方括號(hào)內(nèi)鍵入相應(yīng)的提示文本。例如:在分?jǐn)?shù)字段的準(zhǔn)則中輸入

“>[分?jǐn)?shù)從]And<[到]”

或者(Between[分?jǐn)?shù)從]And[到])目前十五頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)165.4查詢中的條件1、使用表達(dá)式生成器

準(zhǔn)則:在創(chuàng)建查詢時(shí)所添加的限制條件制定規(guī)則的時(shí)候,有時(shí)會(huì)用到很多函數(shù)或表中的字段名

表達(dá)式編輯框

操作符的快捷按鈕

在查詢的規(guī)則行中單擊鼠標(biāo)右鍵,在彈出的菜單中可以看到一個(gè)“生成器...”的命令

“表達(dá)式生成器”可以在ACCESS中任何需要表達(dá)式的位置上使用表達(dá)式:用運(yùn)算符連接結(jié)果為“真”,“假”-1(非零),0(零)目前十六頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)172、表達(dá)式生成器中的幾種常用符號(hào)

“+”、“-”、“*”、“/”

代表數(shù)學(xué)運(yùn)算中的“加”、“減”、“乘”、“除”四種運(yùn)算符號(hào)

“&”

符號(hào)可以使兩個(gè)表達(dá)式強(qiáng)制連接在一起

目前十七頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)18“=”、“>”、“<”、“<>”

分別表示“等于”、“大于”、“小于”、“不等于”,用來(lái)判斷條件例:

=34”

表示當(dāng)某個(gè)值等于34時(shí)才算滿足這個(gè)條件。

“<>”北京“

表示當(dāng)某個(gè)值不等于字符串“北京”

“And”、“Or”、“Not”

邏輯運(yùn)算符是用來(lái)連接上面的這些條件表達(dá)式。

如:

>100And<300”,

“<100Or>300”,“Not>100”

邏輯運(yùn)算符關(guān)系運(yùn)算符目前十八頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)19“Like”

用在對(duì)一個(gè)字符型的值進(jìn)行邏輯判斷,是否這個(gè)值滿足某種格式類型。例:Like“中國(guó)?”

則字符串“中國(guó)人”、“中國(guó)字”都滿足這個(gè)條件;

Like“中國(guó)*”則字符串“中國(guó)”、“中國(guó)人”、“中國(guó)人民銀行”這些都滿足這個(gè)條件;

Like“表?!眲t字符串“表1”、“表2”都滿足這個(gè)條件;

Like“[北京,上海,廣州]”

則只有字符串“北京”、“上?!薄ⅰ皬V州”可以滿足條件;

Like"[!北京,上海,廣州]"

則只有字符串“北京”、“上?!?、“廣州”不能滿足條件。字串模糊查詢滿足條件為真目前十九頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)203、使用準(zhǔn)則來(lái)執(zhí)行特定任務(wù)

1.檢索其中值

介于

>、<、>=、<=或

<>之間指定值的記錄通過(guò)使用

Between...And

運(yùn)算符或比較運(yùn)算符(<、>、<>、<=

>=)來(lái)識(shí)別范圍

表達(dá)式意義>80大于

80的數(shù)Between#2/2/93#And#12/1/93#日期由

2-Feb-93到

1-Dec-93<1200.45小于

1200.45的數(shù)>="Callahan"大于等于

“Callahan”

字串目前二十頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)212.檢索指定值范圍以外的記錄

使用

Not

運(yùn)算符的表達(dá)式。

例如,可以在“公司名稱”字段的“準(zhǔn)則”單元格輸入表達(dá)式

NotT*,以查找名稱不是以

T開(kāi)始的全部客戶,或在“運(yùn)貨商ID”字段輸入

Not2查找

ID不是

2的運(yùn)貨商。

3.檢索不包含

Null值的記錄輸入“NotNull”或“IsNotNull”表達(dá)式。例如,要從包含供應(yīng)商信息的表中查看有傳真號(hào)碼的供應(yīng)商列表,請(qǐng)?jiān)凇皞髡妗弊侄蔚摹皽?zhǔn)則”單元格中輸入“NotNull”或“IsNotNull”。

4.檢索不包含值的記錄輸入“IsNull”表達(dá)式。例如,要從包含供應(yīng)商信息的表中查看沒(méi)有傳真號(hào)碼的供應(yīng)商列表,請(qǐng)“傳真號(hào)碼”字段的“準(zhǔn)則”單元格輸入“IsNull”。

目前二十一頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)225.檢索包含當(dāng)前日期的記錄

當(dāng)前日期是從計(jì)算機(jī)系統(tǒng)時(shí)鐘取得的系統(tǒng)日期

Date(),括號(hào)中沒(méi)有空格。

表達(dá)式說(shuō)明BetweenDate()AndDateAdd("m",3,Date())使用

Between...And

運(yùn)算符和

DateAdd

Date

函數(shù),以顯示在某個(gè)日期之后的三個(gè)月內(nèi)所要求極其交付的訂單。<Date()-30使用Date函數(shù)以顯示30天之前的舊訂單。Year([訂購(gòu)日期])=2012使用

Year

函數(shù)以顯示

2012年的訂單。DatePart("q",[訂購(gòu)日期])=4使用

DatePart

函數(shù)以顯示第四季度的訂單。DateSerial(Year([訂購(gòu)日期]),Month([訂購(gòu)日期])+1,1)-1使用

DateSerial、Year

Month

函數(shù)以顯示每個(gè)月最后一天的訂單。Year([訂購(gòu)日期])=Year(Now())AndMonth([訂購(gòu)日期])=Month(Now())使用

Year

Month

函數(shù)和

And

運(yùn)算符以顯示當(dāng)前年、月的訂單。當(dāng)月的加班合計(jì)目前二十二頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)236.檢索包括值列表中一個(gè)值的記錄

輸入使用

In

運(yùn)算符的表達(dá)式。

例如,查找在法國(guó)、德國(guó)或日本的供應(yīng)商,在供應(yīng)商表的國(guó)家字段的“準(zhǔn)則”單元格中輸入下列表達(dá)式:

In(法國(guó),德國(guó),日本),或者:法國(guó)

Or

德國(guó)Or

日本目前二十三頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)247.抽取已有文本值的一部分使用

Left

、Right

Mid

函數(shù)。

Left(stringexpr,n)Right(stringexpr,n)Mid(stringexpr,start,n)stringexpr

參數(shù)可以是字段名(在方括號(hào)中)或文本表達(dá)式,n

是要抽取的字符數(shù),start

是要抽取的第一個(gè)字符的位置。如果

PartID中的值為表達(dá)式返回值BA-7893-R12Left([PartID],2)BABA-7893-R12Right([PartID],3)R12BA-7893-R12Mid([PartID],4,4)7893例:從學(xué)號(hào)“A10120201”中取出班級(jí)代碼目前二十四頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)253.表達(dá)式的例子目前二十五頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)265.5查詢中的計(jì)算創(chuàng)建總計(jì)字段查詢還具有計(jì)算功能

單擊查詢?cè)O(shè)計(jì)工具欄的“∑“總計(jì)按鈕,增加一個(gè)總計(jì)行:包含總和、平均值、計(jì)數(shù)、最大/最小值、標(biāo)準(zhǔn)偏差、方差等。計(jì)算能力有限目前二十六頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)275.5查詢中的計(jì)算預(yù)定義計(jì)算

選定計(jì)算

Sum字段值的總和。Avg字段的平均值。Min字段的最小值。Max字段的最大值。Count字段值的數(shù)量,不包括Null(空)值。StDev字段的標(biāo)準(zhǔn)偏差值。Var

字段的方差值。匯總計(jì)算函數(shù)目前二十七頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)28First

函數(shù),返回表中第一個(gè)記錄的字段值Last

函數(shù),返回表中最后一個(gè)記錄的字段值。

選定用于GroupBy定義要執(zhí)行計(jì)算的組。例如,如果要按類別顯示銷售額總計(jì),請(qǐng)對(duì)“類別名稱”字段選定

GroupBy。Expression創(chuàng)建表達(dá)式中包含合計(jì)函數(shù)的計(jì)算字段。通常在表達(dá)式中使用多個(gè)函數(shù)時(shí),將創(chuàng)建計(jì)算字段。Where指定不用于分組的字段準(zhǔn)則。如果選定這個(gè)字段選項(xiàng),MicrosoftAccess將清除“顯示”復(fù)選框,隱藏查詢結(jié)果中的這個(gè)字段。目前二十八頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)29注意事項(xiàng):

匯總函數(shù)是否有效取決與數(shù)據(jù)類型。例如文本字段不能”求和“、”平均“等,但可以”計(jì)數(shù)“。匯總函數(shù)不能對(duì)空的值(NULL)進(jìn)行運(yùn)算。分組GroupBy

匯總計(jì)算經(jīng)常要進(jìn)行分組操作。對(duì)某個(gè)字段分組,相同的值進(jìn)行統(tǒng)計(jì)目前二十九頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)305.5.3創(chuàng)建計(jì)算字段用一個(gè)或多個(gè)字段的值,進(jìn)行數(shù)值、日期和文字的計(jì)算創(chuàng)建計(jì)算字段的方法:將表達(dá)式直接輸入到“字段”格中例如:工資表中的加班合計(jì):加班合計(jì):Sum(([加班工資表]![加班時(shí)數(shù)]*[加班工資表]![單位工時(shí)報(bào)酬]))

按月份的加班合計(jì)2月份的加班合計(jì)例:工資表中的實(shí)際發(fā)放工資注意:總計(jì)中的:分組、總計(jì)、平均、最小、最大、計(jì)數(shù)、標(biāo)準(zhǔn)差、方差、第一條記錄、最后一條記錄、表達(dá)式、條件的使用方法目前三十頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)315.6創(chuàng)建操作查詢操作查詢能夠改變已有表中的數(shù)據(jù),或者創(chuàng)建一個(gè)新表。一般同時(shí)加上參數(shù)選擇

1.創(chuàng)建刪除查詢

要求表的關(guān)系有“實(shí)施參照完整性”和“級(jí)聯(lián)刪除相關(guān)記錄”,保證刪除一個(gè)表的記錄時(shí),相關(guān)聯(lián)的其它表中的相應(yīng)記錄也會(huì)同步刪除。例:創(chuàng)建“畢業(yè)生刪除查詢”調(diào)出“查詢?cè)O(shè)計(jì)器”,選擇表,然后在查詢工具中選擇“刪除查詢”,從已有表中刪除符合準(zhǔn)則的所有記錄目前三十一頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)32加入“學(xué)號(hào)”字段。

字段的準(zhǔn)則中輸入:“[輸入要?jiǎng)h除的學(xué)號(hào)起始2位]=Left([學(xué)號(hào)],2)”,表示當(dāng)記錄的學(xué)號(hào)起始2位與輸入的數(shù)字相等時(shí),刪除該條記錄。DELETE

學(xué)生簡(jiǎn)況.學(xué)號(hào)FROM

學(xué)生簡(jiǎn)況WHERE((([輸入要?jiǎng)h除的學(xué)號(hào)起始2位])=Left([學(xué)號(hào)],2)));目前三十二頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)332.創(chuàng)建追加查詢

將一個(gè)或多個(gè)表中的一組記錄,追加到一個(gè)或多個(gè)表的尾部

例如將畢業(yè)生的記錄追加到專門存放畢業(yè)生的“畢業(yè)生”表中。l

先創(chuàng)建“畢業(yè)生”表(學(xué)號(hào),姓名,性別,照片,簡(jiǎn)歷)l

調(diào)出“查詢?cè)O(shè)計(jì)器”(設(shè)計(jì)視圖),選擇表,然后在查詢工具中選擇“追加查詢”。l

加入追加的字段(學(xué)號(hào),姓名,性別,照片,簡(jiǎn)歷)l

選擇要追加的目標(biāo)的表。在學(xué)號(hào)字段的準(zhǔn)則中

:“[輸入要追加的學(xué)號(hào)起始2位]=Left([學(xué)號(hào)],2)”

INSERTINTO

畢業(yè)生

(學(xué)號(hào),姓名,性別,照片,簡(jiǎn)歷

)SELECT

學(xué)生簡(jiǎn)況.學(xué)號(hào),學(xué)生簡(jiǎn)況.姓名,學(xué)生簡(jiǎn)況.性別,學(xué)生簡(jiǎn)況.照片,學(xué)生簡(jiǎn)況.簡(jiǎn)歷FROM

學(xué)生簡(jiǎn)況WHERE((([輸入要追加的學(xué)號(hào)起始2位])=Left([學(xué)號(hào)],2)));目前三十三頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)343.創(chuàng)建更新查詢

調(diào)出“查詢?cè)O(shè)計(jì)器”(設(shè)計(jì)視圖),選擇表,然后在查詢工具中選擇“更新查詢”。例如,對(duì)學(xué)生成績(jī)表的所有不及格分?jǐn)?shù)更改成60分。用于更新、替換已有的記錄。能夠改變一組記錄。UPDATE

學(xué)生成績(jī)

SET

學(xué)生成績(jī).分?jǐn)?shù)

=60WHERE(((學(xué)生成績(jī).分?jǐn)?shù))<60));

目前三十四頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)354.創(chuàng)建生成表查詢

l

調(diào)出“查詢?cè)O(shè)計(jì)器”(設(shè)計(jì)視圖),選擇表,然后在查詢工具中選擇“生成表查詢”。

l

輸入要生成的表名。

l

在相應(yīng)字段輸入準(zhǔn)則從查詢的結(jié)果中生成一個(gè)新的表。例如,生成不及格表(學(xué)號(hào),姓名,課程,成績(jī))從學(xué)生簡(jiǎn)況、課程名稱、學(xué)生成績(jī)表SELECT

學(xué)生簡(jiǎn)況.姓名,課程名稱.課程名稱,學(xué)生成績(jī).分?jǐn)?shù)

INTO

不及格FROM

學(xué)生簡(jiǎn)況

INNERJOIN(課程名稱

INNERJOIN學(xué)生成績(jī)

ON課程名稱.課程編號(hào)

=學(xué)生成績(jī).課程編號(hào))ON學(xué)生簡(jiǎn)況.學(xué)號(hào)

=學(xué)生成績(jī).學(xué)號(hào)WHERE(((學(xué)生成績(jī).分?jǐn)?shù))<60));

目前三十五頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)365.7使用SQL語(yǔ)句創(chuàng)建查詢Access所有的查詢都可以認(rèn)為是一個(gè)SQL查詢Access查詢就是以SQL語(yǔ)句為基礎(chǔ)來(lái)實(shí)現(xiàn)查詢的功能

ACCESS中所有的數(shù)據(jù)庫(kù)操作都是由SQL語(yǔ)言構(gòu)成的,ACCESS只是在其上增加了更加方便的操作向?qū)Ш涂梢暬O(shè)計(jì)復(fù)習(xí)目前三十六頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)375.7.1數(shù)據(jù)查詢select

1、SELECT語(yǔ)句

SELECT語(yǔ)句構(gòu)成了SQL數(shù)據(jù)庫(kù)語(yǔ)言的核心,主要被用來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢并返回符合用戶查詢標(biāo)準(zhǔn)的結(jié)果數(shù)據(jù)。它的語(yǔ)法包括5個(gè)主要子句,分別是FORM、WHERE、GROUPBY、HAVING、ORDERBY子句。SELECT語(yǔ)句的結(jié)構(gòu):SELECT[ALL/DISTINCT]〈*/字段列表〉字段列表FROM〈表列表〉表列表[WHERE〈條件表達(dá)式〉]條件[GROUPBY〈字段名〉[HAVING〈條件表達(dá)式〉]]分組[ORDERBY〈字段名〉[DESC]];排序([]表示可選項(xiàng))目前三十七頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)385.7.2、多表聯(lián)合查詢例selectstudent.*,SC.*FORMstudent,SCWhere

Student.學(xué)號(hào)=SC.學(xué)號(hào);如果需要從多個(gè)表中獲得數(shù)據(jù)表名前綴.字段名連接條件不能省目前三十八頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)39使用SQL語(yǔ)句聯(lián)接表

JOIN

將幾個(gè)表或查詢中的信息聯(lián)接起來(lái),并將結(jié)果顯示為單個(gè)邏輯記錄集

有INNER、LEFT、RIGHT

三種JOIN操作

INNERJOIN

用來(lái)組合兩個(gè)表中的記錄,只要公共字段之中有相符的值即可

FROM[表名1]INNER

JOIN[表名2]ON[表名1.字段A]〈關(guān)系運(yùn)算符〉[表名2.字段B]例如:SELECT學(xué)生簡(jiǎn)況.姓名,學(xué)生成績(jī).課程編號(hào),學(xué)生成績(jī).分?jǐn)?shù)FROM

學(xué)生簡(jiǎn)況INNERJOIN

學(xué)生成績(jī)ON學(xué)生簡(jiǎn)況.學(xué)號(hào)=學(xué)生成績(jī).學(xué)號(hào);

將學(xué)生簡(jiǎn)況和學(xué)生成績(jī)表,通過(guò)相等的學(xué)號(hào)字段聯(lián)接起來(lái)。目前三十九頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)40使用SQL語(yǔ)句聯(lián)接表

JOIN如果將幾個(gè)表聯(lián)接起來(lái),在JOIN操作中可以進(jìn)行嵌套操作,如有三個(gè)表:表1、表2、表3,現(xiàn)在將三個(gè)表聯(lián)接起來(lái):FROM(表1INNERJOIN表2ON表1.序號(hào)=表2.序號(hào))INNERJOIN表3ON表1.序號(hào)=表3.序號(hào)

這樣這三個(gè)表就聯(lián)接起來(lái)了。例如:SELECT學(xué)生簡(jiǎn)況.姓名,課程名稱.課程名稱,學(xué)生成績(jī).分?jǐn)?shù)FROM學(xué)生簡(jiǎn)況INNERJOIN(課程名稱INNERJOIN

學(xué)生成績(jī)ON課程名稱.課程編號(hào)=學(xué)生成績(jī).課程編號(hào))ON學(xué)生簡(jiǎn)況.學(xué)號(hào)=學(xué)生成績(jī).學(xué)號(hào);

目前四十頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)41使用SQL語(yǔ)句聯(lián)接表

JOINLEFT/RIGHT

JOINFROM[表名1]LEFT/RIGHTJOIN[表名2]ON[表名1.字段A]〈關(guān)系運(yùn)算符〉[表名2.字段B]LEFTJOIN將LEFT左邊的表名1中的所有記錄全部保留,而將右邊的表名2中的字段B與表名1.字段A相對(duì)應(yīng)的記錄顯示出來(lái)。

SELECT學(xué)生簡(jiǎn)況.姓名,學(xué)生成績(jī).課程編號(hào),學(xué)生成績(jī).分?jǐn)?shù)

FROM學(xué)生簡(jiǎn)況LEFTJOIN

學(xué)生成績(jī)ON學(xué)生簡(jiǎn)況.學(xué)號(hào)=學(xué)生成績(jī).學(xué)號(hào);

而RIGHTJOIN和LEFTJOIN相反。SELECT學(xué)生簡(jiǎn)況.姓名,學(xué)生成績(jī).課程編號(hào),學(xué)生成績(jī).分?jǐn)?shù)

FROM學(xué)生簡(jiǎn)況LEFTJOIN

學(xué)生成績(jī)ON學(xué)生簡(jiǎn)況.學(xué)號(hào)=學(xué)生成績(jī).學(xué)號(hào);

目前四十一頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)42、定義新的字段名(別名)

字段別名可以幫助我們有效的組織查詢的輸出結(jié)果

,相當(dāng)于查詢?cè)O(shè)計(jì)視圖中字段屬性的“標(biāo)題”

在SQL中可以用“AS”操作來(lái)實(shí)現(xiàn)定義新的字段別名例在新建的查詢中將“表1”中的“字段1”的內(nèi)容對(duì)應(yīng)到新字段“新字段1”中:SELECT表1.字段1AS新字段1FROM表1;別名都直接放置在各自對(duì)應(yīng)名稱的后面,中間用空格分開(kāi)。SELECT學(xué)生成績(jī).學(xué)號(hào),Sum(學(xué)生成績(jī).分?jǐn)?shù))AS

總分FROM學(xué)生成績(jī)GROUPBY學(xué)生成績(jī).學(xué)號(hào)

ORDERBYSum(學(xué)生成績(jī).分?jǐn)?shù))DESC;目前四十二頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)435.7.4向表格中插入數(shù)據(jù)insertinto

使用insert語(yǔ)句向數(shù)據(jù)庫(kù)表格中插入或添加新的數(shù)據(jù)行

INSERTINTOtablename(first_column,...last_column)VALUES(first_value,...last_value);

例如:INSERTINTO

畢業(yè)生(學(xué)號(hào),姓名,性別,簡(jiǎn)歷)VALUES(‘22000102’,‘李揚(yáng)’,0,‘Beijing”);

INSERTINTO

畢業(yè)生(學(xué)號(hào),姓名,性別,照片,簡(jiǎn)歷)SELECT

[學(xué)生簡(jiǎn)況].[學(xué)號(hào)],[學(xué)生簡(jiǎn)況].[姓名],[學(xué)生簡(jiǎn)況].[性別],[學(xué)生簡(jiǎn)況].[照片],[學(xué)生簡(jiǎn)況].[簡(jiǎn)歷]FROM學(xué)生簡(jiǎn)況WHERE([輸入要追加的學(xué)號(hào)起始2位])=Left([學(xué)號(hào)],2);如果把不及格的加到不及格表中?目前四十三頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)44更新記錄update

update語(yǔ)句更新或修改滿足規(guī)定條件的現(xiàn)有記錄

UPDATEtablenameSETcolumnname=newvalue[,nextcolumn=newvalue2...]WHEREcolumnnameOPERATORvalue[and|orcolumnOPERATORvalue];例如:UPDATE學(xué)生成績(jī)SET學(xué)生成績(jī).分?jǐn)?shù)=60WHERE(((學(xué)生成績(jī).分?jǐn)?shù))<60));使用update語(yǔ)句時(shí),關(guān)鍵一點(diǎn)就是要設(shè)定好用于進(jìn)行判斷的where條件從句。如果要求2003年之前進(jìn)廠,工資不到800的加到800?目前四十四頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)45刪除記錄deletefrom

delete語(yǔ)句刪除數(shù)據(jù)庫(kù)表格中的行或記錄

DELETEFROMtablenameWHEREcolumnnameOPERATORvalue[and|orcolumnOPERATORvalue];

例如:DELETE學(xué)生簡(jiǎn)況.學(xué)號(hào)FROM學(xué)生簡(jiǎn)況WHERE((([輸入要?jiǎng)h除的學(xué)號(hào)起始2位])=Left([學(xué)號(hào)],2)));當(dāng)需要?jiǎng)h除某一行或某個(gè)記錄時(shí),在deletefrom關(guān)鍵詞之后輸入表格名稱,然后在where從句中設(shè)定刪除記錄的判斷條件。注意,如果用戶在使用delete語(yǔ)句時(shí)不設(shè)定where從句,則表格中的所有記錄將全部被刪除。

目前四十五頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)46創(chuàng)建表格createtable

createtable語(yǔ)句用來(lái)建立新的數(shù)據(jù)庫(kù)表格

CREATTABLEtablename(column1datatype,column2datatype,column3datatype);創(chuàng)建新表格時(shí),在關(guān)鍵詞createtable后面加入所要建立的表格的名稱,然后在括號(hào)內(nèi)順次設(shè)定各列的名稱,數(shù)據(jù)類型,以及可選的限制條件等。CREATTABLEemployee(firstnamevarchar(15),lastnamevarchar(20),agenumber(3),addressvarchar(30),cityvarchar(20));

目前四十六頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)47刪除數(shù)據(jù)庫(kù)表格droptable

droptable命令刪除某個(gè)表格以及該表格中的所有記錄

DROPTABLEtablename;例如:droptableemployee;Droptable命令的作用與刪除表格中的所有記錄不同。刪除表格中的全部記錄之后,該表格仍然存在,而且表格中列的信息不會(huì)改變。而使用droptable命令則會(huì)將整個(gè)數(shù)據(jù)庫(kù)表格的所有信息全部刪除。

目前四十七頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)48SQL的應(yīng)用

除了在數(shù)據(jù)庫(kù)中使用SQL命令之外,還可以通過(guò)編程語(yǔ)言例如VB、VBA、C、VC、ASP、PHP來(lái)實(shí)現(xiàn)SQL操作,完成精細(xì)、復(fù)雜的查詢?nèi)蝿?wù)。

ADO(ActiveXDataObjects,微軟的一種新的數(shù)據(jù)訪問(wèn)模型)。主要的ADO對(duì)象有三個(gè):Connection、Command和Recordset。Connection對(duì)象能夠建立數(shù)據(jù)與應(yīng)用程序之間的聯(lián)系,在建立聯(lián)系后,Command和Recordset對(duì)象用來(lái)查詢、存儲(chǔ)或更新數(shù)據(jù)。Command對(duì)象主要擔(dān)任數(shù)據(jù)庫(kù)查詢(DatabaseQuery)的角色。Recordset對(duì)象則是三者之中最為特別,功能亦最為強(qiáng)大,由數(shù)據(jù)取得的數(shù)據(jù)集合就存儲(chǔ)于Recordset中。編程目前四十八頁(yè)\總數(shù)五十一頁(yè)\編于十四點(diǎn)49例如:ASP中增加一個(gè)新注冊(cè)賬號(hào)Setconn=Server.CreateObject("ADODB.Connection")conn.Open"driver={MicrosoftAccessDri

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論