Visual FoxPro程序設計課件VFP第2章_第1頁
Visual FoxPro程序設計課件VFP第2章_第2頁
Visual FoxPro程序設計課件VFP第2章_第3頁
Visual FoxPro程序設計課件VFP第2章_第4頁
Visual FoxPro程序設計課件VFP第2章_第5頁
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2.1數(shù)據(jù)庫與表的基本概念

2.2表的建立與修改2.3表的基本操作

2.4排序與索引

第2章VisualFoxPro表與數(shù)據(jù)庫操作

2.8數(shù)據(jù)完整性

2.7多表操作2.6數(shù)據(jù)庫的操作2.5查詢與統(tǒng)計2.1數(shù)據(jù)庫與表的基本概念1.數(shù)據(jù)庫:數(shù)據(jù)庫是一個容器,是許多相關的數(shù)據(jù)庫表及其關系的集合。數(shù)據(jù)庫文件的擴展名為.dbc,備注文件的擴展名為.dct,索引文件擴展名.dcx。2.表:分為數(shù)據(jù)庫表和自由表兩種。數(shù)據(jù)庫表是從屬于某個數(shù)據(jù)庫的表。自由表指的是不屬于任何數(shù)據(jù)庫的表。數(shù)據(jù)庫表不僅具有自由表的所有特性,還具有數(shù)據(jù)庫管理的其他特性。表的組成表文件由兩部分組成:“表結構”和“記錄數(shù)據(jù)”。二維表的表的每一行數(shù)據(jù)稱為一條記錄或者元組,每一列稱為字段或者屬性。創(chuàng)建表要先定義表結構,然后輸入具體的記錄數(shù)據(jù)。2.1數(shù)據(jù)庫與表的基本概念

2.2表的建立與修改2.3表的基本操作

2.4排序與索引

2.8數(shù)據(jù)完整性

2.7多表操作2.6數(shù)據(jù)庫的操作2.5查詢與統(tǒng)計2.2表的建立與修改本節(jié)主要包括以下內容:表結構表的創(chuàng)建表的數(shù)據(jù)輸入表結構的修改2.2.1表結構

表結構包括字段名、類型、寬度、小數(shù)位數(shù)、索引和NULL等屬性。1.字段名

字段名用來標識字段,它是一個以字母或漢字開頭,由字母、漢字、數(shù)字、下劃線組成,如:XH、學號、NAME、姓名等。自由表中字段名長度不超過10個字符,數(shù)據(jù)庫表中字段名最多可達128個字符。2.字段類型和寬度

字段類型決定了存儲在字段中的值的數(shù)據(jù)類型及取值范圍。字段寬度決定允許存儲在該字段中的數(shù)據(jù)的最大字節(jié)數(shù)。數(shù)據(jù)類型說

明字符型C字母、漢字、數(shù)字型文本貨幣型Y貨幣單位

價格數(shù)值型N整數(shù)或小數(shù)浮點型F同“數(shù)值型”日期型D年,月,日日期時間型T年,月,日,時,分,秒雙精度型B雙精度數(shù)值整型I不帶小數(shù)點的數(shù)值邏輯型L真或假備注型M不定長的字母數(shù)字文本通用型GOLE(對象鏈接與嵌入)字符型(二進制)C同前述“字符型”相同,但是當代碼頁更改時字符值不變備注型(二進制)M同前述“備注型”相同,但是當代碼頁更改時備注不變3.小數(shù)位數(shù)小數(shù)位確定該字段可以取小數(shù)位的個數(shù)。只有數(shù)值型、雙精度和浮點型字段可以規(guī)定小數(shù)位。4.索引指定是否以該字段為關鍵字建立索引(升序或降序),索引主要用于記錄排序,也使查找記錄變得更加快速方便。5.NULL指定該字段是否可接收NULL值(空值)。NULL值是指不確定的值。NULL值與0、空串及空格不同。它作為一個值.NULL.可以給變量賦值,在條件表達式中如遇NULL值,該表達式為假(.F.)。在交互方式中,以Ctrl+0來向一個允許NULL的值的字段中輸入NULL值。例如,表示價格的一個字段值為NULL時,表示沒有定價;而為數(shù)值0可能表示免費。2.2.2表的創(chuàng)建1.定義表中的數(shù)據(jù)類型定義表中的數(shù)據(jù)類型(續(xù))1)定義二維表名設計表時,首先要給表取名。如:學生表表文件名:XS.DBF或學生.DBF2)設計表結構定義表中的字段個數(shù)及其屬性(字段名、字段類型、字段寬度、小數(shù)位數(shù)、索引(升序、降序)、空值支持(NULL)〕。表設計器用來定義表的結構,操作方法有兩種:菜單法和命令法。1)使用菜單打開表設計器‘文件’菜單--選擇‘新建’--選擇‘表’--單擊‘新建文件’按鈕--輸入表名--單擊‘保存’按鈕。在表設計器窗口,逐一定義字段的屬性。完成后單擊“確定”按鈕,彈出“現(xiàn)在輸入數(shù)據(jù)記錄嗎?”提示信息框,選擇‘是’,可立即向表中輸入數(shù)據(jù),否則退出表結構的建立。輸入完畢,也可按Ctrl+W或Ctrl+End保存,并關閉該窗口。2.利用表設計器創(chuàng)建自由表2)使用命令打開表設計器格式:CREATE[<表文件名>]注:在命令窗口輸入命令后,將進入表設計器窗口,其它操作同上。此命令僅適用于新建表!2.2.3表的數(shù)據(jù)輸入1.向表中加入記錄1)立即錄入數(shù)據(jù)定義表結構中所有字段的屬性后,按‘確定’按鈕,彈出提示信息對話框,選擇‘是’,可立即進入記錄編輯窗口,進行表中數(shù)據(jù)的輸入。輸入完畢,按Ctrl+W或Ctrl+End保存,并關閉該窗口。空值NULL的輸入:Ctrl+0(0為打字鍵區(qū)數(shù)字0)備注型數(shù)據(jù)的輸入打開欲輸入數(shù)據(jù)的表,進入表‘編輯’窗口或‘瀏覽’窗口,將鼠標指針移到備注型字段下雙擊,即可進入備注字段的編輯窗口,用戶可在此窗口輸入或修改備注型數(shù)據(jù)。通用型數(shù)據(jù)的輸入通用型字段數(shù)據(jù)多數(shù)是用于存儲OLE對象,如:圖像、聲音、電子表格和文字處理文檔等。

輸入方法:打開表文件--啟動表‘編輯’或‘瀏覽’窗口--將鼠標指針移到通用型字段下雙擊,即可進入該字段的數(shù)據(jù)編輯窗口。再打開‘編輯’菜單,選擇‘插入對象’,在它的窗口中,選擇插入對象類型。彈出“插入對象”對話框。選擇“新建”或“由文件創(chuàng)建”“新建”選擇“對象類型”由文件創(chuàng)建時輸入對象文件名2)追加錄入數(shù)據(jù)菜單方式:打開瀏覽窗口:打開要輸入數(shù)據(jù)的表–BROWSE

或打開表文件--單擊‘顯示’菜單--選擇‘瀏覽’或‘編輯’。進入‘瀏覽’或‘編輯’窗口,再選擇‘顯示’菜單下的‘追加方式’向表中輸入記錄或修改表中的記錄?;蛟凇氨怼辈藛沃羞x擇“追加新記錄”?;虬碈trl+Y命令方式:APPEND[BLANK]2.2.4表結構的修改利用表設計器修改表結構步驟:(1)打開一個要修改其結構的表:‘文件’—‘打開’—在打開對話框中選擇要打開的表,再單擊‘確定’按鈕。(2)打開“表設計器”:單擊‘顯示’菜單,選擇‘表設計器’(3)修改表結構:同創(chuàng)建表方法,修改字段屬性,也可以通過‘插入’,‘刪除’按鈕,增加或刪除字段來對表結構進行修改。(4)保存:Ctrl+W命令格式:MODIFYSTRUCTURE2.1數(shù)據(jù)庫與表的基本概念

2.2表的建立與修改2.3表的基本操作

2.4排序與索引

2.8數(shù)據(jù)完整性

2.7多表操作2.6數(shù)據(jù)庫的操作2.5查詢與統(tǒng)計2.3表的基本操作本小節(jié)主要包括:表的打開與關閉記錄的顯示記錄的定位記錄的修改記錄的插入記錄的刪除與恢復表與表結構的復制2.3.1表的打開與關閉1.表的打開:方法1:“文件”—打開—選擇打開文件類型為“表”—選擇需打開的表—單擊“確定”方法2:單擊工具欄“打開”按鈕,以后同上。方法3:命令方式

USE表文件名

[IN工作區(qū)][AGAIN][ALIAS別名][NOUPDATE]2.表的關閉方法1:使用“數(shù)據(jù)工作期”窗口“關閉”按鈕。方法2:命令方式USECLOSEALLCLOSEDATABASES[ALL]CLOSETABLES[ALL]CLOSEALLCLEARALL2.3.2記錄的顯示1.顯示記錄命令:LIST|DISPLAY[范圍][FIELDS<字段表>][FOR<條件>][OFF]2.用瀏覽方式顯示和修改數(shù)據(jù)啟動‘瀏覽’方式窗口:

1)菜單法打開表文件—單擊“顯示”菜單—選擇‘瀏覽’。

2)命令方式打開表‘瀏覽’窗口:BROWSE(操作演示略)注:記錄的范圍有:

ALL全部記錄

NEXTN包括當前記錄在內的N個記錄。

RECORDN指定第N個記錄

REST從當前記錄到最后一個記錄例2.1假若數(shù)據(jù)庫XS.DBF中有30條記錄1、顯示所有的記錄。USEXSLIST或dispall或LISTALL2、顯示所有男生

LIST或LISTALL或DISPALLFOR性別=‘男’3、顯示所有89年以后出生的人LISTFOR出生日期>={01/01/89}4、顯示是黨員的學生LISTALLFOR是否黨員=.T.

5、顯示是黨員的男生LISTALLFOR是否黨員=.T.AND性別=‘男’6、分屏顯示所有人的學號,姓名和是否黨員DISPALLFIELDS學號,姓名,是否黨員7.顯示從5號記錄開始的連續(xù)的5條記錄

go5

&&指針定位至5號記錄

listnext5

8.顯示第7號記錄

listrecord7

listrest&&顯示從7號記錄開始至最后的記錄2.3.3記錄的定位

在每個表文件中都有一個記錄指針,用來指示表文件的當前記錄。表文件中的每個記錄均有一個序號,這個序號叫作記錄號。表剛打開時,記錄指針指向1號記錄。所謂記錄定位,就是移動記錄指針,使它指向所需要的記錄。記錄的定位(續(xù))當前記錄:記錄指針所指向的那一個記錄,當表打開時,當前記錄為第一個記錄。數(shù)據(jù)表中記錄的定位:即確定哪一個記錄為當前記錄。定位方法:打開‘表’菜單,選擇‘轉到記錄’記錄的定位(續(xù))……頭(bof)尾(eof)記錄號1123451011第一條記錄最后一條記錄topbottom記錄定位的命令方式記錄定位:(1)絕對定位

GOTOP|GORECORDN|GOBOTTOM指針分別指向:首記錄第N條記錄末記錄

(2)相對定位

SKIP[<±N>]指針向前或向后移動N條記錄。注:SKIP表示向后移動一條記錄。例2.2記錄定位題假如成績表中有30條記錄USECJSKIP4DISPGO7SKIP-2DISP LISTNEXT4(操作) 文件頭(包含表結構等信息)首記錄(TOP)..第n條記錄(RECORDn)..末記錄(BOTTOM)文件尾定位到首記錄:GOTOP定位到第N號記錄:GOn定位到末記錄:GOBOTTOM定位到文件首:SKIP-1定位到文件尾:SKIP記錄開始標志記錄結束標志例2.3:若XS.DBF中有10條記錄。

USEXSDA

?RECNO()---返回值:1---返回值:.F.---返回值:.T.---返回值:1---返回值:.T.---返回值:1---返回值:.F.---返回值:.T.---返回值:11?BOF()?RECNO()SKIP–100?BOF()?RECNO()GOBOTTOM?EOF()SKIP100?EOF()?RECNO()SKIP–1?BOF()2.3.4記錄的修改1.瀏覽修改 對記錄進行修改,可用菜單方式或BROWSE命令打開“瀏覽”窗口,在“瀏覽”窗口中可進行全屏幕編輯修改表記錄。修改完畢,按Ctrl+W鍵存盤退出或單擊關閉按鈕關閉瀏覽窗口并存盤。2.替換修改替換修改用命令方式:REPLACE<字段名1>WITH<表達式1>[ADDITIVE][,<字段名2>WITH<表達式2>[ADDITIVE],…][<范圍>][FOR/WHILE<條件表達式>]功能:該命令可同時對多個字段進行修改,將指定字段的值用其對應的表達式值代替。例2.4對數(shù)據(jù)表CJ.DBF中的每條記錄,課程號=“1002”增加5%,用REPLACE命令完成。操作如下:

USECJREPLACEALL成績WITH成績+0.05*成績FOR課程號=“1002”USE例2.5對數(shù)據(jù)表CJ.DBF中的課程號=“1004”成績不及格的記錄,增加5%,用REPLACE命令完成。REPLACEALL成績WITH成績+0.05*;成績FOR課程號=“1004”2.3.5記錄的插入1命令格式:

INSERT

在當前記錄后面插入記錄

INSERTBLANK

在當前記錄后面插入一空記錄

INSERTBEFORE

在當前記錄之前插入記錄

INSERTBEFOREBLANK

在當前記錄之前插入一空記錄注意:⑴INSERT命令執(zhí)行與當前記錄有關,因此在執(zhí)行前一般應先定位好記錄指針。⑵INSERT命令只能在命令窗口中進行,菜單中沒有相應的命令例2.6在打開的表文件3號記錄之前插入一條記錄

GO3INSERTBEFORE在6號記錄之后插入一條空白記錄

GO6INSERTBLANK2.3.6記錄的刪除與恢復1.邏輯刪除表中的記錄邏輯刪除就是給記錄加一個刪除標記,但記錄還存在。1)作刪除標記方法一:利用Browse窗口i.打開Browse窗口,選定要刪除的記錄.ii.單擊該記錄的刪除標記區(qū)(在第一個字段的開頭與對話框的左邊框之間的區(qū)域),刪除標記變黑色,表示已作上標記。方法二:利用刪除記錄命令----菜單法

i.在‘瀏覽’窗口,打開‘表’菜單,選擇表菜單中的刪除記錄選項,出現(xiàn)刪除對話框。。

ii.可通過選擇作用范圍或通過FOR對話框生成表達式來確定要進行邏輯刪除的部分記錄。對于刪除系統(tǒng)默認范圍為當前記錄。注:記錄的范圍有:

ALL全部記錄

NEXT包括當前記錄在內的N個記錄。

RECORD指定第N個記錄

REST從當前記錄到最后一個記錄例2.7在表文件XS.DBF中對出生日期在1990年之前的記錄作刪除標記。操作步驟如下:i.在文件菜單中選擇打開命令,打開表XS.DBF。ii.在表菜單中選擇刪除命令,打開刪除對話框。iii.單擊作用范圍下拉列表按鈕,確定范圍為All。iv.單擊For按鈕,輸入條件表達式: YEAR(出生年月)<1990。v.單擊刪除按鈕,完成刪除操作。命令格式:DELETE[<范圍>][FOR/WHILE<條件>]功能:該命令對指定范圍內滿足條件的記錄加刪除標記。缺省范圍、條件時對當前記錄。例2.8在XS.DBF中對出生日期在1990年之前的記錄作刪除標記。DELETEFOR出生日期<{^1990/01/01}或DELETEFORYEAR(出生日期)<19902.記錄的恢復恢復記錄的方法:方法一:在Browse窗口中單擊已作過刪除標記記錄的刪除標記區(qū)域,除去刪除標記,使該區(qū)域則由黑變灰,該記錄恢復為正常記錄。方法二:打開‘表’菜單,選擇‘恢復記錄’,在此窗口,可通過選擇作用范圍確定要進行恢復的部分記錄或通過‘表達式生成器’生成條件來恢復記錄。則指定范圍或滿足條件的記錄都被除去了刪除標記。。

恢復記錄命令操作時,仍然用作用范圍復選按鈕,確定操作記錄的范圍,系統(tǒng)默認值為Next1。用For或While按鈕,確定要恢復記錄的條件。方法三:在命令窗口用Recall命令恢復記錄。命令格式:RECALL[<范圍>][FOR/WHILE<條件>]功能:該命令用來取消指定范圍內滿足條件記錄的刪除標記。例2.9恢復表XS.DBF中所有加了刪除標記的記錄。在命令窗口內鍵入命令序列:

USEXSRECALLALLUSE3.記錄的物理刪除物理刪除:就是將作了刪除標記的記錄真正從表文件中刪除。物理刪除記錄前,必須先進行邏輯刪除。方法如下:在表菜單中選擇徹底刪除命令項,屏幕上將出現(xiàn)確認信息窗。單擊是按鈕執(zhí)行刪除操作,單擊否按鈕則取消徹底刪除命令。命令方式為:PACK刪除表中的全部記錄命令格式:ZAP。刪除當前表的全部記錄,使之成為一個只有結構而無任何記錄的空表。2.3.7表與表結構的復制1.復制文件格式:COPYFILE<文件名1>TO<文件名2>作用:將<文件名1>指定的文件復制得<文件名2>文件注:<文件名1>是表文件時,必須關閉.文件名中允許使用通配符*和?.2.復制表結構格式:COPYTO<文件名>[FIELDS<字段名表>]STRUCTURE作用:復制當前打開的表結構,不復制記錄,得一個空表文件.例:(操作演示)復制數(shù)據(jù)文件命令格式:COPYTO<文件名>[<范圍>][FIELDS<字段名表>][FOR/WHILE<條件>][[TYPE]<文件類型>]]功能:把當前表文件中的全部或部分數(shù)據(jù)復制到指定的新文件中。說明:1.必須先打開被復制的表文件。2.FIELDS<字段名表>指明復制得目標文件的結構,缺省時為全部字段。3.缺省<范圍>時指ALL(全部數(shù)據(jù)記錄)。4.復制得新文件若是一個表文件,其擴展名默認為.DBF。原表文件帶有.FPT文件時,復制后自動生成與新表文件同名的.FPT文件。5.TYPE<文件類型>:表示把打開的數(shù)據(jù)表按<文件類型>指定的格式復制成一個文本文件(.TXT)或電子表格文件(.XLS)

。缺省則復制成數(shù)據(jù)表。文件類型:(1)XLS表示創(chuàng)建電子表格文件(.XLS)。(2)文本文件有以下兩種格式:

SDF:標準格式。文本文件的每行數(shù)據(jù)長度固定。

DELIMITED:通用格式。用定界符分隔的數(shù)據(jù)。文本文件的每行數(shù)據(jù)長度不固定。默認定界符為雙引號,分隔符為逗號。例2.10:將數(shù)據(jù)表XS.DBF復制到新的表文件XS2.DBF中,XS2.DBF中包括原數(shù)據(jù)表的全部內容。

操作:USEXSCOPYTOXS2USEXS2LIST例2.11:將XS.DBF生成一個名為EX02的文本文件,并顯示該文件內容。COPYTOE:\JXGLXT\EX02SDFTYPEE:\JXGLXT\EX02.TXTUSEXSCOPYTOXS3FIEL姓名,出生年月,性別FORYEAR(出生年月)<1990.AND.性別=“男”

USEXS3LIST例2.12:將數(shù)據(jù)表XS.DBF中出生日期在1990年以前的所有“男”生的記錄,復制到新的表文件XS3.DBF中,XS3.DBF中包括有姓名、出生年月、性別三個字段。

例2.13:將數(shù)據(jù)表XS.DBF中第8號記錄到13號記錄復制到數(shù)據(jù)表XS4.DBF中。USEXSGO8COPYTOXS4NEXT6USEXS4LIST將記錄指針定位到8號記錄從第8號復制到第13號記錄2.1數(shù)據(jù)庫與表的基本概念

2.2表的建立與修改2.3表的基本操作

2.4排序與索引

2.8數(shù)據(jù)完整性

2.7多表操作2.6數(shù)據(jù)庫的操作2.5查詢與統(tǒng)計2.4排序與索引本小節(jié)主要包括:排序的基本概念索引的基本概念索引類型索引的建立索引的使用2.4.1排序的基本概念1)排序 “排序”是將已經輸入的記錄按字段的值的大小升序或降序重新排列。排序后產生一個新的表文件,原表文件保持不變。這個新的表文件內容可同原來的表文件完全相同,也可以是原來表文件中的一部分。用于排序的字段類型可以是字符型、數(shù)值型、貨幣型、日期型和日期時間型,但不能是邏輯型、備注型和通用型。數(shù)據(jù)從小到大排列稱為“升序”,從大到小排列稱為“降序”。

2.4.2排序命令方式:SORTTO<表文件名>ON<字段名1>[/A/D][/C][,<字段名2>[/A/D][/C]…][范圍][FOR|WHILE<條件>][FIELDS<字段名表>]①排序關鍵字<字段名1>、<字段名2>等,不能為備注型和通用型字段。②/A和/D分別表示升序和降序(二者互斥),/C表示不區(qū)分字母的大小寫。對于數(shù)值型數(shù)據(jù)按值的大小進行排列,字符型數(shù)據(jù)按ASCII碼值的大小排列,漢字按拼音字母的ASCII碼值的大小排序,日期型數(shù)據(jù)按日期值排序。邏輯型數(shù)據(jù)排序時.T.>.F.③排序后的記錄存放在由<表文件名>指定的表中,若省略FIELDS<字段名表>,則產生的排序表的結構與當前表完全相同。排序缺點是:當原始的表文件被修改后,必須重新排序;排序時產生的新表文件,將占用磁盤空間;當表較大時,排序處理費時。④若命令中包含范圍和FOR/WHILE短語,對指定范圍內符合條件的記錄進行排序,缺省為All。XSZY例2.15對XS.DBF中的性別為“女”的記錄按姓名字段升序進行排列,產生一個名為XM.DBF的表文件。USEXSSORTON姓名TOXMFOR性別=‘女’USEXMLISTUSEXSSORTON專業(yè)/DTOZYJXUSEZYJXLIST若要查看排序后的結果,則進行下面的操作.思考:將XS.DBF按班級字段進行降序排序,產生一個名為XSBJ.DBF,其中包含學號,姓名,性別,班級字段。請自行完成。例2.14對XS.DBF中的記錄按專業(yè)字段進行降序排列,產生一個名為ZYJX.DBF的表文件。命令方式:例題例2.16:將學生表文件XS.DBF第3條到第8條記錄按姓名排序,生成表XSXM.DBF。USEXSGO3SORTTOXSXMON姓名NEXT6USEXSXMBROWSE例2.17:對學生表XS.DBF按專業(yè)升序排列,專業(yè)相同的按姓名降序排列,生成表文件XSZY.DBF。USEXSSORTTOXSZY;

ON專業(yè),姓名/DUSEXSZYDISPLAYALL2.4.3索引的基本概念索引文件是根據(jù)某個關鍵字表達式建立起來的。關鍵字表達式可以是一個字段或幾個字段的組合,關鍵字表達式又稱為索引表達式或索引項。索引類似于一本書的目錄。索引文件的特點:在索引文件中僅包含兩項內容:一項是表中每條記錄的索引關鍵字表達式的值,另一項是與其對應的記錄號。由于索引文件中只有兩項數(shù)據(jù),所以索引排序不但節(jié)省存貯空間,而且可以提高數(shù)據(jù)庫的查找速度。

2.4.4索引類型1.索引的類型VFP系統(tǒng)提供了四種不同的索引類型

1)主索引(PrimaryIndex):是在指定字段或表達式中不允許出現(xiàn)重復值的索引。主索引主要用于建立永久關系的主數(shù)據(jù)表中,或者建立參照完整性的被引用表中。注:一個數(shù)據(jù)表只能建一個主索引,如果表中有多個字段值都可以唯一確定記錄的順序,則這些字段值可建立候選索引。2)候選索引(CandidateIndex)

:像主索引一樣,它的索引表達式的值是唯一能夠標識每個記錄處理順序的值。注:一個數(shù)據(jù)表可以建立多個候選索引,如果一個表中已有主索引,則只能建立候選索引。3)普通索引(RegularIndex)

:可用來對記錄排序和搜索記錄,它不強迫記錄中的數(shù)據(jù)具有唯一性。即如果多個記錄的索引表達式的值相同,則可以重復存儲,并用獨立的指針指向各個記錄。4)唯一索引(UniqueIndex)

:創(chuàng)建此索引文件時,它忽略有重復索引值的記錄,對有重復索引值的記錄,則只選出第一個具有此索引值的記錄。2.索引文件的類型索引文件有兩種類型:單項索引文件,復合索引文件(1)單項索引文件單項索引文件是指根據(jù)一個索引項建立的索引文件,擴展名為.IDX(2)復合索引文件復合索引文件是根據(jù)多個索引項建立起來的索引文件,擴展名為.CDX復合索引文件可以包含多個索引,其中每個索引用一個索引標識符(INDEXTAG)表示。若索引表達式由一個字段組成,缺省情況下將自動把字段名命名為索引標識符。復合索引文件又分為兩種:結構化復合索引文件和非結構化復合索引文件(或稱獨立復合索引文件)。結構化復合索引文件:它具有與數(shù)據(jù)庫文件相同的文件名,且隨數(shù)據(jù)庫文件的打開而自動打開,所以當數(shù)據(jù)庫文件被修改時,相關的索引順序也會自動調整。非結構化復合索引文件:這種文件的文件名必須根據(jù)需要自行指定,不能隨數(shù)據(jù)庫文件自動打開,而必須用相應的命令打開。2.4.5建立索引1)利用表設計器創(chuàng)建索引,操作方法:打開表,單擊“顯示”菜單,選擇“表設計器”;在‘表設計器’窗口,單擊‘索引’選項卡,再選擇以下參數(shù):在排序選項中,選擇索引方向:升序或降序。在索引名選項中,輸入索引標識名。在類型選項中,選擇索引類型。在表達式選項中,輸入索引字段名,或者索引表達式。在篩選選項中,限制記錄的輸出范圍。例:利用表設計器,為表XS按“學號”和“姓名名”字段建立候選索引。2)用Index命令INDEXON<索引表達式>TAG<索引標識名>

|TO<IDX文件>FOR<條件表達式>[ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]說明:TO<IDX文件>|TAG<索引標識名>:創(chuàng)建單項索引文件或復合索引文件;ASCENDING升序,DESCENDING降序UNIQUE建立唯一索引CANDIDATE創(chuàng)建候選結構索引標識。ADDITIVE建立索引時不關閉已經打開的索引文件。注:不能對備注型字段和通用型字段建立索引。例2.18將XS.DBF按“姓名”字段升序建立單索引文件XM

USEXSINDEXON姓名TOXMBROWSE例2.19對XS按“專業(yè)”和“班級”字段建立索引標識ZYBJ索引文件

USEXSINDEXON專業(yè)+班級TagZYBJLIST例2.20對CJ表文件按學號字段和成績字段建立索引標識XJ的復合索引

USECJINDEXON學號+STR(成績,3)TAGXJDISPLAYALL2.4.6使用索引1按索引字段排序利用表設計器以字段名建立索引,重新排列表中數(shù)據(jù)的順序,操作方法如下:利用表設計器對表中若干字段,以字段名建立索引。打開‘表’菜單,選擇‘屬性’,進入‘工作區(qū)屬性’窗口。在‘工作區(qū)屬性’窗口,打開索引順序下拉列表,選擇索引字段名,按‘確定’按鈕。如:利用表設計器,為表“XS”中的“入學成績”字段按降序建立普通索引,并顯示排序后的結果。2按索引表達式排序 允許用戶指定多個字段對記錄排序,這時可以使用索引表達式,重新排列表中數(shù)據(jù)的順序。如:利用表設計器,為表‘XS’中的‘性別’和‘入學成績’兩字段建立普通索引,并顯示排序后的結果。索引表達式可以通過‘表達式生成器’生成。在索引表達式中要求連字符左右的類型要一致,若不一致,應利用類型轉換函數(shù)轉換成一致。3.打開索引文件1)USE<表>INDEX<索引文件表>2)SETINDEXTO<索引文件表>[ADDITIVE]4.關閉索引文件1)SETINDEXTO2)CLOSEINDEX3)CLOSEALL5.確定主控索引SETORDERTO[<數(shù)值表達式>|<單索引文件名>|[TAG]<索引標識>[OF復合索引文件名]

][ASCENDING|DESCENDING]]6.重新索引REINDEX7.刪除索引標識

DELETETAG<標識名1>[OF<復合索引文件名>][,<標識名2>[OF<復合索引文件名>]]...或DELETETAGALL[OF<復合索引文件名>]8.刪除索引文件Delefile<索引文件名>應先關閉后刪除2.1數(shù)據(jù)庫與表的基本概念

2.2表的建立與修改2.3表的基本操作

2.4排序與索引

2.8數(shù)據(jù)完整性

2.7多表操作2.6數(shù)據(jù)庫的操作2.5查詢與統(tǒng)計2.5查詢與統(tǒng)計本小節(jié)主要包括內容:順序查詢索引查詢統(tǒng)計匯總命令1順序查詢命令LOCATEFOR<條件>[<范圍>]

繼續(xù)查找命令

CONTINUE例2.21在表XS中查找姓名以“李”開頭的記錄。操作演示:USEXSLOCATEFOR姓名=[李]?FOUND(),EOF()&&.T..F.DISPLAY&&顯示找到的記錄CONTINUE&&繼續(xù)定位到下一個以“李”開頭的記錄,?FOUND(),EOF()的返回值為.T..F.DISPLAY2.索引查找SEEK<索引項或表達式的值>例2.22在XS.DBF中索引查找“計算機科學與技術”專業(yè)的學生。操作演示:USEXSINDEXON專業(yè)TAGZYSEEK“計算機科學與技術”DISPLAY2.5.3統(tǒng)計匯總命令1.記錄個數(shù)的統(tǒng)計COUNT[<范圍>][FOR<條件>][TO<內存變量>]

功能:統(tǒng)計指定范圍內滿足條件的記錄的個數(shù),結果保存在指定內存變量中。例2.23分別統(tǒng)計成績表CJ.DBF中記錄個數(shù),并將結果存入N中。USECJCOUNTTON?N例2.24統(tǒng)計學生秦傳根已考成績的門數(shù),結果保存在內存變量CJ中,并顯示統(tǒng)計結果.分析:學生已考成績情況通過“學號”反映在成績表CJ.DBF中,秦傳根的學號為“09713070”。USECJCOUNTFOR學號=[09713070]TOCJ?CJ2.數(shù)據(jù)表記錄求平均或求和1.求和命令格式:SUM[<數(shù)值型字段表>][<范圍>][TO<內存變量表>/TOARRAY<數(shù)組名>][FOR/WHILE<條件>]2.求平均命令格式:AVERAGE[<數(shù)值型字段表>][<范圍>][TO<內存變量表>/TOARRAY<數(shù)組名>][FOR/WHILE<條件>]例2.25計算CJ中計算機的的總和并存入變量A中,并顯示.SUM成績TOAFOR課程號=“1001”

?A例2.26計算CJ中計算機的平均分并存入變量B中AVERAGE成績TOBFOR課程號=“1001”注:計算機的課程號為“1001”3.數(shù)據(jù)表記錄分類匯總格式:

TOTALON<關鍵字>TO<匯總表文件名>[FIELDS<數(shù)值型字段名表>][范圍][FOR<條件>]功能:對<關鍵字段名>值相同的記錄中的所有數(shù)值型字段進行分類匯總,并將結果存入另一數(shù)據(jù)表文件。注:匯總前應按<關鍵字段名>建立索引。例2.27統(tǒng)計學生表XS.DBF中各專業(yè)的入學成績總和。USEXSINDEXON專業(yè)TAGZYTOTALON專業(yè)TOZYTJFIELDS入學成績USEZYTJLIST例2.28對CJ按性別對所有人的計算機進行分類匯總,并存入表ABC中。USECJINDEXON性別TAGXBTOTALON性別 TOABCFIELDS成績FOR課程號=“1001”USEABCLIST查看匯總結果2.1數(shù)據(jù)庫與表的基本概念

2.2表的建立與修改2.3表的基本操作

2.4排序與索引

2.8數(shù)據(jù)完整性

2.7多表操作2.6數(shù)據(jù)庫的操作2.5查詢與統(tǒng)計2.6數(shù)據(jù)庫的操作本小節(jié)主要包括以下內容:數(shù)據(jù)庫的創(chuàng)建數(shù)據(jù)庫的基本操作數(shù)據(jù)庫表的創(chuàng)建數(shù)據(jù)庫表的打開與關閉2.6.1

數(shù)據(jù)庫的創(chuàng)建如果想把多個表聯(lián)系起來,就一定要建立數(shù)據(jù)庫。只有把這些有關系的表存放在同一個數(shù)據(jù)庫中,確定它們的關聯(lián)關系,數(shù)據(jù)庫中的數(shù)據(jù)才能被更充分地利用。方法一:菜單法。利用“數(shù)據(jù)庫設計器”建立數(shù)據(jù)庫,操作方法是:在VisualFoxPro系統(tǒng)主菜單下,進入“數(shù)據(jù)庫設計”窗口,然后打開“數(shù)據(jù)庫”菜單,對數(shù)據(jù)庫進行各種操作或單擊鼠標右鍵,彈出“數(shù)據(jù)庫”快捷菜單,對數(shù)據(jù)庫進行各種操作。方法二:在項目管理器中建立數(shù)據(jù)庫方法三:命令法。CREATEDATABASE[數(shù)據(jù)庫名]如:建立圖書管理數(shù)據(jù)庫文件JXGL.DBC

新建表添加表移去表修改表瀏覽表2.6.2數(shù)據(jù)庫的基本操作1.打開數(shù)據(jù)庫

①在項目管理器中打開數(shù)據(jù)庫;②通過工具欄上的"打開"按鈕或者選擇"文件"菜單下的"打開"對話框打開數(shù)據(jù)庫;③使用命令打開數(shù)據(jù)庫。命令格式:OPEN

DATABASE<數(shù)據(jù)庫文件名>[EXCLUSIVE|SHARED]

如打開數(shù)據(jù)庫TSGL:OPEN

DATABASETSGL

通常在VisualFoxPro開發(fā)環(huán)境下交互操作時使用前兩種方法,在應用程序中使用命令的方法。在項目管理器中選擇了相應的數(shù)據(jù)庫時,數(shù)據(jù)庫將自動打開,所以此時用戶可能沒有打開數(shù)據(jù)庫的感覺,但不必再手工執(zhí)行打開數(shù)據(jù)庫的操作。2.關閉數(shù)據(jù)庫CLOSEDATABASE或CLOSEALL注意:①當數(shù)據(jù)庫打開時,包含在數(shù)據(jù)庫中的所有表都可以使用,但是這些表不會自動打開,使用時需要用USE打開。事實上打開一個表并不一定要打開數(shù)據(jù)庫,因為VisualFoxPro要兼容以前的版本。②VisualFoxPro在執(zhí)行查詢和表單可以自動打開和選擇數(shù)據(jù)庫。③VisualFoxPro在同一時刻可以打開多個數(shù)據(jù)庫,但在同一時刻只有一個當前數(shù)據(jù)庫(SETDATABSETO<數(shù)據(jù)庫文件名>),所有作用于數(shù)據(jù)庫的命令或函數(shù)是針對數(shù)據(jù)庫而言的。

3.數(shù)據(jù)庫的刪除

當數(shù)據(jù)庫文件不再需要時,可以將其刪除。在刪除數(shù)據(jù)庫前,應先將其關閉。格式:DELETEDATABASE<數(shù)據(jù)庫文件名>[DELETETABLES]功能:刪除指定的數(shù)據(jù)庫文件注意:DELETETABLES表示刪除數(shù)據(jù)庫的同時刪除其中的數(shù)據(jù)庫表。若缺省,則只刪除指定的數(shù)據(jù)庫,其中的數(shù)據(jù)庫表將轉成自由表。4.數(shù)據(jù)庫設計器的打開命令:MODIFYDATABASE[<數(shù)據(jù)庫名>]功能:在數(shù)據(jù)庫打開的狀態(tài)下,使用MODIFYDATABASE命令可以打開數(shù)據(jù)庫設計器。若當前沒有打開數(shù)據(jù)庫,使用MODIFYDATABASE<數(shù)據(jù)庫名>可以打開數(shù)據(jù)庫設計器;若缺省數(shù)據(jù)庫名,系統(tǒng)彈出“打開”對話框,用戶可選擇要打開的數(shù)據(jù)庫。2.6.3數(shù)據(jù)庫表的創(chuàng)建1.新建數(shù)據(jù)庫表(1)菜單方式建立數(shù)據(jù)庫表當數(shù)據(jù)庫打開后,新建的數(shù)據(jù)表都是數(shù)據(jù)庫表,采用菜單方式創(chuàng)建數(shù)據(jù)庫表可采取以下方法:①在“數(shù)據(jù)庫”菜單中選擇“新建表”菜單命令。②在數(shù)據(jù)庫設計器上右擊,在快捷菜單中選擇“新建表”命令。③在數(shù)據(jù)庫工具欄上單擊“新建表”按鈕。④從項目管理器上展開數(shù)據(jù)庫分支,選擇添加的數(shù)據(jù)庫,再選擇下面的表,單擊“新建”按鈕。2.添加表菜單方式:向數(shù)據(jù)庫添加數(shù)據(jù)表,操作方法是:打開數(shù)據(jù)庫所在“數(shù)據(jù)庫設計器”窗口,在數(shù)據(jù)庫設計器中任意空白處單擊鼠標右鍵,彈出“數(shù)據(jù)庫”快捷菜單,選擇添加表;在“打開”窗口,選擇要添加的表,返回“數(shù)據(jù)庫設計器”窗口;重復操作可以將多個表添加到數(shù)據(jù)庫中。命令方式:ADDTABLE<表文件名>|?[NAME<長表名>]功能:在當前數(shù)據(jù)庫中添加一個自由表。如將表XS.DBF、CJ.DBF、KC.DBF添加數(shù)據(jù)庫JXGL中。3.移除表菜單方式:選擇表,單擊右鍵,彈出快捷菜單,選擇‘刪除’,彈出‘移去刪除’對話框,若選擇‘刪除’按鈕,則刪除表,若選擇‘移去’,則將表從數(shù)據(jù)庫中移去,成為自由表。命令方式:REMOVETABLE<表文件名>|?[DELETE]功能:從當前數(shù)據(jù)庫中移去或刪除一個表。注:在數(shù)據(jù)庫既可刪除表,也可移去表。將已有的表添加到數(shù)據(jù)庫后,表的操作不僅可以在表操作環(huán)境下進行,同時也可以在數(shù)據(jù)庫操作環(huán)境下進行。在數(shù)據(jù)庫操作環(huán)境下不僅可以完成表操作環(huán)境的所有操作,而且還有許多新的操作。這些新的操作給表增加一些新屬性,這些屬性將作為數(shù)據(jù)庫的一部分保存起來,當表從數(shù)據(jù)庫中移去,這些屬性也不再保存。2.6.4數(shù)據(jù)庫表的打開與關閉在數(shù)據(jù)庫中,數(shù)據(jù)庫表的打開和關閉與自由表的打開和關閉是基本相同。有多種打開表的方法??梢允褂肬SE命令打開表,也可以在數(shù)據(jù)庫設計器中打開表。對于數(shù)據(jù)庫表,一般先打開數(shù)據(jù)庫設計器,再打開表。也可以不打開數(shù)據(jù)庫器,單獨打開表。2.1數(shù)據(jù)庫與表的基本概念

2.2表的建立與修改2.3表的基本操作

2.4排序與索引

2.8數(shù)據(jù)完整性

2.7多表操作2.6數(shù)據(jù)庫的操作2.5查詢與統(tǒng)計2.7多表操作2.7.1工作區(qū)工作區(qū)是用以標識一張打開的表的區(qū)域。VFP6.0可以設置32767個工作區(qū),區(qū)號1~32767,前10個可以用字母A~J表示工作區(qū)別名。注:一個工作區(qū)只能打開一張表,最多32767個。當前工作區(qū):VFP正在使用的工作區(qū)稱為當前工作區(qū),即默認的工作區(qū)。剛啟動VFP后,系統(tǒng)默認當前工作區(qū)號為1。2.選擇工作區(qū)(1)選擇工作區(qū)的命令SELECT<工作區(qū)號|別名>如:選擇3號工作區(qū),操作為

SELECT3或SELECTC注:SELECT0選擇未被使用的最小工作區(qū)(2)打開表的同時指定工作區(qū)的命令格式:USE<表名>IN<工作區(qū)>[ALIAS<別名>]功能:在指定的工作區(qū)打開表,但不改變當前所在的工作區(qū),若要改變工作區(qū)還需使用SELECT命令。3.工作區(qū)中數(shù)據(jù)的訪問用戶可以用SELECT命令切換工作區(qū)使用不同的表,也可以在一個工作區(qū)中訪問其他工作區(qū)中的表。各工作區(qū)中的表文件記錄指針是相互獨立的,轉換工作區(qū)時不影響指針位置,對當前工作區(qū)進行與其他工作區(qū)無關的操作時,其他區(qū)中的記錄指針也不會受到影響。在當前工作區(qū)中可以利用工作區(qū)的別名或表的別名來引用另一個工作區(qū)中表的數(shù)據(jù),方法是:在別名后加上連接符“.”或“->”,然后加上字段名。例如,A.姓名、B.成績、KC.課程名。2.7.2多表之間的關系①建立表間的一對一關系建立兩個表之間的“一對一”關系,首先,要使兩個表都具有同一屬性的字段;然后,定義父表中該字段為主索引字段(其字段值是唯一的),子表中與其同名的字段為為主索引或候選索引字段(其字段值是唯一的)。由于兩個表中的同一屬性的字段值是一對一的關系,因此兩個表之間就具有了“一對一”的關系。建立表間的“一對一”關系的操作方法是:(1)打開數(shù)據(jù)庫文件,進入“數(shù)據(jù)庫設計器”窗口。(2)確定主表和附表,并利用表設計器把主表與附表同名的字段定義為主索引字段,把附表中與主表同名的字段定義為主索引或候選索引字段。(3)在“數(shù)據(jù)庫設計器”窗口,激活主表中的主索引字段,然后按下鼠標左鍵,并拖至與其建立關聯(lián)的附表中的對應字段處,再松開鼠標左鍵,數(shù)據(jù)庫中的兩個表間就有了一個“連線”,兩表間的“一對一”關系就此建立完成。一對一關系示例:編號姓名Bj10001劉偉箭Bj11002劉簡捷Gz05001藤波海Gz05002楊行東Jl04001林惠繁Jl04010黃曉遠Sy02030李鵬程Sy02035王國民Sh01001金銀橋sh01002林立蕎編號專業(yè)Bj10001計算機應用Bj11002環(huán)境工程Gz05001生物工程Gz05002統(tǒng)計學Jl04001財政稅收Jl04010計算機應用Sy02030城市規(guī)劃Sy02035財政金融Sh01001建筑設計sh01002計算機應用一對一②建立表間的一對多關系

建立兩個表之間的“一對多”關系,首先,要使兩個表都具有同一屬性的字段;然后,定義父表中該字段為主索引字段(字段值是唯一的),子表中與其同名的字段為普通索引字段(字段值可重復)。由于兩個表中的同一屬性的字段值是一對多的關系,因此兩個表之間就具有了“一對多”的關系。操作方法如下:(1)打開數(shù)據(jù)庫文件,進入“數(shù)據(jù)庫設計器”窗口。(2)確定主表和子表,并利用表設計器把父表與子表同名的字段定義為主索引,把子表中與主表同名的字段定義為普通索引字段。(3)在“數(shù)據(jù)庫設計器”窗口,首先,激活主表中的主索引字段;然后,按下鼠標左鍵,并拖至與其建立關聯(lián)的附表中的對應字段處,再松開鼠標左鍵,數(shù)據(jù)庫中的兩個表間就有了一個“連線”,其“一對多”關系就此已建立完成。如果兩個表之間建立了“一對多”關系,反過來看子數(shù)據(jù)表與主數(shù)據(jù)表間就是“多對一”的關系。一對多關系示例

編號姓名Bj10001劉偉箭Bj11002劉簡捷Gz05001藤波海Gz05002楊行東Jl04001林惠繁Jl04010黃曉遠Sy02030李鵬程Sy02035王國民Sh01001金銀橋sh01002林立蕎編號成果名稱Bj10001VF高級編程技術Bj10001專門人才信息管理系統(tǒng)Bj10001VF編程技巧與常見問題解答B(yǎng)j10001面向對象編程與系統(tǒng)開發(fā)Bj10001面向對象編程與系統(tǒng)程序優(yōu)化jl04010計算機應用與軟件開發(fā)Jl04010數(shù)據(jù)庫原理Jl04010計算機網(wǎng)絡Jl04010中國電子商務發(fā)展策略jl04010遠程網(wǎng)絡教育一對多2.7.3永久關系永久關系是在數(shù)據(jù)庫中的數(shù)據(jù)表之間的關系,存儲在數(shù)據(jù)庫文件中,使用時不需要每次都重建。在“數(shù)據(jù)庫設計器”中,永久關系顯示為聯(lián)系數(shù)據(jù)表索引的線。1.建立永久關系(1)打開數(shù)據(jù)庫文件,進入“數(shù)據(jù)庫設計器”窗口。例如:OPENDATABASEJXGLMODIFYDATABASE(2)建立索引首先確定父表和子表。如XS作為父表,CJ作為子表,通過相同的關鍵字“學號”可以建立“一對多關系”;KC作為父表,CJ作為子表,通過相同的關鍵字“課程號”也可以建立“一對多關系”。利用表設計器把父表中與子表同名的字段定義為主索引,把子表中與父表同名的字段定義為普通索引。主索引標識前有一鑰匙形狀圖案。(3)建立表間關系在“數(shù)據(jù)庫設計器”窗口,首先選中父表中的主索引字段;然后按下鼠標左鍵,并拖至與其建立關系的子表中的對應字段處,再松開鼠標左鍵,數(shù)據(jù)庫中的兩個表間就有了一個“連線”,其“一對多”關系就此已建立完成。2.編輯表之間的永久關系單擊表間的連線,指針放在此連線上按右鍵,在彈出的菜單中選擇‘編輯關系’。3.刪除表之間的永久關系將鼠標箭頭指向表的關系連線,單擊鼠標左鍵使連線變粗,然后單擊鼠標右鍵,在彈出的快捷菜單中選擇“刪除關系”,即取消表間永久關系。2.7.4臨時關系表之間的永久關系建立后,在每次使用表時不需要重新建立,但永久關系不能控制不同工作區(qū)中記錄的聯(lián)動。因此,用戶可以建立臨時關系來控制表間記錄指針。臨時關系也稱為關聯(lián),就是使不同工作區(qū)的記錄指針建立一種臨時的聯(lián)動關系,當一個表的記錄指針移動時另一個表的記錄指針能隨之移動。1.建立臨時關系的條件建立關聯(lián)的兩個表中用來建立關聯(lián)的表稱為父表,被關聯(lián)的表稱為子表。在執(zhí)行涉及這兩個表數(shù)據(jù)的命令時,父表記錄指針的移動,會使子表記錄指針自動移到滿足關聯(lián)條件的記錄上。關聯(lián)條件通常要求比較不同表的兩個字段關鍵字是否相等,所以除要在關聯(lián)命令中指明這兩個字段關鍵字外,還必須為子表的字段關鍵字建立索引,并設置為當前索引。2.多一關系按照通過不同表的兩個字段關鍵字相等來實現(xiàn)關聯(lián)的原則,若出現(xiàn)父表有多條記錄對應子表中一條記錄的情況,便稱這種關聯(lián)為多一關系。3.一多關系若出現(xiàn)父表的一條記錄對應子表中多條記錄的情況,這種關聯(lián)稱為一多關系。4.建立臨時關系(1)建立臨時關系的命令格式:SETRELATIONTO<索引關鍵字>INTO<別名>[ADDITIVE]功能:以當前表為父表與一個子表建立“多一”關系。例2.29在教學管理系統(tǒng)中查詢學生的學號,課程號,課程名稱,成績并顯示前八條記錄。CLOSEALLCLEAROPENDATABASEJXGLUSECJIN1 &&在1號工作區(qū)打開學生成績表CJUSEKCIN2ORDER課程號 &&在2號工作區(qū)打開學生課程表KC,并設置當前索引SETRELATIONTO課程號INTOKC &&按課程號建立表CJ和KC的臨時關系GOTOPLISTFIELDS學號,課程號,KC.課程名,成績NEXT8&&列表顯示前8條(2)說明一多關系的命令格式:SETSKIPTO<表別名>功能:用在SETRELATION命令之后,說明已建關聯(lián)的性質為一多關系。5.取消臨時關系當臨時關系不再需要時,可以取消。(1)取消當前表與所有表之間的臨時關系格式:SETRELATIONTO(2)取消當前表與某個子表之間的臨時關系格式:SETRELATIONOFFINTO<別名>說明:該命令在父表所在工作區(qū)使用,<別名>指子表別名或所在工作區(qū)的別名2.1數(shù)據(jù)庫與表的基本概念

2.2表的建立與修改2.3表的基本操作

2.4排序與索引

2.8數(shù)據(jù)完整性

2.7多表操作2.6數(shù)據(jù)庫的操作2.5查詢與統(tǒng)計2.8數(shù)據(jù)完整性本小節(jié)主要包括以下內容:實體完整性域完整性參照完整性2.8.1實體完整性實體完整性指表中行的完整性。要求表中的所有行都有唯一的標識符,稱為主關鍵字。主關鍵字是否可以修改,或整個列是否可以被刪除,取決于主關鍵字與其他表之間要求的完整性。實體完整性規(guī)則規(guī)定基本關系的所有主關鍵字對應的主屬性都不能取空值,例如,學生選課的關系選課(學號,課程號,成績)中,學號和課程號共同組成為主關鍵字,則學號和課程號兩個屬性都不能為空。因為沒有學號的成績或沒有課程號的成績都是不存在的。對于實體完整性,有如下規(guī)則:(1)實體完整性規(guī)則針對基本關系。一個基本關系表通常對應一個實體集,例如,學生關系對應學生集合。(2)現(xiàn)實世界中的實體是可以區(qū)分的,它們具有一種唯一性質的標識。例如,學生的學號,公民的身份證號等。(3)在關系模型中,主關鍵字作為唯一的標識,且不能為空。2.8.2域完整性前面所熟知的數(shù)據(jù)類型的定義屬于域完整性的范疇,它通過指定不同的寬度說明不同范圍的數(shù)據(jù)類型,從而可以限定字段的取值類型和取值范圍。但這些對域完整性還遠遠不夠,還可以用一些域約束規(guī)則來進一步保證域完整性。域約束規(guī)則也稱作字段有效性規(guī)則,在插入或修改字段時被激活,主要用于數(shù)據(jù)輸入正確性的檢驗。建立字段有效性規(guī)則比較簡單直接的方法仍然是在表設計器中建立,在表設計器的"字段"選項卡中有一組定義字段有效性規(guī)則的項目,它們是"規(guī)則(字段有效性規(guī)則)"、"信息(違背字段有效性規(guī)則時的提示信息)"、"默認值"三項。有效性規(guī)則的項目可以直接輸入,也可以單擊輸入框旁的按鈕打開表達式生成器對話框編輯、生成相應的表達式。設置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論