數(shù)據(jù)庫原理及應(yīng)用演示文稿_第1頁
數(shù)據(jù)庫原理及應(yīng)用演示文稿_第2頁
數(shù)據(jù)庫原理及應(yīng)用演示文稿_第3頁
數(shù)據(jù)庫原理及應(yīng)用演示文稿_第4頁
數(shù)據(jù)庫原理及應(yīng)用演示文稿_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫原理及應(yīng)用演示文稿當(dāng)前第1頁\共有51頁\編于星期五\0點(diǎn)優(yōu)選數(shù)據(jù)庫原理及應(yīng)用Ppt2當(dāng)前第2頁\共有51頁\編于星期五\0點(diǎn)35.1查詢的概念與設(shè)計(jì)5.1.1查詢的概念查詢提供了對數(shù)據(jù)瀏覽、數(shù)據(jù)重組、統(tǒng)計(jì)分析、編輯修改、輸入輸出等操作。

為了減少數(shù)據(jù)的冗余,不同類別數(shù)據(jù)放到不同的表中?!安樵儭钡淖侄蝸碜院芏嗷ハ嘀g有“關(guān)系”的表,這些字段組合成一個新的數(shù)據(jù)表視圖,但它并不存儲任何的數(shù)據(jù)

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

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

當(dāng)前第3頁\共有51頁\編于星期五\0點(diǎn)45.1.2查詢的種類

1、

選擇查詢

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

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

參數(shù)查詢在查尋時彈出對話框,輸入必要的參數(shù),動態(tài)地進(jìn)行查詢。4、

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

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

當(dāng)前第4頁\共有51頁\編于星期五\0點(diǎn)55.1.3創(chuàng)建查詢

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

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

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

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

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

可更改數(shù)據(jù)!當(dāng)前第5頁\共有51頁\編于星期五\0點(diǎn)65.2使用向?qū)?chuàng)建查詢使用簡單查詢向?qū)?shù)據(jù)來源:已有的表和查詢當(dāng)前第6頁\共有51頁\編于星期五\0點(diǎn)7創(chuàng)建子查詢創(chuàng)建子查詢

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

新的輸出格式當(dāng)前第8頁\共有51頁\編于星期五\0點(diǎn)95.2.4交叉表查詢設(shè)計(jì)1.

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

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

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

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

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

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

分?jǐn)?shù):分?jǐn)?shù)”字段僅僅是為了計(jì)算匯總,不要交叉表查詢當(dāng)前第9頁\共有51頁\編于星期五\0點(diǎn)105.2.4交叉表查詢設(shè)計(jì)如果多表,先建立多表查詢。交叉表查詢功能方便數(shù)據(jù)查看核算匯總值。當(dāng)前第10頁\共有51頁\編于星期五\0點(diǎn)115.3在查詢設(shè)計(jì)器中創(chuàng)建查詢5.2.1查詢設(shè)計(jì)器

表/查詢顯示窗口

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

示例查詢設(shè)計(jì)窗口

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

當(dāng)前第11頁\共有51頁\編于星期五\0點(diǎn)12示例查詢設(shè)計(jì)窗口查詢設(shè)計(jì)視圖中的工具條

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

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

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

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

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

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

提供多個查詢條件當(dāng)前第12頁\共有51頁\編于星期五\0點(diǎn)13

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

用來顯示和編輯SQL語句。

當(dāng)前第13頁\共有51頁\編于星期五\0點(diǎn)14在查詢設(shè)計(jì)器中創(chuàng)建選擇查詢例:不及格成績查詢

當(dāng)前第14頁\共有51頁\編于星期五\0點(diǎn)15

參數(shù)查詢設(shè)計(jì)

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

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

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

或者(Between[分?jǐn)?shù)從]And[到])當(dāng)前第15頁\共有51頁\編于星期五\0點(diǎn)165.4查詢中的條件1、使用表達(dá)式生成器

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

表達(dá)式編輯框

操作符的快捷按鈕

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

“表達(dá)式生成器”可以在ACCESS中任何需要表達(dá)式的位置上使用表達(dá)式:用運(yùn)算符連接結(jié)果為“真”,“假”-1(非零),0(零)當(dāng)前第16頁\共有51頁\編于星期五\0點(diǎn)172、表達(dá)式生成器中的幾種常用符號

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

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

“&”

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

當(dāng)前第17頁\共有51頁\編于星期五\0點(diǎn)18“=”、“>”、“<”、“<>”

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

=34”

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

“<>”北京“

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

“And”、“Or”、“Not”

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

如:

>100And<300”,

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

邏輯運(yùn)算符關(guān)系運(yùn)算符當(dāng)前第18頁\共有51頁\編于星期五\0點(diǎn)19“Like”

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

則字符串“中國人”、“中國字”都滿足這個條件;

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

Like“表#”則字符串“表1”、“表2”都滿足這個條件;

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

則只有字符串“北京”、“上海”、“廣州”可以滿足條件;

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

則只有字符串“北京”、“上?!?、“廣州”不能滿足條件。字串模糊查詢滿足條件為真當(dāng)前第19頁\共有51頁\編于星期五\0點(diǎn)203、使用準(zhǔn)則來執(zhí)行特定任務(wù)

1.檢索其中值

介于

>、<、>=、<=或

<>之間指定值的記錄通過使用

Between...And

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

>=)來識別范圍

表達(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”

字串當(dāng)前第20頁\共有51頁\編于星期五\0點(diǎn)212.檢索指定值范圍以外的記錄

使用

Not

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

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

NotT*,以查找名稱不是以

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

Not2查找

ID不是

2的運(yùn)貨商。

3.檢索不包含

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

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

當(dāng)前第21頁\共有51頁\編于星期五\0點(diǎn)225.檢索包含當(dāng)前日期的記錄

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

Date(),括號中沒有空格。

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

Between...And

運(yùn)算符和

DateAdd

Date

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

Year

函數(shù)以顯示

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

DatePart

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

DateSerial、Year

Month

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

Year

Month

函數(shù)和

And

運(yùn)算符以顯示當(dāng)前年、月的訂單。當(dāng)月的加班合計(jì)當(dāng)前第22頁\共有51頁\編于星期五\0點(diǎn)236.檢索包括值列表中一個值的記錄

輸入使用

In

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

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

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

Or

德國Or

日本當(dāng)前第23頁\共有51頁\編于星期五\0點(diǎn)247.抽取已有文本值的一部分使用

Left

、Right

Mid

函數(shù)。

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

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

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

是要抽取的第一個字符的位置。如果

PartID中的值為表達(dá)式返回值BA-7893-R12Left([PartID],2)BABA-7893-R12Right([PartID],3)R12BA-7893-R12Mid([PartID],4,4)7893例:從學(xué)號“A10120201”中取出班級代碼當(dāng)前第24頁\共有51頁\編于星期五\0點(diǎn)253.表達(dá)式的例子當(dāng)前第25頁\共有51頁\編于星期五\0點(diǎn)265.5查詢中的計(jì)算創(chuàng)建總計(jì)字段查詢還具有計(jì)算功能

單擊查詢設(shè)計(jì)工具欄的“∑“總計(jì)按鈕,增加一個總計(jì)行:包含總和、平均值、計(jì)數(shù)、最大/最小值、標(biāo)準(zhǔn)偏差、方差等。計(jì)算能力有限當(dāng)前第26頁\共有51頁\編于星期五\0點(diǎn)275.5查詢中的計(jì)算預(yù)定義計(jì)算

選定計(jì)算

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

字段的方差值。匯總計(jì)算函數(shù)當(dāng)前第27頁\共有51頁\編于星期五\0點(diǎn)28First

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

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

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

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

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

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

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

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

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

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

學(xué)生簡況.學(xué)號FROM

學(xué)生簡況WHERE((([輸入要刪除的學(xué)號起始2位])=Left([學(xué)號],2)));當(dāng)前第32頁\共有51頁\編于星期五\0點(diǎn)332.創(chuàng)建追加查詢

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

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

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

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

加入追加的字段(學(xué)號,姓名,性別,照片,簡歷)l

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

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

INSERTINTO

畢業(yè)生

(學(xué)號,姓名,性別,照片,簡歷

)SELECT

學(xué)生簡況.學(xué)號,學(xué)生簡況.姓名,學(xué)生簡況.性別,學(xué)生簡況.照片,學(xué)生簡況.簡歷FROM

學(xué)生簡況WHERE((([輸入要追加的學(xué)號起始2位])=Left([學(xué)號],2)));當(dāng)前第33頁\共有51頁\編于星期五\0點(diǎn)343.創(chuàng)建更新查詢

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

學(xué)生成績

SET

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

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

當(dāng)前第34頁\共有51頁\編于星期五\0點(diǎn)354.創(chuàng)建生成表查詢

l

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

l

輸入要生成的表名。

l

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

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

INTO

不及格FROM

學(xué)生簡況

INNERJOIN(課程名稱

INNERJOIN學(xué)生成績

ON課程名稱.課程編號

=學(xué)生成績.課程編號)ON學(xué)生簡況.學(xué)號

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

當(dāng)前第35頁\共有51頁\編于星期五\0點(diǎn)365.7使用SQL語句創(chuàng)建查詢Access所有的查詢都可以認(rèn)為是一個SQL查詢Access查詢就是以SQL語句為基礎(chǔ)來實(shí)現(xiàn)查詢的功能

ACCESS中所有的數(shù)據(jù)庫操作都是由SQL語言構(gòu)成的,ACCESS只是在其上增加了更加方便的操作向?qū)Ш涂梢暬O(shè)計(jì)復(fù)習(xí)當(dāng)前第36頁\共有51頁\編于星期五\0點(diǎn)375.7.1數(shù)據(jù)查詢select

1、SELECT語句

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

Student.學(xué)號=SC.學(xué)號;如果需要從多個表中獲得數(shù)據(jù)表名前綴.字段名連接條件不能省當(dāng)前第38頁\共有51頁\編于星期五\0點(diǎn)39使用SQL語句聯(lián)接表

JOIN

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

有INNER、LEFT、RIGHT

三種JOIN操作

INNERJOIN

用來組合兩個表中的記錄,只要公共字段之中有相符的值即可

FROM[表名1]INNER

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

學(xué)生簡況INNERJOIN

學(xué)生成績ON學(xué)生簡況.學(xué)號=學(xué)生成績.學(xué)號;

將學(xué)生簡況和學(xué)生成績表,通過相等的學(xué)號字段聯(lián)接起來。當(dāng)前第39頁\共有51頁\編于星期五\0點(diǎn)40使用SQL語句聯(lián)接表

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

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

學(xué)生成績ON課程名稱.課程編號=學(xué)生成績.課程編號)ON學(xué)生簡況.學(xué)號=學(xué)生成績.學(xué)號;

當(dāng)前第40頁\共有51頁\編于星期五\0點(diǎn)41使用SQL語句聯(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相對應(yīng)的記錄顯示出來。

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

FROM學(xué)生簡況LEFTJOIN

學(xué)生成績ON學(xué)生簡況.學(xué)號=學(xué)生成績.學(xué)號;

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

FROM學(xué)生簡況LEFTJOIN

學(xué)生成績ON學(xué)生簡況.學(xué)號=學(xué)生成績.學(xué)號;

當(dāng)前第41頁\共有51頁\編于星期五\0點(diǎn)42、定義新的字段名(別名)

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

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

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

總分FROM學(xué)生成績GROUPBY學(xué)生成績.學(xué)號

ORDERBYSum(學(xué)生成績.分?jǐn)?shù))DESC;當(dāng)前第42頁\共有51頁\編于星期五\0點(diǎn)435.7.4向表格中插入數(shù)據(jù)insertinto

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

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

例如:INSERTINTO

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

INSERTINTO

畢業(yè)生(學(xué)號,姓名,性別,照片,簡歷)SELECT

[學(xué)生簡況].[學(xué)號],[學(xué)生簡況].[姓名],[學(xué)生簡況].[性別],[學(xué)生簡況].[照片],[學(xué)生簡況].[簡歷]FROM學(xué)生簡況WHERE([輸入要追加的學(xué)號起始2位])=Left([學(xué)號],2);如果把不及格的加到不及格表中?當(dāng)前第43頁\共有51頁\編于星期五\0點(diǎn)44更新記錄update

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

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

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

DELETEFROMtablenameWHEREcolumnnameOPERATORvalue[and|orcolumnOPERATORvalue];

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

當(dāng)前第45頁\共有51頁\編于星期五\0點(diǎn)46創(chuàng)建表格createtable

createtable語句用來建立新的數(shù)據(jù)庫表格

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

當(dāng)前第46頁\共有51頁\編于星期五\0點(diǎn)47刪除數(shù)據(jù)庫表格droptable

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

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

當(dāng)前第47頁\共有51頁\編于星期五\0點(diǎn)48SQL的應(yīng)用

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

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

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論