第4章結(jié)構(gòu)查詢語(yǔ)言_第1頁(yè)
第4章結(jié)構(gòu)查詢語(yǔ)言_第2頁(yè)
第4章結(jié)構(gòu)查詢語(yǔ)言_第3頁(yè)
第4章結(jié)構(gòu)查詢語(yǔ)言_第4頁(yè)
第4章結(jié)構(gòu)查詢語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第4章結(jié)構(gòu)化查詢語(yǔ)言4.1SQL概述4.2數(shù)據(jù)查詢4.3數(shù)據(jù)操作4.4數(shù)據(jù)定義4.2數(shù)據(jù)查詢4.2.1select命令基本格式SELECT<*>|[DISTINCT]<查詢項(xiàng)>FROM<數(shù)據(jù)表>[WHERE<條件>][GROUPBY<分組表達(dá)式>[HAVING<篩選條件>][ORDERBY<排序項(xiàng)>[ASC|DESC]INTO<目的地>SELECT命令的基本結(jié)構(gòu)是SELECT…FROM…WHERE,它包含輸出字段…數(shù)據(jù)來(lái)源…查詢條件。其中SELECT和FROM是必須的。說(shuō)明:(1)SELECT子句:*表示選出的記錄中包括重復(fù)記錄,DISTINCT表示選出的記錄中不包括重復(fù)記錄。(2)FROM子句及其選項(xiàng):用于指定查詢的表。(3)WHERE子句:WHERE子句中指定篩選條件。(4)GROUPBY子句:對(duì)記錄按<組表達(dá)式>值分組,常用于分組統(tǒng)計(jì)。(5)HAVING子句:當(dāng)含有GROUPBY子句時(shí),HAVING子句可用做記錄查詢的限制條件。(6)ORDERBY子句:指定查詢結(jié)果中記錄按<表達(dá)式>排序,默認(rèn)升序。4.2.2簡(jiǎn)單查詢主要基于單個(gè)表,可以有簡(jiǎn)單的查詢條件。這樣的查詢用SELECT和FROM短語(yǔ)構(gòu)成無(wú)條件查詢。或由SELECT、FROM和WHERE短語(yǔ)構(gòu)成條件查詢。1.查詢部分字段例例:

找出成績(jī)表中學(xué)生的學(xué)號(hào)、姓名、計(jì)算機(jī)成績(jī)。SELECT學(xué)號(hào),姓名,計(jì)算機(jī)FROM成績(jī)表2.使用distinct短句Distinct的作用是去掉查詢結(jié)果的重復(fù)值。例:列出所有學(xué)生姓名,去掉重名。SELECTDISTINCT姓名AS學(xué)生名單FROM學(xué)生3.查詢所有字段例:列出所有學(xué)生信息。SELECT*FROM學(xué)生&&“*”是通配符,表示所有字段4.條件查詢格式:select<數(shù)據(jù)項(xiàng)>from數(shù)據(jù)表where<條件表達(dá)式>例:列出所有姓陳的學(xué)生名單。SELECT姓名,學(xué)號(hào)FROM學(xué)生WHEREleft(名,2)=“陳”4.2.3帶特殊運(yùn)算符的條件查詢WHERE子句中的條件表達(dá),除了使用關(guān)系比較運(yùn)算和邏輯運(yùn)算符號(hào)之外,還可以使用特殊運(yùn)算符號(hào),如IN、BETWEEN…AND…和LIKE等。Between…and…在”…”和”…”之間例:

在學(xué)生表中檢索出入學(xué)成績(jī)?cè)?00~520分范圍內(nèi)的學(xué)生信息。SELECT*FROM學(xué)生WHERE入學(xué)成績(jī)BETWEEN500AND520這個(gè)查詢條件等價(jià)與:(入學(xué)成績(jī)>=500)and(入學(xué)成績(jī)<=520)2.LikeLike是字符串匹配運(yùn)算符,通配符”%”表示0個(gè)或多個(gè)字符,另外還有一個(gè)通配符”-”表示一個(gè)字符。例:從學(xué)生表中檢索出全部姓李的信息。SELECT*FROM學(xué)生WHERE姓名LIKE"李%“3.InIn運(yùn)算符后面接一個(gè)集合,集合形式為(元素1,元素2,元素3,….)例:從學(xué)生表中檢索出福建、江西、湖南籍學(xué)生的信息SELECT*FROM學(xué)生WHERE姓名LIKE"李%“4.not4.2.4簡(jiǎn)單的計(jì)算查詢COUNT——計(jì)數(shù)SUM——求和AVG——計(jì)算平均值MAX——計(jì)算最大值MIN——計(jì)算最小值例:將所有的學(xué)生數(shù)學(xué)成績(jī)四舍五入,只顯示學(xué)號(hào)、姓名和數(shù)學(xué)成績(jī)SELECT

學(xué)號(hào),姓名,ROUND(數(shù)學(xué),0)AS數(shù)學(xué)成績(jī)FROM

學(xué)生例:求出所有學(xué)生的數(shù)學(xué)成績(jī)平均分、最高分、最低分。

SELECTAVG(數(shù)學(xué))AS數(shù)學(xué)成績(jī)平均分,MAX(數(shù)學(xué))AS數(shù)學(xué)成績(jī)最高分,MIN(數(shù)學(xué))AS數(shù)學(xué)成績(jī)最低分FROM學(xué)生4.2.5.分組統(tǒng)計(jì)(GROUP)查詢查詢結(jié)果可以分組,其格式是:GROUPBY<分組選項(xiàng)1>[,<分組選項(xiàng)2>…]其中<分組選項(xiàng)>可以是字段名,SQL函數(shù)表達(dá)式,也可以是列序號(hào)(最左邊為1)。例分別統(tǒng)計(jì)男女人數(shù)。SELECT性別,COUNT(性別)FROM學(xué)生GROUPBY性別例分別統(tǒng)計(jì)男女中少數(shù)民族學(xué)生人數(shù)。SELECT性別,COUNT(性別)FROM學(xué)生GROUPBY性別WHERE少數(shù)民族否4.2.6排序查詢輸出ORDERBY短語(yǔ)的格式如下:ORDERBY<排序項(xiàng)1>[ASC|DESC][,<排序項(xiàng)2>[ASC|DESC]…]可以按一列或多列排序,ASC:升序,DESC:降序。默認(rèn)為ASC。例例對(duì)學(xué)生表,請(qǐng)輸出數(shù)學(xué)成績(jī)最高的前五名學(xué)生的信息SELECT*TOP5FROM學(xué)生ORDERBY數(shù)學(xué)DESC4.2.7簡(jiǎn)單聯(lián)接查詢(多表查詢)

聯(lián)接查詢是基于多個(gè)表的查詢。表之間的聯(lián)系是通過(guò)字段值來(lái)體現(xiàn)的,這種字段通常稱為聯(lián)接字段。1、等值聯(lián)接與非等值聯(lián)接查詢當(dāng)聯(lián)接運(yùn)算符為“=”時(shí),稱為等值聯(lián)接,使用其他運(yùn)算符(>、<、>=、<=、?。r(shí)稱為非等值聯(lián)接。12例:查詢所有學(xué)生的成績(jī)單,要求給出學(xué)號(hào)、姓名、性別、計(jì)算機(jī)成績(jī)、數(shù)學(xué)成績(jī)。SELECTa.學(xué)號(hào),a.姓名,b.計(jì)算機(jī),b.數(shù)學(xué)FROM學(xué)生a,成績(jī)表b

WHEREa.學(xué)號(hào)=b.學(xué)號(hào)其中:a.學(xué)號(hào)=b.學(xué)號(hào)是聯(lián)接條件注:短語(yǔ)FROM學(xué)生a,表示選擇學(xué)生表,并將學(xué)生表的別名設(shè)為a;短語(yǔ)SELECTa.學(xué)號(hào),表示取學(xué)生表的學(xué)號(hào)字段。說(shuō)明:·當(dāng)FROM之后有多個(gè)關(guān)系時(shí),各個(gè)關(guān)系相互之間肯定有一種聯(lián)系,否則無(wú)法構(gòu)成檢索表達(dá)式。

當(dāng)FORM指定的不同關(guān)系中含有相同的屬性名時(shí),必須加表名作為屬性名的前綴,以區(qū)別屬性所屬的關(guān)系。例如“a.學(xué)號(hào)”,“b.學(xué)號(hào)”。2.自聯(lián)接查詢一個(gè)表與其自已進(jìn)行聯(lián)接,稱為自身聯(lián)接。例:列出成績(jī)表中,計(jì)算機(jī)成績(jī)高于數(shù)學(xué)成績(jī)的學(xué)生的學(xué)號(hào)、計(jì)算機(jī)成績(jī)和數(shù)學(xué)成績(jī)。

SELECTa.學(xué)號(hào),a.計(jì)算機(jī),a.數(shù)學(xué)FROM成績(jī)表a,成績(jī)bWHEREa.計(jì)算機(jī)>b.數(shù)學(xué)

ANDa.學(xué)號(hào)=b.學(xué)號(hào)

注:在自聯(lián)接時(shí),對(duì)數(shù)據(jù)表必須使用別名。4.2.8超連接查詢

VisualFoxPro提供的SELECT命令,在FROM子句中提供一種稱之為聯(lián)接的子句。聯(lián)接分為內(nèi)部聯(lián)接和外部聯(lián)接。外部聯(lián)接又分為左外聯(lián)接、右外聯(lián)接和全外聯(lián)接。

格式為:Select…from<數(shù)據(jù)表1>innerjoin|leftjoin|rightjoin|fulljoin<數(shù)據(jù)表2>on條件

1.內(nèi)部聯(lián)接(InnerJoin)實(shí)際上,上面例子全部都是內(nèi)部聯(lián)接。所謂內(nèi)部聯(lián)接是指包括符合條件的每個(gè)表格中的記錄。也就是說(shuō)是所有滿足聯(lián)接條件的記錄都包含在查詢結(jié)果中。例

列出少數(shù)民族學(xué)生的學(xué)號(hào)、姓名及計(jì)算機(jī)成績(jī)。SELECTa.學(xué)號(hào),a.姓名,b.計(jì)算機(jī)FROM學(xué)生a,成績(jī)表bWHEREa.學(xué)號(hào)=b.學(xué)號(hào)ANDa.少數(shù)民族否如采用內(nèi)部聯(lián)接方式?SELECTa.學(xué)號(hào),a.姓名,b.計(jì)算機(jī)FROM

學(xué)生aINNERJOIN成績(jī)表bONa.學(xué)號(hào)=b.學(xué)號(hào)WHEREa.少數(shù)民族否所得到的結(jié)果完全相同2.外部聯(lián)接(OuterJoin)(1)左外聯(lián)接也叫左聯(lián)接(LeftJoin),其系統(tǒng)執(zhí)行過(guò)程是左表的某條記錄與右表的所有記錄依次比較,若有滿足聯(lián)接條件的,則產(chǎn)生一個(gè)真實(shí)值記錄。若都不滿足,則產(chǎn)生一個(gè)含有NULL值的記錄。接著,左表的下一記錄與右表的所有記錄依次比較字段值,重復(fù)上述過(guò)程,直到左表所有記錄都比較完為止。聯(lián)接結(jié)果的記錄個(gè)數(shù)與左表的記錄個(gè)數(shù)一致。(左表記錄全部顯示,右表只顯示滿足條件的記錄)SELECTa.學(xué)號(hào),a.姓名,b.計(jì)算機(jī)FROM

學(xué)生aleftJOIN成績(jī)表bONa.學(xué)號(hào)=b.學(xué)號(hào)(2)右外聯(lián)接也叫右聯(lián)接(RightJoin),其系統(tǒng)執(zhí)行過(guò)程是右表的某條記錄與左表的所有記錄依次比較,若有滿足聯(lián)接條件的,則產(chǎn)生一個(gè)真實(shí)值記錄;若都不滿足,則產(chǎn)生一個(gè)含有NULL值的記錄。接著,右表的下一記錄與左表的所有記錄依次比較字段值,重復(fù)上述過(guò)程,直到左表所有記錄都比較完為止。聯(lián)接結(jié)果的記錄個(gè)數(shù)與右表的記錄個(gè)數(shù)一致。。(右表記錄全部顯示,左表只顯示滿足條件的記錄)SELECTa.學(xué)號(hào),a.姓名,b.計(jì)算機(jī)FROM

學(xué)生arightJOIN成績(jī)表bONa.學(xué)號(hào)=b.學(xué)號(hào)(3)全外聯(lián)接也叫完全聯(lián)接(FullJoin),其系統(tǒng)執(zhí)行過(guò)程是先按右聯(lián)接比較字段值,然后按左聯(lián)接比較字段值,重復(fù)記錄不記入查詢結(jié)果中。SELECTa.學(xué)號(hào),a.姓名,b.計(jì)算機(jī)FROM學(xué)生afullJOIN成績(jī)表bONa.學(xué)號(hào)=b.學(xué)號(hào)

6.3.3嵌套查詢有時(shí)候一個(gè)SELECT命令無(wú)法完成查詢?nèi)蝿?wù),需要一個(gè)子SELECT的結(jié)果作為條件語(yǔ)句的條件,即需要在一個(gè)SELECT命令的WHERE子句中出現(xiàn)另一個(gè)SELECT命令,這種查詢稱為嵌套查詢。通常把僅嵌入一層子查詢的SELECT命令稱為單層嵌套查詢,把嵌入子查詢多于一層的查詢稱為多層嵌套查詢。VisualFoxPro只支持單層嵌套查詢。1.返回單值的子查詢例列出計(jì)算機(jī)成績(jī)?yōu)?5分的所有學(xué)生的籍貫。select姓名,籍貫fromh:\vfp\學(xué)生where姓名in(sele姓名fromh:\vfp\成績(jī)表where計(jì)算機(jī)=85)selea.姓名,a.籍貫fromh:\vfp\學(xué)生a,h:\vfp\成績(jī)表bwherea.姓名=b.姓名andb.計(jì)算機(jī)=85202.返回一組值的子查詢?nèi)裟硞€(gè)子查詢返回值不止一個(gè),則必須指明在WHERE子句中應(yīng)怎樣使用這些返回值。通常使用條件ANY(或SOME)、ALL和IN(1)ANY運(yùn)算符的用法例:列出選修“計(jì)算機(jī)”課的學(xué)生中期末成績(jī)比選修“數(shù)學(xué)”的最低成績(jī)要高的學(xué)生的學(xué)號(hào)和計(jì)算機(jī)成績(jī)及數(shù)學(xué)成績(jī)。SELECT學(xué)號(hào),計(jì)算機(jī),數(shù)學(xué)FROM成績(jī)表WHERE計(jì)算機(jī)>ANY

(SELECT數(shù)學(xué)FROM成績(jī)表)(2)ALL運(yùn)算符的用法例:例:列出選修“計(jì)算機(jī)”課的學(xué)生中期末成績(jī)比選修“數(shù)學(xué)”的最高成績(jī)還要高的學(xué)生的學(xué)號(hào)和計(jì)算機(jī)成績(jī)及數(shù)學(xué)成績(jī)。SELECT學(xué)號(hào),計(jì)算機(jī),數(shù)學(xué)FROM成績(jī)表WHERE計(jì)算機(jī)>all

(SELECT數(shù)學(xué)FROM成績(jī)表)(3)IN運(yùn)算符的用法例:列出江西籍或福建籍的所有學(xué)生的姓名、計(jì)算機(jī)成績(jī)、數(shù)學(xué)成績(jī)。SELECT姓名、計(jì)算機(jī)、數(shù)學(xué)FROM成績(jī)表WHERE籍貫IN;(SELECT籍貫FROM學(xué)生WHERE籍貫=″江西″OR籍貫=″福建″)注:IN是屬于的意思,等價(jià)于“=ANY”,即等于子查詢中任何一個(gè)值。輸出合并是指將兩個(gè)查詢結(jié)果進(jìn)行集合并操作,其子句格式是:[UNION[ALL]<SELECT命令>]其中ALL表示結(jié)果全部合并。若沒(méi)有ALL,則重復(fù)的記錄將被自動(dòng)取掉。合并的規(guī)則是:(1)不能合并子查詢的結(jié)果。(2)兩個(gè)SELECT命令必須輸出同樣的列數(shù)。(3)兩個(gè)表各相應(yīng)列出的數(shù)據(jù)類型必須相同,數(shù)字和字符不能合并。(4)僅最后一個(gè)<SELECT命令>中可以用ORDERBY子句,且排序選項(xiàng)必須用數(shù)字說(shuō)明。4.2.11.輸出合并(UNION)例列出“福建”籍或計(jì)算機(jī)成績(jī)?yōu)?5分所有學(xué)生的學(xué)號(hào)及姓名。SELECT學(xué)號(hào),姓名FROM學(xué)生WHERE籍貫=江西UNION

SELECT學(xué)號(hào),姓名FROM成績(jī)表WHERE計(jì)算機(jī)=85各子句的含義:①<目標(biāo)>有如下3種形式:a.ARRAY<數(shù)組名>。將查詢結(jié)果存到指定數(shù)組名的內(nèi)存變量數(shù)組中。b.CURSOR<臨時(shí)表>。將輸出結(jié)果存到一個(gè)臨時(shí)表。c.DBF<表>|TABLE<表>。將結(jié)果存到一個(gè)表,如該表已經(jīng)打開(kāi),則系統(tǒng)自動(dòng)關(guān)閉它。如執(zhí)行SETSAFETYOFF,則重新打開(kāi)。沒(méi)有指定后綴,則默認(rèn)為.dbf。②TOFILE<文件名>[ADDITIVE]將結(jié)果輸出到指定文本文件,ADDITIVE表示將結(jié)果添加到文件后面。③TOPRINTER將結(jié)果送打印機(jī)輸出。4.2.12查詢結(jié)果輸出命令:[INTO<目標(biāo)>|[TOFILE<文件名>[ADDITIVE]|TOPRINTER]例將上例的查詢結(jié)果保存到test1.txt文本文件中。SELECTa.學(xué)號(hào),a.姓名,a.性別,c.課程名,b.成績(jī)FROM學(xué)生a,選課b,課程c;WHEREa.學(xué)號(hào)=b.學(xué)號(hào)ANDb.課程號(hào)=c.課程號(hào)ORDERBYa.性別,c.課程名,b.成績(jī)DESCTOFILEtest1

例查詢學(xué)生所學(xué)課程和成績(jī),輸出學(xué)號(hào)、姓名、課程名和成績(jī),并將查詢結(jié)果存入testtable表中。SELECTa.學(xué)號(hào),a.姓名,b.課程號(hào),b.成績(jī)FROM學(xué)生a,選課bWHEREa.學(xué)號(hào)=b.學(xué)號(hào)INTOCURSORtestSELECTa.學(xué)號(hào),a.姓名,b.課程名,a.成績(jī)FROMtesta,課程bWHEREa.課程號(hào)=b.課程號(hào)INTOTABLEtesttableORDERBYa.學(xué)號(hào)VisualFoxPro支持兩種SQL插入命令,其格式是:格式1:INSERTINTO<表名>[(字段名1[<字段名2>[,…]])]VALUES(<表達(dá)式1>[,<表達(dá)式2>[,…]])該命令在指定的表尾添加一條新記錄,其值為VALUES后面表達(dá)式的值。當(dāng)需要插入表中所有字段的數(shù)據(jù)時(shí),表名后面的字段名可以缺省,但插入數(shù)據(jù)的格式及順序必須與表的結(jié)構(gòu)完全吻合;若只需要插入表中某些字段的數(shù)據(jù),就需要列出插入數(shù)據(jù)的字段名,當(dāng)然相應(yīng)表達(dá)式的數(shù)據(jù)位置應(yīng)與之對(duì)應(yīng)。4.3數(shù)據(jù)操縱4.3.1插入記錄例向?qū)W生表中添加記錄。INSERTINTO學(xué)生(學(xué)號(hào),姓名)VALUES(″231109″,″李成功″)格式2:INSERTINTO<表名>FROMARRAY<數(shù)組名>|FROMMEMVAR]

該命令在指定的表尾添加一條新記錄,其值來(lái)自于數(shù)組或?qū)?yīng)的同名內(nèi)存變量。例已經(jīng)定義了數(shù)組A(5),A中各元素的值分別是:AA(1)=″231013″,A(2)=″張陽(yáng)″,A(3)=″女″,A(4)={^1988-09-10},A(5)=.T.。利用該數(shù)組向?qū)W生表中添加記錄。INSERTINTO學(xué)生FROMARRAYA

在VisualFoxPro中,DELETE可以為指定的數(shù)據(jù)表中的記錄加刪除標(biāo)記。命令格式是:DELETEFROM[<數(shù)據(jù)庫(kù)名>!]<表名>[WHERE<條件表達(dá)式>該命令從指定表中,根據(jù)指定的條件邏輯刪除記錄。例將“學(xué)生”表所有男生的記錄邏輯刪除。DELETEFROM學(xué)生WHERE性別=″男″4.3.2刪除記錄

4.3.3更新記錄格式:UPDATE[<數(shù)據(jù)庫(kù)名>!]<表名>SET<字段名1>=<表達(dá)式1>[,<字段名2>=<表達(dá)式2>…][WHERE<邏輯表達(dá)式>]功能:更新記錄時(shí)對(duì)存儲(chǔ)在表中的記錄進(jìn)行修改例將“學(xué)生”表中姓名為楊陽(yáng)的學(xué)生的外語(yǔ)成績(jī)改為93。UPDATE學(xué)生SET外語(yǔ)=93WHERE姓名=“楊陽(yáng)”例所有男生的各科成績(jī)加20分

UPDATE選課SET成績(jī)=成績(jī)+20WHERE學(xué)號(hào)IN(SELECT學(xué)號(hào)FROM學(xué)生WHERE性別=男)4.4數(shù)據(jù)定義4.4.1建立數(shù)據(jù)表格式:CREATETABLE|DBF<表名1>[NAME<長(zhǎng)表名>][FREE](<字段名1><類型><寬度>[,<小數(shù)位數(shù)>])[NULL|NOTNULL][CHECK<條件表達(dá)式1>[ERROR<出錯(cuò)顯示信息>]][DEFAULT<表達(dá)式1>][PRIMARYKEY|UNIQUE]REFERENCES<表名2>[TAG<標(biāo)識(shí)1>][<字段名2><類型>(<寬度>[,<小數(shù)位數(shù)>])[NULL|NOTNULL][CHECK<條件表達(dá)式2>[ERROR<出錯(cuò)顯示信息>]][DEFAULT<表達(dá)式2>][PRIMARYKEY|UNIQUE]REFERENCES<表名3>[TAG<標(biāo)識(shí)2>參數(shù)說(shuō)明:FREE:指明所創(chuàng)建的表為自由表。NULL、NOTNULL——該字段是否允許“空值”,其默認(rèn)值為NULL。CHECK<條件表達(dá)式>——用來(lái)檢測(cè)字段的值是否有效,這是實(shí)行數(shù)據(jù)庫(kù)的一種完整性檢查。ERROR<出錯(cuò)顯示信息>——當(dāng)完整性檢查有錯(cuò)誤,即條件表達(dá)式的值為假時(shí)的提示信息。DEFAULT<表達(dá)式>——為一個(gè)字段指定的默認(rèn)值。PRIMARYKEY——指定該字段為關(guān)鍵字段,它能保證關(guān)鍵字段的唯一性和非空性,非數(shù)據(jù)庫(kù)表不能使用該參數(shù)。UNIQUE——指定該字段為一個(gè)侯選關(guān)鍵字段。注意,指定為關(guān)鍵或侯選關(guān)鍵的字段都不允許出現(xiàn)重復(fù)值,這稱為對(duì)字段值的唯一性約束。REFERENCES<表名>——這里指定的表作為新建表的永久性父表,新建表作為子表。TAG<標(biāo)識(shí)>——父表中的關(guān)聯(lián)字段,若缺省該參數(shù),則默認(rèn)父表的主索引字段作為關(guān)聯(lián)字段。2023/2/435數(shù)據(jù)類型說(shuō)明字段類型字段寬度小數(shù)位說(shuō)明CN-字符型字段的寬度位ND--日期型(Date)T--日期時(shí)間型(Datetime)NND數(shù)值字段類型(Numeric),寬度位N,小數(shù)位DFND浮點(diǎn)數(shù)值字段類型(Float),寬度位N,小數(shù)位DI--整數(shù)類型(Integer)B-D雙精度類型(Double)Y--貨幣型(Currency)L--邏輯型(Logic)M--備注型(Memo)G--通用型(General)2023/2/4操作步驟如下:(1)用CREATE命令建立數(shù)據(jù)庫(kù)。CREATEDATABASEf:\vfp\圖書(shū)管理(2)用CREATE命令建立讀者表。createtablef:\vfp\讀者(讀者證號(hào)c(3)primkey,姓名c(8),性別c(2)check性別='男'or性別='女'error"性別只能為男或?yàn)榕?default"男",身份c(8),電話號(hào)碼c(11))例

利SQL命令建立圖書(shū)管理數(shù)據(jù)庫(kù),其中包含3個(gè)表:讀者表、圖書(shū)表和借閱表。2023/2/4(3)建立圖書(shū)表。createtablef:\vfp\圖書(shū)(條形碼c(8)primkey,書(shū)名c(40),分類號(hào)c(20),作者c(20),出版時(shí)間d)(4)建立借閱表createtablef:\vfp\借閱(條形碼c(8)reference圖書(shū),讀者證號(hào)c(3)reference讀者,借閱時(shí)間d,還書(shū)時(shí)間d)4.4.2修改數(shù)據(jù)表修改表結(jié)構(gòu)的命令是ALTERTABLE,該命令有一下幾種種格式:1.增加字段ALTERTABLE<表名1>ADD[COLUMN]<字段名><字段類型>[(<寬度>[,<小數(shù)位數(shù)>])][NULL|NOTNULL][CHECK<邏輯表達(dá)式>[ERROR<出錯(cuò)顯示信息>]][DEFAULT<表達(dá)式>][PRIMARYKEY|UNIQUE][REFERENCES<表名2>[TAG<標(biāo)識(shí)名>]]例:為成績(jī)表增加一個(gè)數(shù)值型的數(shù)學(xué)分析字段。ALTERTABLE成績(jī)表ADD數(shù)學(xué)分析n(6,1)CHECK數(shù)學(xué)分析>=0and數(shù)學(xué)分析<=100ERROR″學(xué)時(shí)應(yīng)該大于16!″)2.修改字段ALTERTABLE<表名1>ALTER[COLUMN]<字段名><字段類型>[(<寬度>[,<小數(shù)位數(shù)>])][NULL|NOTNULL][CHECK<邏輯表達(dá)式>[ERROR<出錯(cuò)顯示信息>]][DEFAULT<表達(dá)式>][PRIMARYKEY|UNIQUE][REFERENCES<表名2>[TAG<標(biāo)識(shí)名>]]OPENDATABASE圖書(shū)管理ALTERTABLE學(xué)生ALTER

學(xué)號(hào)C(10)例:將圖書(shū)表中條形碼字段的寬度由原來(lái)的8改為10命令可以修改字段的類型、寬度、有效性規(guī)則、錯(cuò)誤信息、默認(rèn)值,定義主關(guān)鍵字和聯(lián)系等;但是不能修改字段名.3.定義和刪除字段的有效性規(guī)則、默認(rèn)值A(chǔ)LTERTABLE<表名>ALTER[COLUMN]<字段名>[NULL|NOTNULL][SETDEFAULT<表達(dá)式>[SETCHECK<邏輯表達(dá)式>[ERROR<出錯(cuò)顯示信息>]][DROPDEFAULT][DROPCHECK]該格式命令主要用于定

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論