版權(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“[北京,上海,廣州]”
則只有字符串“北京”、“上?!?、“廣州”可以滿足條件;
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版小額貸款抵押合同資產(chǎn)評(píng)估及報(bào)告協(xié)議2篇
- 2025年度個(gè)人與公司租賃房屋修繕責(zé)任合同4篇
- 2025年度個(gè)人旅游規(guī)劃與導(dǎo)游服務(wù)合同2篇
- 2025版室外照明燈具廣告宣傳與品牌推廣合同3篇
- 2025年度煤炭行業(yè)綠色運(yùn)輸體系構(gòu)建合同4篇
- 2025標(biāo)準(zhǔn)新能源材料研發(fā)與采購(gòu)合作協(xié)議3篇
- 2025年度生態(tài)環(huán)保瓷磚批量采購(gòu)合作協(xié)議3篇
- 2025版醫(yī)療健康大數(shù)據(jù)合作開(kāi)發(fā)合同3篇
- 個(gè)性化定制小區(qū)房產(chǎn)買賣合同(2024版)版B版
- 2025版國(guó)際貿(mào)易糾紛訴訟擔(dān)保委托服務(wù)協(xié)議3篇
- 五年級(jí)上冊(cè)寒假作業(yè)答案(人教版)
- 2025年山東浪潮集團(tuán)限公司招聘25人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年財(cái)政部會(huì)計(jì)法律法規(guī)答題活動(dòng)題目及答案一
- 2025年江西省港口集團(tuán)招聘筆試參考題庫(kù)含答案解析
- (2024年)中國(guó)傳統(tǒng)文化介紹課件
- 液化氣安全檢查及整改方案
- 《冠心病》課件(完整版)
- 2024年云網(wǎng)安全應(yīng)知應(yīng)會(huì)考試題庫(kù)
- 公園保潔服務(wù)投標(biāo)方案
- 光伏電站項(xiàng)目合作開(kāi)發(fā)合同協(xié)議書(shū)三方版
- 2024年秋季新滬教版九年級(jí)上冊(cè)化學(xué)課件 第2章 空氣與水資源第1節(jié) 空氣的組成
評(píng)論
0/150
提交評(píng)論