版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第3章 數(shù)據(jù)庫的建立和操作,zpz: 本片中凡是SQL的語句,可選講,內(nèi)容,介紹數(shù)據(jù)庫、數(shù)據(jù)表的基本概念 數(shù)據(jù)庫和數(shù)據(jù)表的建立 編輯表中的數(shù)據(jù)、記錄修改與刪除 表的索引等有關(guān)操作。,概念,數(shù)據(jù)庫(.dbc) 就是一個(gè)關(guān)于某一特定主題或目標(biāo)的信息集合。 表(.dbf) 基本單位,是數(shù)據(jù)庫的基礎(chǔ) 可以說表是關(guān)系數(shù)據(jù)庫系統(tǒng)中的基本結(jié)構(gòu)。 要存數(shù)據(jù),為所需記錄的信息創(chuàng)建一個(gè)表。 由行和列組成的,一行為一個(gè)記錄,一列為一個(gè)字段。,一行為一個(gè)記錄(Record),一列為一個(gè)字段(Field),通常所說的表格,二維表簡稱表(Table)特征:,(1)若干記錄 (2)若干個(gè)字段,每記錄具有相同結(jié)構(gòu)的字段 (3
2、)不同類型的字段來存儲(chǔ)不同類型的數(shù)據(jù) (4)字段的順序與存儲(chǔ)的數(shù)據(jù)無關(guān) (5)記錄在的順序與存儲(chǔ)的數(shù)據(jù)無關(guān)。,表的兩要素: 表結(jié)構(gòu)(列) 相應(yīng)記錄(行),表結(jié)構(gòu),表的字段,表是由記錄組成 記錄又由字段組成 字段的屬性(表結(jié)構(gòu)) 字段名 字段類型 字段寬度 小數(shù)位數(shù),1.字段名,約定: 只能使用字母、漢字、下劃線和數(shù)字 見名知義 = + / | : ? 空格 字段名必須以字母或漢字開頭,并且長度不能超過128個(gè)字符 如:下列那些合法 不以數(shù)字開頭 3mn姓名1mn3 不能含有空格; m n 編 號(hào) 不能含有各種運(yùn)算符; S-NS_N AI*X,2.字段類型,不同類型的字段來存儲(chǔ)不同類型的數(shù)據(jù),(
3、1)字符型(Character) 通常用于存儲(chǔ)鍵盤輸入的文本數(shù)據(jù)。 漢字、字母、數(shù)字、空格、 符號(hào)及標(biāo)點(diǎn)符號(hào) 字符型數(shù)據(jù)必用雙引號(hào)或單引號(hào)或來定界 字符型字段的寬度最大為254 * 如: “how” 1234 中國人,zpz: 內(nèi)存變量,(2)貨幣型(Currency) 保存貨幣數(shù)值時(shí),用貨幣類型而不是數(shù)值類型字段 最多保留4位小數(shù)位數(shù),多則四舍五入至4位 內(nèi)存變量用$數(shù)值來賦初值 如:x=$999 ? Type(x),zpz: 內(nèi)存變量,(3)數(shù)值型(Numeric) 數(shù)值型字段用來存儲(chǔ)數(shù)值數(shù)據(jù)。 它可以包含數(shù)字09,也可以帶正、負(fù)號(hào)或小數(shù)點(diǎn) 如:1234 100.89 (4)浮點(diǎn)型(Flo
4、at) 浮點(diǎn)型字段在功能上等價(jià)于數(shù)值型字段。,zpz: 內(nèi)存變量N,(5)日期型(Date) 用于存儲(chǔ)包含有年、月、日的日期數(shù)據(jù) 長度為8字節(jié) (6)日期時(shí)間型(DateTime) 用于存儲(chǔ)包含有年、月、日、時(shí)、分、秒的日期和時(shí)間數(shù)據(jù)。 (7)雙精度型(Double) 雙精度型用于存儲(chǔ)精度要求較高、位數(shù)固定的數(shù)值,或真正的浮點(diǎn)數(shù)值。,zpz: 內(nèi)存變量5.6,(8)備注型(Memo) 長度固定為4字節(jié) 用于存儲(chǔ)不定長度的文本數(shù)據(jù) 當(dāng)文本數(shù)據(jù)長度可能大于254,無法使用字符型存儲(chǔ)時(shí),使用備注類型字段 所有備注型字段的實(shí)際內(nèi)容存儲(chǔ)在和表名相同,擴(kuò)展名為.FPT的備注文件中,(9)通用型(Gener
5、al) 通用型用于存儲(chǔ)OLE對(duì)象數(shù)據(jù) 字段寬度固定為4個(gè)字節(jié),用于存儲(chǔ)一個(gè)4個(gè)字節(jié)的指針,指向該字段的實(shí)際內(nèi)容 其內(nèi)容存儲(chǔ)在擴(kuò)展名為.FPT的文件中。 OLE對(duì)象包括電子表格、字處理文檔、圖像或其他多媒體對(duì)象等 OLE對(duì)象可以用鏈接方式存儲(chǔ)在表中。 存儲(chǔ)數(shù)據(jù)的大小,取決于相的OLE服務(wù)程序,和磁盤空間大小的限制。,(10)整型(Integer) 整型用于存儲(chǔ)整數(shù)數(shù)據(jù) 字段寬度固定為4個(gè)字節(jié)。 取值范圍從-2 147 483 647 到2 147 483 646。 (11)邏輯型(Logical) .T.或.Y. 為邏輯真 .F.或.N. 為邏輯假 長度固定為1字節(jié),(12)字符型(二進(jìn))(Ch
6、aracter(Binary) 字符型(二進(jìn)制)用于存儲(chǔ)不需要系統(tǒng)代碼頁維護(hù)的字符數(shù)據(jù) 其他字段特性同字符型字段 密碼(各國) (13)備注型(二進(jìn)制)(Memo(Binary) 備注型(二進(jìn)制)用于存儲(chǔ)不需要系統(tǒng)代碼頁維護(hù)的備注字段數(shù)據(jù)。其他字段特性同備注型字段。,數(shù)據(jù)類型(結(jié)),數(shù)據(jù)類型(Type)13種 C-字符型 N-數(shù)值形 F-浮點(diǎn)型 D-日期型 I- 整 型 L-邏輯型 M-備注型 G-通用型 Y貨幣型,3.字段寬度,規(guī)定寬度 字符型字段 254 貨幣型字段 8 數(shù)值型字段 20 日期型字段 8 備注型 4 邏輯型 1 日期時(shí)間型 8 通用型字段 4 用于存儲(chǔ)一個(gè)4個(gè)字節(jié)的指針,指
7、向該字段的實(shí)際內(nèi)容。整型字段寬度固定為4個(gè)字節(jié)。,寬度(Width) (結(jié)) (以下類型寬度固定) 貨幣型、日期型、日期時(shí)間型、雙精度型:8字節(jié) 整型、備注型、備注型(二進(jìn)制)、通用型:4字節(jié) 邏輯型:1字節(jié),4.小數(shù)位數(shù) 有小數(shù)的字段: 數(shù)值型 浮點(diǎn)型 雙精度型 字段寬度 = 整數(shù)部分寬度 + 小數(shù)點(diǎn)1位 +小數(shù)位寬度 如小數(shù)位數(shù)不為0,則小數(shù)位數(shù)至少要比整個(gè)字段寬度小2,小數(shù)位數(shù),一個(gè)N形變量寬為6,小數(shù)位數(shù)為3,則這個(gè)變量最大可表示的數(shù)為多少? _ _ . _ _ _ 99.999,5.空值(NULL),空值是用來標(biāo)識(shí)一個(gè)字段“沒有值”的標(biāo)志 空值表示沒有任何值或沒有確定值 空值不等同于
8、數(shù)值0、空字符串或邏輯“假” 函數(shù)EMPTY() 測試空值 如果允許字段接受NULL值,則應(yīng)選中該欄所在框 表的關(guān)鍵字段不允許為NULL值,字段類型 中文名稱 寬度(字節(jié)) 說明 Character 字符型 254 字母、漢字、數(shù)字、文本、符號(hào) Currency 貨幣型 8 貨幣單位 Numeric 數(shù)值型 20 整數(shù)或小數(shù) Float 浮點(diǎn)型 20 同數(shù)值型 Date 日期型 8 年、月、日 DateTime 日期時(shí)間型8 年、月、日、時(shí)、分、秒 Double 雙精度型 8 雙精度數(shù)值 Integer 整型 4 整數(shù) Logical 邏輯型 1 真或假 Memo 備注型 4 不定長的字母、文
9、本、數(shù)字 General 通用型 4 OLE圖像、多媒體對(duì)象,小結(jié),數(shù)據(jù)庫是表和表間關(guān)系的集合 表是由表結(jié)構(gòu)和記錄組成 表結(jié)構(gòu)是由各不同字段構(gòu)成 每一字段又具有字段名、數(shù)據(jù)類型、數(shù)據(jù)寬度、小數(shù)位數(shù)等屬性 表中的每一個(gè)記錄又具有相同的字段,建表的步驟: 1)設(shè)計(jì)表結(jié)構(gòu) 2)建表的結(jié)構(gòu) creat 表名 3)保存表文件 ctrl+w 4)輸入記錄 append browse,表結(jié)構(gòu)的創(chuàng)建,1、表設(shè)計(jì)器 (1)打開“表設(shè)計(jì)器” 項(xiàng)目管理器/自由表/新建/新表/保存 注: A、也可從菜單或工具欄中直接新建表 B、與在“項(xiàng)目管理器”中新建表不同的是:這樣新建的表將不包含在項(xiàng)目中 (2)在“表設(shè)計(jì)器”中創(chuàng)
10、建表結(jié)構(gòu) 表設(shè)計(jì)器/字段/輸入/確定,表結(jié)構(gòu)的創(chuàng)建,2、用create table -SQL命令創(chuàng)建表結(jié)構(gòu) create table |DBF表文件名(字段名1 字段類型(字段寬度,小數(shù)位數(shù));,字段名2 字段類型(字段寬度,小數(shù)位數(shù))-編程時(shí)用 例:學(xué)生表結(jié)構(gòu) create table xs2(xh c(6),xm c(8),xb c(2),zydh c(6) 教師表結(jié)構(gòu) create table js(xm c(8),xb c(2),gl n(2,0),csrq d,jbgz n(7,2),jl m),3、使用Null值 表設(shè)計(jì)器/字段 create table 中NULL,NOT NUL
11、L子句 例: create table books(sh c(6) not null,sm c(40) not null,cbrq d null) set null on,數(shù)據(jù)表的建立,如: 一張名為教師檔案文件zgda.dbf 編號(hào) 姓名 性別 年齡 職稱 工作時(shí)間 婚否 簡歷 1 張黎黎 女 26 助教 052483 T memo 2 李 艷 女 30 助教 091490 T memo 3 劉 強(qiáng) 男 38 講師 122476 T memo,職工檔案表結(jié)構(gòu)(zgda.dbf),字段名 類型 寬度 小數(shù)位數(shù) 索引 NULL 編號(hào) 字符型 4 無 升序 否 姓名 字符型 6 無 無 否 性別
12、字符型 2 無 無 否 年齡 數(shù)值型 2 無 無 否 職稱 字符型 8 無 無 可 工時(shí) 日期型 8 無 無 否 婚否 邏輯型 1 無 無 否 簡歷 備注型 4 無 無 可 照片 通用型 4 無 無 可,表的打開,VFP在使用一個(gè)表前必須把表打開 打開命令 USE VFP在結(jié)束使用一個(gè)表時(shí),必須把表關(guān)閉 關(guān)閉命令 USE CLOSE ALL CLOSE DATABASE/TABLE,修改表結(jié)構(gòu) 1、表設(shè)計(jì)器 項(xiàng)目管理器/選定表/修改 2、命令 USE books MODIFY STRUCTURE,修改表結(jié)構(gòu),2、命令 ALTER TABLE-SQL命令 添加字段:ADD COLUMN 子句 例
13、: ALTER TABLE books ADD COLUMN 折扣 n(4,2) 重命名字段:RENAME COLUMN 子句 例: ALTER TABLE books RENAME COLUMN 折扣 TO zk 刪除字段:DROP COLUMN 子句 例: ALTER TABLE books DROP COLUMN zk,3、菜單/按鈕方式 法1: “表”“屬性” “工作區(qū)” “工作區(qū)屬性”“修改” 法2: “窗口” “數(shù)據(jù)工作期” (“屬性” “修改”),記錄的處理,記錄的追加 1、立即輸入記錄(瀏覽/編輯/追加方式) 2、瀏覽窗口下追加(USE/BROWSE)(表/追加新記錄) 3、使
14、用INSERT - SQL命令追加記錄 insert into zgda(姓名,性別,年齡) values (洪七公,男,900) 4、從其他表中追加記錄 命令A(yù)PPEND APPEND FROM APPEND BLANK ,記錄的瀏覽 1、瀏覽窗口 進(jìn)入 : BROWSE 命令 use books/顯示/瀏覽 項(xiàng)目管理器/選定某個(gè)表/單擊“瀏覽”按鈕 2、命令 BROWSE LIST / DISPLAY BROWSE FIELDS 書號(hào),書名,作者 for .,如何定制瀏覽窗口?,重新安排列的位置: 拖動(dòng) 改變列的寬度: 拖動(dòng) 顯示或隱藏表格線: 顯示/網(wǎng)格線 分為兩個(gè)窗格: 左下角拖動(dòng),6
15、.3.3 記錄的定位,Go top go bottom skip,1、記錄指針標(biāo)志 記錄號(hào)(輸入順序) 記錄的開始標(biāo)志 BOF ( ) 記錄指針標(biāo)志 ( 當(dāng)前記錄 ) RECNO ( ) 記錄的結(jié)束標(biāo)志 EOF ( ) 2、記錄的定位方式 絕對(duì)定位 go 相對(duì)定位 skip 條件定位,幾個(gè)概念,記錄指針 當(dāng)前記錄 記錄定位 記錄號(hào)RECNO(),例1,假設(shè)ZGDA表有848條記錄,先后執(zhí)行以下命令 bof() eof() recno() use books f f 1 skip -1 t f 1 skip -1 Error f 1 go bott f f 848 skip f t 849 sk
16、ip Error,例2,RECN() Use books 1 go 5 5 skip +2 7 skip -3 4 locate for ,3、記錄定位的實(shí)現(xiàn) 界面方式 (“表”“轉(zhuǎn)到記錄”) 記錄號(hào):絕對(duì)定位 goto 定位:條件定位 locate for 作用范圍:all,next,record,rest,for 找到/未找到 命令方式 絕對(duì)定位:GO( GOTO ) GO( GOTO ) TOP/BOTTOM 相對(duì)定位:SKIP(與索引有關(guān))skip=skip 1 快速移動(dòng):SEEK 及 FIND,記錄的修改,1、在瀏覽窗口中修改 EDIT / CHANGE / BROWSE 項(xiàng)目管理器
17、/瀏覽 例:修改books表中第5條記錄 use books edit record 5,記錄的修改,2、批量記錄的修改 (1)界面方式 “表”“替換字段”字段條件 (2)命令方式 UPDATE-SQL命令(表不必事先打開,以下同) REPLACE 命令 USE books copy to temp use temp REPLACE 單價(jià) WITH 5.00 FOR 單價(jià)5,記錄的刪除,目的: 節(jié)省時(shí)空 刪除步驟: 邏輯刪除 物理刪除,邏輯刪除,給要?jiǎng)h除的記錄加標(biāo)記(*號(hào)) 標(biāo)記要?jiǎng)h除的記錄(邏輯刪除) 瀏覽窗口: 單擊小方框 “表” “刪除記錄” 命令DELETE FROM 表名WHERE
18、過濾條件表達(dá)式 例: 刪除教材表中庫存在數(shù)量為0的記錄 delete from books where 庫存數(shù)量=0,物理刪除,徹底刪除(物理刪除) “表” “徹底刪除” 命令PACK(獨(dú)占) 刪除有刪除標(biāo)記的記錄 命令ZAP=delete all +pack(獨(dú)占),恢復(fù)記錄的刪除,恢復(fù)帶刪除標(biāo)記的記錄(與set dele 無關(guān)) 法1: 小方框 黑-白 法2:“表” “恢復(fù)記錄” 法3:RECALL 范圍FOR 條件表達(dá)式1WHERE 條件表達(dá)式2 例:recall recall all recall all for 庫存數(shù)量=0(這里的all 可?。?說明:缺省范圍(當(dāng)前記錄,不是全部記
19、錄),記錄的刪除,對(duì)帶刪除標(biāo)記記錄的訪問 (1)測試記錄的刪除標(biāo)記deleted() 有刪除標(biāo)記返回為真,否為假 (2)控制對(duì)帶刪除標(biāo)記記錄的訪問 set deleted on/off 說明: 有些默認(rèn)為ON,有些默認(rèn)為OFF 實(shí)驗(yàn): 先刪除若干記錄(邏輯刪除) LIST 默認(rèn)為OFF SET DELETED ON LIST,set deleted on/off,為set deleted on時(shí) 屏蔽掉有標(biāo)記的記錄,不能訪問 影響Count命令 不影響Reccount() 例:8個(gè)記錄,一個(gè)有刪除標(biāo)記 Set deleted on Count to x ? X 7 ? Reccount() 8
20、,篩選記錄,界面 “表”“屬性”“數(shù)據(jù)過濾器” 命令 SET FILTER TO SET FILTER TO FOR子句:臨時(shí)性記錄篩選 例:USE ZGDA SET FILT TO 出版社=石油大學(xué) 注意: 是隱藏而非刪除 與FOR子句不同 對(duì)SE LECT-SQL、 DELETE-SQL、UPDATE-SQL無效,篩選字段,表/屬性/字段篩選 SET FIELDS TO , SET fields to 姓名,性別,表的使用,工作區(qū): 用以標(biāo)識(shí)一張打開的表的內(nèi)存區(qū)域 一個(gè)工作區(qū)在某一時(shí)刻只能打開一張表 一張表可以在多個(gè)工作區(qū)同時(shí)打開 (use 表 again) 共有255個(gè)工作區(qū) 默認(rèn)工作區(qū)
21、號(hào)為1區(qū) USE books(默認(rèn)為1號(hào)) LIST USE books1(books自動(dòng)關(guān)閉) LIST,工作區(qū)的標(biāo)識(shí)*,用數(shù)字來標(biāo)識(shí)各個(gè)工作區(qū)(1255) 用相應(yīng)工作區(qū)中表名來標(biāo)識(shí)工作區(qū) (此時(shí)表沒有指定別名,如指定別名,用別名來標(biāo)識(shí)工作區(qū)) Sele 5 Use zgda Sele 4 Sele zgda 1-10個(gè)工作區(qū)常用英文字母A-J Sele 10=sele j,工作區(qū)的轉(zhuǎn)換,命令: Select 工作區(qū)號(hào)/工作區(qū)中表別名/A-J 如: Sele 1 Use zgda Sele B Selct zgda Select 0 表示選擇未用的號(hào)最小工作區(qū),Select O例子,sele
22、 1 use zgda sele 4 use zggz sele 0 ? select() 返回選擇的工作區(qū)號(hào),The answer is :2,表的使用,可以同時(shí)在多個(gè)工作區(qū)中打開多個(gè)沒有打開的表 SELE 1 USE books1 LIST SELE 2 USE books2 LIST SELE 1 LIST 一張表不可以在多個(gè)工作區(qū)同時(shí)打開,表的使用,表的別名指定 USE ALIAS 例:USE ZGDA ALIAS OK 當(dāng)前工作區(qū):正在使用的工作區(qū) ALIAS ( )及SELECT ( ) 函數(shù) SELE(0):測試當(dāng)前工作區(qū)的區(qū)號(hào) ALIAS():測試當(dāng)前工作區(qū)中表的別名 “數(shù)據(jù)工
23、作期”窗口 別名,操作非當(dāng)前工作區(qū)中的表 把其它的工作區(qū)選為當(dāng)前工作區(qū) Sele 2 在命令中強(qiáng)行指定工作區(qū) GO TOP IN ok,關(guān)于表的打開和關(guān)閉,剛創(chuàng)建的表處于打開狀態(tài)* 1、表的打開 界面 文件/打開 窗口/數(shù)據(jù)工作期/打開 USE ? 命令 USE USE IN 0 多次打開同一張表(同時(shí)) USE AGAIN 例:USE books/SELE 0/USE XS AGAIN,2、表的關(guān)閉 界面 窗口/數(shù)據(jù)工作期/關(guān)閉 命令 USE USE IN CLOSE ALL&數(shù)據(jù)庫、索引、項(xiàng)目管理器等也被關(guān)閉 CLOSE DATABASES &如果當(dāng)前沒有打開的數(shù)據(jù)庫,則把自由表全部關(guān)閉
24、CLOSE TABLES &關(guān)閉表,不關(guān)閉庫 退出VFP 注意:SQL語句能自動(dòng)打開表,但不會(huì)自動(dòng)關(guān)閉表!,表的獨(dú)占與共享使用,表的共享使用: 一張表可以同時(shí)被多個(gè)用戶打開 (RECORD UNLOCKED) 表的獨(dú)占使用: 一張表只能被一個(gè)用戶打開(默認(rèn)) (EXCLUSIVE),表的獨(dú)占與共享使用,設(shè)置獨(dú)占與共享打開表的默認(rèn)狀態(tài) 工具/選項(xiàng)/數(shù)據(jù) SET EXCLUSIVE OFF/ON(共享/獨(dú)占) 強(qiáng)行用獨(dú)占方式打開表 “打開”“獨(dú)占”復(fù)選框 USE SHARED/EXCLUSIVE 設(shè)置改變,并不改變已經(jīng)打開的表的狀態(tài) 一張表同時(shí)被多次打開時(shí),只以第一次的打開方式為準(zhǔn)(窗口/數(shù)據(jù)工作
25、期),利用緩沖訪問表中的數(shù)據(jù),1、數(shù)據(jù)緩沖 在多用戶環(huán)境下,用以保護(hù)對(duì)表記錄所做的數(shù)據(jù)更新以及數(shù)據(jù)維護(hù)操作的一種技術(shù) 2、類型 (1)記錄緩沖(行緩沖):一次訪問、修改、寫一個(gè)記錄 (2)表緩沖:對(duì)多個(gè)記錄緩沖更新 兩種鎖定方式: (1)保守式緩沖:在多用戶環(huán)境中,防止一個(gè)用戶訪問(讀/寫)另一個(gè)用戶正在修改的記錄或表 (2)開放式緩沖:記錄只在被寫入時(shí)加鎖,表的數(shù)據(jù)緩沖,表的數(shù)據(jù)緩沖 保守式行緩沖 開放式行緩沖 保守式表緩沖 開放式表緩沖 不設(shè)置緩沖,設(shè)置表的數(shù)據(jù)緩沖,3、設(shè)置表的數(shù)據(jù)緩沖 (1)界面 窗口/數(shù)據(jù)工作期/屬性/ 選中“允許數(shù)據(jù)緩沖”,“鎖定記錄”,“緩沖” “在編輯時(shí)”(保守
26、式)“在寫入時(shí)”(開放式) “當(dāng)前記錄”(記錄緩沖)“所有編輯過的記錄”(表緩沖),設(shè)置表的數(shù)據(jù)緩沖,(2)CURSORSETPROP() 格式: CURSORSETPROP(Buffering,緩沖類型值,工作區(qū)|別名) 緩沖類型值 1無緩沖(默認(rèn)) 2保守式行緩沖 3開放式行緩沖 4保守式表緩沖 5開放式表緩沖 例:為XS表打開開放式表緩沖: SET MULTILOCKS ON(除方式1外) USE XS = CURSORSETPROP( Buffering, 5),利用緩沖訪問表中的數(shù)據(jù),4、檢測緩沖區(qū)中的數(shù)據(jù)是否與數(shù)據(jù)源表一致 (1)CURVAL()和OLDVAL() CURVAL()
27、:返回當(dāng)前值 OLDVAL():返回初始值 (2)GETFLDSTATE() 5、執(zhí)行和放棄對(duì)緩沖數(shù)據(jù)的更改 (1)TABLEUPDATE()執(zhí)行對(duì)緩沖行、緩沖表或臨時(shí)表的修改 格式: TABLEUPDATE(AllRows,lForce,別名|工作區(qū)) (2)TABLEREVERT()放棄對(duì)緩沖行、緩沖表或臨時(shí)表的修改 格式: TABLEREVERT(AllRows,工作區(qū)|別名),zpz: 此頁不講,概念,物理順序: 一般是按照其輸入的順序進(jìn)行記錄的存儲(chǔ)順序 順序找,速度慢 不便于查找需要的信息 邏輯順序: 記錄的處理順序 (快速) 可以使用索引來改變記錄的順序即邏輯順序 根據(jù)表中字段的值
28、,建立具有邏輯順序的索引文件,然后根據(jù)索引文件重新排列數(shù)據(jù)庫表中顯示的記錄。,索引文件,1、索引: 如同目錄 數(shù)據(jù)庫的輔助文件,不能單獨(dú)使用 可以按一個(gè)字段索引,也可以多個(gè) 一個(gè)表可以創(chuàng)建多個(gè)索引 索引存儲(chǔ)在索引文件中 索引文件中存儲(chǔ)著記錄號(hào)和索引字段的索引值,理解索引,索引可以理解為根據(jù)某一字段的值進(jìn)行邏輯排序的一組指針 按照索引顯示記錄,VFP按照指針排列的順序分別讀取每一條記錄,而這些記錄在數(shù)據(jù)庫中的實(shí)際存儲(chǔ)位置并未改變。,按年齡索引后的表文件,姓名 年齡 張黎黎 26 李 艷 30 劉 強(qiáng) 38 DA.DBF,姓名 年齡 劉 強(qiáng) 38 李 艷 30 張黎黎 26 DA.DBF,物理順序
29、,邏輯順序,記錄號(hào) 年齡大小 3 1 2 2 1 3 NL.CDX,關(guān)鍵字與索引標(biāo)識(shí),(1)索引關(guān)鍵字(Index Key) 建立索引的依據(jù)(索引表達(dá)式) 字段/字段表達(dá)式 VFP使用索引關(guān)鍵字來顯示和訪問表中的記錄 (2)索引標(biāo)識(shí)(Tag) 索引關(guān)鍵字的名稱(索引名) =10字節(jié),索引的類型,4種類型索引(根據(jù)關(guān)鍵字段) 主索引 候選索引 普通索引 惟一索引,表的索引,2、索引的類型 主索引(Primary indexs) 在數(shù)據(jù)庫表中,每張表只能創(chuàng)建一個(gè)主索引 組成主索引關(guān)鍵字的字段或表達(dá)式,在表的所有記錄中不能有重復(fù)的值(學(xué)號(hào)可以,姓名不可以) 自由表不能建立主索引 主索引存儲(chǔ)于數(shù)據(jù)庫表
30、的結(jié)構(gòu)復(fù)合索引中 侯選索引(Candidate indexs) 在指定的關(guān)鍵字段或表達(dá)式中不允許有重復(fù)值的索引 一張表中可以建立多個(gè)侯選索引 侯選索引可用于數(shù)據(jù)庫表和自由表,表的索引,2、索引的類型 普通索引(Regular indexs) 可以決定記錄的處理順序 允許關(guān)鍵字段或表達(dá)式的值出現(xiàn)重復(fù) 對(duì)一張表可以創(chuàng)建多個(gè)普通索引(GL) 唯一索引(Unique indexs) 允許有重復(fù)值 具有重復(fù)值的記錄僅存儲(chǔ)其中的第一個(gè)(出版社) 惟一:對(duì)每一個(gè)特定的關(guān)鍵字只存儲(chǔ)一次,而忽略了重復(fù)值第二次或以后的記錄,表的索引,3、索引文件的種類 索引本身并不改變表中數(shù)據(jù)的物理順序 結(jié)構(gòu)復(fù)合索引(CDX)
31、與數(shù)據(jù)表同名 文件名是在創(chuàng)建時(shí)由系統(tǒng)自動(dòng)給定 結(jié)構(gòu)復(fù)合索引文件與表文件同步打開、更新、關(guān)閉 是表的一部分 非結(jié)構(gòu)復(fù)合索引(CDX) 文件名由用戶給出 非結(jié)構(gòu)復(fù)合索引文件中不能創(chuàng)建主索引 獨(dú)立索引(IDX):與FoxBase兼容,創(chuàng)建索引文件,表設(shè)計(jì)器 “表設(shè)計(jì)器”“索引”選項(xiàng)卡 Index命令 INDEX ON TAG FOR ASCENDING|DESCENDING UNIQUE|CANDIDATE(允許相同|不允許相同) 注意 不能對(duì)備注字段和通用字段建立索引 不要建立無用的索引,析Index命令,?結(jié)構(gòu)復(fù)合索引(CDX) ?非結(jié)構(gòu)復(fù)合索引(CDX) ?獨(dú)立索引(IDX),INDEX ON
32、 TAG FOR ASCENDING|DESCENDING UNIQUE|CANDIDATE(允許相同|不允許相同),索引的建立,步驟: 項(xiàng)目管理器-表-修改 表設(shè)計(jì)器-索引 輸入索引名-類型-表達(dá)式 不要對(duì)每個(gè)字段都建立索引,否則會(huì)降低程序的運(yùn)行效率,對(duì)多個(gè)字段索引,操作步驟: 項(xiàng)目管理器-選擇已索引的表,選“修改” 表設(shè)計(jì)器,選索引,輸入索引的名稱 在“表達(dá)式”框中,輸入對(duì)多個(gè)索引的表達(dá)式 如:按性別與年齡進(jìn)行索引,其表達(dá)式應(yīng)為 性別+STR(年齡,2) 確定 可以對(duì)多個(gè)字段建立索引 其排序是按照表達(dá)式的值進(jìn)行的,索引的修改和刪除,索引的修改 表設(shè)計(jì)器 “表設(shè)計(jì)器”“索引”選項(xiàng)卡 命令 INDEX命令修改原索引 索引的刪除 表設(shè)計(jì)器 “表設(shè)計(jì)器”“索引”選項(xiàng)卡 DELETE TAG 刪除索引標(biāo)識(shí),索引的使用,設(shè)置主控索引 主控索引:決定顯示或訪問表中記錄的順序的索引 主控索引可以是: 復(fù)合索引文件中的一個(gè)標(biāo)識(shí)(主控標(biāo)識(shí)) 一個(gè)獨(dú)立索引文件(主控索引文件) 打開表的同時(shí)指定主控索引 Use 表名 index 索引文件名 打開后再設(shè)置主控
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 20047.1-2025光伏組件安全鑒定第1部分:結(jié)構(gòu)要求
- 智能控制 課件 -第四章-專家控制系統(tǒng)
- 2025中學(xué)教師招聘考試題
- 內(nèi)分泌科病區(qū)安全防護(hù)
- 內(nèi)分泌甲狀腺科普
- 新年心愿活動(dòng)策劃方案(3篇)
- 綜合體項(xiàng)目管理制度(3篇)
- 獸藥管理培訓(xùn)
- 銷售合同管理制度流程模板(3篇)
- 《GAT 760.2-2008公安信息化標(biāo)準(zhǔn)管理分類與代碼 第2部分:標(biāo)準(zhǔn)級(jí)別代碼》專題研究報(bào)告深度
- 數(shù)字孿生方案
- 金融領(lǐng)域人工智能算法應(yīng)用倫理與安全評(píng)規(guī)范
- 2026長治日報(bào)社工作人員招聘勞務(wù)派遣人員5人備考題庫及答案1套
- 機(jī)動(dòng)車駕校安全培訓(xùn)課件
- 河道清淤作業(yè)安全組織施工方案
- 2025年役前訓(xùn)練考試題庫及答案
- 2024VADOD臨床實(shí)踐指南:耳鳴的管理課件
- 2026年七臺(tái)河職業(yè)學(xué)院單招職業(yè)技能測試題庫附答案
- 2021海灣消防 GST-LD-8318 緊急啟停按鈕使用說明書
- 煙花爆竹零售經(jīng)營安全責(zé)任制度
- 方小丹建筑地基基礎(chǔ)設(shè)計(jì)的若干問題課件
評(píng)論
0/150
提交評(píng)論