




已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第3章 數(shù)據(jù)庫和表的基本知識,(時間:6次課,12學(xué)時),第3章 數(shù)據(jù)庫和表的基本知識,學(xué)習(xí)目的與要求: 在Visual FoxPro中數(shù)據(jù)庫和表是最重要的部分,也是最基本的操作,要求熟悉數(shù)據(jù)庫建立、修改、打開、關(guān)閉等一系列基本操作。同時熟練掌握對表的建立、數(shù)據(jù)操作等一系列操作,并掌握相關(guān)命令的使用,為以后各章的學(xué)習(xí)打下扎實的基礎(chǔ)。 本章主要介紹數(shù)據(jù)庫、表的基本概念,數(shù)據(jù)庫的基本操作,表的基本操作等。,第3章 數(shù)據(jù)庫和表的基本知識,3.1 數(shù)據(jù)庫的基本知識 3.2 表的基本知識 3.3 本章實訓(xùn) 3.4 本章習(xí)題,3.1 數(shù)據(jù)庫的基本知識,數(shù)據(jù)庫的基本概念 數(shù)據(jù)庫的建立 數(shù)據(jù)庫的基本操作 數(shù)據(jù)庫是Visual FoxPro中數(shù)據(jù)管理最基礎(chǔ)的部分,也是最重要的內(nèi)容,本節(jié)將介紹數(shù)據(jù)庫的有關(guān)基本概念以及數(shù)據(jù)庫的基本操作。,3.1.1 數(shù)據(jù)庫的基本概念,在Visual FoxPro中,數(shù)據(jù)庫是一個邏輯上的概念和手段,通過一組系統(tǒng)文件將相互聯(lián)系的數(shù)據(jù)庫表及相關(guān)的數(shù)據(jù)庫對象統(tǒng)一組織和管理。Visual FoxPro數(shù)據(jù)庫除了包含有存儲數(shù)據(jù)的表外,還包含視圖、連接、存儲過程等數(shù)據(jù)庫對象。有關(guān)這些數(shù)據(jù)庫對象在后面章節(jié)中在做一一介紹。 在Visual FoxPro中,數(shù)據(jù)庫建立后是一個獨立的文件,其擴展名為.DBC,同時還有一個與之相關(guān)的數(shù)據(jù)庫備注文件擴展名為.DCT和一個數(shù)據(jù)庫索引文件擴展名為.DCX。就是在數(shù)據(jù)庫建立后,磁盤上可以看到文件名相同,但擴展名分別為.DBC、.DCT、.DCX的三個文件,這三個文件用戶一般不能直接使用。,3.1.2 數(shù)據(jù)庫的建立,建立數(shù)據(jù)庫的方法一般有三種方法: 1. 在項目管理器中建立數(shù)據(jù)庫 首先打開項目管理器進入界面圖3.1所示,首先單擊【數(shù)據(jù)】選項卡,在里面選擇【數(shù)據(jù)庫】,然后單擊【新建】按鈕,彈出如圖3.2所示的對話框,單擊【新建數(shù)據(jù)庫】,進入創(chuàng)建對話框如圖3.3所示,在這里選擇數(shù)據(jù)庫所要保存的位置和輸入數(shù)據(jù)庫的名字,然后單擊【保存】按鈕,這樣數(shù)據(jù)庫就建立成功了。,圖3.1,圖3.2,圖3.2,2. 使用【新建】對話框建立數(shù)據(jù)庫 首先在【文件】菜單里選擇【新建】或單擊工具欄的【新建】按鈕圖標,打開如圖3.4所示的【新建】對話框。在對話框里選擇【數(shù)據(jù)庫】,然后單擊【新建文件】按鈕,進入如圖3.3,然后按在項目管理器中的建立數(shù)據(jù)庫的操作進行。,圖3.4,3. 使用命令建立數(shù)據(jù)庫 【命令格式】 CREATE DATABASE DatebaseName 【命令說明】 參數(shù)DatebaseName指的是數(shù)據(jù)庫的名,用戶可以指定所創(chuàng)建的數(shù)據(jù)庫名,也可以不指定;如果不指定將進入如圖3.3所示的對話框要求用戶輸入數(shù)據(jù)庫名。 【例3-1】在命令窗口中創(chuàng)建名為成績管理的數(shù)據(jù)庫。命令如下: CREATE DATABASE 成績管理,3.1.3 數(shù)據(jù)庫的基本操作,打開數(shù)據(jù)庫 修改數(shù)據(jù)庫 關(guān)閉數(shù)據(jù)庫 刪除數(shù)據(jù)庫,1.打開數(shù)據(jù)庫,要使用數(shù)據(jù)庫就必須先打開數(shù)據(jù)庫,打開數(shù)據(jù)庫的方法也有三種: (1)在項目管理器中打開 首先打開項目管理器進入界面圖3.1所示,首先單擊【數(shù)據(jù)】選項卡,在里面選擇【數(shù)據(jù)庫】,然后單擊【數(shù)據(jù)庫】左邊的“”,彈出如圖3.5所示的界面,然后選中要打開的數(shù)據(jù)庫名,單擊【打開】按鈕,數(shù)據(jù)庫就自動打開,可以在工具欄看到如圖3.6所示的打開數(shù)據(jù)庫的標志。,圖3.5,(2)使用【打開】對話框打開 首先在【文件】菜單里選擇【打開】或單擊工具欄的【打開】按鈕圖標,出現(xiàn)如圖3.7所示的【打開】對話框。在對話框里【文件類型】選擇【數(shù)據(jù)庫(*.dbc)】,然后選擇查找范圍,找到所要打開數(shù)據(jù)庫名的位置,選中數(shù)據(jù)庫名,單擊【確定】按鈕,打開數(shù)據(jù)庫進入如圖3.8所示的界面。,圖3.6,圖3.7,圖3.8,注意:在打開對話框中有“以只讀方式打開”和“獨占”復(fù)選框可以選擇,這里“以只讀方式打開”指的數(shù)據(jù)庫打開后不能進行修改;而“獨占”指的不允許其他用戶在同一時刻使用該數(shù)據(jù)庫。 (3)使用命令打開 在命令窗口中可以使用命令打開已經(jīng)存在的數(shù)據(jù)庫。 【命令格式】 OPEN DATABASE DatebaseName 【命令說明】DatebaseName指要打開的數(shù)據(jù)庫名。也可以不用,就彈出【打開】對話框用以打開指定的數(shù)據(jù)庫名。 【例3-2】打開例3-1所創(chuàng)建的數(shù)據(jù)庫。命令如下: OPEN DATABASE 超市管理,2.修改數(shù)據(jù)庫,(1)在項目管理器中修改 首先打開項目管理器進入界面圖3.1所示,首先單擊【數(shù)據(jù)】選項卡,在里面選擇【數(shù)據(jù)庫】,然后單擊【數(shù)據(jù)庫】左邊的“”,彈出如圖3.5所示的界面,然后選中要修改的數(shù)據(jù)庫名,單擊【修改】按鈕,彈出如圖3.8所示的界面。 (2)使用【打開】對話框打開后修改 與數(shù)據(jù)庫打開的第二種方法一樣。 (3)使用命令修改 【命令格式】 MODIFY DATABASE DatebaseName 【命令說明】DatebaseName指要修改的數(shù)據(jù)庫名。也可以不用,就彈出【打開】對話框用以打開指定所要修改的數(shù)據(jù)庫名。,圖3.5,【例3-3】修改例3-1所創(chuàng)建的數(shù)據(jù)庫。命令如下: MODIFY DATABASE 超市管理,3.關(guān)閉數(shù)據(jù)庫,(1)在項目管理器中關(guān)閉 首先打開項目管理器進入界面圖3.5所示,然后選中已經(jīng)打開的數(shù)據(jù)庫名,單擊【關(guān)閉】按鈕就可以關(guān)閉該數(shù)據(jù)庫,可以在工具欄中看到該數(shù)據(jù)庫已經(jīng)關(guān)閉,如圖3.9所示。,圖3.9,(2)使用命令關(guān)閉 【命令格式】 CLOSE DATABASE 【命令說明】 該命令是關(guān)閉當前所打開的數(shù)據(jù)庫。 【例3-4】關(guān)閉例3-2所打開的數(shù)據(jù)庫。命令如下: CLOSE DATABASE,4.刪除數(shù)據(jù)庫,(1)在項目管理器中刪除 首先打開項目管理器進入界面如圖3.5所示,然后選中所要刪除的數(shù)據(jù)庫名,單擊【移去】按鈕,彈出如圖3.10所示的對話框。這里有【移去】和【刪除】兩個按鈕選擇,如果選擇【移去】按鈕該數(shù)據(jù)庫并沒有從磁盤上刪除,而是把該數(shù)據(jù)庫從該項目管理器中移去,但還可以使用該數(shù)據(jù)庫;如果選擇【刪除】就可以真正把該數(shù)據(jù)庫從磁盤上刪除,不可以在使用該數(shù)據(jù)庫。,圖3.10,(2)使用命令刪除 【命令格式】 DELETE DATABASE DatabaseName 【命令說明】 該命令是刪除已經(jīng)關(guān)閉了的數(shù)據(jù)庫,刪除之前必須先關(guān)閉該數(shù)據(jù)庫。 【例3-5】刪除例3-4所關(guān)閉的數(shù)據(jù)庫。命令如下: DELETE DATABASE 超市管理,3.2 表的基本知識,表的基本概念 表的建立 表的基本操作 排序和索引,3.2.1 表的基本概念,表是數(shù)據(jù)庫中的重要數(shù)據(jù)對象,在關(guān)系數(shù)據(jù)庫中將關(guān)系也稱為表,表是有表結(jié)構(gòu)和表數(shù)據(jù)組成。表結(jié)構(gòu)就是字段,表數(shù)據(jù)就是記錄。一般建立表以后在磁盤有一個擴展名為.DBF的文件,它是表的最主要文件,如果有備注或通用型字段則還有一個擴展名為.FPT的備注文件。 在Visual Foxpro中,表有兩種表,就是數(shù)據(jù)庫表和自由表。數(shù)據(jù)庫表是依附于一個指定數(shù)據(jù)庫的表;而自由表是不依附于任何一個數(shù)據(jù)庫。前者支持長表名、長字段名,給表設(shè)置主索引、默認值、規(guī)則、觸發(fā)器,而后者不具備。但兩種表都是一個獨立的.DBF。 現(xiàn)將表結(jié)構(gòu)的一些基本內(nèi)容和概念作以下說明:,1. 字段名 字段名就是關(guān)系的屬性名和表的列名。一個表有若干列組成,每一列都有自己的唯一名字,就是字段名,以后可以通過字段名直接引用表中的數(shù)據(jù)。字段名的命名規(guī)則如下: (1)自由表字段名最長為10個字符。 (2)數(shù)據(jù)庫表字段名最長為128個字符。 (3)字段名必須以字母或漢字開頭。 (4)四段名可以由字母、漢字、數(shù)字和下劃線組成。 (5)字段名不能包含空格。,2. 字段數(shù)據(jù)類型和寬度 字段數(shù)據(jù)類型是存儲在字段中的值的數(shù)據(jù)類型,可以通過寬度來決定存儲數(shù)據(jù)的大小和精度。其主要的數(shù)據(jù)類型有以下幾種: (1)字符型(C) 一般字段存儲的內(nèi)容由字母、數(shù)字、特殊符號或標點等組成時,該字段可以設(shè)置成字符型。它的長度最多達254個字符,比如用戶的名字。 (2)貨幣型(Y) 用于保存貨幣類型的數(shù)據(jù)它占8個字節(jié),數(shù)值范圍為-922337203685477.5808922337203685477.5807。它的小數(shù)位數(shù)固定為4為,整數(shù)位最大達15位。 (3)數(shù)值型(N) 用于保存整數(shù)或小數(shù),它的長度可以達20位,但長度包括整數(shù)位數(shù)、小數(shù)點、小數(shù)位數(shù)。,(4)日期型(D) 用于保存只含年、月、日的日期數(shù)據(jù),其范圍為公元0年1月1日9999年12月31日。寬度固定為8位。 (5)日期時間型(T) 用于保存還有時間和時間的數(shù)據(jù),寬度也為8位。 (6)邏輯型(L) 用于保存字段內(nèi)容只有兩種結(jié)果供選擇,它包含兩個值真(.T.)和假(.F.)。 (7)通用型(G) 用于保存電子表格、文檔、圖片等OLE信息,它在表中只占4個字節(jié)。 (8)備注型() 用于保存數(shù)據(jù)長度難于確定的文本信息,它在表中占個字節(jié)。其重要內(nèi)容存放到了由表同名的擴展名為.DBT的文件中,該文件最大達2GB。,(9)整型(I) 用于保存整數(shù)數(shù)據(jù),它的寬度為4個字節(jié)。 (10)雙精度 用于保存數(shù)值精度要求很高的數(shù)據(jù),它所表示的數(shù)值對多可精確到小數(shù)點后7位。 (11)浮點型 用于保存數(shù)值的數(shù)據(jù),其長度可達20位。 等等。用戶可以根據(jù)實際情況來設(shè)置數(shù)據(jù)類型及相應(yīng)的數(shù)據(jù)寬度。,3.2.2 表的建立,建立自由表的方法一般有三種方法: 1. 在項目管理器中建立表 首先打開項目管理器進入界面圖3.1所示,首先單擊【數(shù)據(jù)】選項卡,在里面選擇【自由表】,然后單擊【新建】按鈕,彈出如圖3.11所示的對話框。,圖3.11,單擊【新建表】,進入創(chuàng)建對話框如圖3.12所示。 在這里選擇表所要保存的位置和輸入表的名字,如“學(xué)生”,然后單擊【保存】按鈕,彈出如圖3.13所示的【表設(shè)計器】對話框。,圖3.12,圖3.13,在上圖中定義表結(jié)構(gòu),設(shè)置字段名、字段類型、字段寬度或小數(shù)位數(shù),以及是否允許為NULL。設(shè)置完成后單擊【確定】按紐,系統(tǒng)彈出提示對話框如圖3.14所示 。,圖3.14,在該對話框中如果單擊【是】按鈕,將進入記錄輸入窗口如圖3.15所示;如果單擊【否】按鈕,則保存表的結(jié)構(gòu)但沒記錄。,圖3.15,2. 使用【新建】對話框建立表 首先在【文件】菜單里選擇【新建】或單擊工具欄的【新建】按鈕圖標,打開如圖3.4所示的【新建】對話框。在對話框里選擇【表】,然后單擊【新建文件】按鈕,進入如圖3.12,然后按在項目管理器中的建立表的操作進行。 3. 使用命令建立表 【命令格式】 CREATE TableName 【命令說明】 參數(shù)TableName指的表名,用戶可以指定所創(chuàng)建的自由表名,也可以不指定;如果不指定將進入如圖3.12所示的對話框要求用戶輸入表名。,【例3-6】在命令窗口中創(chuàng)建名為SP的自由表。命令如下: CREATE SP &該命令直接進入表設(shè)計器。 或者 CREATE &該命令直接進入圖3.12所示,然后輸入表名SP。 4. 在數(shù)據(jù)庫設(shè)計器中建立數(shù)據(jù)庫表 利用數(shù)據(jù)庫設(shè)計器建立的表稱為數(shù)據(jù)庫表。建立的表包括在數(shù)據(jù)庫設(shè)計器中,它比自由表的功能更多些,可以在里面設(shè)置規(guī)則、默認值、輸入格式等,也可以給多個表之間建立關(guān)系等?,F(xiàn)將有關(guān)建立數(shù)據(jù)庫表的方法作如下介紹。 首先打開已經(jīng)存在的數(shù)據(jù)庫成績管理,進入數(shù)據(jù)庫設(shè)計器,如圖3.16所示。,圖3.16,2. 使用【新建】對話框建立表 首先在【文件】菜單里選擇【新建】或單擊工具欄的【新建】按鈕圖標,打開如圖3.4所示的【新建】對話框。在對話框里選擇【表】,然后單擊【新建文件】按鈕,進入如圖3.12,然后按在項目管理器中的建立表的操作進行。 3. 使用命令建立表 【命令格式】 CREATE TableName 【命令說明】 參數(shù)TableName指的表名,用戶可以指定所創(chuàng)建的自由表名,也可以不指定;如果不指定將進入如圖3.12所示的對話框要求用戶輸入表名。,然后單擊【數(shù)據(jù)庫】菜單下的【新建表】選項,或者數(shù)據(jù)庫設(shè)計器的快捷菜單中單擊選擇【新建表】,出現(xiàn)如圖3.11、圖3.12所示,輸入表名“學(xué)生”,進入數(shù)據(jù)庫表設(shè)計器,如圖3.17所示。在里面依次輸入字段名、類型、寬度或小數(shù)位數(shù)等。還可以在“顯示”區(qū)域中設(shè)置相應(yīng)字段的輸入掩碼(限制輸入記錄必須滿足的格式要求)、標題(給字段取瀏覽數(shù)據(jù)時的長名)等;在“字段有效性”區(qū)域中可以設(shè)置相應(yīng)字段的規(guī)則(該字段的值必須符合這里的規(guī)則,規(guī)則可以是邏輯或關(guān)系表達式)、信息(當違反規(guī)則時所顯示的提示信息)、默認值(該字段在不輸入值的情況下指定一個值)等。,圖3.17,3.2.3 表的基本操作,表的打開 表結(jié)構(gòu)操作 表數(shù)據(jù)的添加 表數(shù)據(jù)瀏覽 記錄定位 表數(shù)據(jù)的插入 表數(shù)據(jù)的修改 表數(shù)據(jù)的刪除 表的復(fù)制 表的關(guān)閉 數(shù)據(jù)庫表的其他操作,1. 表的打開,表的打開方法比較多,在這里介紹一些常用的方法: (1)在項目管理器中打開表 首先打開項目管理器進入界面圖3.1所示,首先單擊【數(shù)據(jù)】選項卡,在里面選擇【表】,然后單擊【表】左邊的“”,彈出如圖3.18所示的界面。,圖3.18,然后選中要修改的表名“學(xué)生”,單擊【修改】按鈕,彈出如圖3.13所示的界面。 (2)使用【打開】對話框打開表 首先在【文件】菜單里選擇【打開】或單擊工具欄的【打開】按鈕圖標,出現(xiàn)如圖3.19所示的【打開】對話框。 然后在對話框里“文件類型”選擇“表(*.dbf)”,然后選擇查找范圍,找到所要打開表名的位置,選中表名“學(xué)生”,單擊【確定】按鈕就完成表的打開。,圖3.19,注意 :在打開對話框中有“以只讀方式打開”和“獨占”復(fù)選框可以選擇,這里“以只讀方式打開”指的表打開后不能進行修改;而“獨占”指的不允許其他用戶在同一時刻使用該表,但可以修改表結(jié)構(gòu)和表數(shù)據(jù)。 3)使用命令打開表 【命令格式】 USE TableName 【命令說明】TableName 指要打開的表名。也可以不用,就彈出【打開】對話框用以打開指定路徑下的表名。 【例3-7】打開“學(xué)生”表。命令如下: USE 學(xué)生 &打開表后,出現(xiàn)如圖3.20所示的狀態(tài)欄,表明已經(jīng)打開表,圖3.20,2 .表結(jié)構(gòu)操作,要對表結(jié)構(gòu)進行修改操作必須先要打開表,然后在能進行相應(yīng)的操作。其重要操作為: (1)表設(shè)計器操作 首先打開指定表,然后單擊【顯示】菜單下的【表設(shè)計器】選項,進入如圖3-13所示,然后在里面進行修改字段表結(jié)構(gòu)、插入字段、刪除字段等,最后單擊【確定】按鈕。 (2)命令操作 首先使用命令瀏覽表結(jié)構(gòu)。 【命令格式】 LIST STRUCTURE | DISPLAY STRUCTURE 【命令說明】 該命令就是瀏覽當前所使用表的結(jié)構(gòu)。但只能瀏覽不能修改。,然后進入修改表界面,打開表設(shè)計器。 【命令格式】 MODIFY STRUCTURE 【命令說明】 該命令就是打開【表設(shè)計器】,進入如圖3-13所示,進行修改表結(jié)構(gòu)。 【例3-9】修改“學(xué)生”表的表結(jié)構(gòu)。命令如下: USE 學(xué)生 MODI STRU &進入表設(shè)計器如圖3.13所示。,圖3.21,【例3-8】瀏覽“學(xué)生”表的表結(jié)構(gòu)。命令如下: USE 學(xué)生 LIST STRU &顯示結(jié)構(gòu)內(nèi)容如圖3.21所示。,3. 表數(shù)據(jù)的添加,(1)菜單操作 在表已經(jīng)打開的情況下,并且是以非只讀方式打開,單擊【顯示】菜單下的【追加方式】,進入如圖3.22所示的界面,然后輸入數(shù)據(jù)(數(shù)據(jù)參見圖3.22),單擊【X】關(guān)閉窗口,就保存了所輸入的數(shù)據(jù)。,圖3.22,(2)命令操作 【命令格式】 APPEND BLANK 【命令說明】 該命令用于在當前表最后一條記錄后添加一條新的記錄,只能在最后添加。如果帶BLANK參數(shù)指添加一條空記錄。 【例3-10】給“學(xué)生”表添加一條空記錄。命令如下: APPE BLAN &給當前添加一條空記錄。,4. 表數(shù)據(jù)瀏覽,(1)菜單瀏覽 首先打開表,然后單擊【顯示】菜單下的【瀏覽】選項,進入如圖3-22所示。然后瀏覽到當前表的所有數(shù)據(jù)。 (2)命令瀏覽 【命令格式一】 LIST | DISPLAY FIELDS FieldList Scope FOR lExpression1 【命令說明】 該命令主要用于顯示表中的數(shù)據(jù)。LIST是顯示所有數(shù)據(jù),而DISPLAY只顯示當前記錄。這兩條命令只能用于瀏覽不可以修改。FIELDS FieldList參數(shù)用于指定所要顯示的字段。Scope參數(shù)指顯示記錄的范圍,默認為ALL。FOR lExpression1參數(shù)用于設(shè)置記錄的顯示條件。,【例3-11】顯示“學(xué)生”表中記錄數(shù)據(jù)。命令如下: USE 學(xué)生 DISP &顯示學(xué)生表的第一條記錄。 LIST &顯示學(xué)生表的所有記錄。 LIST FOR 性別=”男” &顯示學(xué)生表的所有男生記錄。 【命令格式二】 BROWSE FIELDS FieldList FOR lExpression1 【命令說明】 該命令用于瀏覽顯示數(shù)據(jù),具有修改數(shù)據(jù)的功能。FIELDS FieldList參數(shù)用于顯示瀏覽當前表的指定字段,字段之間用逗號分隔。FOR lExpression1參數(shù)用于顯示瀏覽滿足條件的記錄。 【例3-12】瀏覽學(xué)生表中所有的女生情況。命令如下: BROWSE FOR 性別=”女” &顯示學(xué)生表的所有女生記錄,如圖3.23所示。,圖3.23,5. 記錄定位,(1)絕對定位命令 【命令格式】 GO RECORED nRecordNumber 或 GO TOP | BOTTOM 【命令說明】 該命令用于將記錄指針定位到指定的記錄上,使該記錄成為當前記錄。nRecordNumber是指所定位的記錄號,可以用函數(shù)RECNO()來測試當前記錄的記錄號。TOP指定位到表的首記錄。BOTTOM指定位到表的尾記錄。,【例3-13】絕對定位命令在“學(xué)生”表中應(yīng)用,命令序列如下: USE 學(xué)生 GO 2 &定位到第2條記錄 ?RECNO() &測試記錄號為2 2 GO TOP &定位到首記錄 GO BOTT &定位到尾記錄 (2)相對定位命令 【命令格式】 SKIP nRecords 【命令說明】 該命令用于將記錄指針相對當前記錄向前或向后移動N條記錄。nRecords可以為正整數(shù),也可以為負整數(shù)。如果為正整數(shù),記錄指針相對當前位置向后移動;如果為負整數(shù),記錄指針相對當前位置向前移動。,這里為了避免移動到文件頭和文件尾,可以借助測試函數(shù)是否到文件頭函數(shù)BOF()和是否到文件尾函數(shù)EOF()來檢測指針移動位置情況。 【例3-14】定位并顯示學(xué)生表指定的記錄。命令如下: USE 學(xué)生 ?BOF(),EOF(),RECNO() &顯示為.F.,.F.,1 SKIP+2 &定位到第3號記錄 DISP SKIP-1 &定位到第2號記錄 DISP (3)條件定位命令 【命令格式】 LOCATE FOR lExpression1 COUNTINUE,【命令說明】 該命令用于定位到滿足條件的記錄上。找到滿足條件的繼續(xù)將定位在第一個上,如果還要定位到第二個滿足條件的記錄上,則用COUNTINUE。可以利用FOUND()函數(shù)來測試是否找到滿足條件的記錄,如果找到其值為.T.,否則為.F.。 【例3-15】定位并顯示男生的情況。命令如下: USE 學(xué)生 LOCATE FOR 性別=”男” &定位到第一個男生的記錄,為徐小小 ?FOUND() &結(jié)果為.T. DISP COUNT &定位到第二個男生的記錄,為王三 ?FOUND() DISP,(4)菜單操作 先瀏覽指定表的數(shù)據(jù),進入如圖3.20所示的界面,然后單擊【表】菜單下的【轉(zhuǎn)到記錄】選項,在里面選擇【第一個】、【最后一個】、【下一個】、【上一個】、【記錄號】、【定位】則定位到相應(yīng)的記錄。與相應(yīng)的命令功能一樣,在此不在敘述。,6. 表數(shù)據(jù)的插入,前面所講的數(shù)據(jù)添加命令只能在表最后添加數(shù)據(jù),但實際中為了更靈活的給表插入數(shù)據(jù),則使用插入命令。 【命令格式】 INSERT BEFORE BLANK 【命令說明】 該命令用于在當前表任何一條記錄后插入一條新的記錄。如果帶BLANK參數(shù)指插入一條空記錄。帶BEFORE參數(shù)指在當前記錄之前插入一條記錄。,【例3-16】給“學(xué)生”表的第一條前后各插入一條空記錄。命令序列如下: USE 學(xué)生 INSERT BLANK &在第一條的后面插入一條空記錄。 GO TOP INSERT BEFORE BALANK &在第一條的前面插入一條空記錄。 BROW &瀏覽結(jié)果如圖3.24所示。,圖3.24,7. 表數(shù)據(jù)的修改,【命令格式】 REPLACE Scope FieldName1 WITH eExpression1 ,FieldName2 WITH eExpression2 FOR lExpression1 【命令說明】 (1)該命令一般用于修改當前表的數(shù)據(jù),具有成批修改功能。 (2)Scope指修改記錄的范圍,默認為當前記錄。如果要修改所有記錄,則使用ALL。 (3)FieldName1 WITH eExpression1指所要修改的字段和修改字段的值。 (4)FOR lExpression1指對滿足條件的記錄進行修改。,【例3-17】修改“學(xué)生”表中的空記錄。命令序列如下: USE 學(xué)生 REPL ALL 性別 WITH “男”,是否團員 WITH .T. FOR LEN(ALLTRIM(學(xué)號)=0 &修改表中所有學(xué)號為空的記錄,結(jié)果如圖3.25示。,圖3.25,8. 表數(shù)據(jù)的刪除,(1)邏輯刪除記錄 【命令格式】 DELETE Scope FOR lExpression 【命令說明】 該命令是對所要刪除的記錄做刪除標記,但并不物理刪除記錄。 【例3-18】刪除“學(xué)生”表中的部分數(shù)據(jù)。命令序列如下: USE 學(xué)生 DELE FOR 性別=”男” &給所有為男生的記錄做刪除標記。 DELE FOR LEN(ALLTRIM(學(xué)號)=0 &給所有學(xué)號為空的記錄做刪除標記。,(2)恢復(fù)刪除標記 【命令格式】 RECALL Scope FOR lExpression 【命令說明】 該命令是對帶刪除標志的記錄去掉刪除標記。 【例3-19】恢復(fù)做了刪除標記記錄。命令序列如下: USE 學(xué)生 RECALL FOR 性別=”男” &去掉所有做了刪除標記的男生記錄。 RECALL ALL &去掉所有做了刪除標記記錄。 (3)物理刪除記錄 【命令格式】 PACK 【命令說明】 該命令是對所帶有刪除標記的記錄物理從磁盤刪除,刪除后不能在恢復(fù)。該命令后不能帶什么參數(shù)。,【例3-20】物理刪除所有學(xué)號為空的記錄。命令序列如下: USE 學(xué)生 DELE FOR LEN(ALLTRIM(學(xué)號)=0 &作了刪除標記的記錄,如圖3.26示,圖中帶黑色方塊的就是刪除標記。 PACK &物理刪除所有做了刪除標記的記錄,刪除后結(jié)果如圖3.27示。,圖3.26,圖3.27,(4)物理刪除所有記錄 【命令格式】 ZAP 【命令說明】 該命令是對當前表所有記錄全部從磁盤物理刪除,不需要做刪除標記,刪除后不能在恢復(fù)。,9. 表的復(fù)制,(1)表數(shù)據(jù)復(fù)制 【命令格式】 COPY TO NewTable FIELDS FieldList FOR lExpression 【命令說明】 該命令是當前表的數(shù)據(jù)復(fù)制到一個新表NewTable。如果帶FIELDS FieldList參數(shù)指定所復(fù)制的新表中的字段,帶FOR lExpression參數(shù)指定新表中只有滿足條件的記錄。 【例3-21】復(fù)制“學(xué)生”表的數(shù)據(jù)。命令序列如下: USE 學(xué)生 COPY TO XS1 &把學(xué)生表中所有數(shù)據(jù)復(fù)制到XS1表中 COPY TO XS2 FOR 是否團員=.T. &把學(xué)生表中所有團員復(fù)制到XS2表中 USE XS1 BROW USE XS2 BROW,(2)表結(jié)構(gòu)復(fù)制 【命令格式】 COPY TO NewTable STRUCTURE FIELDS FieldList 【命令說明】 該命令是對當前表的結(jié)構(gòu)復(fù)制一個新表NewTable結(jié)構(gòu),復(fù)制后的新表沒有記錄。 【例3-22】復(fù)制“學(xué)生”表的結(jié)構(gòu)。命令序列如下: USE 學(xué)生 COPY TO XS1 STRU &把學(xué)生表的結(jié)構(gòu)復(fù)制到XS1表中。 USE XS1 BROW,10. 表的關(guān)閉,【命令格式】 USE 【命令說明】 關(guān)閉當前所打開和正使用的表,11.數(shù)據(jù)庫表的其他操作,(1)自由表添加到數(shù)據(jù)庫 有時給了給表設(shè)置規(guī)則或默認侄,需要把自由表變成數(shù)據(jù)庫表,其方法是:在【數(shù)據(jù)庫】菜單或快捷菜單中單擊【添加表】選項,彈出打開表的對話框,選擇所要添加的表,然后單擊【確定】按鈕,就把自由表變成了數(shù)據(jù)庫表。 (2)數(shù)據(jù)庫表結(jié)構(gòu)的修改 在數(shù)據(jù)庫設(shè)計器中,選中所要修改的表,然后在【數(shù)據(jù)庫】菜單或快捷菜單中單擊【修改】選項,進入如圖3.17所示,修改表的結(jié)構(gòu),單擊【確定】按鈕完成修改。 (3)數(shù)據(jù)庫表數(shù)據(jù)的瀏覽 在數(shù)據(jù)庫設(shè)計器中,選中所要瀏覽的表,然后在【數(shù)據(jù)庫】菜單或快捷菜單中單擊【瀏覽】選項,進入如圖3.22所示,可以歸表中的數(shù)據(jù)進行修改、刪除、追加等操作。,(4)數(shù)據(jù)庫表的移去 有時可以根據(jù)需要將數(shù)據(jù)庫表移出成為自由表,其方法是:先在數(shù)據(jù)庫設(shè)計器中選中所要移出的表,然后在【數(shù)據(jù)庫】菜單或快捷菜單中單擊【移去】或【刪除】選項,彈出對話框如圖3.28所示。單擊【移去】按鈕,則把數(shù)據(jù)庫表變成了自由表。 (5)數(shù)據(jù)庫表的刪除 數(shù)據(jù)庫中不需要的數(shù)據(jù)庫表可以刪除,刪除之后不能在恢復(fù)。操作方法與移去表的方法基本一樣,只是在圖3.28中單擊【刪除】按鈕,則把所選擇的表物理刪除。,圖3.28,3.2.4 排序和索引,排序 索引 索引在數(shù)據(jù)庫設(shè)計器的應(yīng)用,1. 排序,排序是物理排序,可以對表中的記錄物理地按順序重新排列。其排序的命令是SORT。 【命令格式】 SORT TO TableName ON FieldName1/A|/D/C, FieldName2/A|/D/C FOR lExpression1 FIELDS FieldNameList 【命令說明】 (1)TableName是排序結(jié)果所要保存的新表名。 (2)FieldName是排序所指定字段名。 (3)/A|/D/C是排序的順序。/A指明對指定字段進行升序排序,默認升序。/D指明對指定字段進行降序排序。/C指排序不區(qū)分大小寫。 (4)FOR lExpression1篩選所要參加排序的數(shù)據(jù)。默認為所有記錄。 (5)FIELDS FieldNameList排序后新表所要包含的字段列表,默認為所有字段。,【例3-23】對“學(xué)生”表按系部編號的升序排序,系部相同的按年齡的從小到大排序。命令如下: USE 學(xué)生 SORT TO XS3 ON 系部編號,出生日期/D USE XS3 BROW 結(jié)果如圖3.29示。,圖3.29,2. 索引,Visual Foxpro中索引是由指針構(gòu)成的文件,這些指針邏輯上按照索引關(guān)鍵字值進行排序。但不改變表中記錄的物理順序。索引只要是為了加速對表數(shù)據(jù)的快速查詢操作。 l 索引分為4種類型 (1)主索引 在指定字段或表達式中不允許出現(xiàn)重復(fù)值,也就是設(shè)定為主關(guān)鍵字的索引。一個表只能有一個主索引,只有數(shù)據(jù)庫表才能建立主索引,自由表不能建立主索引。 (2)候選索引 類似主索引,要求字段的內(nèi)容具有唯一性,不能在表中重復(fù)多次。一個表可以有多個候選索引。數(shù)據(jù)庫表和自由表都可以建立候選索引。 (3)唯一索引 這里的唯一性指索引項的唯一,而不是字段值的唯一,沒有內(nèi)容相同的兩個記錄。它一指定字段的首次出現(xiàn)值為基礎(chǔ),相同只取一條記錄,并對記錄進行排序。一個表可以建立多個唯一索引。數(shù)據(jù)庫表和自由表都可以建立唯一索引。,(4)普通索引 一種常用的索引,主要用于邏輯排序,便于快速查詢。它不僅允許字段中出現(xiàn)重復(fù)值,并且索引項中也允許出現(xiàn)重復(fù)值。一個表可以建立多個普通索引。數(shù)據(jù)庫表和自由表都可以建立唯一索引。 l 建立和編輯索引的方法主要有兩種,一種是利用表設(shè)計器,一種是使用命令建立 (1)在表設(shè)計器中建立和編輯索引 首先打開表,進入表設(shè)計器界面如圖3.13所示,然后單擊【索引】選項卡,進入界面如圖3.30進行選擇設(shè)置,設(shè)置完成后單擊【確定】按鈕。,圖3.30,圖3.27中【索引名】用于設(shè)置索引的名稱?!绢愋汀坑糜谠O(shè)置要建立的索引類型,有四種供選擇。【表達式】可以包含一個字段,也可以是表達式?!竞Y選】用于設(shè)置滿足條件的數(shù)據(jù)進行索引。使用表設(shè)計器所建立的索引,其信息都包含在結(jié)構(gòu)復(fù)合索引.CDX中與表同名。 注意:在自由表中只能建立候選索引、唯一索引、普通索引,不能建立主索引。數(shù)據(jù)庫表不僅可以建立自由表中的索引,而且能夠建立主索引。 (2)使用命令建立索引 【命令格式】 INDEX ON eExpression TO IDXFileName|TAG TagName 【命令說明】 該命令用于對當前表的數(shù)據(jù)按指定的索引關(guān)鍵字建立索引。參數(shù)eExpression為索引關(guān)鍵字。參數(shù)IDXFileName是指建立的非結(jié)構(gòu)單索引,是單獨的.IDX索引,名字可以自由取,并且這種索引默認是升序,沒有降序。參數(shù)TAG TagName OF CDXFileName指建立的是結(jié)構(gòu)復(fù)合索引,索引名為TagName,擴展名為.CDX。,【例3-24】給“學(xué)生”表按性別的升序建立一普通索引。命令如下: USE 學(xué)生 INDEX ON 性別 TO XX1 BROW &瀏覽索引后的記錄,如圖3.31所示。 【例3-25】給“學(xué)生”表按性別的降序建立名為“性別1”的復(fù)合索引。命令如下: USE 學(xué)生 INDEX ON 性別 TAG 性別1 BROW &瀏覽索引后的記錄,如圖3.32所示。,圖3.31,圖3.32,3. 索引在數(shù)據(jù)庫設(shè)計器的應(yīng)用,(1)主索引的建立 由于自由表中是不能建立主索引,但有時為了保證表中數(shù)據(jù)的唯一性或者某字段不允許出現(xiàn)重復(fù)值,需要利用數(shù)據(jù)庫設(shè)計器為數(shù)據(jù)庫表建立主索引。其方法是:選擇所要設(shè)置主索引的表,進入【表設(shè)計器】對話框的【索引】選項卡,如圖3.30所示,然后在類型下給學(xué)號字段設(shè)置主索引。單擊【確定】按鈕完成主索引的建立。 (2)多表間關(guān)系的建立 首先打開“成績管理”數(shù)據(jù)庫設(shè)計器,給學(xué)生表以字段“學(xué)號”建立主索引,課程表以字段“課程號”建立主索引,選課表分別以字段“學(xué)號”和“課程號”建立普通索引。 然后用鼠標把學(xué)生表中學(xué)號主索引拖動選課表的學(xué)號普通索引,建立一對多的聯(lián)系;同樣的方法給課程表中課程號主索引和選課表中課程號普通索引建立一對多的聯(lián)系。如圖3.33所示。,圖3.33,(3)設(shè)置表間關(guān)系的參照完整性 參照完整性是指數(shù)據(jù)庫中的相關(guān)表之間的一種數(shù)據(jù)完整性約束規(guī)則,有更新、刪除、插入規(guī)則。要建立這里規(guī)則必須依賴于前面所建立的永久關(guān)系和清理數(shù)據(jù)庫。 更新規(guī)則:是指當主表中與從表連接的字段值發(fā)生變化時,從表如何處理對應(yīng)的數(shù)據(jù)。如果選擇【級聯(lián)】,則用連接字段主表的值自動修改從表對應(yīng)的記錄。如果選擇【限制】,若在從表中找到對應(yīng)的記錄,則禁止主表修改連接字段的值。如果選擇【忽略】,則可以隨意修改主表的數(shù)據(jù),不受從表的影響。 刪除規(guī)則:是指當主表刪除記錄時,從表如何處理對應(yīng)的記錄。如果選擇【級聯(lián)】,則刪除從表中與主表連接字段對應(yīng)的記錄。如果選擇【限制】,則禁止刪除主表中與從表連接字段對應(yīng)的記錄。如果選擇【忽略】,則可以隨意刪除主表的記錄,不受從表的影響。 插入規(guī)則:是指當給從表插入記錄時,與連接階段相關(guān)的主表如何處理該操作。如果如果選擇【限制】,如果在主表中找不到對應(yīng)的連接字段值,則禁止從表插入記錄。如果選擇【忽略】,則可以隨意給從表插入記錄,不受主表的影響。,【例3-26】給“學(xué)生管理”數(shù)據(jù)庫中的學(xué)生、課程、選課表設(shè)置完整性。操作步驟如下: 首先給這三表按圖3.33建立好永久關(guān)系。然后單擊【數(shù)據(jù)庫】菜單下的【清理數(shù)據(jù)庫】,執(zhí)行清理數(shù)據(jù)庫操作。清理完成后單擊【數(shù)據(jù)庫】菜單下的【編輯參照完整(I)】,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)院信息化建設(shè)新趨勢:電子病歷系統(tǒng)醫(yī)療信息化技術(shù)創(chuàng)新報告001
- 2025年醫(yī)院電子病歷系統(tǒng)優(yōu)化與醫(yī)療信息化產(chǎn)業(yè)生態(tài)協(xié)同創(chuàng)新模式實踐報告001
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式下的合同管理與合規(guī)性報告
- 2025年工業(yè)互聯(lián)網(wǎng)平臺量子通信技術(shù)在智能物流領(lǐng)域的應(yīng)用研究報告
- 風(fēng)格美學(xué)培訓(xùn)課件
- 2025年工業(yè)互聯(lián)網(wǎng)平臺區(qū)塊鏈智能合約安全防護技術(shù)與風(fēng)險評估報告
- 2025年財富管理行業(yè)客戶需求研究與服務(wù)升級策略報告
- 2025年儲能電池熱管理系統(tǒng)在智慧農(nóng)業(yè)領(lǐng)域的應(yīng)用前景報告
- 會計培訓(xùn)試講課件
- 證監(jiān)局法制培訓(xùn)課件下載
- 2025年 浙江省考行測考試試題附答案
- JJF 2252-2025機動車檢測用渦流式金屬探傷儀校準規(guī)范
- 2025年安徽亳州機場管理有限公司招聘筆試參考題庫含答案解析
- 2025年四川省遂寧市中考語文試卷及答案
- 2025至2030年中國酮洛芬行業(yè)市場發(fā)展調(diào)研及投資方向分析報告
- 人教版(2024)八年級下冊物理期末復(fù)習(xí):知識點清單+重難點考點 學(xué)案
- 2025年高考江蘇卷物理高考真題+解析(參考版)
- 四川省眉山市東坡區(qū)2023-2024學(xué)年高二下學(xué)期6月期末聯(lián)合考試數(shù)學(xué)試題(解析版)
- 2025新高考英語Ⅱ卷真題聽力原文
- 小學(xué)數(shù)學(xué)一年級下冊《思維能力》訓(xùn)練題(共6組-附答案)
- 2025年貴州茅臺酒廠集團招聘筆試參考題庫含答案解析
評論
0/150
提交評論