第5章Access高級(jí)查詢與SQL_第1頁
第5章Access高級(jí)查詢與SQL_第2頁
第5章Access高級(jí)查詢與SQL_第3頁
第5章Access高級(jí)查詢與SQL_第4頁
第5章Access高級(jí)查詢與SQL_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章Access高級(jí)查詢與SQL語言前面學(xué)習(xí)了Access的查詢。通過設(shè)計(jì)視圖和向?qū)?,可以建立選擇查詢、參數(shù)查詢、交叉表查詢、操作查詢等比較復(fù)雜的查詢。這些已經(jīng)能夠基本上滿足大多數(shù)查詢工作的需要。但是在Access的高級(jí)使用的過程中,經(jīng)常會(huì)使用到一些查詢,這些查詢用各種查詢向?qū)Ш驮O(shè)計(jì)器都無法實(shí)現(xiàn)。Access有3種查詢不能直接用查詢視圖或向?qū)Мa(chǎn)生,而必須使用SQL查詢,在Access中被稱為SQL特定查詢。這3種SQL特定查詢是:聯(lián)合查詢、傳遞查詢和數(shù)據(jù)定義查詢。SQL查詢是用戶使用SQL語句創(chuàng)建的查詢??梢杂肧QL語言來查詢、更新和管理Access這樣的關(guān)系數(shù)據(jù)庫。SQL語言是一種通用的數(shù)據(jù)庫操作語言,并不是Access用戶必須要掌握的,但在實(shí)際的工作中有時(shí)必須用到這種語言才能完成一些特殊的工作。利用SQL語言可以在Access中建立高級(jí)查詢。5.1【案例12】創(chuàng)建Access

聯(lián)合查詢

相關(guān)知識(shí)5.2【案例13】創(chuàng)建AccessSQL

子查詢

相關(guān)知識(shí)5.3【案例14】創(chuàng)建Access

數(shù)據(jù)定義查詢

相關(guān)知識(shí)

5.1相關(guān)知識(shí)

1.SQL語言簡(jiǎn)介SQL語言即結(jié)構(gòu)化查詢語言(英文全稱為StructuredQueryLanguage),是一種通用的關(guān)系型數(shù)據(jù)庫操作語言。其發(fā)音是“S-Q-L”,或“sequel”。在20世紀(jì)70年代初,E.E.Codd首先提出了關(guān)系模型。1974年,由Boyce和Chamberlin提出了SQL語言。由于它功能豐富,語言簡(jiǎn)潔,使用方法靈活,備受用戶和計(jì)算機(jī)業(yè)界的青睞,被眾多的計(jì)算機(jī)公司和軟件公司所采用。1986年10月,美國國家標(biāo)準(zhǔn)局(ANSI)批準(zhǔn)采用SQL作為關(guān)系數(shù)據(jù)庫語言的美國標(biāo)準(zhǔn),1987年,國際標(biāo)準(zhǔn)化組織將之采納為國際標(biāo)準(zhǔn)。ANSI于1989年公布了SQL-89標(biāo)準(zhǔn),1992年又公布了SQL-99標(biāo)準(zhǔn),后來又公布了新的標(biāo)準(zhǔn)SQL3。目前所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持某種形式的SQL語言,大部分都遵守SQL-89標(biāo)準(zhǔn)。SQL語言由于其功能強(qiáng)大,簡(jiǎn)捷易學(xué),從而被包括應(yīng)用程序員、DBA管理員和終端用戶廣泛使用。2.SQL主要特點(diǎn)(1)非過程化的語言:所謂面向過程的語言,是指當(dāng)用戶要求完成某項(xiàng)數(shù)據(jù)請(qǐng)求時(shí),必須指定存取路徑,這就需要用戶了解數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)、方式等相關(guān)情況,加重了用戶負(fù)擔(dān)。而當(dāng)使用SQL這種非過程化語言進(jìn)行數(shù)據(jù)操作時(shí),只要提出“做什么”,而不必指明“如何做”,對(duì)于存取路徑的選擇和語句的操作過程均由系統(tǒng)自動(dòng)完成。在關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)中,所有SQL語句均使用查詢優(yōu)化器,由它來決定對(duì)指定數(shù)據(jù)使用何種存取手段以保證最快的速度,這既減輕了用戶的負(fù)擔(dān),又提高了數(shù)據(jù)的獨(dú)立性與安全性。(2)功能一體化的語言:SQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL及附加語言元素于一體,語言風(fēng)格統(tǒng)一,能夠完成包括關(guān)系模式定義,數(shù)據(jù)庫對(duì)象的創(chuàng)建、修改和刪除,數(shù)據(jù)記錄的插入、修改和刪除,數(shù)據(jù)查詢,數(shù)據(jù)庫完整性、一致性保持與安全性控制等一系列操作要求。SQL語言的功能一體化特點(diǎn)使得系統(tǒng)管理員、數(shù)據(jù)庫管理員、應(yīng)用程序員、決策支持系統(tǒng)管理員以及其他各種類型的終端用戶只需要學(xué)習(xí)一種語言形式即可完成多種平臺(tái)的數(shù)據(jù)請(qǐng)求。(3)一種語法兩種使用方式:SQL語言即可以作為一種自含式語言,被用戶以一種聯(lián)機(jī)交互的方式,在終端鍵盤上直接鍵入SQL命令來對(duì)數(shù)據(jù)庫進(jìn)行操作,又可以作為一種嵌入式語言,被程序設(shè)計(jì)人員在開發(fā)應(yīng)用程序時(shí)直接嵌入到高級(jí)語言(例如C/C++、PowerBullder、VBScript等)中使用。而不論在何種使用方式下的SQL語法結(jié)構(gòu)都是基本一致的,因此具有極大的靈活性與方便性。(4)面向集合操作的語言:非關(guān)系數(shù)據(jù)模型采用面向記錄的操作方式,操作對(duì)象是單一的某條記錄,而SQL允許用戶在較高層的數(shù)據(jù)結(jié)構(gòu)上工作,操作對(duì)象可以是若干記錄的集合,簡(jiǎn)稱記錄集。所有SQL語句都接受記錄集作為輸入,返回記錄集作為輸出,其面向集合的特性還允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。(5)語法簡(jiǎn)捷、易學(xué)易用的標(biāo)準(zhǔn)語言:SQL語言不僅功能強(qiáng)大,而且語法接近英語口語,符合人類的思維習(xí)慣,因此較為容易學(xué)習(xí)和掌握。同時(shí)又由于它是一種通用的標(biāo)準(zhǔn)語言,使用SQL編寫的程序也具有良好的移植性。3.SELECT語句語法結(jié)構(gòu)SQL語言包含數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL等數(shù)據(jù)庫必備功能對(duì)應(yīng)的語句。使用SQL語句創(chuàng)建查詢實(shí)際上主要就是使用其中的DML語言的SELECT語句。SELECT語句的主要功能是從數(shù)據(jù)庫返回一組記錄的信息,它不會(huì)修改數(shù)據(jù)庫的數(shù)據(jù)。(1)SELECT語句語法結(jié)構(gòu)。SELECT[ALL|DISTINCT]<列表達(dá)式1>[AS<別名1>][,<列表達(dá)式2>[AS<別名2>]...]FROM<表名1>[,<表名2>...][WHERE<條件表達(dá)式1>[AND|OR<條件表達(dá)式2>...][GROUPBY<列名1>[,<列名2>...][HAVING<條件>]][ORDERBY<列名1>[ASC|DESC][,<列名2>[ASC|DESC]...]]SELECT語句基本上可以概括描述為:“從某一個(gè)(或某幾個(gè))數(shù)據(jù)表中選擇滿足一定條件的記錄,并把這些記錄相應(yīng)的某一個(gè)(或某幾個(gè))字段的值投影成一張二維表格”。(2)語法描述的約定說明。加粗的英文大寫單詞表示是SQL語言的保留關(guān)鍵字,這些是用戶在書寫時(shí)是不能更改的。如“SELECT”等。斜體表示需要用戶根據(jù)具體數(shù)據(jù)庫的實(shí)際情況而改變的。如“列表達(dá)式1”等?!埃郏荨眱?nèi)的內(nèi)容為可選項(xiàng)。“<>”內(nèi)的內(nèi)容為必選項(xiàng)?!癧<>]”中的內(nèi)容表示如果選擇了“[]”,那么必須指定“<>”中的內(nèi)容。如:“[AS<別名1>]”表示如果語句中有了“AS”,那么就必須指定“別名1”?!皘”表示“或”,即前后的兩個(gè)值“二選一”。如“ASC|DESC”。書寫語句時(shí),“[]”和“<>”不能寫。書寫語句時(shí),所有的字母、數(shù)字、標(biāo)點(diǎn)等符號(hào)一律用英文半角(包括空格),大小寫無所謂(語法描述中的大寫只是為了利于讀者閱讀)。本章所有關(guān)于SQL語言相關(guān)語句的語法的描述都遵循此原則。如果把SELECT語句中所有的可選部分都去除,就是一個(gè)最簡(jiǎn)化的SELECT語句,格式如下。SELECT<列表達(dá)式1>FROM<表名1>后面的舉例都是在這個(gè)基礎(chǔ)上逐步完善的。4.SELECT語句的各部分功能在寫SELECT語句之前,請(qǐng)先打開“教務(wù)管理系統(tǒng).mdb”,并建立一個(gè)空白查詢,把查詢?cè)O(shè)計(jì)窗口切換到SQL視圖,如圖5-1-8所示。(1)SELECT子句?!癆LL|DISTINCT”:“ALL”返回查詢所得到的全部記錄,而不管這些記錄是否有重復(fù);“DISTINCT”,查詢所得到的記錄如構(gòu)有重復(fù),則不包括重復(fù)行(只返回第一條);省略“ALL|DISTINCT”默認(rèn)表示“ALL”。任務(wù)1:在學(xué)生信息表中查詢班級(jí)編號(hào)。相應(yīng)的SELECT語句如下所示。SELECTALL班級(jí)編號(hào)FROM學(xué)生信息

圖5-1-8切換到SQL視圖運(yùn)行查詢,結(jié)果返回的是每個(gè)學(xué)生所在班級(jí)的班級(jí)編號(hào)。由于每個(gè)班都有多個(gè)學(xué)生,而此處只選擇班級(jí)編號(hào),因此查詢結(jié)果有很多重復(fù)記錄,如圖5-1-9所示。任務(wù)2:在學(xué)生信息表中查詢班級(jí)編號(hào),要求不要重復(fù)記錄。相應(yīng)的SELECT語句如下所示。SELECTDISTINCT班級(jí)編號(hào)FROM學(xué)生信息運(yùn)行查詢,返回的結(jié)果中只剩下了兩個(gè)班級(jí)編號(hào),如圖5-1-10所示。“<列表達(dá)式1>[AS<別名1>]”:“<列表達(dá)式1>”是對(duì)字段可以用運(yùn)算符作運(yùn)算;“[AS<別名1>]”表示可以為很長(zhǎng)的表達(dá)式起一個(gè)別名,以方便使用。任務(wù)3:學(xué)生信息表中查詢每個(gè)學(xué)生的姓名和年齡??梢詫懗鋈缦碌腟ELECT語句。SELECT姓名,年齡FROM學(xué)生信息

圖5-1-9省略或使用“ALL”

圖5-1-10使用“DISTINCT”執(zhí)行查詢,出現(xiàn)“輸入?yún)?shù)值”對(duì)話框,如圖5-1-11。輸入“23”,單擊【確定】按鈕,結(jié)果中每個(gè)學(xué)生的年齡都是“23”,如圖5-1-12所示。打開學(xué)生信息表后,會(huì)發(fā)現(xiàn)根本沒有“年齡”這個(gè)字段,也無法計(jì)算出這個(gè)“年齡”的值。在Access中,如果出現(xiàn)上述情況,則Access認(rèn)為是要執(zhí)行一個(gè)參數(shù)查詢,所以要求輸入年齡的值。怎樣才能查詢到年齡呢?仔細(xì)查看學(xué)生信息表,發(fā)現(xiàn)雖然沒有“年齡”字段,但是有“出生日期”字段,可以利用“出生日期”計(jì)算出年齡。修改SQL視圖的SELECT語句如下所示。SELECT姓名,Year(Date())-Year([出生日期])AS年齡FROM學(xué)生信息運(yùn)行查詢,結(jié)果如圖5-1-13所示。

圖5-1-12查詢年齡結(jié)果

圖5-1-11“輸入?yún)?shù)值”對(duì)話框

圖5-1-13由“出生日期”查詢“年齡”在這個(gè)SELECT語句中,“Year(Date())-Year([出生日期])”是一個(gè)表達(dá)式。其中,Date()是系統(tǒng)提供的返回系統(tǒng)當(dāng)前日期的函數(shù);Year()也是一個(gè)系統(tǒng)提供的函數(shù),它的作用是從一個(gè)日期型的數(shù)據(jù)中提取年份。因此,Year(Date())的結(jié)果就是當(dāng)前的年“2007”。同樣Year([出生日期])就將是數(shù)據(jù)表中當(dāng)前記錄的“出生日期”字段的年份。二者相減的結(jié)果就是對(duì)應(yīng)的當(dāng)前記錄代表的學(xué)生的“年齡”。但是,這個(gè)表達(dá)式是憑空加上去的,作為查詢結(jié)果希望對(duì)應(yīng)的這一列能有個(gè)清晰的名稱,所以再使用“AS年齡”為這個(gè)表達(dá)式起個(gè)“別名”。查詢結(jié)果中就有了“年齡”這一列。在SELECT語句中經(jīng)常有此類的應(yīng)用。如:在圖書銷售系統(tǒng)中,由圖書“總庫存量”和“總銷售量”可以得到某一本圖書的當(dāng)前庫存量。(2)FROM子句:要從哪些數(shù)據(jù)表中查找您想要的結(jié)果,就把對(duì)應(yīng)的數(shù)據(jù)表的名字寫在FROM后面,相鄰兩個(gè)之間用逗號(hào)隔開就可以了。(3)WHERE子句:是用來指定要查詢滿足何種條件的記錄。<條件表達(dá)式1>的構(gòu)成如表5-1所示。類型謂詞比較=><>=<=!=<>確定范圍BETWEENAND、NOTBETWEENAND確定集合IN、NOTIN字符匹配LIKE(“%”匹配任何長(zhǎng)度,“_”匹配一個(gè)字符)、NOTLIKE注意:在Access中“%”換為“*”,“_”換為“?”空值ISNULL、ISNOTNULL子查詢ANY、ALL、EXISTS集合查詢UNION(并)、INTERSECT(交)、MINUS(差)

多重條件AND、OR、NOT表5-1條件表達(dá)式構(gòu)成任務(wù)4:在學(xué)生信息表中查找年齡為26歲的學(xué)生的姓名和民族。首先,實(shí)現(xiàn)查找所有學(xué)生的姓名和民族。相應(yīng)的SELECT語句如下所示。

SELECT姓名,民族

FROM學(xué)生信息然后,為這個(gè)SELECT語句加上“WHERE”子句,如下所示。

SELECT姓名,民族

FROM學(xué)生信息WHERE(Year(Date())-Year([出生日期]))=26

圖5-1-14單個(gè)比較條件表達(dá)式在WHERE子句中,Year(Date())-Year([出生日期])就是前面用到的計(jì)算年齡的表達(dá)式;把這個(gè)表達(dá)式和一個(gè)具體的數(shù)值“26”相比較就構(gòu)成了一個(gè)比較類型“條件表達(dá)式”,只有一個(gè)限定條件。查詢結(jié)果如圖5-1-14所示。

圖5-1-14單個(gè)比較條件表達(dá)式任務(wù)5:在學(xué)生信息表中查找年齡在26~28歲之間的學(xué)生的姓名和民族。只要把WHERE子句修改成如下所示。SELECT姓名,民族FROM學(xué)生信息WHERE(Year(Date())-Year([出生日期]))>=26AND(Year(Date())-Year([出生日期]))<=28此時(shí),條件表達(dá)式就是由“AND”連接的多重條件表達(dá)式?!癆ND”表示“并且”的意思。結(jié)果如圖5-1-15所示。同樣的,這個(gè)例子還可以使用確定范圍的條件表達(dá)式“BETWEENAND”?!癇ETWEENAND”字面的意思是“在和之間”。因此,上面的這個(gè)例子可以修改WHERE子句為如下所示。SELECT姓名,民族FROM學(xué)生信息WHERE(Year(Date())-Year([出生日期]))BETWEEN26AND28

圖5-1-15AND多重條件表達(dá)式但是,“BETWEENAND”只能適用于某個(gè)字段或表達(dá)式在兩個(gè)值之間的情況。

圖5-1-16NOT條件表達(dá)式如果條件多于兩個(gè),可以使用“AND”、“OR”或“NOT”把多個(gè)條件連接在一起。“OR”表示“或”的意思,“NOT”表示“非”的意思。把這個(gè)例子再作如下的修改。SELECT姓名,民族FROM學(xué)生信息WHERENOT(Year(Date())-Year([出生日期]))BETWEEN26AND28這就表示:查找年齡不在26~28歲之間的學(xué)生的姓名和民族。結(jié)果如圖5-1-16所示。任務(wù)6:在學(xué)生信息表中查找所有“王”姓的學(xué)生的姓名和民族。還是查詢學(xué)生的姓名和民族,因此,除去“WHERE”子句的SELECT語句如下所示。SELECT姓名,民族FROM學(xué)生信息

圖5-1-16NOT條件表達(dá)式

那么如何確定“姓‘王’”的條件呢?這就要用到“字符匹配”查詢,使用“LIKE”謂詞,完整的的語句如下。SELECT姓名,民族FROM學(xué)生信息WHERE姓名LIKE'王%'“姓名LIKE'王%'”表示姓名字段是“王”字開頭?!?”匹配后面的其他多個(gè)任意字符,如“王長(zhǎng)江”、“王猛”等情形。如果把上面的語句的“WHERE”子句改寫成“WHERE姓名LIKE'王_'”則可以查詢出“所有姓‘王’,并且姓名中只有兩個(gè)字的學(xué)生”?!癬”表示匹配單個(gè)任意字符。注意:由于不同的數(shù)據(jù)庫產(chǎn)品在實(shí)現(xiàn)SQL時(shí)使用了自己的語法特性,所以上面兩個(gè)語句在Access中書寫時(shí)請(qǐng)把“%”換為“*”,“_”換為“?”。下面介紹UNION類型的集合查詢,也就是在案例中使用的“聯(lián)合查詢”。UNION前后分別是一個(gè)SELECT語句,如下所示。SELECT語句AUNIONSELECT語句B

“UNION”的意思是“把前后兩個(gè)SELECT語句產(chǎn)生的“虛擬表”(結(jié)果)合并到一個(gè)集合中”。因此,使用“UNION”連接的兩個(gè)SQL語句產(chǎn)生的“虛擬表”要有相同的“結(jié)構(gòu)”:列的數(shù)目相等,對(duì)應(yīng)的類型一致(本案例則是“完全相同”)。這是使用聯(lián)合查詢必須要注意的地方。至于每個(gè)SELECT語句的查詢條件,如“WHERE國家='中國'”,則視具體情況而定,不一定非要一樣。任務(wù)7:如要查詢“2004年5月1日以前與本公司有業(yè)務(wù)往來的客戶的公司名稱和所在城市的相關(guān)情況”,則可能的SQL語句如下所示。SELECT公司名稱,城市FROM供應(yīng)商WHERE進(jìn)貨日期<=#2004-5-1#UNIONSELECT公司名稱,城市FROM經(jīng)銷商WHERE發(fā)貨日期<=#2004-5-1#如果在查詢中有重復(fù)記錄(即所選字段內(nèi)容完全一樣的記錄),則聯(lián)合查詢只顯示重復(fù)記錄中的第一條記錄;要想顯示所有的重復(fù)記錄,需要在“UNION”后加上關(guān)鍵字“ALL”,即寫成“UNIONALL”。

5.2相關(guān)知識(shí)

1.SQL子查詢子查詢就是嵌入在另一個(gè)SELECT、SELECTINTO、INSERTINTO、DELETE或UPDATE語句內(nèi)部的SELECT語句。它可以對(duì)基于另一個(gè)結(jié)果集的結(jié)果進(jìn)行進(jìn)一步的限制。這叫做嵌入,并且因?yàn)橐粋€(gè)子查詢就是一個(gè)SELECT語句,也可以把一個(gè)子查詢嵌入到另一個(gè)子查詢里面。當(dāng)在一個(gè)SQL語句中使用一個(gè)子查詢時(shí),它可以作為一個(gè)域列表、WHERE子句或者HAVING子句的一部分。有3種基本的子查詢形式,并且每種都使用不同種類的謂詞。2.IN子查詢IN子查詢用于檢索這樣的一組值,即其中記錄的某一列的值都被另一個(gè)工作表或查詢中的一列的值包含。它從其他工作表中只能返回一列,這是一個(gè)限制條件。如果返回的結(jié)果多于一列就會(huì)產(chǎn)生一個(gè)錯(cuò)誤。一個(gè)返回所有擁有發(fā)票的顧客的列表的SQL語句如下。SELECT*FROMtblCustomersWHERECustomerIDIN(SELECTCustomerIDFROMtblInvoices)通過使用NOT邏輯操作符,可以檢索和IN子查詢相反的記錄,從而獲得所有沒有任何發(fā)票的顧客列表。SELECT*FROMtblCustomersWHERECustomerIDNOTIN(SELECTCustomerIDFROMtblInvoices)3.ANY/SOME/ALL子查詢ANY、SOME和ALL子查詢謂詞被用于比較主查詢的記錄和子查詢的多個(gè)輸出記錄。ANY和SOME謂詞是同義詞并可以被替換使用。當(dāng)需要從主查詢中檢索任何符合在子查詢中滿足比較條件的記錄時(shí),可以使用ANY或SOME謂詞。謂詞應(yīng)該恰好放在子查詢開始的括號(hào)前面。SELECT*FROMtblCustomersWHERECustomerID=ANY(SELECTCustomerIDFROMtblInvoices)注意由上面SQL語句所返回的結(jié)果集和IN子查詢例子所返回的結(jié)果集相同。而與ANY和SOME謂詞的不同之處在于它們都可以使用等于(=)以外的操作符,比如大于(>)和小于(<)。SELECT*FROMtblCustomersWHERECustomerID>ANY(SELECTCustomerIDFROMtblInvoices)當(dāng)想在主查詢中檢索滿足子查詢比較條件的所有記錄時(shí)使用謂詞ALL。SELECT*FROMtblCustomersWHERECustomerID>ALL(SELECTCustomerIDFROMtblInvoices)4.EXISTS子查詢EXISTS謂詞是用于子查詢?cè)谝粋€(gè)結(jié)果集中檢查所有存在值的記錄。換句話說,就是如果子查詢沒有返回任何行,這個(gè)比較就是False。而如果它返回了一行或多行,這個(gè)比較就為True。SELECT*FROMtblCustomersASAWHEREEXISTS(SELECT*FROMtblInvoicesWHEREA.CustomerID=tblInvoices.CustomerID)注意:在前面的SQL語句中,tblCustomers工作表使用了一個(gè)別名,這就是為何可以在后來的子查詢中引用它的原因。當(dāng)一個(gè)子查詢以這種格式與一個(gè)主查詢聯(lián)接時(shí)就稱相關(guān)查詢。通過使用NOT邏輯操作符,可以檢索和EXISTS子查詢相反的記錄,從而可以得到所有沒有任何發(fā)票的顧客的結(jié)果集。SELECT*FROMtblCustomersASA(SELECT*FROMtblInvoicesWHEREA.CustomerID=tblInvoices.CustomerID)

5.3

相關(guān)知識(shí)

在Access中,創(chuàng)建數(shù)據(jù)定義查詢是使用SQL語言的DDL語句??梢允褂玫腄DL語句主要有5種,如表5-3-1所示。注意:在一個(gè)數(shù)據(jù)定義查詢中只能使用一條DDL語句。種

類功

能CREATETABLE創(chuàng)建數(shù)據(jù)表DROPTABLE刪除數(shù)據(jù)表ALTERTABLE更新數(shù)據(jù)表CREATEINDEX創(chuàng)建索引DROPINDEX刪除索引下面就這幾種語句的語法分別講解。1.CREATETABLE語句CREATETABLE語句創(chuàng)建一個(gè)新表,此時(shí),表是一個(gè)空表,表中沒有任何數(shù)據(jù)。這個(gè)語句的格式如下所示。CREATETABLEtable_name(column_name_1

data_type_1[size][NOTNULL],

column_name_2

data_type_2[size],…CONSTRAINT[Index_name1]PRIMARYKEY([column_name_*]);有關(guān)這個(gè)語句的語法的相關(guān)說明如表5-3-2所示表5-3-2CREATETABLE語句說明元

素說

明table_name要?jiǎng)?chuàng)建的表的名稱column_name_*要在新表中創(chuàng)建的字段的名稱。必須創(chuàng)建至少一個(gè)字段data_type_*在新表中字段的數(shù)據(jù)類型size以字符為單位的字段大小(僅限于文本和二進(jìn)制字段)NOTNULL在添加新記錄時(shí)該字段不能為空CONSTRAINT[Index_name1使用約束,索引本案例中創(chuàng)建的客戶表的CREATETABLE語句如下所示這個(gè)CREATETABLE語句創(chuàng)建了一個(gè)名為“客戶”的數(shù)據(jù)表;數(shù)據(jù)表中共有4個(gè)字段,分別為“客戶ID”、“名稱”、“電話”、“地址”;它們的數(shù)據(jù)類型是,“客戶ID”為integer整型,其余為text文本型;其中,“客戶ID”被“CONSTRAINT”指定為使用約束創(chuàng)建為索引,并有“PRIMARY

KEY”設(shè)置為主關(guān)鍵字。2.DROPTABLE語句DROPTABLE語句刪除指定名稱的數(shù)據(jù)表,它的語法格式為:CREATETABLE客戶([客戶ID]

integer,[名稱]

text,[電話]

text,[地址]

text,CONSTRAINT

[Index1]

PRIMARY

KEY([客戶ID]));DROPTABLEtable_name本案例中為:“DROPTABLE客戶;”

3.ALTER

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論