![數(shù)據(jù)庫原理及應(yīng)用演示文稿_第1頁](http://file4.renrendoc.com/view/a9761a33859c96a87a55f2401d51ca1d/a9761a33859c96a87a55f2401d51ca1d1.gif)
![數(shù)據(jù)庫原理及應(yīng)用演示文稿_第2頁](http://file4.renrendoc.com/view/a9761a33859c96a87a55f2401d51ca1d/a9761a33859c96a87a55f2401d51ca1d2.gif)
![數(shù)據(jù)庫原理及應(yīng)用演示文稿_第3頁](http://file4.renrendoc.com/view/a9761a33859c96a87a55f2401d51ca1d/a9761a33859c96a87a55f2401d51ca1d3.gif)
![數(shù)據(jù)庫原理及應(yīng)用演示文稿_第4頁](http://file4.renrendoc.com/view/a9761a33859c96a87a55f2401d51ca1d/a9761a33859c96a87a55f2401d51ca1d4.gif)
![數(shù)據(jù)庫原理及應(yīng)用演示文稿_第5頁](http://file4.renrendoc.com/view/a9761a33859c96a87a55f2401d51ca1d/a9761a33859c96a87a55f2401d51ca1d5.gif)
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化創(chuàng)意產(chǎn)業(yè)項(xiàng)目合作開發(fā)合同標(biāo)的協(xié)議
- 2025年度智慧城市建設(shè)借款合同保證擔(dān)保示范文本
- 2025年度新能源汽車研發(fā)與生產(chǎn)技術(shù)許可合同
- 2025年度建筑工程質(zhì)量保證商務(wù)合同執(zhí)行規(guī)定
- 2025年度洗衣機(jī)行業(yè)培訓(xùn)與咨詢服務(wù)合同
- 2025年度綠色環(huán)保產(chǎn)業(yè)園區(qū)施工勞務(wù)清包工合同
- 2025年度交通行業(yè)競業(yè)限制合同模板
- 2025年度新型金融借款合同轉(zhuǎn)需收藏指南
- 2025年度建筑工程合同履約保證金清工承包合同
- 2025年度智能化家居局部裝修施工合同書
- 輸液港用無損傷針相關(guān)知識
- 高標(biāo)準(zhǔn)農(nóng)田施工組織設(shè)計(jì)(全)
- 宿舍、辦公樓消防應(yīng)急預(yù)案
- 職業(yè)安全健康工作總結(jié)(2篇)
- 14S501-1 球墨鑄鐵單層井蓋及踏步施工
- YB 4022-1991耐火泥漿荷重軟化溫度試驗(yàn)方法(示差-升溫法)
- 水土保持方案中沉沙池的布設(shè)技術(shù)
- 安全生產(chǎn)技術(shù)規(guī)范 第25部分:城鎮(zhèn)天然氣經(jīng)營企業(yè)DB50-T 867.25-2021
- 現(xiàn)代企業(yè)管理 (全套完整課件)
- 走進(jìn)本土項(xiàng)目化設(shè)計(jì)-讀《PBL項(xiàng)目化學(xué)習(xí)設(shè)計(jì)》有感
- 高中語文日積月累23
評論
0/150
提交評論