版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)知識(shí)
1.1數(shù)據(jù)庫(kù)系統(tǒng)概述
1.數(shù)據(jù)處理
數(shù)據(jù):
是對(duì)事實(shí)、概念或指令的一種特殊表達(dá)形式,可
以用人工的方式或自動(dòng)化的裝置進(jìn)行通信、翻譯
轉(zhuǎn)換或者進(jìn)行加工處理。它包括兩類(lèi):一類(lèi)是
能參與數(shù)字運(yùn)算的數(shù)值型數(shù)據(jù);一類(lèi)是不能參與
數(shù)字運(yùn)算的非數(shù)值型數(shù)據(jù),如文字、圖畫(huà)、聲音、
活動(dòng)圖象等。
數(shù)據(jù)處理:
是對(duì)各種類(lèi)型的數(shù)據(jù)進(jìn)行收集、存儲(chǔ)、分類(lèi)、計(jì)
算、加工、檢索與傳輸?shù)倪^(guò)程。
包括:收集原始數(shù)據(jù)、編碼轉(zhuǎn)換、數(shù)據(jù)輸入、數(shù)
據(jù)處理、數(shù)據(jù)輸出。
2.數(shù)據(jù)庫(kù)系統(tǒng)
(1)數(shù)據(jù)庫(kù)(DataBase)
定義:是以一定的組織形式存放在計(jì)算機(jī)存儲(chǔ)介
質(zhì)上的相互關(guān)聯(lián)的數(shù)據(jù)的集合。
特點(diǎn):具有最小的冗余度、具有數(shù)據(jù)獨(dú)立性、實(shí)
現(xiàn)數(shù)據(jù)共享、安全可靠、保密性能好
(2)數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagement
System)
定義:是操縱和管理數(shù)據(jù)庫(kù)的系統(tǒng)軟件。Visual
FoxPro屬于一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。
數(shù)據(jù)語(yǔ)言:
數(shù)據(jù)定義語(yǔ)言(DDL):用來(lái)建立所需的數(shù)據(jù)
庫(kù)。
數(shù)據(jù)操作語(yǔ)言(DML):用來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行查
詢(xún)和維護(hù)操作。
關(guān)系型數(shù)據(jù)庫(kù)使用的標(biāo)準(zhǔn)語(yǔ)言是結(jié)構(gòu)化查詢(xún)語(yǔ)
言(StructuredQueryLanguage,SQL)。
(3)數(shù)據(jù)庫(kù)系統(tǒng)(DataBaseSystem)
定義:是以數(shù)據(jù)庫(kù)應(yīng)用為基礎(chǔ)的計(jì)算機(jī)系統(tǒng)。
組成:
數(shù)據(jù)庫(kù)
硬件(計(jì)算機(jī)硬件設(shè)備)
軟件(數(shù)據(jù)庫(kù)管理系統(tǒng)、操作系統(tǒng))
用戶(hù)(應(yīng)用程序設(shè)計(jì)員、終端用戶(hù)、數(shù)據(jù)庫(kù)管理
員)
分類(lèi):層次型數(shù)據(jù)庫(kù)、網(wǎng)狀型數(shù)據(jù)庫(kù)、關(guān)系型數(shù)
據(jù)庫(kù)
分代:第一代非關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng),60年代末
問(wèn)世,包括層次型和網(wǎng)狀型。
第二代關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)(RDBS),70年代
中期問(wèn)世。
第三代對(duì)象-關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)(ORDBS、
OOBDS),80年代中期至今。
上述三個(gè)概念之間的聯(lián)系:在數(shù)據(jù)庫(kù)系統(tǒng)中通過(guò)
數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)建立和使用數(shù)據(jù)庫(kù)。
3.關(guān)系模型
三個(gè)領(lǐng)域:
現(xiàn)實(shí)世界一事物(對(duì)象、性質(zhì))
觀念世界—實(shí)體(對(duì)象、屬性)
數(shù)據(jù)世界一數(shù)據(jù)(記錄、字段)
實(shí)體模型:即反映事物聯(lián)系的實(shí)體。
數(shù)據(jù)模型:即描述實(shí)體模型的數(shù)據(jù)。
數(shù)據(jù)模型的分類(lèi):
層次模型(采用樹(shù)型結(jié)構(gòu))
網(wǎng)絡(luò)模型(采用無(wú)向圖型結(jié)構(gòu))
關(guān)系模型(采用二維表結(jié)構(gòu))
關(guān)系模型的性質(zhì):
二維表的記錄數(shù)隨數(shù)據(jù)的增加而改變,但其字段
數(shù)是相對(duì)固定的;二維表中的每一列均有唯一的
字段名;二維表中不允許出現(xiàn)完全相同的兩行二
維表中行的順序、列的順序均可以任意交換。
二維表的主關(guān)鍵字:超關(guān)鍵字:能唯一確定記錄
的一列或幾列的組合
候選關(guān)鍵字:最簡(jiǎn)練的超關(guān)鍵字
主關(guān)鍵字:候選關(guān)鍵字中的一個(gè)
外部關(guān)鍵字:當(dāng)A表的主關(guān)鍵字被包含到B表
中時(shí),則稱(chēng)A表的主關(guān)鍵字為B表的外部關(guān)鍵
字。
4.微機(jī)關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展
關(guān)系型數(shù)據(jù)庫(kù):即根據(jù)表、記錄和字段之間的關(guān)
系進(jìn)行組織和訪問(wèn)的一種數(shù)據(jù)庫(kù)。
發(fā)布時(shí)
名稱(chēng)運(yùn)行環(huán)境公司名稱(chēng)
間
dBASE,
dBASEII,
dBASE
DOSAshton-Tate
III,dBASElII
PLUS,
dBASE
Fox軟件公
FoxBASE1.0DOS1987.2
司
FoxBASE+DOSFox軟件公87.7/88.7
⑵00/2.10)司
Fox軟件公
FoxPro1.0DOS1989
司
Fox軟件公
FoxPro2.0DOS1991
司
DOS、
FoxPro2.5微軟公司1993.1
WINDOWS3.x
DOS、
FoxPro2.6微軟公司1994
Windows3.x
Visual
Windows3.X微軟公司1996.1
FoxPro3.0
Visual
Windows95微軟公司1997.2
FoxPro5.0
Visual
Windows98微軟公司1998.1
FoxPro6.0
1.2VisualFoxPro6.0概述
1.VFP6.0的特點(diǎn)
完善了關(guān)系型數(shù)據(jù)庫(kù)的概念,采用了Rushmore
技術(shù),引入了SQL命令;支持多種數(shù)據(jù)交換格
式;采用了可視化的面向?qū)ο蟮某绦蛟O(shè)計(jì)方式;
提供了功能完善的集成環(huán)境和豐富的開(kāi)發(fā)工具。
2.VFP6.0的用戶(hù)界面[圖例]
界面基本組成:標(biāo)題欄、主菜單欄、工具欄、主
窗口、命令窗口、狀態(tài)欄
系統(tǒng)工具一覽表
各種菜各種工各種窗各種設(shè)各種生各種向
單具欄口計(jì)器成器導(dǎo)
文件菜常用工命令窗數(shù)據(jù)庫(kù)文本框
表向?qū)?/p>
單具欄口設(shè)計(jì)器生成器
表單控
編輯菜瀏覽窗表設(shè)計(jì)組合框交叉表
制工具
單口器生成器向?qū)?/p>
欄
顯示菜布局工代碼窗表單設(shè)命令組查詢(xún)向
單具欄口v\你r生成器導(dǎo)
格式菜調(diào)色板調(diào)試窗菜單設(shè)編輯框本地視
單工具欄口生成器圖向?qū)?/p>
打印預(yù)
工具菜編輯窗報(bào)表設(shè)表達(dá)式表單向
覽工具
單口生成器導(dǎo)
欄
報(bào)表控一對(duì)多
程序菜查看窗標(biāo)簽設(shè)表單生
制工具表單向
單口vr\福an"成器
欄導(dǎo)
查詢(xún)?cè)O(shè)
窗口菜跟蹤窗類(lèi)設(shè)計(jì)表格生報(bào)表向
計(jì)器工
單口器成器導(dǎo)
具欄
表單設(shè)一對(duì)多
幫助菜屬性窗連接設(shè)列表框
出工報(bào)表向
單□計(jì)器生成器
具欄導(dǎo)
報(bào)表設(shè)
菜單菜標(biāo)簽向
出工查詢(xún)和參照完
單通用字導(dǎo)
具欄視圖設(shè)整性生
段窗口
數(shù)據(jù)壞計(jì)器成器遠(yuǎn)程視
境菜單圖向?qū)?/p>
數(shù)據(jù)庫(kù)
表單菜郵件合
設(shè)計(jì)器項(xiàng)目管數(shù)據(jù)環(huán)自動(dòng)格
單并向?qū)?/p>
工具欄理器窗境設(shè)計(jì)式生成
項(xiàng)目菜導(dǎo)入向
口器器
單導(dǎo)
查詢(xún)菜選項(xiàng)組圖形向
單生成器導(dǎo)
報(bào)表菜數(shù)據(jù)透
(1)菜單操作方式
根據(jù)所需的操作從菜單中選擇相應(yīng)的命令(與
NORD類(lèi)似)。每執(zhí)行一次菜單命令,命令窗口
中一般都會(huì)顯示出與菜單對(duì)應(yīng)的命令內(nèi)容。
利用工具菜單中的向?qū)Э梢院芊奖愕赝瓿沙R?guī)
任務(wù)。
(2)命令交互方式
根據(jù)所要進(jìn)行的各項(xiàng)操作,采用人機(jī)對(duì)話方式在
命令窗口中按格式要求逐條輸入所需命令,按回
車(chē)后,機(jī)器逐條執(zhí)行。
(3)程序執(zhí)行方式
先在程序編輯窗口中編完程序,再?gòu)某绦虿藛沃?/p>
選擇執(zhí)行,或從命令窗口中輸入DO命令,讓
機(jī)器執(zhí)行。
4.VFP9.0常用文件類(lèi)型
VFP9.0常用的文件擴(kuò)展名及其關(guān)聯(lián)的文件類(lèi)型
擴(kuò)展
文件類(lèi)型擴(kuò)展名文件類(lèi)型
名
生成的應(yīng)用程
.app.frx報(bào)表
序
.exe可執(zhí)行程序.frt報(bào)表備注
.Pjx項(xiàng)目.Ibx標(biāo)簽
.PJt項(xiàng)目備注.Ibt標(biāo)簽備注
.dbc數(shù)據(jù)庫(kù)?prg程序
.det數(shù)據(jù)庫(kù)備注.fxp編譯后的程序
.dex數(shù)據(jù)庫(kù)索引.err編譯錯(cuò)誤
.dbf表.mnx菜單
.fpt表備注.mnt菜單備注
.cdx復(fù)合索引.mpr生成的菜單程序
編譯后的菜單程
.idx單索引.mpx
序
生成的查詢(xún)程
.qpr.vex可視類(lèi)庫(kù)
序
編譯后的查詢(xún)
?qpx.vet可視類(lèi)庫(kù)備注
程序
.sex表單.txt文本
.set表單備注.bak備份文件
5.創(chuàng)建文件
新建各種類(lèi)型的文件時(shí),可以利用系統(tǒng)提供的相
應(yīng)工具,以提高工作效率。新建文件時(shí)可用的設(shè)
計(jì)器和向?qū)А?/p>
1.3項(xiàng)目管理器
1.項(xiàng)目管理器簡(jiǎn)介
項(xiàng)目:
是一種文件,用于跟蹤創(chuàng)建應(yīng)用系統(tǒng)所需要的所
有程序、表單、菜單、庫(kù)、報(bào)表、標(biāo)簽、查詢(xún)和
一些其他類(lèi)型的文件。
項(xiàng)目管理器:[圖例]
是開(kāi)發(fā)VFP應(yīng)用系統(tǒng)的一個(gè)工具,它生成一個(gè)
項(xiàng)目文件,項(xiàng)目文件的擴(kuò)展名為.PJX,項(xiàng)目備注
的擴(kuò)展名為:.PJT。
項(xiàng)目管理器窗口的組成:
由6大類(lèi)數(shù)據(jù)項(xiàng)(全部、數(shù)據(jù)、文檔、類(lèi)、代碼、
其他)和10個(gè)命令按鈕(新建、添加、修改、
瀏覽、關(guān)閉、打開(kāi)、預(yù)覽、運(yùn)行、移去、連編)
組成。
注:粗斜體表示的命令按鈕根據(jù)用戶(hù)選擇的不同
對(duì)象相應(yīng)地出現(xiàn)。
項(xiàng)目菜單的組成:13個(gè)子菜單(其中一部分與
項(xiàng)目管理器中的命令按鈕功能相同)。
項(xiàng)目管理器的功能:組織和管理所有與應(yīng)用系統(tǒng)
有關(guān)的各種類(lèi)型的文件。
2.創(chuàng)建項(xiàng)目文件
用菜單方式:
打開(kāi)文件菜單一新建一項(xiàng)目一新文件->
給出合適的項(xiàng)目文件名及保存位置一進(jìn)入項(xiàng)
目管理器一開(kāi)發(fā)應(yīng)用系統(tǒng)一完成后關(guān)閉窗
口退出。
用命令方式:
語(yǔ)法:CREATEPROJECT<項(xiàng)目文件名〉
功能:打開(kāi)項(xiàng)目管理器窗口進(jìn)行應(yīng)用系統(tǒng)的開(kāi)
發(fā)。
3.修改項(xiàng)目文件
用菜單方式:
打開(kāi)文件菜單一打開(kāi)一找到所需的項(xiàng)目文
件并確定之一進(jìn)入項(xiàng)目管理器一修改應(yīng)用系
統(tǒng)一完成后關(guān)閉窗口退出。
用命令方式:
語(yǔ)法:MODIFYPROJECTv項(xiàng)月文殍名〉
功能:打開(kāi)項(xiàng)目管理器窗口進(jìn)行應(yīng)用系統(tǒng)的修
改。
4.項(xiàng)目管理器的使用
可以利用項(xiàng)目管理器來(lái)創(chuàng)建、打開(kāi)、瀏覽、修改
所有VFP文件并運(yùn)行其中的表單、報(bào)表、標(biāo)簽、
菜單、程序等。特別是可以利用它來(lái)連編項(xiàng)目(追
蹤這些文件的變化情況,包括它們之間的相關(guān)
性、引用和連接等,確保引用的完整,并加入自
上次連編之后更新了的一些組件)、應(yīng)用程序(擴(kuò)
展名為APP,在VFP環(huán)境下執(zhí)行)和可執(zhí)行文件(擴(kuò)
展名為.EXE,能脫離VFP環(huán)境執(zhí)行)。
1.4VFP9.0的一些規(guī)則
1.VFP9.0的命名規(guī)則:
?只能使用字母、下劃線和數(shù)字。
?使用字母或下劃線作為名稱(chēng)的開(kāi)頭。
?名稱(chēng)可以是1至128個(gè)字符,但自由表的字
段名和索引標(biāo)識(shí)最多只能有10個(gè)字符。
?避免使用VisualFoxPro的保留字。
?文件的命名遵循操作系統(tǒng)的約定。
2.命令和子句的書(shū)寫(xiě)規(guī)則
(1)以命令動(dòng)詞開(kāi)始;
(2)各部分之間要用空格隔開(kāi);
(3)命令、子句、函數(shù)名都可簡(jiǎn)寫(xiě)為前4個(gè)字符,
大、小寫(xiě)等效;
(4)一行只能寫(xiě)一條命令,總長(zhǎng)度不超過(guò)8192個(gè)
字符,超過(guò)屏幕寬度時(shí)用續(xù)行符七”;
(5)變量名、字段名和文件名應(yīng)避免與命令動(dòng)詞、
關(guān)鍵字或函數(shù)名同名,以免運(yùn)行時(shí)發(fā)生混亂。
(6)命令格式中的符號(hào)約定:
命令中的口、I、…、<>符號(hào)都不是命令本身
的語(yǔ)法成分,使用時(shí)不能照原樣輸入,
其中:口表示可選項(xiàng),根據(jù)具體情況決定是否
選用
I表示兩邊的部分只能選用其中的一個(gè)
...表示可以有任意個(gè)類(lèi)似參數(shù),各參數(shù)間用逗
號(hào)隔開(kāi)
<>表示其中內(nèi)容要以實(shí)際名稱(chēng)或參數(shù)代入
3.命令工作方式中的常見(jiàn)錯(cuò)誤
(1)命令動(dòng)詞寫(xiě)錯(cuò)
(2)格式不符合要求
?標(biāo)點(diǎn)符號(hào)不對(duì)(一定要用英文標(biāo)點(diǎn)符號(hào))
?缺少必需的空格或添加了不該有的空格
?數(shù)據(jù)類(lèi)型不一致,要注意字符型、數(shù)值型、日
期型、邏輯型數(shù)據(jù)的書(shū)寫(xiě)格式
(3)打不開(kāi)所需文件:沒(méi)有正確輸入盤(pán)符和路徑
或文件名輸錯(cuò)
第二章表的創(chuàng)建和使用
2.1VFP9.0表
1.表的概念
表(數(shù)據(jù)表):
是指存放在磁盤(pán)文件中的一張二維表。.dbf(招
FoxPro2.x版本中的數(shù)據(jù)庫(kù)}
自由表:不屬于任何數(shù)據(jù)庫(kù)的表。
數(shù)據(jù)庫(kù)表:包含在一個(gè)數(shù)據(jù)庫(kù)中的表。
表文件名:
表名可以由字母、數(shù)字或下劃線組成,系統(tǒng)自動(dòng)
給出的擴(kuò)展名為.DBFo
備注文件名:
當(dāng)表中有備注型或通用型字段時(shí),系統(tǒng)自動(dòng)生成
與所屬數(shù)據(jù)表的表名相同、擴(kuò)展名為:.FPT的
文件名。
表結(jié)構(gòu):存儲(chǔ)表記錄的公共結(jié)構(gòu)。(就是指一張
表的表頭結(jié)構(gòu),即字段的屬性}。
記錄:表中的一行。它是多個(gè)字段的集合,同一
張表的每個(gè)記錄都有相同的字段。
字段:表中的一列。它規(guī)定了數(shù)據(jù)的特征。
關(guān)系型數(shù)據(jù)表的特點(diǎn):
(1)每一個(gè)字段不可再分解,也不能有名字相
同的字段;
(2)每一列中的數(shù)據(jù)都有相同的數(shù)據(jù)類(lèi)型;
(3)表中沒(méi)有內(nèi)容完全相同的行(記錄)。
2.字段的基本屬性
字段的屬性:
包括:字段名、數(shù)據(jù)類(lèi)型、字段寬度、小數(shù)位數(shù)、
空值支持
字段名:
即每個(gè)字段的名字,必須以字母開(kāi)頭,可由字母、
數(shù)字、下劃線組合而成,字母大、小寫(xiě)無(wú)區(qū)別,
但其中不許有空格或其它字符。自由表的字段名
最多由10個(gè)字符組成,數(shù)據(jù)庫(kù)表的字段名支持
長(zhǎng)名,最多可達(dá)128個(gè)字符。如果從數(shù)據(jù)庫(kù)中移
去一個(gè)表,那么此表的長(zhǎng)字段名將被截短成10
個(gè)字符。
VFP允許長(zhǎng)字段名和長(zhǎng)表名,但使用長(zhǎng)名稱(chēng)對(duì)于
跨平臺(tái)的操作可能遇到難以預(yù)料的結(jié)果。
數(shù)據(jù)類(lèi)型:指該字段的數(shù)據(jù)特征。
字段寬度:指該字段所能容納數(shù)據(jù)的的最大字節(jié)
數(shù)。
小數(shù)位數(shù):指數(shù)值型數(shù)據(jù)將保留幾位小數(shù)。此時(shí)
的字段寬度=整數(shù)位數(shù)+1+小數(shù)位數(shù)。
NULL值(空值):
無(wú)明確的值。NULL值不等同于零或空格。一個(gè)
NULL值不能認(rèn)為比某個(gè)值(包括另一個(gè)
NULL值)大或小,相等或不同。
VFP9.0表中字段的數(shù)據(jù)類(lèi)型
字段類(lèi)代字段寬
說(shuō)明使用示例
型號(hào)度
每個(gè)字
符為1
字母、漢個(gè)字學(xué)生的學(xué)號(hào)或姓
字符型C字和數(shù)字節(jié),最名,“8199101〃
型文本多可有或‘李立‘
254個(gè)
字符
8個(gè)字
貨幣型Y貨幣單位-Hj-工資,$1246.89
包含有8個(gè)字
日期型D-Hj-出生日期,
年、月和
日的數(shù)據(jù)
{02/25/2000}
包含有
年、月、上班時(shí)間,
日期時(shí)8個(gè)字
T日、時(shí)、
間型節(jié){02/25/2000
分、秒的9:15:15AM}
數(shù)據(jù)
“真”或課程是否為必修
1個(gè)字課,
邏輯型L“假”的-PR
布爾值.T.或.F.
在內(nèi)存
中占8
個(gè)字
整數(shù)或小
數(shù)值型N節(jié);在考試成績(jī),83.5
數(shù)
表中占
1至20
個(gè)字節(jié)
雙精度雙精度浮8個(gè)字實(shí)驗(yàn)要求的高精
B
型點(diǎn)數(shù)T度數(shù)據(jù)
與數(shù)值型
浮點(diǎn)型F
一樣
整型I不帶小數(shù)4個(gè)字學(xué)生的數(shù)量
點(diǎn)的數(shù)值
在表中
通用型GOLE對(duì)象占4圖片或聲音
個(gè)字節(jié)
不定長(zhǎng)度在表中
備注型M的一段文占4學(xué)生簡(jiǎn)歷
字個(gè)字節(jié)
每個(gè)字
任意不經(jīng)符用1
字符型過(guò)代碼頁(yè)個(gè)字
(二進(jìn)C修改而維節(jié),最
制)護(hù)的字符多可有
數(shù)據(jù)254個(gè)
字符
任意不經(jīng)
備注型過(guò)代碼頁(yè)在表中
(二進(jìn)M修改而維占4
制)護(hù)的備注個(gè)字節(jié)
數(shù)據(jù)
3.表的基本操作
表的創(chuàng)建:設(shè)計(jì)表名和表結(jié)構(gòu)、輸入記錄、建立
索引
數(shù)據(jù)維護(hù):增加記錄、修改記錄、刪除記錄
創(chuàng)建表的主要步驟:設(shè)計(jì)表結(jié)構(gòu)T輸入記錄
一建立索引一數(shù)據(jù)維護(hù)
4.關(guān)于表操作的幾個(gè)基本命令
命令格式功能
CREATE表文件創(chuàng)建一個(gè)新的自由表的結(jié)構(gòu)
名
USE表文件名打開(kāi)指定的表文件
USE關(guān)閉當(dāng)前表文件
LISTALL顯示當(dāng)前表的全部記錄內(nèi)容(類(lèi)
似于DOS命令中的dir)
DISPLAYALL分屏式地顯示當(dāng)前表的全部記
錄內(nèi)容(類(lèi)似于DOS中的dir/p.
DISPLAY顯示當(dāng)前表的結(jié)構(gòu)(分屏顯示)
STRUCTURE
LIST顯示當(dāng)前表的結(jié)構(gòu)(不分屏顯
STRUCTURE示)
MODIFY調(diào)出表設(shè)計(jì)器,修改當(dāng)刖表的結(jié)
STRUCTURE構(gòu)。
CLEAR清除主窗口中的所有內(nèi)容
注思:
(1)必須先打開(kāi)所需的數(shù)據(jù)表才可進(jìn)行以上操
作;
(2)當(dāng)帶有命令子句時(shí),只對(duì)指定的記錄進(jìn)行
操作;
(3)LIST命令的默認(rèn)范圍是所有記錄,
DISPLAY命令的默認(rèn)范圍是當(dāng)前記錄。
2.2表結(jié)構(gòu)的創(chuàng)建和修改
1.表結(jié)構(gòu)的創(chuàng)建
創(chuàng)建表結(jié)構(gòu)其實(shí)就是設(shè)計(jì)字段的基本屬性??梢?/p>
使用表設(shè)計(jì)器、表向?qū)Щ騍QL命令來(lái)創(chuàng)建表結(jié)
構(gòu)。
(1)使用表設(shè)計(jì)器創(chuàng)建表[圖例]
步驟:
從文件菜單中單擊新建T在新建對(duì)話框中選
擇表并單擊新文件一在創(chuàng)建對(duì)話框中給出文
件名并確定所需的保存位置一在表設(shè)計(jì)器對(duì)
話框中逐個(gè)輸入所需字段(用[或鼠標(biāo)換行),
全部字段輸入完成后單擊確定。
(2)使用表向?qū)?chuàng)建表
步驟:
從文件菜單中單擊新建一在新建對(duì)話框中選
擇表并單擊向?qū)б辉诒硐驅(qū)е凶龅?步:選取字
段,完成后單擊下一步一在表向?qū)е凶龅趌a
步:選擇數(shù)據(jù)庫(kù),完成后單擊下一步一在表向
導(dǎo)中做第2步:修改字段設(shè)置,完成后單擊下一
步一在表向?qū)е凶龅?步:為表建索引,完成
后單擊下一步T在表向?qū)е凶龅?步:完成,
選擇表的保存方法,完成后單擊完成T在另存
為對(duì)話框中給出文件名并確定所需的保存位置o
注意:
先選擇一個(gè)與待建數(shù)據(jù)表類(lèi)似的樣表,再?gòu)闹刑?/p>
選出所需的部分字段,然后在下一步根據(jù)實(shí)際需
要修改或直接采用原字段的寬度。
(3)使用CREATETABLE-SQL命令
該命令的一般格式為:
CREATETABLEldbf<<^件名〉(字段名1字
段類(lèi)型[(字段寬度[,小數(shù)位數(shù)])][,輪名2字
段類(lèi)型[(字段寬度[,小數(shù)位數(shù)])]]……)
例:CREATETABLExscj(xhc(8),xmc(6),xb
c(2),;cjn(5,l),ksrqd)
2.表結(jié)構(gòu)的修改
(1)用表設(shè)計(jì)器修改
用菜單調(diào)出表設(shè)計(jì)器:
打開(kāi)所需的表文件一單擊顯示菜單中
的表設(shè)計(jì)器-在表設(shè)計(jì)器對(duì)話框中對(duì)字
段進(jìn)行修改一修改完畢單擊確定并在消
息框中選擇是。
用命令調(diào)出表設(shè)計(jì)器:
USE〈表文件名〉
MODIFYSTRUCTURE
(2)使用ALTERTABLE-SQL命令
功
命令格式示例
能
添
加
ALTERTABLExscjADDCOLUMNkcmcC(14)
字
段
命
名ALTERTABLExscjRENAMECOLUMNkcmcTOkc
字
段
刪
除
ALTERTABLExscjDROPCOLUMNkc
字
段
2.3表記錄的處理
1.記錄的輸入
(1)立即輸入方式:
設(shè)計(jì)好表的結(jié)構(gòu)后,系統(tǒng)會(huì)提示是否直接進(jìn)入數(shù)
據(jù)輸入狀態(tài)。若選是,則進(jìn)入編輯窗口,輸完后
單擊“X”按鈕退出,系統(tǒng)自動(dòng)存盤(pán)。需輸入備注
型或通用型字段的數(shù)據(jù)時(shí),雙擊“memo”或
“gen”,在新打開(kāi)的編輯窗口中輸入所需內(nèi)容,
輸完后單擊“X”按鈕系統(tǒng)自動(dòng)存盤(pán),退回到原窗
口,此時(shí)字段中的“memo”或“gerT變成“Memo”
或“Gen”。
(2)追加方式:
若設(shè)計(jì)好表的結(jié)構(gòu)后并沒(méi)有及時(shí)輸入數(shù)據(jù),則可
以用追加方式:
從文件菜單中(或從命令窗口中輸入:USE表
文件名)打開(kāi)所需表文件-從顯示菜單中選
擇瀏覽一再?gòu)娘@示菜單中選擇追加方式一
在瀏覽窗口中輸入所需記錄。
不同追加方式適用的場(chǎng)合
追加記錄的方式適用的場(chǎng)合
顯示菜單中的追在現(xiàn)有數(shù)據(jù)表的尾部添加一個(gè)
加方式或多個(gè)新記錄
表菜單中的追加在現(xiàn)有數(shù)據(jù)表的尾部添加一個(gè)
新記錄新記錄
從其它數(shù)據(jù)表中將符合要求
表菜單中的追加
(字段名和字段類(lèi)型相同)的
記錄…
記錄添加在當(dāng)前數(shù)據(jù)表的尾部
在當(dāng)前表的末尾自動(dòng)添加一個(gè)
或多個(gè)新記錄。相當(dāng)于顯示菜
APPEND[BLANK]單中的追加方式。有BLANK時(shí)
添加個(gè)空記錄,相當(dāng)于表菜
單中的追加新記錄。
APPENDFROM表從其它數(shù)據(jù)表中將符合要求
文件名[FIELDS(字段名和字段類(lèi)型相同)的
字段名1,輟名記錄添加在當(dāng)前數(shù)據(jù)表的尾
2???][FOR條部。相當(dāng)于表菜單中的追加記
件]錄…。
將符合要求的文本文件全部追
APPENDFROM文加在當(dāng)前數(shù)據(jù)表的尾部。
本文件名SDF注意:文本內(nèi)容要與表中的字
段結(jié)構(gòu)相適應(yīng)。
文件菜單中的導(dǎo)將其它類(lèi)型的文件轉(zhuǎn)換成一個(gè)
入完整的VFP數(shù)據(jù)表。
(3)使用INSERTSQL命令
該命令的一般格式為:
INSERTINTO<表名乂(字段名1[,字段名
2...])]VALUES(表達(dá)式1],表達(dá)式2...])
:INSERTINTOxscj(xh,xm,cj)VALUES
(”81991001”,“張良”,85.5)
2.記錄的瀏覽
(1)通過(guò)瀏覽窗口
⑵通過(guò)BROWSE命令
BROWSE命令用來(lái)打開(kāi)表的瀏覽窗口,可通過(guò)
不同的子句來(lái)實(shí)現(xiàn)對(duì)特定記錄的瀏覽。
VFP命令中的常用子句
1)范圍子句
子句格式功能
ALL表示對(duì)表文件的全部記錄進(jìn)行操作
表示對(duì)從當(dāng)刖記錄開(kāi)始的共n個(gè)記錄
NEXTn
進(jìn)行操作,n為正整數(shù)
RECORDn指明操作對(duì)象是表文件的第D號(hào)記錄
對(duì)從當(dāng)刖記錄起到文件結(jié)尾的全部記
REST
錄進(jìn)行操作
2)FOR子句
用于指明進(jìn)行操作的條件。
格式:FORv條件〉
指明只對(duì)指定范圍中那些符合給定條件的進(jìn)行
當(dāng)前操作。
例如:listNEXT6FORcj<85
3)WHILE子句
也用于指明進(jìn)行操作的條件。
格式:WHILEv條件〉
例如:listNEXT6WHILEcj<85
4)FIELDS子句
用于指明當(dāng)前的操作涉及到表文件的哪些字段。
格式:BROWSE[FIELDS字段名1,字段名
2……]
例如:BROWSEFIELDSxh,xm,cj
3.記錄的定位
(1)系統(tǒng)對(duì)記錄的三個(gè)控制標(biāo)志
記錄開(kāi)始標(biāo)志:位于第一個(gè)記錄之前。其值用函
數(shù)BOF()進(jìn)行測(cè)試。
記錄指針標(biāo)志:指向當(dāng)前記錄。其值用函數(shù)
RECNO()進(jìn)行測(cè)試。
記錄結(jié)束標(biāo)志:位于最后一個(gè)記錄之后。其值用
函數(shù)EOF()進(jìn)行測(cè)試。
記錄指針可以理解為保存當(dāng)前記錄號(hào)的變量,它
的初始值總是1,不可能為?;蜇?fù)數(shù),最大值是
表中記錄總數(shù)+1。
剛打開(kāi)表時(shí)記錄指針的情況
表中記錄BOF()的RECNO()EOF()的
情況值的值值
無(wú)記錄.T.1.T.
有記錄.F.1.F.
(2)記錄的定位方式
絕對(duì)定位:是指把指針移到指定的位置。
相對(duì)定位:
是指把指針從當(dāng)前位置開(kāi)始,相對(duì)于當(dāng)前記錄向
前或向后移動(dòng)若干個(gè)記錄位置。
條件定位:
是指按一定的條件在整張表或表的某個(gè)指定范
圍中查找符合該條件的記錄。
通過(guò)菜單進(jìn)行定位
從表菜單中選擇轉(zhuǎn)到記錄:
記錄號(hào)——實(shí)現(xiàn)絕對(duì)定位
定位…——實(shí)現(xiàn)條件定位
通過(guò)命令進(jìn)行定位
記錄的定位
命令格式功能備注
將記錄指針
絕對(duì)定
GOTOP定位到表文或GOTOTOP
位
件之首
將記錄指針
GOBOTTOM定位到表文或GOTOBOTTOM
件之尾
將記錄指針
GO<n>定位到指定
的n號(hào)記錄
n為正值則向
下移動(dòng)
將記錄指針
相對(duì)定從當(dāng)前記錄n為負(fù)值則向
SKIP<n>
位向上或向下上移動(dòng)
移動(dòng)n個(gè)
無(wú)n向下移動(dòng)
1個(gè)
按順序搜索
LOCATE
表,直到找
條件定FOR〈條默認(rèn)范圍是所
到滿足指定
位件》[范有記錄
條件的第一
圍]
個(gè)記錄
4.記錄的修改和刪除
一張表用非只讀方式打開(kāi)后,即可通過(guò)菜單在瀏
覽窗口(或編輯窗口)中或從命令窗口中用命令
直接對(duì)其記錄進(jìn)行編輯、修改和刪除。
(1)菜單方式
修改記錄:
從表菜單中選擇替換字段…一在替換字段對(duì)
話框中選擇待替換的字段并構(gòu)造出替換表達(dá)式
及替換條件一替換。
刪除記錄:
從表菜單中選擇刪除記錄一在刪除對(duì)話框中
選擇刪除范圍和刪除條件一單擊刪除按鈕一
從表菜單中選擇徹底刪除一在消息框中單擊
是。
刪除記錄包括兩步:標(biāo)記要?jiǎng)h除的記錄和徹
底刪除帶刪除標(biāo)記的記錄
恢復(fù)帶刪除標(biāo)記的記錄:
從表菜單中選擇恢復(fù)記錄T在恢復(fù)記錄對(duì)話
框中選擇作用范圍和條件一單擊恢復(fù)記錄按
鈕。
(2)SQL命令方式(表事先可以不打開(kāi),適用于
編程工作方式)
修改記錄:用UPDATE-SQL命令。
命令格式:UPDATE〈表名,SET字段1=表
達(dá)式1[,字段2=表達(dá)式2…];
WHERE條件表達(dá)式
例:UPDATExscjSETcj=cj*1.05WHERE
cj>80
刪除記錄:用DELETE-SQL命令。
命令格式:DELETEFROM〈表名>[WHERE
條件表達(dá)式]
例:DELETEFROMxscjWHEREcj<60
(3)在命令窗口中用VFP命令:
命令格式功能備注
BLANK:楂前
在當(dāng)前表記錄后插入一
的指定位個(gè)空記錄
插INSERT置上插入
BEFORE:在
入[BLANK][BEFORE]一個(gè)空記
錄或若干當(dāng)前記錄之前
新記錄插入若干新記
錄
CHANGE[FIELDS字在編輯窗LEDIT:調(diào)出編
修段名1,…][FOR條口顯示要輯窗口
改件][LEDIT]修改的字REDIT:調(diào)B瀏
[REDIT]段覽窗口
把字段值默認(rèn)范圍是當(dāng)
REPLACE字段名1用指定的前記錄
WITH表達(dá)式1表達(dá)式進(jìn)
替[ADDITIVE][,字段行替換。ADDITIVE:把
換名2WITH表達(dá)式如:工資備注字段的替
2[ADDITIVE]…]單中給某換內(nèi)容添加在
[范圍][FOR條件]些人長(zhǎng)工原備注內(nèi)容的
資后面
刪DELETE[范對(duì)當(dāng)前表默認(rèn)范圍是當(dāng)
除圍][FOR條件]中指定范前記錄
圍內(nèi)滿足
條件的記
錄加上刪
除標(biāo)記*
將所有帶DBF:不影響備
刪除標(biāo)記注文件
的記錄從
PACK[MEMO][DBF]
表中抹去MEMO:從備
(不能再注文件中刪除
恢復(fù))未使用空間
刪除當(dāng)前
表中所有相當(dāng)于
ZAP記錄,只DELETEALL
留下表的+PACK
結(jié)構(gòu)
取消當(dāng)前
恢RECALL[范圍]表中指定默認(rèn)范圍是當(dāng)
復(fù)[FOR條件]記錄上的前記錄
刪除標(biāo)記
第三章數(shù)據(jù)庫(kù)的創(chuàng)建和使用
3.1VFP數(shù)據(jù)庫(kù)
1.數(shù)據(jù)庫(kù)的基本組成
數(shù)據(jù)庫(kù)由一個(gè)以上相互關(guān)聯(lián)的數(shù)據(jù)表組成,可以
包含一個(gè)或多個(gè)表、視圖、到遠(yuǎn)程數(shù)據(jù)源的連接
和存儲(chǔ)過(guò)程。
視圖(view):
一個(gè)保存在數(shù)據(jù)庫(kù)中的、由引用一個(gè)或多個(gè)表、
或其他視圖的相關(guān)數(shù)據(jù)組成的虛擬表,可以是本
地的、遠(yuǎn)程的或帶參數(shù)的。
存儲(chǔ)過(guò)程(storedprocedure):
是保存在數(shù)據(jù)庫(kù)中的一個(gè)過(guò)程。該過(guò)程能包含一
個(gè)用戶(hù)自定義函數(shù)中的任何命令和函數(shù)。
創(chuàng)建數(shù)據(jù)庫(kù)時(shí)系統(tǒng)自動(dòng)生成3個(gè)文件:
數(shù)據(jù)庫(kù)文件:擴(kuò)展名為.DBC
數(shù)據(jù)庫(kù)備注文件:擴(kuò)展名為.DCT
數(shù)據(jù)庫(kù)索引文件:擴(kuò)展名為.DCX
2.數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程
1)明確建立數(shù)據(jù)庫(kù)的目的和使用方式
2)設(shè)計(jì)所需的數(shù)據(jù)表(包括表結(jié)構(gòu)和表記錄)
3)建立表之間的關(guān)系
4)改進(jìn)設(shè)計(jì)
3.2數(shù)據(jù)庫(kù)的創(chuàng)建[圖例]
1.數(shù)據(jù)庫(kù)的創(chuàng)建過(guò)程
數(shù)據(jù)庫(kù)的創(chuàng)建過(guò)程中一般會(huì)涉及下面一些常用
操作:
1)創(chuàng)建新表一用表設(shè)計(jì)器(設(shè)置字段屬性和
表屬性)
2)添加表一用數(shù)據(jù)庫(kù)設(shè)計(jì)器按鈕或數(shù)據(jù)庫(kù)菜
單
3)創(chuàng)建視圖一用視圖向?qū)А⒁晥D設(shè)計(jì)器
4)建立關(guān)系—用鼠標(biāo)將父表的索引拖到子表
的相關(guān)索引上
5)編輯關(guān)系T用數(shù)據(jù)庫(kù)菜單或快捷菜單T
參照完整性生成器
6)移去關(guān)系T用快捷菜單或按delete鍵
7)修改表一用表設(shè)計(jì)器
8)刪除表或視圖一用數(shù)據(jù)庫(kù)設(shè)計(jì)器按鈕或數(shù)
據(jù)庫(kù)菜單
2.數(shù)據(jù)庫(kù)的新建、打開(kāi)、關(guān)閉
(1)新建數(shù)據(jù)庫(kù):
從文件菜單中單擊新建一在新建對(duì)話框中選
擇數(shù)據(jù)庫(kù)并單擊新文件一在創(chuàng)建對(duì)話框中給
出庫(kù)文件名和保存位置一在數(shù)據(jù)庫(kù)設(shè)計(jì)器中
建立所需的數(shù)據(jù)庫(kù)。
或從命令窗口中輸入命令:createdatabase數(shù)
據(jù)庫(kù)名
(2)打開(kāi)數(shù)據(jù)庫(kù):
從文件菜單中單擊打開(kāi)一在打開(kāi)對(duì)話框中給
出庫(kù)文件名和保存位置并確定之。
或從命令窗口中輸入命令:opendatabase數(shù)
據(jù)庫(kù)名
(3)關(guān)閉數(shù)據(jù)庫(kù):
從命令窗口中輸入命令:
closedatabase&&關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)
或closeall&&關(guān)閉所有被打開(kāi)的數(shù)據(jù)庫(kù)
注意:1)關(guān)閉了數(shù)據(jù)庫(kù)表不等于關(guān)閉了數(shù)據(jù)庫(kù),
但關(guān)閉了數(shù)據(jù)庫(kù)則其中的數(shù)據(jù)表被同時(shí)關(guān)閉;
2)用鼠標(biāo)關(guān)閉了數(shù)據(jù)庫(kù)設(shè)計(jì)器窗口并不能代表
關(guān)閉數(shù)據(jù)庫(kù)。
3.用數(shù)據(jù)庫(kù)設(shè)計(jì)器設(shè)計(jì)數(shù)據(jù)庫(kù)
(1)調(diào)出表設(shè)計(jì)器,建立一個(gè)新數(shù)據(jù)表[圖例]
方法1:從數(shù)據(jù)庫(kù)菜單中選擇新表。
方法2:右擊數(shù)據(jù)庫(kù)設(shè)計(jì)器窗口,從快捷菜單中
選擇新表。
方法3:?jiǎn)螕魯?shù)據(jù)庫(kù)設(shè)計(jì)器工具欄的新表按鈕。
方法4:從文件菜單中單擊新建,在對(duì)話框中選
擇表。
注意:
數(shù)據(jù)庫(kù)表的表設(shè)計(jì)器中內(nèi)容比自由表的多,增加
了字段屬性和表屬性的設(shè)置。設(shè)置驗(yàn)證規(guī)則目的
是為了使輸入的數(shù)據(jù)符合要求,在有矛盾時(shí)發(fā)出
錯(cuò)誤提示信息。
(2)數(shù)據(jù)庫(kù)表的高級(jí)屬性
屬性名
屬性類(lèi)別作用
稱(chēng)
確定字段內(nèi)容在被顯示時(shí)
格式
的樣式
指定字段中輸入數(shù)據(jù)的格
字段顯示輸入掩
式(即所輸入的任何內(nèi)容
屬性碼
均顯示成此符號(hào))
字
在瀏覽表時(shí)用此名稱(chēng)代替
標(biāo)題
段意義不夠直觀的字段名
使所輸數(shù)據(jù)符合設(shè)定的條
屬規(guī)則
件
性
字段驗(yàn)證當(dāng)所輸數(shù)據(jù)違反規(guī)則時(shí),
信息
規(guī)則系統(tǒng)提示錯(cuò)在哪里
減少輸入重復(fù)性數(shù)據(jù)時(shí)的
默認(rèn)值
工作量
字段注釋使字段具有更好的可讀性
與表文件名不同,設(shè)置了
長(zhǎng)表名
長(zhǎng)表名可以一目了然
使所輸記錄符合設(shè)定的條
規(guī)則
記錄驗(yàn)證件
規(guī)則當(dāng)所輸記錄違反規(guī)則時(shí),
表信息
系統(tǒng)提示錯(cuò)在哪里
屬插入觸當(dāng)所插記錄符合此規(guī)則
發(fā)器時(shí),才可以插入到表中
性
更新觸當(dāng)修改后的記錄符合此規(guī)
觸發(fā)器
發(fā)器則時(shí),才可以進(jìn)行修改
刪除觸當(dāng)待刪記錄符合此規(guī)則
發(fā)器時(shí),才可以被刪除掉
表注釋使表具有更好的可讀性
字段級(jí)規(guī)則:
一種與字段相關(guān)的有效性規(guī)則,在插入或修改字
段值時(shí)被激活,多用于數(shù)據(jù)輸入正確性的檢驗(yàn)。
為字段設(shè)置驗(yàn)證規(guī)則的方法:
.在表設(shè)計(jì)器中選定要建立規(guī)則的字段名。
.在“規(guī)則”方框旁邊選擇“…”按鈕。
.在表達(dá)式生成器中設(shè)置有效性表達(dá)式,并選擇
“確定”。
.在“信息”框中,鍵入用引號(hào)括起的錯(cuò)誤信息。
.在“默認(rèn)值”框中,鍵入合理的初值。
.注意不同類(lèi)型數(shù)據(jù)的表示方法。
.選擇“確定”
記錄級(jí)規(guī)則:
一種與記錄相關(guān)的有效性規(guī)則,當(dāng)插入或修改記
錄時(shí)激活,常用來(lái)檢驗(yàn)數(shù)據(jù)輸入和正確性。記錄
被刪除時(shí)不使用有效性規(guī)則。記錄級(jí)規(guī)則在字段
級(jí)規(guī)則之后和觸發(fā)器之前激活,在緩沖更新時(shí)工
作。
觸發(fā)器:
在一個(gè)插入、更新或刪除操作之后運(yùn)行的記錄級(jí)
事件代碼。不同的事件可以對(duì)應(yīng)不同的動(dòng)作。它
們常用于交叉表的完整性。
(3)在數(shù)據(jù)庫(kù)中添加表
方法1:從數(shù)據(jù)庫(kù)菜單中選擇添加表,從打開(kāi)對(duì)
話框中選擇所需的表并確定之。
方法2:右擊數(shù)據(jù)庫(kù)設(shè)計(jì)器窗口,從快捷菜單中
選擇添加表。
方法3:?jiǎn)螕魯?shù)據(jù)庫(kù)設(shè)計(jì)器工具欄的添加按鈕。
注意:
一個(gè)數(shù)據(jù)表在同一時(shí)間內(nèi)只能屬于一個(gè)數(shù)據(jù)庫(kù),
已隸屬于其它數(shù)據(jù)庫(kù)的表不能直接被添加進(jìn)來(lái),
需先將其移出數(shù)據(jù)庫(kù)還原成自由表。
(4)創(chuàng)建并添加視圖
視圖用于顯示一個(gè)或多個(gè)表中的記錄,并能夠更
新源表中的數(shù)據(jù),視圖只有在數(shù)據(jù)庫(kù)中才能存
在。
方法1:從數(shù)據(jù)庫(kù)菜單中選擇新遠(yuǎn)程視圖或新本
地視圖
方法2:右擊數(shù)據(jù)庫(kù)設(shè)計(jì)器窗口,從快捷菜單中
選擇新遠(yuǎn)程視圖或新本地視圖
方法3:?jiǎn)螕魯?shù)據(jù)庫(kù)設(shè)計(jì)器工具欄的新遠(yuǎn)程視圖
或新本地視圖按鈕
(5)在數(shù)據(jù)庫(kù)中操作表和視圖
可以利用數(shù)據(jù)庫(kù)設(shè)計(jì)器工具欄很方便地進(jìn)行下
列操作:
瀏覽:在瀏覽窗口中顯示表或視圖的內(nèi)容。
修改:調(diào)出表設(shè)計(jì)器或視圖設(shè)計(jì)器對(duì)表或視圖
進(jìn)行修改。
移去:使表從數(shù)據(jù)庫(kù)中還原成自由表。對(duì)視圖移
去相當(dāng)于刪除。
刪除:從磁盤(pán)上徹底刪除數(shù)據(jù)表和視圖,并且無(wú)
法回收。
(6)在表之間建立永久性關(guān)系
永久關(guān)系:
是數(shù)據(jù)庫(kù)表之間的一種關(guān)系,不僅運(yùn)行時(shí)存在,
而且一直保留。表之間的永久關(guān)系是通過(guò)索引建
立的。
一對(duì)多關(guān)系:
表之間的一種關(guān)系,在這種關(guān)系中,主表中的每
一個(gè)記錄與相關(guān)表中的多個(gè)記錄相關(guān)聯(lián)(每一個(gè)
主關(guān)鍵字值在相關(guān)表中可出現(xiàn)多次)。
一對(duì)一關(guān)系:
表之間的一種關(guān)系,在這種關(guān)系中,主表中的每
一個(gè)記錄只與相關(guān)表中的一個(gè)記錄相關(guān)聯(lián)。
創(chuàng)建表間的永久關(guān)系:
在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,選擇想要關(guān)聯(lián)的索引名,然
后把它拖到相關(guān)表的索引名上,所拖動(dòng)的父表索
引必須是一個(gè)主索引或候選索引。建立好關(guān)系
后,這種關(guān)系在數(shù)據(jù)庫(kù)設(shè)計(jì)器中會(huì)顯示為一條連
接兩個(gè)表的直線。
注意:需先建立索引然后才能建立關(guān)系。
刪除表間的永久關(guān)系:
在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,單擊兩表間的關(guān)系線。關(guān)系
線變粗,表明已選擇了該關(guān)系,按下delete鍵。
編輯關(guān)系:
單擊所需關(guān)系線,右擊鼠標(biāo),從快捷菜單中選擇
編輯關(guān)系,在編輯關(guān)系對(duì)話框中改選其它相關(guān)表
索引名或修改參照完整性規(guī)則。
參照完整性(RI):
控制數(shù)據(jù)一致性,尤其是不同表的主關(guān)鍵字和外
部關(guān)鍵字之間關(guān)系的規(guī)則。VisualFoxPro使用
用戶(hù)自定義的字段級(jí)和記錄級(jí)規(guī)則完成參照完
成性規(guī)則。
(7)在表之間建立臨時(shí)關(guān)系
臨時(shí)關(guān)系:
是在打開(kāi)的數(shù)據(jù)表之間用setrelation命令建立
的臨時(shí)關(guān)系,或是在數(shù)據(jù)工作期窗口建立。建立
了臨時(shí)關(guān)系后,子表的指針會(huì)隨主表記錄指針的
移動(dòng)。表被關(guān)閉后,關(guān)系自動(dòng)解除。
臨時(shí)關(guān)系與永久關(guān)系的聯(lián)系與區(qū)別:
聯(lián)系:
(1)都必須明確建立關(guān)系的兩張表之間確實(shí)在
客觀上存在著一種關(guān)系(一對(duì)多或一對(duì)一關(guān)系)。
(2)永久關(guān)系在許多場(chǎng)合可以作為默認(rèn)的臨時(shí)關(guān)
系。
區(qū)別:
(1)臨時(shí)關(guān)系是用來(lái)在打開(kāi)的兩張表之間控制
相關(guān)表之間記錄的訪問(wèn);而永久關(guān)系主要是用來(lái)
存儲(chǔ)相關(guān)表之間的參照完整性,附帶地可以作為
默認(rèn)的臨時(shí)關(guān)系或查詢(xún)中默認(rèn)的聯(lián)接條件。
(2)臨時(shí)關(guān)系在表打開(kāi)之后使用setrelation命
令建立,隨表的關(guān)閉而解除;永久關(guān)系永久地保
存在數(shù)據(jù)庫(kù)中而不必在每次使用表時(shí)重新創(chuàng)建。
(3)臨時(shí)關(guān)系可以在自由表之間、庫(kù)表之間或
自由表與庫(kù)表之間建立,而永久關(guān)系只能在庫(kù)表
之間建立。
(4)臨時(shí)關(guān)系中一張表不能有兩張主表(除非這
兩張主表是通過(guò)子表的同一個(gè)主控索引建立的
臨時(shí)關(guān)系),永久關(guān)系則不然。
4.用命令方式操作數(shù)據(jù)庫(kù)
常用命令一覽表
命令格式功能
createdatabase
創(chuàng)建新的數(shù)據(jù)庫(kù)文件
庫(kù)文件名
opendatabase庫(kù)打開(kāi)指定的庫(kù)文件
文件名
closedatabase關(guān)閉當(dāng)前的數(shù)據(jù)庫(kù)和數(shù)據(jù)表
關(guān)閉所有的數(shù)據(jù)庫(kù)和數(shù)據(jù)
表,并把工作區(qū)1置為當(dāng)前
closeall
工作區(qū),同時(shí)還關(guān)閉一些窗
口
modifydatabase修改當(dāng)前庫(kù)文件結(jié)構(gòu)
deletedatabase
刪除指定的庫(kù)文件
庫(kù)文件名
opendatabase庫(kù)
文件名在數(shù)據(jù)庫(kù)中添加表
addtable表名
opendatabase庫(kù)
文件名將表從數(shù)據(jù)庫(kù)中移去
removetable表名
opendatabase庫(kù)
文件名將表從數(shù)據(jù)庫(kù)中移去并從盤(pán)
removetable表文上刪除
件名delete
use庫(kù)文件名!表“!”表示引用個(gè)不在當(dāng)
名前數(shù)據(jù)庫(kù)中的表
browse
Setrelationto關(guān)系表達(dá)式建立表之間的
into區(qū)號(hào)|別名臨時(shí)關(guān)系
刪除表之間的
Setrelationto
臨時(shí)關(guān)系
altertable子表名add
foreignkey索引關(guān)鍵子tag
創(chuàng)建永久關(guān)系
索引標(biāo)識(shí)references父表名
[tag索引標(biāo)識(shí)]
altertable了?表名drop
刪除永久關(guān)系
foreignkeytag索引標(biāo)識(shí)
5.用CREATETABLE-SQL命令創(chuàng)建數(shù)據(jù)庫(kù)
表
命令一般格式:
Createtable表名1[free](字段名1字段類(lèi)型
代號(hào)[(字段寬度[,小數(shù)位數(shù)])][nullInotnull]
[check字段規(guī)則1[error"信息1"]][default
默認(rèn)值][primarykeyIunique][references表名
2[tag索引標(biāo)識(shí)1]][,字段名2字段類(lèi)型代號(hào)
[(字段寬度[,小數(shù)位數(shù)])][nullInot
null]][check字段規(guī)則2[error"信息2"]]
[default默認(rèn)值])Ifromarray數(shù)組名
使用示例:
creatdataxscjgl&&創(chuàng)建學(xué)生成績(jī)管理數(shù)據(jù)
庫(kù)
createtabIexs(;
xhc(4)defau11"1201"primarykey,;
xmc(6),;
xbc(2)checkxb二〃男〃orxb二〃女〃error”性
別只能是男或女〃default〃女〃,;
nIn(2)null;
)&&創(chuàng)建學(xué)生表
createtabIekc(;
kchc(3)unique,;
kcmc(10),;
xfn(3,1),;
bxkI;
)&&創(chuàng)建課程表
createtabIecj(;
xhc(4)default^1201^referencexstagxh,:
kchc(8),;
ksrqd,;
cjn(5,1);
)&&創(chuàng)建成績(jī)表
modidata
aItertabIecjaddprimarykey
xh+kch+str(cj,4,1)tagdh&&為成績(jī)表添加
一個(gè)主索引
6.查看和設(shè)置數(shù)據(jù)庫(kù)的屬性
(1)用dbgetprop()函數(shù)查看數(shù)據(jù)庫(kù)屬性:
命令格式:
dbgetprop(cName,cType,eProperty)
(2)用dbsetprop。函數(shù)設(shè)置數(shù)據(jù)庫(kù)屬性:
命令格式:
dbsetprop(cName,cType,eProperty,eProperty
VaIue)
(3)用dbsetpropO函數(shù)給表中字段添加標(biāo)題
和說(shuō)明
一般格式:dbsetprop。表名.字段名
'fieId','caption|comment','標(biāo)題|說(shuō)明')
例:dbsetprop('xs.xh','field','caption','學(xué)號(hào)')
dbsetprop('cj.xh','field','comment?本表學(xué)號(hào)應(yīng)與
學(xué)生表中的學(xué)號(hào)對(duì)應(yīng))
7.數(shù)據(jù)庫(kù)表的約束機(jī)制
約束機(jī)制級(jí)別激活時(shí)機(jī)
當(dāng)從瀏覽中禺開(kāi)字段,或執(zhí)行
NULL值字段INSERT或REPLEASE更改字段值
時(shí)
當(dāng)從瀏覽中離開(kāi)字段,或執(zhí)行
字段級(jí)規(guī)
字段INSERT或REPLEASE更改字段值
則
時(shí)
主索引/
記錄發(fā)生記錄更新時(shí)
候選索引
記錄級(jí)規(guī)
記錄發(fā)生記錄更新時(shí)
則
在INSERT>UPDATE或DELETE事
觸發(fā)器表
件中,表中值改變時(shí)
VALID子
表單移出記錄時(shí)
句
第四章創(chuàng)建查詢(xún)和視圖
4.1創(chuàng)建查詢(xún)
1.查詢(xún)的概念
查詢(xún):就是向一個(gè)數(shù)據(jù)庫(kù)發(fā)出檢索信息的請(qǐng)求,
從中提取符合特定條件的記錄。
查詢(xún)文件:
即保存實(shí)現(xiàn)查詢(xún)的SELECT-SQL命令的文件。
查詢(xún)文件保存時(shí),系統(tǒng)自動(dòng)給出擴(kuò)展名.qpr;
查詢(xún)被運(yùn)行后,系統(tǒng)還會(huì)生成一個(gè)編譯后的查詢(xún)
文件,擴(kuò)展名為.qpxo
查詢(xún)結(jié)果:
通過(guò)運(yùn)行查詢(xún)文件得到的一個(gè)基于表和視圖的
動(dòng)態(tài)的數(shù)據(jù)集合。查詢(xún)結(jié)果可以用不同的形式來(lái)
保存。查詢(xún)中的數(shù)據(jù)是只讀的。
查詢(xún)的數(shù)據(jù)源:可以是一張或多張相關(guān)的自由
表、數(shù)據(jù)庫(kù)表、視圖。
2.用查詢(xún)?cè)O(shè)計(jì)器創(chuàng)建查詢(xún)[圖例]
基本步驟:
打開(kāi)查詢(xún)?cè)O(shè)計(jì)器一添加創(chuàng)建查詢(xún)所基于的數(shù)
據(jù)表一定義輸出內(nèi)容一設(shè)置聯(lián)接、篩選、排
序、分組條件一選擇查詢(xún)結(jié)果的輸出形式一
保存查詢(xún)文件一運(yùn)行查詢(xún)。
(1)打開(kāi)查詢(xún)?cè)O(shè)計(jì)器
方法1:
從文件菜單或工具欄上單擊新建一查詢(xún)一
新建文件一進(jìn)入查詢(xún)?cè)O(shè)計(jì)器
方法2:
當(dāng)所用到的數(shù)據(jù)表已在項(xiàng)目中時(shí),從項(xiàng)目管理器
窗口中單擊數(shù)據(jù)一查詢(xún)T新建T新建查
詢(xún)一進(jìn)入查詢(xún)?cè)O(shè)計(jì)器
方法3:從命令窗口中輸入命令:
createquery查詢(xún)文件名&創(chuàng)建新查詢(xún)
modifyquery查詢(xún)文件名&修改已存在的查詢(xún)
(2)定義查詢(xún)的輸出內(nèi)容
單擊字段選項(xiàng)卡-從可用字段列表框中單擊
所需字段(當(dāng)輸出的列不是直接來(lái)源于表中的字
段時(shí),單擊函數(shù)和表達(dá)式框邊的...按鈕,打開(kāi)
表達(dá)式生成器,構(gòu)造出所需的表達(dá)式)一單擊
添加按鈕一所需字段自動(dòng)出現(xiàn)在選定字段框
中。
(3)設(shè)置查詢(xún)的篩選條件
篩選條件決定將哪些記錄顯示出來(lái)。
在篩選框中構(gòu)造篩選條件表達(dá)式時(shí),要注意在實(shí)
例框中輸入不同數(shù)據(jù)類(lèi)型時(shí)的格式:
1)字符串可以不帶引號(hào)(當(dāng)與源表中的字段名
相同時(shí)才用引號(hào));
2)日期型數(shù)值要用{}括起來(lái);
3)邏輯型數(shù)據(jù)兩側(cè)要帶.號(hào),如
(4)設(shè)置查詢(xún)結(jié)果的排序依據(jù)
排序決定查詢(xún)輸出結(jié)果中記錄顯示的順序。
設(shè)置方法:
單擊排序依據(jù)一從選定字段框選中字段一
選擇升序或降序一單擊添加。
(5)設(shè)置查詢(xún)結(jié)果的分組依據(jù)
分組是指將一組類(lèi)似的記錄壓縮成一個(gè)結(jié)果記
錄,目的是為了完成基于該組記錄的計(jì)算,比如:
求平均值、總和、統(tǒng)計(jì)個(gè)數(shù)、其中的最大值、最
小值等。
幾個(gè)常用的統(tǒng)計(jì)函數(shù)
功求平均求最大求最小統(tǒng)計(jì)個(gè)
求總和
能值值值數(shù)
名COUNT
AVG()SUM()MAXOMIN()
稱(chēng)()
用于分組的字段不一定是選定輸出的字段,但分
組字段不能是一個(gè)計(jì)算字段。
可以用滿足條件…來(lái)對(duì)分組結(jié)果進(jìn)行進(jìn)一步
篩選。
(6)對(duì)查詢(xún)結(jié)果的其他設(shè)置
可以排除查詢(xún)結(jié)果中所有重復(fù)的行,并設(shè)置結(jié)果
的記錄范圍。
(7)選擇查詢(xún)結(jié)果的輸出類(lèi)型
默認(rèn)情況下,查詢(xún)結(jié)果將輸出在瀏覽窗口中,且
其中的數(shù)據(jù)是只讀的。
設(shè)置其他輸出類(lèi)型的方法:
打開(kāi)查詢(xún)菜單T選擇查詢(xún)?nèi)ハ蛞辉诓樵?xún)?nèi)?/p>
向?qū)υ捒蛑羞x擇一種。一般多選擇表或報(bào)表。
(8)運(yùn)行查詢(xún)
在查詢(xún)?cè)O(shè)計(jì)器打開(kāi)的狀態(tài)下,單擊常用工具欄上
的!按鈕或從查詢(xún)菜單中選擇運(yùn)行查詢(xún)。其他
情況下,可從項(xiàng)目管理器中選中查詢(xún)文件并單擊
運(yùn)行按鈕,或從程序菜單中選擇執(zhí)行命令,或從
命令窗口中輸入:DO查詢(xún)文件名。
(9)創(chuàng)建多表查詢(xún)
打開(kāi)查詢(xún)?cè)O(shè)計(jì)器一將所需的多個(gè)相關(guān)表添加
進(jìn)來(lái)f設(shè)置聯(lián)接條件T按上面(2)至(8)
步進(jìn)行。
3.用查詢(xún)向?qū)?chuàng)建查詢(xún)
(1)創(chuàng)建標(biāo)準(zhǔn)查詢(xún):
打開(kāi)待查詢(xún)的數(shù)據(jù)表7從文件菜單中單擊新
建一在新建對(duì)話框中選擇查詢(xún)并單擊向?qū)б?/p>
選擇查詢(xún)向?qū)б粡膯螐埢蚨鄰埾嚓P(guān)的表中進(jìn)
行字段選取一設(shè)置篩選條件-設(shè)置排序次
序一選擇查詢(xún)結(jié)果的保存方式-給出查詢(xún)
文件名并選擇保存位置一查詢(xún)結(jié)果顯示在查
詢(xún)窗口中。
注意:查詢(xún)此時(shí)得到的數(shù)據(jù)是只讀的,不可以更
新。
(2)交叉表查詢(xún)
打開(kāi)待查詢(xún)的數(shù)據(jù)表-從文件菜單中單擊新
建一在新建對(duì)話框中選擇查詢(xún)并單擊向?qū)б?/p>
選擇交叉表向?qū)б粡膯螐埍碇羞x取字段一
設(shè)計(jì)布局一加入總和信息一選擇查詢(xún)結(jié)果
的保存方式一給出查詢(xún)文件名并選擇保存位
置一查詢(xún)結(jié)果顯示在查詢(xún)窗口中。
注意:不是任何表都適宜采用交叉表的形式。
(3)用SELECT-SQL命令創(chuàng)建查詢(xún)
常用的格式:
SELECT表名1.字段名1[AS標(biāo)題名1],表名
1.字段名2[AS標(biāo)題名2],…
FROM數(shù)據(jù)庫(kù)名!表名1[,數(shù)據(jù)庫(kù)名!表名2]
[,數(shù)據(jù)庫(kù)名!表名3]
[TOFILE文本文件名IintotableIintocursor
表文件名]
[WHERE選定條件]
[GROUPBY分組字段名]
[HAVING分組中的滿足條件]
[ORDERBY排序字段名1[ASCIDESC][,排
序字段名2[ASCIDESC]...]]
示例:
瀏覽學(xué)生中的查詢(xún)學(xué)生student.qpr:
SELECT表xs.xhas學(xué)號(hào),表xs.xmas姓名,表
xs.xbas性別,;
表xs.csrqas出生日期,表xs.bjas班級(jí)名稱(chēng);
FROM數(shù)據(jù)test!表xs;
WHERE表xs.bj=csl;
ORDERBY表xs.xh;
INTOTABLExs
瀏覽成績(jī)中的按課程查詢(xún)sub_cj.qpr:
SELECT表xs.bjas班級(jí)名稱(chēng),COUNT(表xs.xh)
as班級(jí)人數(shù),AVG(表cj.cj)as平均分,;
MAX(表cj.cj)as最高分,MIN(表cj.cj)as最低
分;
FROM數(shù)據(jù)test!表xs,數(shù)據(jù)test!表cj,數(shù)據(jù)test!
表kc;
WHERE表cj.xh=表xs.xh;
AND表kc.kcm=表cj.kcm;
AND表cj.kcm二scl;
GROUPBY表xs.bj;
ORDERBY表xs.bj;
INTOTABLEsub_cj
4.2創(chuàng)建視圖
1.視圖的特點(diǎn)
1)視圖是存在于數(shù)據(jù)庫(kù)中的一個(gè)虛表,不以獨(dú)
立的文件形式保存;
2)視圖中的數(shù)據(jù)是可以更改的,它不僅具有查
詢(xún)的功能,且可以把更新結(jié)果反映到源數(shù)據(jù)表
中;
3)視圖打開(kāi)時(shí),其基表自動(dòng)打開(kāi),但視圖關(guān)閉
時(shí),其基表并不隨之自動(dòng)關(guān)閉;
4)視圖的數(shù)據(jù)源可以是自由表、數(shù)據(jù)庫(kù)表或另
一個(gè)視圖。
2.用視圖設(shè)計(jì)器創(chuàng)建本地視圖[圖例]
從項(xiàng)目管理器中選擇一個(gè)數(shù)據(jù)庫(kù)一選擇本地
視圖T單擊新建按鈕一選擇新視圖T添
加所需的數(shù)據(jù)表一在視圖設(shè)計(jì)器中按照與創(chuàng)
建查詢(xún)相同的步驟(2)?(6)建立視圖T設(shè)
置更新條件一保
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度呈現(xiàn)大全人事管理篇十篇
- 《行政職業(yè)能力測(cè)驗(yàn)》2024年公務(wù)員考試尤溪縣臨考沖刺試卷含解析
- 八下期末考拔高測(cè)試卷(5)(解析版)
- 寒假自習(xí)課 25春初中道德與法治八年級(jí)下冊(cè)教學(xué)課件 第三單元 第五課 第2課時(shí) 基本政治制度
- 《皮外骨傷科病證》課件
- 鐵路線路設(shè)計(jì)合同三篇
- 服裝店衛(wèi)生消毒指南
- 幼兒園工作總結(jié)攜手陪伴成長(zhǎng)無(wú)憂
- 餐飲行業(yè)助理工作總結(jié)
- 感恩父母演講稿錦集八篇
- 空調(diào)系統(tǒng)維保記錄表格模板
- QC小組活動(dòng)管理制度
- 市區(qū)自備井排查整治工作實(shí)施方案
- 8位半萬(wàn)用表大比拼
- 品牌管理部績(jī)效考核指標(biāo)
- 瀝青路面施工監(jiān)理工作細(xì)則
- 物業(yè)設(shè)備設(shè)施系統(tǒng)介紹(詳細(xì)).ppt
- 公司走賬合同范本
- 獲獎(jiǎng)一等獎(jiǎng)QC課題PPT課件
- 人教版小學(xué)三年級(jí)數(shù)學(xué)上冊(cè)判斷題(共3頁(yè))
- 國(guó)際項(xiàng)目管理手冊(cè)The Project Manager’s Manual
評(píng)論
0/150
提交評(píng)論