版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
資料庫應用與開發(fā)第一章概述第一節(jié)資料庫系統(tǒng)概述一、數(shù)據(jù)處理方法的演變資料庫應用系統(tǒng)訂票系統(tǒng)銀行系統(tǒng)企業(yè)管理資訊系統(tǒng)學校教務管理系統(tǒng)……1.數(shù)據(jù)處理的特點數(shù)據(jù)存儲:長期保存、大容量數(shù)據(jù)即時處理基本數(shù)據(jù)操作:查詢,更新(增、刪、改)
——基於大容量存儲數(shù)據(jù)的操作對數(shù)學運算能力要求相對不高,通常是簡單的算術運算、統(tǒng)計運算面向多種應用(多用戶):共用、併發(fā)訪問數(shù)據(jù)安全性要求數(shù)據(jù)完整性要求2.資料庫技術的產(chǎn)生發(fā)展:技術本身的發(fā)展 實際需求的要求數(shù)據(jù)管理方法的演變經(jīng)歷了三個階段:人工管理階段檔系統(tǒng)階段資料庫系統(tǒng)階段
-數(shù)據(jù)的結構化,面向整體的觀點組織數(shù)據(jù)
-數(shù)據(jù)共用,可控冗餘度
-高度的數(shù)據(jù)和程式獨立性
-提供安全性、完整性及併發(fā)訪問等控制功能三、資料庫應用與開發(fā)
用資料庫管理系統(tǒng)(資料庫語言及其工具)解決實際問題,其過程分兩步:
-資料庫設計
-資料庫的實現(xiàn)及其操作用數(shù)據(jù)模型描述現(xiàn)實世界的問題,並對數(shù)據(jù)模型實施操作,實現(xiàn)相應的數(shù)據(jù)處理。1.資料庫設計
用關係數(shù)據(jù)模型描述現(xiàn)實世界,即設計關係(表)、主碼、索引、外碼、關聯(lián)等。所需基礎知識:
資訊系統(tǒng)分析與設計/
管理資訊系統(tǒng)
——分析現(xiàn)實世界的資訊需求
資料庫原理
——設計結構良好的資料庫示例:主碼(Sno+Cno)SnoNameGen.BirthAddr.CnoSubj.TimeCreditScore01張強M78/9/1XC01數(shù)學9668501張強M78/9/1XC02英語12489001張強M78/9/1XC03物理563.58302田麗F77/2/25WC02英語12489002田麗F77/2/25WC04化學6448802田麗F77/2/25WC05生物4837503王東M78/11/18XC01數(shù)學9667803王東M78/11/18XC03物理563.58003王東M78/11/18XC04化學64492結構不好存在的問題數(shù)據(jù)冗餘插入異常刪除異常修改異常2.資料庫的實現(xiàn)及其操作
在電腦系統(tǒng)中物理地實現(xiàn)所設計的資料庫,並對數(shù)據(jù)庫實施操作,即使用資料庫中的數(shù)據(jù)——對數(shù)據(jù)庫進行增刪改、查詢等操作。工具:資料庫管理系統(tǒng)(DBMS) 如Oracle,Sybase,SQLServer,DB2,VisualFoxPro等。四、數(shù)據(jù)模型在資料庫系統(tǒng)中,資料庫設計的核心問題就是設計一個好的數(shù)據(jù)模型,數(shù)據(jù)模型的好壞直接影響資料庫的性能。目前流行的數(shù)據(jù)模型是關係數(shù)據(jù)模型。
1.關係數(shù)據(jù)模型
關係數(shù)據(jù)模型是把現(xiàn)實世界資訊需求的數(shù)據(jù)邏輯結構歸結為滿足一定條件的二維表的模型。一個二維表就是一個關係,描述問題的所有二維表的集合就構成了一個關係數(shù)據(jù)庫。
從理論上定義,關係是笛卡爾積的任意一個子集。從直觀上看,關係就是一個具有橫行(記錄)和豎列(字段)的一張二維表。日常工作和生活中的各種報表,如工資表、學生成績表、人事檔案表、產(chǎn)品庫存表、生產(chǎn)報表等都具有二維表的結構,可以很方便地表示成關係數(shù)據(jù)模型中的一個關係。
關係數(shù)據(jù)模型示例SnoCnoScore01C018501C029001C038302C029002C048802C057503C017803C038003C0492SnoNameGen.BirthAddr.01張強M1978/9/1X02田麗F1977/2/25W03王東M1978/11/18XCnoSubj.TimeCreditC01數(shù)學966C02英語14412C03物理644C04化學644C05生物483關係數(shù)據(jù)模型分析SnoNameGen.BirthAddr.字段記錄數(shù)據(jù)01張強M1978/9/1X02田麗F1977/2/25W03王東M1978/11/18X……結構表中含有幾個字段:字段名、字段類型、字段寬度、小數(shù)位學生表相關術語之間的聯(lián)繫Database(資料庫) UniversityDatabase StudentTable,CourseTable,ScoreTable,……Table(表) CnoSubjectTimeCredit C01數(shù)學966 C02英語14412 C03物理644
……
CnoSubjectTimeCreditRecord(記錄) J101數(shù)學16010Fields(字段) J101Byte(位元組) 01001010(字母J的ASCII碼)Bit(位) 02.關係的性質一個關係中的任意兩個記錄不能相同;關係的每列都必須有不同的名字;列是同質的,即關係的每列都是同類型的數(shù)據(jù);關係的行、列的次序不影響其資訊內容,可以任意交換;關係的每個分量都必須是不可分的基本資料項目;每個關係都必須至少有一個關鍵字(即主碼)唯一標識它的記錄。3.關係的碼定義1:若關係中的某一字段或一組字段的值能唯一地標識關係的一個記錄,則稱該字段或字段組為關係的候選碼。若一個關係有多個候選碼,則選定其中一個為主碼。定義2:F是關係R的某一字段或一組字段,但不是關係R的主碼,如果F與關係S的主碼對應,則稱F是關係R的外碼。DnoDnameDlocDmgrD-01財務部D-02生產(chǎn)部D-03銷售部D-04供應部D-05人事部EnoEnameTitleSalaryDnoE-001張立D-01E-002趙洪新D-01E-003王強D-03E-004齊東D-02E-005孫海D-02E-006劉偉D-03E-007衛(wèi)希凱NullDepartmentTableEmployeeTable碼的示例關係之間是通過主碼和外碼相互關聯(lián)的4.其他二維數(shù)據(jù)組織形式電子錶格(Excel,Lotus)二維數(shù)組文本數(shù)據(jù)檔(*.txt,*.dat)數(shù)據(jù)的引用與數(shù)據(jù)所在的位置有關,即地址相關。而關係中數(shù)據(jù)的引用是地址無關的——數(shù)據(jù)和程式相互獨立。第二節(jié)VisualFoxPro簡介一、VFP的發(fā)展20世紀70年代末,DbaseⅡ,Ashton-Tate公司1984/1985年DbaseⅢ/DbaseⅢ+1987年FoxBASE+,F(xiàn)OX公司1989年FoxProforDOS1993年FoxProforWindows,微軟公司1995年VisualFoxProVisualFoxProFoxProFoxBasexBase版本號運行平臺8.0/7.0Windows20006.0Windows95/985.0Windows95/983.0Windows95/982.5/2.6Dos,Windows95/982.0Dos1.0Dos
DosDos發(fā)展相容二、啟動VFP,退出VFP啟動/運行VFP
桌面快捷方式 開始菜單-程式-VisualFoxPro退出VFP
在系統(tǒng)菜單“檔”中選擇“退出” 在命令窗口中執(zhí)行“QUIT”命令桌面快捷方式啟動VFP用開始菜單啟動VFP三、VFP的介面初始介面命令窗口系統(tǒng)菜單對話框工具欄VisualFoxPro6.0的初始介面(一)VisualFoxPro6.0的初始介面(二)VisualFoxPro6.0的系統(tǒng)菜單VisualFoxPro6.0的對話框四、VF的命令執(zhí)行方式命令方式 在命令窗口中輸入要執(zhí)行的命令,以回車結束命令,並開始執(zhí)行命令。菜單引導方式 在FoxPro的系統(tǒng)菜單中選擇相應的菜單選項,在對話框中填寫命令參數(shù),執(zhí)行命令。程式執(zhí)行方式 編寫FoxPro根源程式(命令程式),運行程式,按照程式的邏輯結構執(zhí)行程式中的命令。五、關於VF的命令和函數(shù)除@…
命令、ON…
命令外,VF的命令均以英語動詞開頭,結構為:命令動詞+若干修飾子句;命令中的保留字和函數(shù)名幾乎都採用完全或縮寫的英語單詞,因而容易理解和記憶;命令中的保留字和函數(shù)名不區(qū)分字母的大小寫;在多數(shù)情況下,保留字和函數(shù)名可以簡化使用其前四個字母即可。例如,的命令DISPLAYSTRUCTURE可簡化為DISPSTRU、DISPSTRUCTURE、DISPLAYSTRU,函數(shù)ISUPPER()可簡化為ISUP()。五、關於VF的命令和函數(shù)除少數(shù)子句外,命令中起限制和修飾作用的子句,可在命令中以任意順序出現(xiàn)。因此,下述幾個命令是完全等效的:
LISTFIELDSsno,name,score
FORscore>=590
ALL
OFF
TOPRINTERLISTFORscore>=590
FIELDSsno,name,scoreALLOFFTOPRINTERLISTALLOFFFORscore>=590
FIELDSsno,name,scoreTOPRINTERLISTTOPRINTEROFFALLFORscore>=590
FIELDSsno,name,score
六、命令語法約定<…>選擇該項時,尖括弧中的內容必須代之以實際數(shù)據(jù);[…]任選項,表示其中的內容可以選擇也可以不選擇;…|…
擇一選項,表示應從列出的內容中選擇一項。一般,用大寫字母識別字代表FoxPro系統(tǒng)的保留字,小寫字母識別字為由用戶使用時填寫的項,如檔案名、變數(shù)名等。七、VF的輔助設計工具嚮導——嚮導是一種快捷的設計工具,它通過一組對話框依次與用戶對話,引導用戶分步完成VFP的某項任務。VFP6.0有21種嚮導,參見P22,表1.2。設計器——與嚮導類似,用來幫助用戶創(chuàng)建或修改VFP應用程式所需的構件,如表、表單、菜單等。VFP6.0有9種設計器,參見P23,表1.3。生成器——幫助用戶在VFP應用程式的構件中生成並加入某類構件,如文本框、表格等。VFP6.0有10種生成器,參見P24,表1.4。八、數(shù)據(jù)類型(熟練掌握)字元型(C):0-254個位元組的文本數(shù)據(jù),如學號,姓名,性別,郵遞區(qū)號,電話號碼,身份證號,產(chǎn)品名稱等。數(shù)值型(N):由正負號、整字和小數(shù)點組成且能用於數(shù)值運算的數(shù)據(jù),如產(chǎn)量,價格,庫存量,成績,工資額等。日期型(D):由年份、月份、日組成的表示日曆日期的數(shù)據(jù),如生日,交貨日期等。邏輯型(L):由真值、假值兩個值組成的表示邏輯判斷結果的數(shù)據(jù),如婚否,黨員否等。備註型(M):超過254個位元組的長文本數(shù)據(jù),如工作經(jīng)歷,獎懲情況等。八、數(shù)據(jù)類型(瞭解)日期時間型(T):由年份、月份、日、時、分、秒組成的表示某一時刻時間的數(shù)據(jù),如交款時間,採樣時間等。整型(N):不帶小數(shù)的數(shù)值,如年齡,成績等。貨幣型(Y):表示貨幣的數(shù)值,如價格,工資額等。浮動型(N):用科學記數(shù)法表示的數(shù)值。雙精度型(N):表示高精度要求的數(shù)值。通用型(G):用來存放多媒體數(shù)據(jù),如照片,圖片等。九、檔類型及其擴展名對照表檔類型擴展名檔類型擴展名數(shù)據(jù)表備註檔單條目索引檔複合索引檔根源程式檔編譯程序檔表單定義數(shù)據(jù)表表單定義備註檔菜單定義數(shù)據(jù)表菜單定義備註檔生成的菜單程式
編譯菜單程式DBFFPTIDXCDXPRGFXPSCXSCTMNXMNTMPRMPX專案管理資料庫專案管理備註檔文本檔視圖檔報表檔報表備註檔標籤檔標籤備註檔生成的查詢程式編譯查詢程式可執(zhí)行檔應用程式檔PJXPJTTXTVUEFRXFRTLBXLBTQPRQPXEXEAPP第二章表的基本操作建立新表運算式記錄指針記錄的增刪改表的其他操作第一節(jié)建立新表建立表:建立表的結構——定義新表 輸入數(shù)據(jù)記錄——對表的操作之一定義/建立表結構:表名(*.DBF)
字段名 字段類型 字段寬度(小數(shù)位) 是否建索引 字段是否可為空1.如何建立新表a)表結構的邏輯設計——數(shù)據(jù)模型設計,即:建立幾個表每個表裏包含哪些資料項目每個資料項目採用什麼數(shù)據(jù)類型每個表的主碼是否需要建立索引b)在VF中實現(xiàn)表結構c)向表中輸入初始數(shù)據(jù)記錄2.用表設計器創(chuàng)建新表的結構命令方式
CREATEstudent↙菜單引導方式
檔(F)—新建(N)—表(T)—新建檔(N)*菜單引導方式*各類型數(shù)據(jù)的字段寬度系統(tǒng)自動設置:邏輯型:1日期型:8日期時間型:8整型:4貨幣型:8備註型:4通用型:4由用戶定義:字元型:0-254數(shù)值型:20浮動型:20雙精度型:8
小數(shù)點寬度=整數(shù)位+小數(shù)位+1+1
符號位*關於備註/通用型字段當定義備註/通用型字段時,系統(tǒng)自動產(chǎn)生同名的備註檔(*.FPT),作為表檔的輔助檔;在表檔中,備註/通用型字段寬度為4個位元組,存儲指向備註檔的地址資訊,相當於指針;備註/通用型數(shù)據(jù)實際存儲在備註檔中,所佔用位元組數(shù)根據(jù)實際情況按512位元組倍數(shù)遞增;備註檔不能單獨使用。*結束退出表設計器保存退出點《確定》按鈕按<Ctrl+W>鍵不保存退出點《取消》按鈕按<Ctrl+Q>鍵按<Esc>鍵3.打開和關閉表打開表
USE<filename>
檔(F)—打開(O)—“表(*.dbf)”關閉表
USE CLOSETABLES CLOSEDATABASES CLOSEALL CLEARALL
窗口(W)—數(shù)據(jù)工作期(D)—“關閉”按鈕關於表檔打開方式獨享方式——EXCLUSIVE
對表結構、表記錄操作沒有限制只讀方式——SHARED
可以顯示表結構,但不可以修改表結構
對表記錄操作沒有限制設置命令:SETEXCLUSIVEON|OFFUSE…EXCLUSIVE|SHARED默認為獨享方式打開示例SETEXCLUSIVEONUSEstudent或USEstudentEXCLUSIVESETEXCLUSIVEOFFUSEstudent或USEstudentSHARED4.表中初始數(shù)據(jù)的輸入在上一步保存退出遇“現(xiàn)在輸入記錄”時選擇Y,則
直接進入數(shù)據(jù)輸入窗口。在上一步保存退出遇“現(xiàn)在輸入記錄”時選擇N,則 從鍵盤直接錄入:BROWSE命令(按Ctrl+Y鍵)
APPEND命令
顯示(V)—流覽(B)
從數(shù)組中間接輸入:APPENDFROMARRAY
命令 從其他檔間接輸入:APPENDFROM
命令BROWSE[FIELDS<fieldlist>][FONT<font>[,<size>]]
[STYLE<style>]
[FOR<expL1>[REST]][FORMAT][FREEZE<fieldname>]
[KEY<expr1>[,<expr2>]][LAST|NOINIT]
[LOCK<expN1>][LPARTITION][NAME<objectname>]
[NOAPPEND][NODELETE][NOEDIT|NOMODIFY]
[NOLGRID][NORGRID][NOLINK][NOMENU]
[NOOPTIMIZE][NOREFRESH][NORMAL][NOWAIT]
[PARTITION<expN2>[LEDIT][REDIT]]
[PREFERENCE<expC1>][SAVE]
[TIMEOUT<expN3>][TITLE<expC2>]
[VALID[:F]<expL2>[ERROR<expC3>]]
[WHEN<expL3>][WIDTH<expN4>]
[WINDOW<windowname1>]
[IN[WINDOW]<windowname2>|INSCREEN]
[COLORSCHEME<expN5>]命令格式:APPEND[BLANK][IN<expN>|<expC>][NOMENU]兩種方式:
APPENDBLANKIN<expN>|<expC>
以非交互方式直接追加一個空記錄。
APPENDIN<expN>|<expC>
以交互方式追加數(shù)據(jù)記錄。以交互方式追加數(shù)據(jù)記錄APPENDFROM<filename>|?
[FIELDS<fieldlist>][FOR<expL>]
[[TYPE][DELIMITED[WITH<delimiter>|WITHBLANK|WITHTAB
|WITHCHARACTER<delimiter>]
|DIF|FW2|MOD|PDOX|RPD|SDF|SYLK
|WK1|WK3|WKS|WR1|WRK|CVS
|XLS|XL5[SHEET<sheetname>]|XL8[SHEET<sheetname>]]]
[AS<codepage>]5.表結構的修改何時需要修改表結構 增加字段 刪除字段 修改字段名、類型、寬度、小數(shù)位、置空否 修改索引修改表結構的命令
MODIFYSTRUCTURE菜單引導修改表結構 顯示(V)—表設計器(L)6.顯示數(shù)據(jù)記錄交互方式:同時可編輯數(shù)據(jù)記錄
BROWSE命令 顯示(V)—流覽(B)非交互方式:僅顯示、不可編輯數(shù)據(jù)記錄
LIST命令
DISPLAY命令(1)LIST/DISPLAY命令格式LIST[[FIELDS]<fieldlist>]
[<Scope>][FOR<expL1>][WHILE<expL2>]
[OFF][NOCONSOLE][NOOPTIMIZE]
[TOPRINTER[PROMPT]|TOFILE<filename>]DISPLAY[[FIELDS]<fieldlist>]
[<Scope>][FOR<expL1>][WHILE<expL2>]
[OFF][NOCONSOLE][NOOPTIMIZE]
[TOPRINTER[PROMPT]|TOFILE<filename>](2)LIST/DISPLAY命令解釋FIELDS<fieldlist>
指定輸出的字段(列選擇)<scope>
指定輸出的數(shù)據(jù)記錄的範圍(行選擇)FOR<expL>或WHILE<expL>
指定輸出的數(shù)據(jù)記錄的條件(行選擇)TOPRINTER[PROMPT]|TOFILE<filename>
指定數(shù)據(jù)輸出到何處,顯示器,印表機,檔? 默認為輸出到顯示器。(3)關於範圍選擇子句
範圍選擇子句<scope>按指定的範圍選擇命令要操作的數(shù)據(jù)記錄。它有四種形式:ALL:限定可對檔中的所有記錄操作;NEXT<n>:對檔中當前記錄之後的n個記錄操作;REST:對檔中當前記錄之後的剩餘記錄操作;RECORD<n>:限定只對檔中的第n個記錄操作。(4)LIST和DISPLAY命令的差別當命令中無<scope>、FOR、WHILE子句時,
LIST默認為輸出資料庫中所有的記錄;
DISPLAY僅輸出當前記錄。LIST為連續(xù)輸出數(shù)據(jù);
DISPLAY在輸出結果滿一屏時,系統(tǒng)自動暫停,按任意鍵後繼續(xù)顯示。(5)示例LISTFIELDSsno,name,majorFORgender="女"(5)示例GOTOPLISTsno,name,majorNEXT5(5)示例SKIPDISPLAY(5)示例DISPLAYALL7.顯示表結構LISTSTRUCTURE
[IN<expN>|<expC>]
[NOCONSOLE]
[TOPRINTER[PROMPT]|TOFILE<filename>]DISPLAYSTRUCTURE
[IN<expN>|<expC>]
[NOCONSOLE]
[TOPRINTER[PROMPT]|TOFILE<filename>]第二節(jié)運算式運算式的構成:變數(shù),常量,函數(shù),運算符
類型,值變數(shù):字段變數(shù),記憶體變數(shù)函數(shù):系統(tǒng)函數(shù),用戶定義函數(shù)運算符:P49,表2.6
算術運算符 關係運算符優(yōu)先順序
邏輯運算符運算對象 字元運算符(+,-)1.常量(1)數(shù)值型/貨幣型/浮動型/整型/雙精度型常量:
100-305.231.05E+5字元型常量:雙引號:"GoodMorning!"
單引號:'Good'
方括號:[Morning]1.常量(2)日期型常量:
{^yyyy-mm-dd}或{^yyyy/mm/dd}或{^yyyy.mm.dd}{^2001/09/26}日期時間型常量:
{^yyyy-mm-dd[hh[:mm[:ss]][a|p]]}{^2001/09/294:10p}邏輯型常量:真值:.T..Y..t..y.
假值:.F..N..f..n.2.變數(shù)字段變數(shù): 可為任意數(shù)據(jù)類型。記憶體變數(shù),可是如下數(shù)據(jù)類型:
N,數(shù)值型(貨幣型/浮動型/整型/雙精度型) C,字元型(備註型) D,日期型
T,日期時間型
L,邏輯型 不能是通用型的。3.運算式示例(1)25+100-(12*8-7)+54/9數(shù)值42"Good
"+"afternoon!"字串"Goodafternoon!""Good"-"afternoon!"字串"Goodafternoon!"{^2004/10/01}>{^2004/09/26}邏輯真值{^2004/09/294:00p}>{^2004/09/298:00}
邏輯真值"abcd"="ABCD" 邏輯假值"abcd"="ABCD"AND50>10*4 邏輯假值"abcd"="ABCD"OR50>10*4 邏輯真值婚否=.F. 無效運算式NOT婚否 有效運算式3.運算式示例(2){^2004/10/01}+10日期2004年10月11日{^2004/03/01}-1日期2004年2月29日{^2004/10/01}-{^2004/09/26}數(shù)值5{^2004/09/294:10:00p}+10
日期時間型2004年9月29日下午4時10分10秒{^2004/09/294:10:00p}-30
日期時間型2004年9月29日下午4時9分30秒{^2004/09/298:10}-{^2004/09/298:00}
數(shù)值6004.顯示運算式命令格式:?<Expr>示例:
?25+100-(12*8-7)+54/9?{^2004/10/01}+10?{^2004/10/01}-{^2004/09/29}?{^2004/09/294:10p}?{^2004/09/294:10p}-30?{^2004/10/01}>{^2004/09/26}?"abcd"="ABCD"OR50>10*4?"abcd"="ABCD"注:日期型/日期時間型變數(shù)定義格式和顯示格式不一定相同。第三節(jié)記錄指針FoxPro系統(tǒng)在數(shù)據(jù)輸入時,依據(jù)其輸入的先後順序自動為每個記錄賦予一個記錄號,最先輸入的記錄的記錄號為1,其次為2,依此類推。用戶對表檔中某個資料項目的訪問,除要指定資料項目所在字段(列)的字段名外,還要給出它所在的記錄(行)。FoxPro系統(tǒng)內部有個用以指向當前操作記錄(稱為當前記錄)的記錄指針,通過記錄指針定位命令,可將它移到預定的位置上。1.與記錄指針有關的函數(shù)函數(shù)格式:RECNO([<expN>|<expC>])功能:返回指定表的當前記錄號。返回值類型:N函數(shù)格式:EOF([<expN>|<expC>])功能:測試指定表的記錄指針是否指向檔尾。返回值類型:L函數(shù)格式:BOF([<expN>|<expC>])功能:測試指定表的記錄指針是否指向檔頭。返回值類型:L*說明(設表中共有N條數(shù)據(jù)記錄)記錄物理順序RECNO()EOF()BOF()表頭第1條記錄第2條記錄……第k條記錄……第N條記錄表尾112……K……NN+1FFF……F……FTTFF……F……FF*示意圖BeginofFlieEndofFlie123
…NEOF()=.T.→BOF()=.T.→RECNO()有效記錄指針定位的幾種方法記錄指針絕對移動——GOTO命令記錄指針相對移動——SKIP命令記錄指針條件移動——LOCATE命令借助索引檔移動——SEEK命令(第三章)隨著對記錄操作的命令移動
LIST,DISPLAY,REPLACE,……2.記錄指針絕對移動命令格式:
GO|GOTO[RECORD]<expN1>|TOP|BOTTOM[IN<expN2>|<expC>]解釋:將記錄指針直接移到指定的記錄位置上。
[RECORD]<expN1>:記錄號為<expN1>的任意記錄;
TOP:表檔的首記錄(邏輯順序);
BOTTOM:表檔的最後一個記錄(邏輯順序)。記錄順序:物理順序——與記錄號一致,由輸入順序決定。 邏輯順序——依據(jù)指定的資料項目排序形成。 邏輯順序和物理順序可能一致,可能不一致。*示例1nn=RECNO()&&保存當前指針位置
…&&執(zhí)行命令使記錄指針移動了GOTOnn&&恢復原來指針位置
…
3.記錄指針相對移動命令格式:
SKIP[<expN1>][IN<expN2>|<expC>]
解釋:記錄指針相對當前記錄移動若干個數(shù)據(jù)記錄。
<expN1>為正值,向表尾方向移動;
<expN1>為負值,向表頭方向移動;
<expN1>為零,記錄指針不動;
省略<expN1>,記錄指針向表尾移動一個記錄。*示例2GOTOPDOWHILE.NOT.EOF()...&&處理當前記錄的一組命令
SKIP&&指針下移ENDDO或GOBOTTOMDOWHILE.NOT.BOF()...&&處理當前記錄的一組命令
SKIP-1&&指針上移ENDDO*示例3——程式1CLEARUSEstudentGOTOPDOWHILE.NOT.EOF()DISPLAYSKIPENDDO*程式1執(zhí)行結果4.記錄指針條件移動命令格式:LOCATEFOR<expL1>[WHILE<expL2>] [<scope>][NOOPTIMIZE]解釋:根據(jù)FOR或WHILE子句的條件,在表中按指定的記錄範圍順序查找。若表中有符合條件的記錄,則指針定位在最先遇到的滿足條件的記錄上,此時EOF()函數(shù)返回假值。若無符合條件的記錄,此時當命令中無範圍子句或指定的記錄範圍為ALL時,EOF()函數(shù)返回真值,記錄指針指向檔尾;否則,EOF()函數(shù)返回假值,指針指向指定記錄範圍的最後一條記錄上。CONTINUE命令:限定與LOCATE命令匹配使用,表示LOCATE命令的繼續(xù)。*示例4LOCATEALLFORgender="男"ANDdno="01"?RECNO(),BOF(),EOF()
顯示
1.F..F.CONTINUE?RECNO(),BOF(),EOF()
顯示
2.F..F.CONTINUE?RECNO(),BOF(),EOF()
顯示
4.F..F.CONTINUE...*示例5——程式2CLEARUSEstudentLOCATEALLFORgender="男"ANDdno="01"DOWHILENOTEOF() DISPLAY CONTINUEENDDO*程式2執(zhí)行結果第四節(jié)數(shù)據(jù)記錄的增刪改增加數(shù)據(jù)記錄:追加命令——APPEND命令
插入命令——INSERT-SQL命令刪除數(shù)據(jù)記錄:數(shù)據(jù)記錄邏輯刪除(加刪除標誌)——DELETE命令
數(shù)據(jù)記錄物理刪除——PACK命令
恢復數(shù)據(jù)記錄(取消刪除標誌)——RECALL命令 清空表——ZAP命令修改數(shù)據(jù)記錄:互動式修改數(shù)據(jù)記錄——BROWSE命令
非互動式替換修改數(shù)據(jù)記錄——REPLACE命令1.插入數(shù)據(jù)記錄命令格式:INSERTINTO<dbf_name>[(<fieldname1> [,<fieldname2>,...])]
VALUES(<expr1>[,<expr2>,...])解釋:在表尾插入一條數(shù)據(jù)記錄。示例1:INSERTINTOstudent(sno,name,gender); VALUES("9503045","張麗","女")執(zhí)行INSERT插入操作後顯示結果2.刪除數(shù)據(jù)記錄數(shù)據(jù)記錄的刪除分:
——
邏輯刪除(給記錄加刪除標誌),DELETE
——
物理刪除,PACK邏輯刪除的記錄可以恢復,RECALL物理刪除的記錄不可以恢復ZAP命令執(zhí)行後數(shù)據(jù)記錄將被物理刪除,不可恢復。刪除數(shù)據(jù)記錄命令命令格式:DELETE[<scope>][FOR<expL1>][WHILE<expL2>][IN<expN2>|<expC>][NOOPTIMIZE]PACK[MEMO][DBF]RECALL[<scope>][FOR<expL1>][WHILE<expL2>][IN<expN2>|<expC>][NOOPTIMIZE]ZAP[IN<expN2>|<expC>]說明:不指定範圍或條件,只對當前記錄操作; 如果表的索引檔同時打開,則PACK命令自動重建索引;
ZAP命令等效於執(zhí)行DELETEALL命令後接著執(zhí)行PACK命令。*示例2a.DELETEFORRECNO()=21LIST
RECALLFORRECNO()=21LISTb.DELETEFORRECNO()=21LIST
PACKLIST執(zhí)行DELETE刪除操作後顯示結果a.再執(zhí)行RECALL操作後顯示結果b.再執(zhí)行PACK操作後顯示結果3.修改數(shù)據(jù)記錄命令格式:REPLACE<field1>WITH<expr1>[ADDITIVE][,<field2>WITH<expr2>[ADDITIVE]]…[<scope>][FOR<expL1>][WHILE<expL2>] [IN<expN2>|<expC>][NOOPTIMIZE]解釋:計算——替換; 每個WITH前後的字段和運算式的類型須匹配;運算式中不允許引用未知的變數(shù); 無範圍和條件子句時,默認只替換當前記錄; 適於對可計算的數(shù)據(jù)批量修改。*示例3USEstudentDISPLAYFORsno="9503045"REPLACEmajorWITH"有機化學",classWITH"951";FORsno="9503045"DISPLAYFORsno="9503045"*示例4(Salary.dbf替換修改前)*示例4USEsalaryREPLACEALL實發(fā)工資WITH基本工資+崗位工資; +津貼+獎金-扣款BROWSE*示例4(Salary.dbf替換修改後)第五節(jié)表的其他操作複製檔複製表結構檔操作設置默認存儲路徑備註型、通用型數(shù)據(jù)輸入將表檔數(shù)據(jù)轉換為其他類型的檔表檔與數(shù)組數(shù)據(jù)交換設置邏輯表1.複製檔命令格式:
COPYFILE<filename1>TO<filename2>解釋:複製任何類型的檔。命令格式:
COPYTO<filename>解釋:複製當前打開的表檔。示例1COPYFILEstudent.dbfTOstudent2.dbfCOPYFILEstudent.cdxTOstudent2.cdxCOPYFILEstudent.fptTOstudent2.fpt COPYFILEstudent.*TOstudent2.*COPYTOA:student.dbf2.複製表結構命令格式:COPYSTRUCTURETO<tablename> [FIELDS<fieldlist>] [[WITH]CDX|[WITH]PRODUCTION][DATABASE<dbname[NAME<tablename>]]解釋:形成一個與當前表結構相同的新的空表。
FIELDS子句決定原表中哪些字段被複製到新表;
WITH子句決定與原表對應的索引檔是否被複製。示例2:COPYSTRUCTURETOstudent1; FIELDSsno,name,dno,class,majorWITHCDX3.檔操作檔改名刪除檔列檔目錄顯示文本檔內容命令格式(P56,表2.12):
RENAME<filename1>TO<filename2> ERASE|DELETEFILE<filename> TYPE<filename> [TOPRINTER[PROMPT]|TOFILE<filename>] DIR|DIRECTORY[ON<drive>]
[[LIKE][<path>][<skel>]]
[TOPRINTER[PROMPT]|TOFILE<filename>]4.設置默認存儲路徑初始進入時的默認存儲路徑:
…/vfp98/設置個人默認存儲路徑:命令格式
SETDEFAULTTO<path>示例3
SETDEFAULTTO"c:\programfiles\;microsoftvisualstudio\vfp98\"5.備註型、通用型數(shù)據(jù)輸入進入備註型、通用型數(shù)據(jù)編輯窗口:按<Ctrl+Home>或<Ctrl+PgUp>或<Ctrl+PgDn>鍵或雙擊相應資料項目在通用型資料項目上插入多媒體數(shù)據(jù):編輯—插入對象新建—選對象類型由檔創(chuàng)建—輸入對象檔案名保存輸入數(shù)據(jù):按<Ctrl+W>鍵6.將表檔數(shù)據(jù)轉換為其他類型的檔命令格式:COPYTO<filename>
[DATABASE<dbname>[NAME<longtablename>]]
[FIELDS<fieldlist>|FIELDSLIKE<skel>
|FIELDSEXCEPT<skel>][NOOPTIMIZE][Scope][FOR<expL1>][WHILE<expL2>]
[[WITH]CDX]|[[WITH]PRODUCTION]
[[TYPE][FOXPLUS|FOX2X|DIF|MOD
|SDF|SYLK|WK1|WKS|WR1|WRK|CVS|XLS|XL5
|DELIMITED[WITHDelimiter|WITHBLANK|WITHTAB|WITHCHARACTER<delimiter>]]]
[AS<codepage>]解釋:將表檔中的數(shù)據(jù)複製到指定類型的檔中。 此命令與APPENDFROM命令對應。示例4:
COPYTOstud1WITHCDX
形成stud1.dbf和stud1.cdx檔
COPYTOstud2FIELDSsno,name,major,class
形成stud2.dbf檔
COPYTOstud3DELIMITEDFORdno="02“
形成stud3.txt檔7.表檔數(shù)據(jù)與數(shù)組數(shù)據(jù)轉換-1命令格式:單個記錄轉換表中記錄的數(shù)據(jù)轉換為數(shù)組或記憶體變數(shù)SCATTER[FIELDS<fieldlist>|FIELDS LIKE<skel>|FIELDSEXCEPT<skel>][MEMO]
TO<arrayname>[BLANK]|MEMVAR[BLANK]
|NAME<objectname>[BLANK]數(shù)組或記憶體變數(shù)數(shù)據(jù)轉換為表記錄GATHERFROM<arrayname>|MEMVAR |NAME<objectname>
[FIELDS<fieldlList>|FIELDSLIKE<skel>|FIELDSEXCEPT<skel>][MEMO]7.表檔數(shù)據(jù)與數(shù)組數(shù)據(jù)轉換-2命令格式:多個記錄轉換表中記錄的數(shù)據(jù)轉換為數(shù)組或記憶體變數(shù)COPYTOARRAY<arrayname>[FIELDS<fieldlist>
|FIELDSLIKE<skel>|FIELDSEXCEPT<skel>]
[<scope>][FOR<expL1>][WHILE<expL2>][NOOPTIMIZE]數(shù)組或記憶體變數(shù)數(shù)據(jù)轉換為表記錄APPENDFROMARRAY<arrayname>[FOR<expL>]
[FIELDS<fieldlist>|FIELDSLIKE<skel>
|FIELDSEXCEPT<skel>]8.設置邏輯表邏輯表的實現(xiàn):設置篩檢程式——選擇記錄,SETFILTER命令設置字段表——選擇字段,SETFIELDS命令命令格式:
SETFILTERTO[<expL>] SETFIELDSTO[<fieldlist>|ALL[LIKE<skel>|EXCEPT<skel>]] SETFIELDSON|OFF解釋:SETFIELDSON|OFF命令決定字段表是否有效,ON為有效。SETFIELDS命令為隱式增加方式;不帶參數(shù)的SETFILTERTO命令為取消篩檢程式的設置。不帶參數(shù)的SETFIELDSTO命令將封鎖對任何字段的操作。SETFIELDSTOALL命令為恢復對所有字段的操作。*示例5USEstudentSETFILTERTOdno="01"SETFIELDSTOsno,name,dno,majorSETFIELDSTOclassLIST示例6SETFIELDSTOLISTSETFIELDSTOALLEXCEPTA*,B*LISTSETFIELDSOFFLIST第三章索引與統(tǒng)計排序索引索引與查詢數(shù)據(jù)工作期窗口索引的應用——表的關聯(lián)統(tǒng)計運算SQL查詢資料庫與資料庫視圖第一節(jié)排序與索引關於數(shù)據(jù)記錄的順序:物理順序:在數(shù)據(jù)記錄輸入時,依據(jù)記錄輸入的先後形成的順序。記錄的物理順序與數(shù)據(jù)記錄的記錄號一致。
邏輯順序:依據(jù)指定的資料項目對表中數(shù)據(jù)記錄排列順序。 昇冪、降序關鍵字第一節(jié)排序與索引排序和索引是依據(jù)指定的資料項目對表中數(shù)據(jù)記錄重新排列順序的兩種不同方式。排序:用新生成的表檔保存排序結果,原數(shù)據(jù)檔不變,新檔按新的物理順序存儲數(shù)據(jù)記錄。索引:用索引檔(CDX/IDX)保存排序結果,原表檔不變,借助索引檔表中數(shù)據(jù)記錄按所形成的邏輯順序被引用。索引檔中的數(shù)據(jù)是不可顯示的,並且不可以單獨使用,需與表檔同時使用。一個表檔可以對應有多個索引。1.排序命令格式:SORTTO<tablename>
ON<fieldname1>[/A|/D][/C]
[,<fieldname2>[/A|/D][/C]...]
[ASCENDING|DESCENDING]
[<scope>][FOR<expL1][WHILE<expL2>]
[FIELDS<fieldlist>
|FIELDSLIKE<skel>|FIELDSEXCEPT<skel>]
[NOOPTIMIZE]解釋:<fieldname1>——第一排序關鍵字
<fieldname2>——第二排序關鍵字
A——昇冪,D——降序,C——區(qū)分字母大小寫*示例USEstudentSORTTOstud4ONdno/A,class/A
FIELDSsno,name,dno,major,classUSEstud4DISPLAYALL2.索引與索引檔索引是按照索引運算式使表中的記錄有序排列的一種技術,它是借助索引檔實現(xiàn)的。使用資料庫檔時,如果將相關的索引檔同時打開,則資料庫的記錄即按索引運算式值的邏輯順序顯示和操作(表中記錄的物理順序並沒有改變),而且數(shù)據(jù)變化時,索引檔自動按索引運算式值調整。優(yōu)點:減少數(shù)據(jù)冗餘、動態(tài)反應數(shù)據(jù)的邏輯順序、數(shù)據(jù)記錄快速檢索、建立表間的關聯(lián)、支持Rushmore技術、RQBE查詢和SQL查詢等高效的資料庫查詢。3.索引類型有以下幾種索引:普通索引:允許關鍵字重複;唯一索引:允許關鍵字重複,但輸出時無重複值;候選索引:不允許關鍵字重複,輸入重複值時系統(tǒng)將禁止;主索引:不允許關鍵字重複,輸入重複值時系統(tǒng)將禁止?!獌H對數(shù)據(jù)庫表有效P71,表3.14.索引檔的類型有以下幾種索引檔:一般索引檔——單條目索引,擴展名為IDX複合索引檔——多條目索引,擴展名為CDX *結構複合索引檔,與表檔同名壓縮索引——IDX,CDX非壓縮索引——IDX5.建立索引命令格式:INDEXON<expr>TO<IDXfilename> |TAG<tagname>[OF<CDXfilename>]
[FOR<expL>][COMPACT]
[ASCENDING|DESCENDING]
[UNIQUE|CANDIDATE][ADDITIVE]解釋:當索引運算式<expr>中出現(xiàn)不同類型數(shù)據(jù)時,需歸一成字元型的。 多條目的複合索引檔,需對檔中的每個索引條目命名,稱為索引標識(TAG)。*命令解析INDEXON<expr>TO<IDXfilename> [FOR<expL>][COMPACT]
[ASCENDING|DESCENDING]
[UNIQUE|CANDIDATE][ADDITIVE]INDEXON<expr>TAG<tagname>OF<CDXfilename>]
[FOR<expL>]
[ASCENDING|DESCENDING]
[UNIQUE|CANDIDATE][ADDITIVE]INDEXON<expr>TAG<tagname>
[FOR<expL>]
[ASCENDING|DESCENDING]
[UNIQUE|CANDIDATE][ADDITIVE]*示例USEstudentINDEXONsnoTAGsnoOFstudcdxINDEXONdno+classTAGdnoclassOFstudcdxDISPLAYALLINDEXONnameTAGnameOFstudcdxDISPLAYALLINDEXONsnoTOstudidxADDITIVESETORDERTOTAGsnoDISPLAYSTATUS數(shù)據(jù)類型轉換函數(shù)函數(shù)格式:STR(<expN1>[,<expN2>[,<expN3>]])功能:將數(shù)值型變數(shù)轉換成字元型變數(shù)。說明:<expN1>被轉換變數(shù),<expN2>長度,<expN3>小數(shù)位。相反函數(shù)格式:VAL(<expC>)函數(shù)格式:DTOS(<expD>)功能:將日期型變數(shù)轉換成字元型變數(shù),轉換格式為yyyymmdd。函數(shù)格式:DTOC(<expD>)功能:將日期型變數(shù)轉換成字元型變數(shù),轉換格式為mm/dd/yy。相反函數(shù)格式:CTOD(<expC>)*示例a1=123.4567a2="210.32"a3=DATE()a4="04/10/16"b1=STR(a1,6,2)b2=VAL(a2)b3=DTOS(a3)b4=DTOC(a3)b5=CTOD(a4)
DISPLAYMEMORYLIKE*6.用表設計器建立索引方法一: 在字段選項卡的索引列組合框中設定。方法二: 使用索引選項卡設定。表設計器建立的為結構複合索引檔。7.打開索引結構複合索引檔隨表檔自動打開;索引檔剛建立時是打開的;用命令打開。
表檔已打開,之後打開索引檔:
SETINDEXTO命令
表檔和索引檔同時打開:
USE…INDEX…
命令7.打開索引命令格式:SETINDEXTO[<indexfilelist>|?]
[ORDER<expN>|<IDXfilename>
|[TAG]<tagname>[OF<CDXfilename>][ASCENDING|DESCENDING]][ADDITIVE]USE[[<dbname>!]<tablename>|<SQLviewname>|?]
[IN<expN>|<expC>][ONLINE][ADMIN][AGAIN]
[NOREQUERY[nDataSessionNumber]][NODATA]
[INDEX[<indexfilelist>|?
[ORDER<expN>|<IDXfilename>
|[TAG]<tagname>[OF<CDXfilename>][ASCENDING|DESCENDING]]]]
[ALIAS<alias>][EXCLUSIVE][SHARED][NOUPDATE]8.關閉索引關閉表檔時,索引檔隨之關閉;用命令關閉;結構複合索引檔只有在表檔關閉時才自動隨之關閉,下述命令不能關閉結構複合索引檔。命令格式:
SETINDEXTO
只關閉當前非結構複合索引檔。
CLOSEINDEXES
關閉所有非結構複合索引檔。9.指定主索引標識主索引標識:當前起作用的索引標識,決定當前表中記錄的邏輯順序。方法:在打開索引檔時,用ORDER子句聲明主索引標識;用SETORDERTO命令來指定主索引標識。9.指定主索引標識命令格式:SETORDERTO[<expN1>|<idxfile>| [TAG]<tagname>[OF<cdxfile>] [IN<expN2>|<expC>] [ASCENDING|DESCENDING]]說明:IDX索引:用IDX索引檔案名CDX索引:用索引標識(TAG)物理順序:數(shù)值零,即ORDER0關於索引標識的組織順序索引標識的組織順序是(從1開始編號):打開的IDX索引檔;結構複合索引檔中的索引標識(TAG);打開的非結構複合索引檔中的索引標識(TAG)。*在複合索引檔中,索引標識按創(chuàng)建先後順序依次編號。*示例USEstudentORDERTAGsnoSETINDEXTOstudcdx
ORDERTAGnameSETORDERTOTAGsnoSETORDERTOTAGsnoOFstudcdxSETORDERTO010.刪除索引刪除索引檔,此時索引檔需關閉:
用ERASE命令。刪除複合索引檔中的索引標識: 命令格式:
DELETETAG<tagname1>[OF<CDXfilename1>]
<tagname2>[OF<CDXfilename2>]...或
DELETETAGALL[OF<CDXfilename>]解釋: 當用ALL刪除複合索引檔的所有索引標識,這時索引檔也被刪除了。11.索引更新自動更新 在索引檔打開時用INDEX命令重新建立索引和索引檔重新索引 命令格式:
REINDEX[COMPACT]解釋: 對表檔中的數(shù)據(jù)重新索引,調整索引順序。第二節(jié)索引與查詢查詢方式:順序查詢
LOCATE/CONTINUE命令索引查詢
SEEK命令SQL查詢
SELECT-FROM-WHERE命令*SEEK命令命令格式:SEEK<expr>[ORDER<expN>|<IDXfilename>
|[TAG]<tagname>[OF<CDXfilename>][ASCENDING|DESCENDING]] [IN<expN2>|<expC>]解釋:<expr>——查詢運算式,可以是字段,由字段構成的運算式,應與建立索引時的索引運算式對應;ORDER——指定索引檢索的主索引標識;ASCENDING|DESCENDING——指定按昇冪或降序檢索。*FOUND()函數(shù)函數(shù)格式:FOUND([<expN2>|<expC>])功能:返回SEEK命令的查詢結果。返回值類型:L解釋:查詢到滿足條件的數(shù)據(jù)記錄,返回邏輯真值;未查詢到滿足條件的數(shù)據(jù)記錄,返回邏輯假值;3.示例USEstudentINDEXstudcdxSETORDERTOsnoSEEK"9502003"?FOUND() &&.T.(8)SETORDERTOTAGdnoclassOFstudcdxSEEK"02953"?FOUND() &&.T.(16)SETORDERTOTAGnameOFstudcdxSEEK"田新"?FOUND() &&.F.第三節(jié)數(shù)據(jù)工作期
數(shù)據(jù)工作期是一個用來設置數(shù)據(jù)工作環(huán)境的交互操作窗口,它包括:
-打開的表
-打開的索引
-索引順序
-表間關聯(lián)
-一對多聯(lián)繫 可以用視圖檔(*.VUE)保存所設置的數(shù)據(jù)工作環(huán)境。1.工作區(qū)(1)VFP允許同時使用多個表。對於每個正在使用的表,系統(tǒng)提供了各自的工作區(qū)。一個工作區(qū)上同時只能打開一個表,後打開的表檔將使該工作區(qū)上先打開的表檔自動關閉。
VFP6.0提供了32767個工作區(qū)。工作區(qū)標識:
*數(shù)值序號1~32767*前10個工作區(qū)還可用字母A~J*表名或別名(alias)。若在工作區(qū)中打開了表,則打開的表名或別名亦可作為工作區(qū)的標識。1.工作區(qū)(2)
最初進入FoxPro時,系統(tǒng)默認為第一工作區(qū);可用SELECT命令選擇工作區(qū);最近選擇的工作區(qū)為當前工作區(qū)。命令格式:
SELECT<expN>|<expC>解釋:<expN>——工作區(qū)編號。當為零值時,即SELECT0,系統(tǒng)將自動從當前未用的工作區(qū)中選取區(qū)號最低者為當前工作區(qū)。<expC>——工作區(qū)別名,即檔案名。1.工作區(qū)(3)VFP總是默認為對當前工作區(qū)打開的表操作,引用非當前工作區(qū)的字段變數(shù)時必須在其字段名前加工作區(qū)標識,即:
<alias>.<field>
或<alias>-><field>
VFP的命令或函數(shù)中的"IN<expN>|<expC>"選項,用來限制其操作的工作區(qū),可使命令在不改變當前工作區(qū)的情況下,對由工作區(qū)號或工作區(qū)別名指定的非當前工作區(qū)中打開的表進行操作。*示例SELECT0&&選擇工作區(qū)USEdeptORDERdno&&打開表dept及其索引SELECT0&&選擇工作區(qū)USEstudentORDERsno
&&打開表student及其索引SETRELATIONTOdnoINTOdept &&建立表間關聯(lián)LISTsno,name,dept.dname,dept.tele,major
&&顯示當前和非當前工作區(qū)指定的字段USEINdept
&&在第二工作區(qū)關閉第一工作區(qū)的表檔2.數(shù)據(jù)工作期窗口打開數(shù)據(jù)工作期窗口 命令格式:
SET SETVIEWON
菜單方式: 窗口(W)—數(shù)據(jù)工作期(D)關閉數(shù)據(jù)工作期窗口 命令格式:
SETVIEWOFF
菜單方式:
檔(F)—關閉(O)3.視圖檔建立視圖檔 命令格式:
CREATEVIEW<filename>
菜單方式:
窗口(W)—數(shù)據(jù)工作期(D)打開視圖檔 命令格式:
SETVIEWTO<viewfile>|?
菜單方式: 檔(F)—打開(O)—視圖(*.VUE)4.表間關聯(lián)關聯(lián):令不同工作區(qū)的記錄指針建立一種臨時的聯(lián)動關係,使一個表記錄指針移動時另一個表的記錄指針隨之移動。關聯(lián)的條件:兩個表:一個在當前工作區(qū)打開,稱為父表;另一個稱為子表,在非當前工作區(qū)打開,指針將隨父表聯(lián)動;兩個表有相同的字段運算式;子表的字段運算式上要建立索引,並打開。關聯(lián)關係:多對一:父表有多條記錄對應子表中的一條記錄;一對多:父表的一條記錄對應子表中的多條記錄。表間關聯(lián)示意圖DnoDnameDlocDmgrD-01D-02D-03D-04D-05EnoEnameTitleSalaryDnoE-001D-01E-002D-01E-003D-03E-004D-02E-005D-02E-006D-03E-007NullDepartmentTableEmployeeTable表間關聯(lián)--示例*在數(shù)據(jù)工作期窗口建立關聯(lián)步驟:打開數(shù)據(jù)工作期窗口;按《打開》按鈕分別打開父表和子表;在“別名”列表框中選定父表,按《關係》按鈕;在“別名”列表框中選定子表; 在“設置索引順序”窗口中確定子表的主索引標識;
在“運算式生成器”窗口中指定父表的字段運算式;如建立一對多聯(lián)繫,按《一對多》按鈕;流覽數(shù)據(jù)。在數(shù)據(jù)工作期窗口打開表選定父表確定子表的主索引標識指定父表的字段運算式流覽結果BROWSEFIELDS;
sno,,cno,course.subject,score
創(chuàng)建一對多關係*用命令建立關聯(lián)命令格式及解釋:SETRELATIONTO[<expr1>INTO<expN1>|<expC1> [,<expr2>INTO<expN2>|<expC2>…] [ADDITIVE]] <expr>為關聯(lián)運算式,INTO子句指定子表,ADDITIVE子句將保持已存在的關聯(lián)。
SETSKIPTO[<alias1>[,<alias2>]…]
設置一對多關係。SETRELATIONTO
取消父表和所有其他子表的關聯(lián)。SETRELATIONOFFINTO<expN>|<expC>
只取消父表和指定子表的關聯(lián)。*示例CLEARCLEARALLSETTALKOFFSELECT0USEstudentORDERTAGsnoSELECT0USEcourseORDERTAGcnoSELECT0USEscoreORDERTAGscnoSETRELATIONTOsnoINTOstudent,cnoINTOcourseBROWSEFIELDS;
sno,,cno,course.subject,scoreCLOSEDATABASESRETURN第四節(jié)統(tǒng)計運算計數(shù)統(tǒng)計——COUNT命令求累加和——SUM命令求平均值——AVERAGE命令分類匯總統(tǒng)計——TOTAL命令綜合統(tǒng)計——CALCULATE命令1.計數(shù)統(tǒng)計命令格式:COUNT[Scope][FOR<expL1>][
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國遠程溫度控制器數(shù)據(jù)監(jiān)測研究報告
- 綜合認知托班課程設計
- 2025至2030年中國發(fā)動機變通器解剖模型數(shù)據(jù)監(jiān)測研究報告
- 2024年英制兩用扳手項目可行性研究報告
- 2024年支架排牙項目可行性研究報告
- 鋼琴節(jié)拍器設計課程設計
- 西華大學eda課程設計
- 衣服搭配直播課程設計
- 聾校課程設計教案
- 蘇教版美術單元課程設計
- 2022年海南省公務員錄用考試《申論》真題試卷及答案
- 技術成果轉移案例分析報告
- 部編版二年級下冊道德與法治第二單元《我們好好玩》全部教案
- 建筑設計行業(yè)項目商業(yè)計劃書
- 幼兒園利劍護蕾專項行動工作方案總結與展望
- 骶尾部藏毛疾病診治中國專家共識(2023版)
- 合同信息管理方案模板范文
- 【高新技術企業(yè)所得稅稅務籌劃探析案例:以科大訊飛為例13000字(論文)】
- 幽門螺旋桿菌
- 大足石刻十八講
- 小學音樂-鈴兒響叮當教學設計學情分析教材分析課后反思
評論
0/150
提交評論