數(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)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

現(xiàn)在是3頁\一共有51頁\編輯于星期五45.1.2查詢的種類

1、

選擇查詢

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

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

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

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

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

現(xiàn)在是4頁\一共有51頁\編輯于星期五55.1.3創(chuàng)建查詢

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

“使用向?qū)?chuàng)建查詢”,選擇表,字段??梢詮牟煌谋?、字段中生成查詢。

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

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

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

可更改數(shù)據(jù)!現(xiàn)在是5頁\一共有51頁\編輯于星期五65.2使用向?qū)?chuàng)建查詢使用簡單查詢向?qū)?shù)據(jù)來源:已有的表和查詢現(xiàn)在是6頁\一共有51頁\編輯于星期五7創(chuàng)建子查詢創(chuàng)建子查詢

統(tǒng)計(jì)與匯總分組現(xiàn)在是7頁\一共有51頁\編輯于星期五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>

新的輸出格式現(xiàn)在是8頁\一共有51頁\編輯于星期五95.2.4交叉表查詢設(shè)計(jì)1.

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

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

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

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

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

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

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

表/查詢顯示窗口

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

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

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

現(xiàn)在是11頁\一共有51頁\編輯于星期五12示例查詢設(shè)計(jì)窗口查詢設(shè)計(jì)視圖中的工具條

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

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

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

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

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

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

提供多個(gè)查詢條件現(xiàn)在是12頁\一共有51頁\編輯于星期五13

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

用來顯示和編輯SQL語句。

現(xiàn)在是13頁\一共有51頁\編輯于星期五14在查詢設(shè)計(jì)器中創(chuàng)建選擇查詢例:不及格成績查詢

現(xiàn)在是14頁\一共有51頁\編輯于星期五15

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

一般查詢中的準(zhǔn)則是不變的,如果希望每次查詢都要改變準(zhǔn)則參數(shù)查詢可以在運(yùn)行查詢的過程中自動(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[到])現(xiàn)在是15頁\一共有51頁\編輯于星期五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(零)現(xiàn)在是16頁\一共有51頁\編輯于星期五172、表達(dá)式生成器中的幾種常用符號(hào)

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

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

“&”

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

現(xiàn)在是17頁\一共有51頁\編輯于星期五18“=”、“>”、“<”、“<>”

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

=34”

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

“<>”北京“

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

“And”、“Or”、“Not”

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

如:

>100And<300”,

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

邏輯運(yùn)算符關(guān)系運(yùn)算符現(xiàn)在是18頁\一共有51頁\編輯于星期五19“Like”

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

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

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

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

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

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

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

則只有字符串“北京”、“上?!?、“廣州”不能滿足條件。字串模糊查詢滿足條件為真現(xiàn)在是19頁\一共有51頁\編輯于星期五203、使用準(zhǔn)則來執(zhí)行特定任務(wù)

1.檢索其中值

介于

>、<、>=、<=或

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

Between...And

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

>=)來識(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”

字串現(xiàn)在是20頁\一共有51頁\編輯于星期五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)商信息的表中查看有傳真號(hào)碼的供應(yīng)商列表,請?jiān)凇皞髡妗弊侄蔚摹皽?zhǔn)則”單元格中輸入“NotNull”或“IsNotNull”。

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

現(xiàn)在是21頁\一共有51頁\編輯于星期五225.檢索包含當(dāng)前日期的記錄

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

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

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

Between...And

運(yùn)算符和

DateAdd

Date

函數(shù),以顯示在某個(gè)日期之后的三個(gè)月內(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ù)以顯示每個(gè)月最后一天的訂單。Year([訂購日期])=Year(Now())AndMonth([訂購日期])=Month(Now())使用

Year

Month

函數(shù)和

And

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

輸入使用

In

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

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

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

Or

德國Or

日本現(xiàn)在是23頁\一共有51頁\編輯于星期五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í)代碼現(xiàn)在是24頁\一共有51頁\編輯于星期五253.表達(dá)式的例子現(xiàn)在是25頁\一共有51頁\編輯于星期五265.5查詢中的計(jì)算創(chuàng)建總計(jì)字段查詢還具有計(jì)算功能

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

選定計(jì)算

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

字段的方差值。匯總計(jì)算函數(shù)現(xiàn)在是27頁\一共有51頁\編輯于星期五28First

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

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

選定用于GroupBy定義要執(zhí)行計(jì)算的組。例如,如果要按類別顯示銷售額總計(jì),請對(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è)字段?,F(xiàn)在是28頁\一共有51頁\編輯于星期五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ì)現(xiàn)在是29頁\一共有51頁\編輯于星期五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á)式、條件的使用方法現(xiàn)在是30頁\一共有51頁\編輯于星期五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)出“查詢設(shè)計(jì)器”,選擇表,然后在查詢工具中選擇“刪除查詢”,從已有表中刪除符合準(zhǔn)則的所有記錄現(xiàn)在是31頁\一共有51頁\編輯于星期五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é)生簡況.學(xué)號(hào)FROM

學(xué)生簡況WHERE((([輸入要?jiǎng)h除的學(xué)號(hào)起始2位])=Left([學(xué)號(hào)],2)));現(xiàn)在是32頁\一共有51頁\編輯于星期五332.創(chuàng)建追加查詢

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

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

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

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

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

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

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

INSERTINTO

畢業(yè)生

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

)SELECT

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

學(xué)生簡況WHERE((([輸入要追加的學(xué)號(hào)起始2位])=Left([學(xué)號(hào)],2)));現(xiàn)在是33頁\一共有51頁\編輯于星期五343.創(chuàng)建更新查詢

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

學(xué)生成績

SET

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

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

現(xiàn)在是34頁\一共有51頁\編輯于星期五354.創(chuàng)建生成表查詢

l

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

l

輸入要生成的表名。

l

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

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

INTO

不及格FROM

學(xué)生簡況

INNERJOIN(課程名稱

INNERJOIN學(xué)生成績

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

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

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

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

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

1、SELECT語句

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

Student.學(xué)號(hào)=SC.學(xué)號(hào);如果需要從多個(gè)表中獲得數(shù)據(jù)表名前綴.字段名連接條件不能省現(xiàn)在是38頁\一共有51頁\編輯于星期五39使用SQL語句聯(lián)接表

JOIN

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

有INNER、LEFT、RIGHT

三種JOIN操作

INNERJOIN

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

FROM[表名1]INNER

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

學(xué)生簡況INNERJOIN

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

將學(xué)生簡況和學(xué)生成績表,通過相等的學(xué)號(hào)字段聯(lián)接起來?,F(xiàn)在是39頁\一共有51頁\編輯于星期五40使用SQL語句聯(lián)接表

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

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

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

現(xiàn)在是40頁\一共有51頁\編輯于星期五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相對(duì)應(yīng)的記錄顯示出來。

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

FROM學(xué)生簡況LEFTJOIN

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

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

FROM學(xué)生簡況LEFTJOIN

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

現(xiàn)在是41頁\一共有51頁\編輯于星期五42、定義新的字段名(別名)

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

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

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

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

ORDERBYSum(學(xué)生成績.分?jǐn)?shù))DESC;現(xiàn)在是42頁\一共有51頁\編輯于星期五435.7.4向表格中插入數(shù)據(jù)insertinto

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

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

例如:INSERTINTO

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

INSERTINTO

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

[學(xué)生簡況].[學(xué)號(hào)],[學(xué)生簡況].[姓名],[學(xué)生簡況].[性別],[學(xué)生簡況].[照片],[學(xué)生簡況].[簡歷]FROM學(xué)生簡況WHERE([輸入要追加的學(xué)號(hào)起始2位])=Left([學(xué)號(hào)],2);如果把不及格的加到不及格表中?現(xiàn)在是43頁\一共有51頁\編輯于星期五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語句時(shí),關(guān)鍵一點(diǎn)就是要設(shè)定好用于進(jìn)行判斷的where條件從句。如果要求2003年之前進(jìn)廠,工資不到800的加到800?現(xiàn)在是44頁\一共有51頁\編輯于星期五45刪除記錄deletefrom

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

DELETEFROMtablenameWHEREcolumnnameOPERATORvalue[and|orcolumnOPERATORvalue];

例如:DELETE學(xué)生簡況.學(xué)號(hào)FROM學(xué)生簡況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語句時(shí)不設(shè)定where從句,則表格中的所有記錄將全部被刪除。

現(xiàn)在是45頁\一共有51頁\編輯于星期五46創(chuàng)建表格createtable

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

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));

現(xiàn)在是46頁\一共有51頁\編輯于星期五47刪除數(shù)據(jù)庫表格droptable

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

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

現(xiàn)在是47頁\一共有51頁\編輯于星期五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對(duì)象有三個(gè):Connection、Command和Recordset。Connection對(duì)象能夠建立數(shù)據(jù)與應(yīng)用程序之間的聯(lián)系,在建立聯(lián)系后,Command和Recordset對(duì)象用來查詢、存儲(chǔ)或更新數(shù)據(jù)。Command對(duì)象主要擔(dān)任數(shù)據(jù)庫查詢(DatabaseQuery)的角色。Recordset對(duì)象則是三者之中最為特別,功能亦最為強(qiáng)大,由數(shù)據(jù)取得的數(shù)據(jù)集合就存儲(chǔ)于Recordset中。編程現(xiàn)在是48頁\一共有51頁\編輯于星期五49例如:ASP中增加一個(gè)新注冊賬號(hào)Setconn=Server.CreateObject("ADODB.Connection")conn.Open"driver={MicrosoftAccess

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論