




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第二章數(shù)據(jù)庫(kù)的建立與基本操作第二章數(shù)據(jù)庫(kù)的建立與基本操作 表:保存在磁盤(pán)中的一張二維表。(表:保存在磁盤(pán)中的一張二維表。( .DBF/.FPT.DBF/.FPT) 與數(shù)據(jù)庫(kù)相關(guān)聯(lián)與數(shù)據(jù)庫(kù)相關(guān)聯(lián)的表叫的表叫數(shù)據(jù)庫(kù)表數(shù)據(jù)庫(kù)表 ;與數(shù)據(jù)庫(kù)無(wú)關(guān)聯(lián)與數(shù)據(jù)庫(kù)無(wú)關(guān)聯(lián)的表叫的表叫自由表自由表。 字段(字段(FieldField):表中的一列,規(guī)定了數(shù)據(jù)的特征。):表中的一列,規(guī)定了數(shù)據(jù)的特征。 記錄(記錄(RecordRecord):表中的一行,多個(gè)字段的集合。):表中的一行,多個(gè)字段的集合。 表結(jié)構(gòu)(表結(jié)構(gòu)(StructureStructure):存儲(chǔ)表記錄的一個(gè)公共結(jié)):存儲(chǔ)表記錄的一個(gè)公共結(jié)構(gòu)。構(gòu)。
2、要建立一張完整的表,必須先建立表的結(jié)構(gòu),要建立一張完整的表,必須先建立表的結(jié)構(gòu),然后再輸入記錄(數(shù)據(jù))。然后再輸入記錄(數(shù)據(jù))。2創(chuàng)建表結(jié)構(gòu)創(chuàng)建表結(jié)構(gòu)表設(shè)計(jì)器方式表設(shè)計(jì)器方式用菜單或工具欄打開(kāi)用菜單或工具欄打開(kāi)“表設(shè)計(jì)器表設(shè)計(jì)器”- - 命令方式命令方式CREATE ? CREATE ? | | 表名表名 “項(xiàng)目管理器項(xiàng)目管理器”中的中的“新建新建”SQLSQL命令方式命令方式 格式:格式: CREATE TABLE | DBF CREATE TABLE | DBF 表文件名表文件名 (字段名(字段名1 1 字段類(lèi)型字段類(lèi)型 (字段寬度字段寬度 ,小數(shù)位數(shù)小數(shù)位數(shù)) , ,字段名字段名2 2
3、字段類(lèi)型字段類(lèi)型 (字段寬度字段寬度 ,小數(shù)位數(shù)小數(shù)位數(shù)))功能:創(chuàng)建一個(gè)含有指定字段的表。功能:創(chuàng)建一個(gè)含有指定字段的表。 3向表中輸入數(shù)據(jù)(記錄)向表中輸入數(shù)據(jù)(記錄) 記錄的輸入記錄的輸入立即輸入記錄立即輸入記錄瀏覽狀態(tài)下追加記錄瀏覽狀態(tài)下追加記錄用用INSERT-SQLINSERT-SQL命令追加記錄命令追加記錄用用APPENDAPPEND命令追加記錄命令追加記錄APPENDAPPENDAPPEND FROM APPEND FROM 表文件名表文件名:從其他表中追加記錄。從其他表中追加記錄。APPEND FROM APPEND FROM 文本文件名文本文件名 SDFSDF 從文本文件添
4、加。從文本文件添加。從其他類(lèi)型的文件追加記錄從其他類(lèi)型的文件追加記錄4INSERT-SQL命令命令格式格式1:1:INSERT INTO INSERT INTO 表名表名 (字段字段1 1 , ,字段字段2 2 , );); VALUES ( VALUES (表達(dá)式表達(dá)式1 1 ,表達(dá)式表達(dá)式2,2,)格式格式2:2:INSERT INTO INSERT INTO 表名表名 FROM ARRAY FROM ARRAY 數(shù)組名數(shù)組名| |FROM MEMVARFROM MEMVAR功能功能: :在表末尾追加一個(gè)包含指定字段值的記錄。新記在表末尾追加一個(gè)包含指定字段值的記錄。新記錄的值可以是錄的值
5、可以是VALUESVALUES后面的表達(dá)式的值,也可以是指后面的表達(dá)式的值,也可以是指定數(shù)組中各元素的數(shù)據(jù),或是指定的內(nèi)存變量。定數(shù)組中各元素的數(shù)據(jù),或是指定的內(nèi)存變量。例例. .向向student.dbfstudent.dbf表末尾添加一條記錄,內(nèi)容如下:表末尾添加一條記錄,內(nèi)容如下: 9601007,”9601007,”曹曉燕曹曉燕“,女女,信息學(xué)信息學(xué)INSERT INTO student (INSERT INTO student (學(xué)號(hào)學(xué)號(hào), ,姓名姓名, ,性別性別, ,專業(yè)專業(yè));); VALUE (9601007 , ” VALUE (9601007 , ”曹曉燕曹曉燕“ “ ,
6、 , 女女 , , 信息學(xué)信息學(xué)) )注意:追加進(jìn)表的記錄總在最后一條,被追加的表注意:追加進(jìn)表的記錄總在最后一條,被追加的表不需要先打開(kāi)。不需要先打開(kāi)。5INSERT-SQL命令命令DIMEN A(6)DIMEN A(6)A(1)=“9811110”A(1)=“9811110”A(2)=“A(2)=“張海洋張海洋”A(3)=“A(3)=“男男”INSERT INTO STUDENT FROM ARRAY AINSERT INTO STUDENT FROM ARRAY ABROWSEBROWSERELEASE ALL &RELEASE ALL &清除所有內(nèi)存變量清除所有內(nèi)存變量
7、學(xué)號(hào)學(xué)號(hào)=“9911101”=“9911101”姓名姓名=“=“劉長(zhǎng)江劉長(zhǎng)江”性別性別=“=“男男”INSERT INTO STUDENT FROM MEMVARINSERT INTO STUDENT FROM MEMVARBROWSEBROWSE6格式格式1 : 1 : APPEND blank in nWorkAreaAPPEND blank in nWorkArea 功能功能: : 在指定工作區(qū)表的末尾添加記錄。在指定工作區(qū)表的末尾添加記錄。說(shuō)明:說(shuō)明:blankblank:在指定表的末尾添加一空記錄。此時(shí):在指定表的末尾添加一空記錄。此時(shí)系統(tǒng)不會(huì)自動(dòng)打開(kāi)編輯窗口??梢栽谙到y(tǒng)不會(huì)自動(dòng)打開(kāi)
8、編輯窗口??梢栽赽rowsebrowse、changechange、editedit窗口中編輯新記錄內(nèi)容。窗口中編輯新記錄內(nèi)容。 in nWorkArea in nWorkArea: nWorkAreanWorkArea為工作區(qū)號(hào),為工作區(qū)號(hào),指定追加新記錄所在工作區(qū)。指定追加新記錄所在工作區(qū)。APPEND命令命令7格式格式2: 2: APPEND FROM FileName APPEND FROM FileName | | ? Fields FieldList Fields FieldList For Expression For Expression功能功能: : 從指定數(shù)據(jù)文件中讀取數(shù)據(jù)
9、,并追加到當(dāng)前表中來(lái)。從指定數(shù)據(jù)文件中讀取數(shù)據(jù),并追加到當(dāng)前表中來(lái)。說(shuō)明:說(shuō)明:FileNameFileName:文件名,指定讀取數(shù)據(jù)的文件。如果給出的文件名:文件名,指定讀取數(shù)據(jù)的文件。如果給出的文件名 不包含擴(kuò)展名,則默認(rèn)為表文件。不包含擴(kuò)展名,則默認(rèn)為表文件。?:顯示?:顯示“打開(kāi)打開(kāi)”文件對(duì)話框,從中選擇要讀取的數(shù)據(jù)文件。文件對(duì)話框,從中選擇要讀取的數(shù)據(jù)文件。Fields FieldListFields FieldList:為用逗號(hào):為用逗號(hào)(,)(,)分隔的字段名列表分隔的字段名列表, ,指出要追指出要追 加數(shù)據(jù)的字段。加數(shù)據(jù)的字段。For ExpressionFor Express
10、ion: ExpressionExpression為一邏輯表達(dá)式,作為篩選條為一邏輯表達(dá)式,作為篩選條件,當(dāng)其為件,當(dāng)其為“真真”(.T.T.)時(shí),滿足條件的記錄追加到當(dāng)前表)時(shí),滿足條件的記錄追加到當(dāng)前表中中, ,如果省略如果省略For,For,則文件數(shù)據(jù)全部追加到當(dāng)前表中則文件數(shù)據(jù)全部追加到當(dāng)前表中. .APPEND命令命令8例例1.1.向向student.dbfstudent.dbf表末尾添加一條記錄表末尾添加一條記錄 (9811002 (9811002 王小王小 男男 信息學(xué)信息學(xué) ) )。 USE STUDENTUSE STUDENT APPEND APPEND (在編輯窗口添加學(xué)號(hào)
11、(在編輯窗口添加學(xué)號(hào), ,姓名姓名, ,性別性別, ,專業(yè)的具體值)專業(yè)的具體值)或者或者: : INSERT INTO STUDENT ( INSERT INTO STUDENT (學(xué)號(hào)學(xué)號(hào), ,姓名姓名, ,性別性別, ,專業(yè)專業(yè)) ) ; VALUES (9811002,VALUES (9811002,王小王小,男男,信息學(xué)信息學(xué))例例2.2.向表向表score1.dbfscore1.dbf中添加兩條空白記錄。中添加兩條空白記錄。use score1use score1append blankappend blank append blank append blankbrowsebrow
12、se9例如:有兩個(gè)結(jié)構(gòu)完全相同的表例如:有兩個(gè)結(jié)構(gòu)完全相同的表STUDENT.DBFSTUDENT.DBF和和 TTT.DBF,TTT.DBF,用用VFPVFP命令命令(1 1)將)將TTT.DBFTTT.DBF的全部記錄添加到的全部記錄添加到STUDENT.DBFSTUDENT.DBF記錄的后面。記錄的后面。(2 2)將)將TTT.DBFTTT.DBF的女性記錄添加到的女性記錄添加到STUDENT.DBFSTUDENT.DBF記錄的后面。記錄的后面。(3 3)將)將TTT.DBFTTT.DBF的全部記錄的學(xué)號(hào),姓名,專業(yè)字段值添加到的全部記錄的學(xué)號(hào),姓名,專業(yè)字段值添加到STUDENT.DB
13、FSTUDENT.DBF記錄的后面(其他字段值為空)。記錄的后面(其他字段值為空)。USE STUDENTUSE STUDENTBROWSEBROWSEAPPEND FROM TTTAPPEND FROM TTTBROWBROWAPPEND FROM TTT FOR APPEND FROM TTT FOR 性別性別=“=“女女”APPEND FROM TTT FIELD APPEND FROM TTT FIELD 學(xué)號(hào),姓名,專業(yè)學(xué)號(hào),姓名,專業(yè)BROWSEBROWSE10用用“表表”菜單追加記錄菜單追加記錄1. 打開(kāi)打開(kāi)STUDENT.DBF,單擊單擊“顯示顯示”菜單的菜單的“瀏覽瀏覽”命令
14、命令, 出現(xiàn)出現(xiàn)STUDENT瀏覽窗口瀏覽窗口;2. 單擊單擊“表表”菜單的菜單的“追加記錄追加記錄”命令命令,在在“追追加加”來(lái)源窗口的來(lái)源窗口的“類(lèi)型類(lèi)型”框中選框中選“Table(Dbf)”,在在“來(lái)源于來(lái)源于”中選擇要追加記中選擇要追加記錄的表名錄的表名(TTT);3. 單擊單擊“確定確定”按鈕。按鈕。11表結(jié)構(gòu)的修改與復(fù)制表結(jié)構(gòu)的修改與復(fù)制 表設(shè)計(jì)器方式表設(shè)計(jì)器方式打開(kāi)表文件打開(kāi)表文件/ /【顯示】菜單【顯示】菜單/“/“表設(shè)計(jì)器表設(shè)計(jì)器”命令命令 命令方式命令方式MODIFY STRUCTURE MODIFY STRUCTURE 功能:打開(kāi)表設(shè)計(jì)器,從中可以修改當(dāng)前或選定表功能:打
15、開(kāi)表設(shè)計(jì)器,從中可以修改當(dāng)前或選定表 的結(jié)構(gòu)。的結(jié)構(gòu)。例:修改例:修改score.dbf,score.dbf,增加平均分字段增加平均分字段N(6,2)N(6,2)USE SCOREUSE SCOREMODIFY STRU MODIFY STRU ( (在表設(shè)計(jì)器中在表設(shè)計(jì)器中, ,增加平均分字段增加平均分字段N(6,2)N(6,2)12表結(jié)構(gòu)的修改表結(jié)構(gòu)的修改 ALTER TABLE-SQLALTER TABLE-SQL命令命令A(yù)LTER TABLE ALTER TABLE 表名表名 ADD | AlterADD | Alter COLUMNCOLUMN 字段名字段名 字段類(lèi)型字段類(lèi)型( (字
16、段寬度字段寬度 ,小數(shù)小數(shù))注意注意: :一個(gè)一個(gè)ALTERALTER命令一次只能對(duì)一個(gè)字段操作命令一次只能對(duì)一個(gè)字段操作ADD ADD 字段名:修改寬度字段名:修改寬度例例: :修改修改score.dbf,score.dbf,增加平均分字段增加平均分字段 N(6,2)N(6,2)ALTER TABLE score ADD ALTER TABLE score ADD 平均平均分分 n(6,2)n(6,2)ALTER ALTER 字段名:修改寬度字段名:修改寬度例例: :修改修改score.dbfscore.dbf的的“平均分平均分”字段字段 為為 N(3)N(3)ALTER TABLE sco
17、re ALTER ALTER TABLE score ALTER 平均分平均分 n(3)n(3)13表結(jié)構(gòu)的修改表結(jié)構(gòu)的修改ALTER TABLE ALTER TABLE 表名表名 RENAMERENAME 老字段名老字段名 TOTO 新字段名新字段名 功能功能: : 對(duì)表中指定的字段重新命名。對(duì)表中指定的字段重新命名。例例: :重命名重命名scorescore表中的表中的“平均分平均分”字段為字段為“平均成績(jī)平均成績(jī)”ALTER TABLE score RENAME ALTER TABLE score RENAME 平均分平均分 TO TO 平均成績(jī)平均成績(jī)ALTER TABLE ALTER
18、 TABLE 表名表名 Drop Drop 字段名字段名 功能功能: : 刪除表中指定的字段。刪除表中指定的字段。例例: :刪除刪除scorescore表中的表中的字段字段“平均成績(jī)平均成績(jī)”ALTER TABLE score DROP COLUMN ALTER TABLE score DROP COLUMN 平均成績(jī)平均成績(jī)14表結(jié)構(gòu)的復(fù)制表結(jié)構(gòu)的復(fù)制1復(fù)制表結(jié)構(gòu)復(fù)制表結(jié)構(gòu)格式格式: COPY STRUCTURE TO TableName FIELDS FieldList功能功能: 用當(dāng)前選定的表的結(jié)構(gòu)創(chuàng)建一個(gè)新的空自由表。用當(dāng)前選定的表的結(jié)構(gòu)創(chuàng)建一個(gè)新的空自由表。例:將例:將STUDENT
19、.DBF的所有字段復(fù)制到的所有字段復(fù)制到E:200301文件夾中,文件夾中,新表名為新表名為STU.DBF,并將并將STUDENT中的女生記錄添加到中的女生記錄添加到STU.DBF中中. USE STUDENT COPY STRU TO E:200301STU USE E:200301STU APPEND FORM FOR 性別性別=“女女” 151.命令方式命令方式格式:格式: LIST | DISPLAY STUCTURE TO PRINTER | TO FILE FileName 功能:顯示當(dāng)前打開(kāi)的表結(jié)構(gòu)。功能:顯示當(dāng)前打開(kāi)的表結(jié)構(gòu)。說(shuō)明說(shuō)明:1.TO PRINTER 將表結(jié)構(gòu)顯示在屏
20、幕上的同時(shí)輸將表結(jié)構(gòu)顯示在屏幕上的同時(shí)輸出到打印機(jī)上。出到打印機(jī)上。2.TO FILE FileName 將表結(jié)構(gòu)顯示在屏幕上的同將表結(jié)構(gòu)顯示在屏幕上的同時(shí)輸出到文本文件中。時(shí)輸出到文本文件中。 3.LIST 連續(xù)顯示表結(jié)構(gòu)連續(xù)顯示表結(jié)構(gòu); DISPLAY 分屏顯示表結(jié)分屏顯示表結(jié)構(gòu)。構(gòu)。顯示表結(jié)構(gòu)顯示表結(jié)構(gòu)162.使用使用“表設(shè)計(jì)器表設(shè)計(jì)器”查看表的結(jié)構(gòu)查看表的結(jié)構(gòu)(1) 選擇【文件】菜單的【打開(kāi)】命令,并選選擇【文件】菜單的【打開(kāi)】命令,并選擇想要查看擇想要查看的表的表STUDENT.DBF;(2) 單擊【顯示】菜單的單擊【顯示】菜單的“表設(shè)計(jì)器表設(shè)計(jì)器”命令命令,系系統(tǒng)將顯示表的結(jié)構(gòu)。統(tǒng)
21、將顯示表的結(jié)構(gòu)。 171. 表的打開(kāi)表的打開(kāi) 一、命令方式一、命令方式格式:格式:USE IN ALIAS AGAIN IN 功能功能 : 在指定工作區(qū)中打開(kāi)一個(gè)指定的表文件,在指定工作區(qū)中打開(kāi)一個(gè)指定的表文件,并將并將記錄指針定位于表中的第記錄指針定位于表中的第1號(hào)記錄。號(hào)記錄。表的打開(kāi)與關(guān)閉表的打開(kāi)與關(guān)閉18當(dāng)前工作區(qū)當(dāng)前工作區(qū) VFPVFP把正在使用的工作區(qū)稱為當(dāng)前把正在使用的工作區(qū)稱為當(dāng)前工作區(qū)。工作區(qū)。 用函數(shù)用函數(shù) SELECT( )SELECT( )測(cè)試當(dāng)前工作區(qū)測(cè)試當(dāng)前工作區(qū)號(hào)。號(hào)。 用用ALIAS( )ALIAS( )函數(shù)測(cè)試當(dāng)前工作區(qū)中函數(shù)測(cè)試當(dāng)前工作區(qū)中表的別名。表的別名
22、。 狀態(tài)欄中可顯示當(dāng)前工作區(qū)中表的狀態(tài)欄中可顯示當(dāng)前工作區(qū)中表的別名。別名。內(nèi)存1 xs2 teacher33276719選用工作區(qū)選用工作區(qū) 在在“數(shù)據(jù)工作期數(shù)據(jù)工作期”窗口中設(shè)置。窗口中設(shè)置。 使用命令:使用命令:SELECT SELECT 工作區(qū)號(hào)工作區(qū)號(hào)| |別名別名 SELECT 0SELECT 0:選擇未使用最小編號(hào)的工作區(qū):選擇未使用最小編號(hào)的工作區(qū) 在在VFPVFP中最多可以同時(shí)使用中最多可以同時(shí)使用3276732767個(gè)工作區(qū)個(gè)工作區(qū)。工作區(qū)可以用數(shù)字來(lái)表示,工作區(qū)可以用數(shù)字來(lái)表示,1 1代表第一個(gè)工作區(qū),代表第一個(gè)工作區(qū),2 2代表第二個(gè)工作區(qū),代表第二個(gè)工作區(qū),;或者用系
23、統(tǒng)給定的別名或者用系統(tǒng)給定的別名表示,表示,前十個(gè)工作區(qū)的別名是字母前十個(gè)工作區(qū)的別名是字母A A到到J J,從,從1111號(hào)工號(hào)工作區(qū)開(kāi)始,別名為作區(qū)開(kāi)始,別名為 W11 W11 到到 W32767W32767。20例例: (1) 分別在分別在1、3工作區(qū)同時(shí)打開(kāi)表工作區(qū)同時(shí)打開(kāi)表student.dbf;(2)選擇未使用的最小工作區(qū)選擇未使用的最小工作區(qū) 2 打開(kāi)表打開(kāi)表 SCORE.DBF 命令如下命令如下: USE STUDENT IN A USE STUDENT AGAIN IN C USE SCORE IN 0注意:用可視化方式,必須選中注意:用可視化方式,必須選中“獨(dú)占獨(dú)占”方式方
24、式21例:在不同工作區(qū)打開(kāi)同一例:在不同工作區(qū)打開(kāi)同一個(gè)表個(gè)表(在(在“數(shù)據(jù)工作期數(shù)據(jù)工作期”中觀察)中觀察)USE STUDENT IN AUSE STDDENT ALIAS SSS AGAIN IN BUSE SCORE IN CUSE SCORE AGAIN IN 0 問(wèn)題問(wèn)題:(1)第第2個(gè)命令個(gè)命令 執(zhí)行完后,執(zhí)行完后,student.dbf 的別名是什么的別名是什么?(2) 第第4個(gè)命令個(gè)命令 執(zhí)行完后,執(zhí)行完后,score.dbf 是在哪個(gè)工作區(qū)中被是在哪個(gè)工作區(qū)中被打開(kāi)打開(kāi)?22二、可視化方式二、可視化方式1.單擊【文件】菜單的【打開(kāi)】命令單擊【文件】菜單的【打開(kāi)】命令,在在“
25、打開(kāi)打開(kāi)”對(duì) 話 框 的對(duì) 話 框 的 “ 文 件 類(lèi) 型文 件 類(lèi) 型 ” 框 中 選 擇框 中 選 擇 “ 表表(*.DBF)”; ;2.在查找范圍框中選擇驅(qū)動(dòng)器和文件夾在查找范圍框中選擇驅(qū)動(dòng)器和文件夾,再選中再選中“獨(dú)占獨(dú)占”復(fù)選框復(fù)選框;3.用鼠標(biāo)左鍵雙擊需要打開(kāi)文件的文件名。用鼠標(biāo)左鍵雙擊需要打開(kāi)文件的文件名。23表的關(guān)閉表的關(guān)閉表的關(guān)閉表的關(guān)閉數(shù)據(jù)工作期窗口中關(guān)閉數(shù)據(jù)工作期窗口中關(guān)閉關(guān)閉指定工作區(qū)中的表:關(guān)閉指定工作區(qū)中的表: USE IN USE IN 工作區(qū)號(hào)工作區(qū)號(hào) | |別名別名 關(guān)閉所有工作區(qū)中的表和與其相關(guān)的文件:關(guān)閉所有工作區(qū)中的表和與其相關(guān)的文件: CLOSE AL
26、LCLOSE ALL QUITQUIT & &關(guān)閉所有工作區(qū)中的表和與其相關(guān)的關(guān)閉所有工作區(qū)中的表和與其相關(guān)的 文件文件, ,并退出并退出VFPVFP窗口窗口. .24例:在例:在“數(shù)據(jù)工作期數(shù)據(jù)工作期”窗口中觀察表的打開(kāi)與關(guān)閉。窗口中觀察表的打開(kāi)與關(guān)閉。SELECT 1USE STUDENT USE STUDENT AGAIN IN 2 ALIAS ABCUSE SCORE IN 3USE & 關(guān)閉哪個(gè)工作區(qū)中的表關(guān)閉哪個(gè)工作區(qū)中的表?USE IN C USE IN ABC 25記錄的定位記錄的定位 記錄的指針記錄的指針 系統(tǒng)在打開(kāi)一個(gè)表文件后將自動(dòng)生成三個(gè)控制標(biāo)志:
27、系統(tǒng)在打開(kāi)一個(gè)表文件后將自動(dòng)生成三個(gè)控制標(biāo)志:記錄開(kāi)始標(biāo)志記錄開(kāi)始標(biāo)志、記錄指針標(biāo)志記錄指針標(biāo)志、記錄結(jié)束標(biāo)志記錄結(jié)束標(biāo)志。文件頭(含表結(jié)構(gòu)等信息)第1號(hào)記錄第2號(hào)記錄第n號(hào)記錄文件尾記錄開(kāi)始標(biāo)志記錄指針記錄結(jié)束標(biāo)志Begin Of File BOF( ) End Of File EOF( ) 26記錄指針記錄指針 記錄指針是記錄指針是VFPVFP系統(tǒng)內(nèi)部的一個(gè)指示器,在表中指向系統(tǒng)內(nèi)部的一個(gè)指示器,在表中指向記錄。記錄。每當(dāng)打開(kāi)一個(gè)表文件時(shí),指針總是指向第一條每當(dāng)打開(kāi)一個(gè)表文件時(shí),指針總是指向第一條記錄。記錄。 記錄指針指向的記錄叫記錄指針指向的記錄叫當(dāng)前記錄當(dāng)前記錄,改變指針的指向叫,改變
28、指針的指向叫記錄的定位。記錄的定位。 測(cè)試當(dāng)前記錄用函數(shù)測(cè)試當(dāng)前記錄用函數(shù)RECNORECNO()。最小值為()。最小值為1 1,最大值,最大值為為RECCOUNTRECCOUNT()()+1+1。 打開(kāi)表時(shí)記錄指針情況:打開(kāi)表時(shí)記錄指針情況:表中無(wú)記錄:表中無(wú)記錄:BOF()=.T. EOF()=.T. RECNO()=1BOF()=.T. EOF()=.T. RECNO()=1表中有記錄表中有記錄:BOF()=.F. EOF()=.F. RECNO()=1 BOF()=.F. EOF()=.F. RECNO()=1 27格式:格式:RECNO( | )功能:確定表中當(dāng)前記錄的編號(hào)。功能:確
29、定表中當(dāng)前記錄的編號(hào)。返回值類(lèi)型:數(shù)值型返回值類(lèi)型:數(shù)值型說(shuō)明:說(shuō)明:: 指定被測(cè)試工作區(qū)號(hào),其范圍指定被測(cè)試工作區(qū)號(hào),其范圍132767。 : 指定表別名指定表別名 RECNO()函數(shù)函數(shù)28 RECCOUNT()函數(shù)函數(shù)格式:格式:RECCOUNT( | )功能:確定表中記錄的個(gè)數(shù)。功能:確定表中記錄的個(gè)數(shù)。返回值類(lèi)型:數(shù)值型返回值類(lèi)型:數(shù)值型說(shuō)明:說(shuō)明:: 指定被測(cè)試工作區(qū)號(hào),其范圍指定被測(cè)試工作區(qū)號(hào),其范圍132767。 : 指定表別名指定表別名29 BOF( )函數(shù)函數(shù)格式格式:BOF (|)返回值類(lèi)型返回值類(lèi)型: 邏輯型邏輯型功能功能:判斷表的記錄指針是否在表的開(kāi)始標(biāo)志。如果是則返
30、回判斷表的記錄指針是否在表的開(kāi)始標(biāo)志。如果是則返回“真真”值值(.T.),否則返回假值,否則返回假值(.F.) 。EOF( )函數(shù)函數(shù)格式格式:EOF( | )返回值類(lèi)型返回值類(lèi)型: 邏輯型邏輯型功能功能:判斷表的記錄指針是否在表的結(jié)束標(biāo)志。如果是則返回判斷表的記錄指針是否在表的結(jié)束標(biāo)志。如果是則返回“真真”值值(.T.),否則返回假值,否則返回假值(.F.) 。30格式格式1: GO | GOTO nRecordNumber IN nWorkArea 功能:將表的記錄指針移動(dòng)到指定位置。該命令允許省功能:將表的記錄指針移動(dòng)到指定位置。該命令允許省略略GO 或或 GOTO 命令關(guān)鍵字。命令關(guān)鍵
31、字。 nRecordNumber:物理記錄號(hào):物理記錄號(hào) IN nWorkArea :指定移動(dòng)指針操作表所在的工作區(qū)。指定移動(dòng)指針操作表所在的工作區(qū)。說(shuō)明:定位結(jié)果不受任何因素影響。說(shuō)明:定位結(jié)果不受任何因素影響。絕對(duì)定位命令絕對(duì)定位命令 GO 命令命令31格式格式2: GO TOP | BOTTOM 功能:將表的記錄指針移動(dòng)到功能:將表的記錄指針移動(dòng)到首記錄首記錄 或或末記錄末記錄說(shuō)明:定位結(jié)果說(shuō)明:定位結(jié)果受受下列因素下列因素(1)的聯(lián)合影響,)的聯(lián)合影響,但但不受因素(不受因素(2)的影響。的影響。(1) 索引:僅當(dāng)無(wú)索引或索引不起作用時(shí),首記錄就是第索引:僅當(dāng)無(wú)索引或索引不起作用時(shí),首
32、記錄就是第1號(hào)記號(hào)記錄,而末記錄為記錄號(hào)最大的哪一條記錄;錄,而末記錄為記錄號(hào)最大的哪一條記錄;(2)命令命令 SET DELETE ON | OFF:這是一條刪除標(biāo)記開(kāi)關(guān)命令,當(dāng)這是一條刪除標(biāo)記開(kāi)關(guān)命令,當(dāng)ON時(shí),有刪除標(biāo)記的記錄不時(shí),有刪除標(biāo)記的記錄不參與操作;當(dāng)參與操作;當(dāng)OFF時(shí),有刪除標(biāo)記的記錄仍參與操作。時(shí),有刪除標(biāo)記的記錄仍參與操作。絕對(duì)定位命令絕對(duì)定位命令 GO 命令命令32例例:根據(jù)下列命令根據(jù)下列命令,寫(xiě)出操作結(jié)果寫(xiě)出操作結(jié)果:SET DELETE OFF USE STUDENT?recno(),eof(),bof(),RECCOUNT() GO 1 & 或者或者
33、GO TOP (表中沒(méi)有建立索引表中沒(méi)有建立索引)?recno() ,eof(),bof() GO BOTTOM?recno() ,eof(),bof()Index on 姓名姓名 TO XMGO TOP & 記錄指針指向表中首記錄記錄指針指向表中首記錄,但不一定是但不一定是1號(hào)記錄號(hào)記錄?recno() GO BOTTOM?recno() & 記錄指針指向表中末記錄記錄指針指向表中末記錄,但不一定是記錄號(hào)最大的記錄但不一定是記錄號(hào)最大的記錄33相對(duì)定位命令相對(duì)定位命令 SKIP格式:格式:SKIP nRecords IN nWorkArea 功能:以當(dāng)前記錄為基準(zhǔn),在指定表中
34、向上或向下移功能:以當(dāng)前記錄為基準(zhǔn),在指定表中向上或向下移動(dòng)記錄指針(位移量由動(dòng)記錄指針(位移量由 nRecords 決定)。決定)。說(shuō)明:說(shuō)明: 當(dāng)當(dāng) nRecords 缺省時(shí),默認(rèn)位移量為缺省時(shí),默認(rèn)位移量為1,即,即 SKIP 等價(jià)于等價(jià)于 SKIP 1。 若記錄指針若記錄指針已在末記錄已在末記錄,再,再SKIP,則函數(shù),則函數(shù)RECNO( ) 的的返回值是表中總記錄數(shù)加返回值是表中總記錄數(shù)加1的,且的,且EOF( )返回返回“真真”值。值。 若記錄指針若記錄指針已在首記錄已在首記錄,再,再SKIP -1 ,則,則RECNO( ) 的的返回值仍為返回值仍為1, 但但BOF( )返回返回“
35、真真”值。值。34BOF( )及及EOF( )函數(shù)示例函數(shù)示例設(shè)設(shè)STUDENT 表中有表中有10條記錄條記錄在命令窗口輸出在命令窗口輸出在狀態(tài)行上顯示在狀態(tài)行上顯示BOF( )EOF( )當(dāng)前記錄號(hào)當(dāng)前記錄號(hào)Use student 記錄記錄: 1 / 10 .F. .F.1GO BOTTOM記錄記錄: 10 / 10 .F. .F.10SKIP 記錄記錄: EOF / 10.F.T.11GO TOP記錄記錄: 1 / 10 .F. .F.1SKIP -1記錄記錄: 1 / 10.T.F.135記錄定位記錄定位可視方式可視方式(先打開(kāi)表(先打開(kāi)表,顯示數(shù)據(jù)窗口)顯示數(shù)據(jù)窗口) 鼠標(biāo)直接定位:鼠
36、標(biāo)所點(diǎn)的記錄鼠標(biāo)直接定位:鼠標(biāo)所點(diǎn)的記錄 菜單操作定位:選擇菜單操作定位:選擇VFP主菜單的主菜單的表表菜單中的菜單中的“轉(zhuǎn)到記錄轉(zhuǎn)到記錄”子菜單下命令提供了六種方式:子菜單下命令提供了六種方式:第一個(gè):第一個(gè): 相當(dāng)于相當(dāng)于 GO TOP 命令命令最后一個(gè):相當(dāng)于最后一個(gè):相當(dāng)于 GO BOTTOM 命令命令下一個(gè):下一個(gè): 相當(dāng)于相當(dāng)于 SKIP 1 命令命令上一個(gè):上一個(gè): 相當(dāng)于相當(dāng)于 SKIP -1 命令命令記錄號(hào):記錄號(hào): 相當(dāng)于相當(dāng)于 GO nRecordNumber 命令命令定位:定位: 相當(dāng)于相當(dāng)于 LOCATE FOR 命令命令36表的瀏覽表的瀏覽數(shù)據(jù)窗口(本書(shū)叫表瀏覽器)
37、的功能:數(shù)據(jù)窗口(本書(shū)叫表瀏覽器)的功能: 顯示記錄顯示記錄:記錄過(guò)濾器、字段選擇器、窗口分區(qū):記錄過(guò)濾器、字段選擇器、窗口分區(qū) 修改記錄修改記錄: “表表”菜單中菜單中 “字段替換字段替換”命令命令 追加與批量追加記錄追加與批量追加記錄: “表表”菜單的菜單的“追加記錄追加記錄”命令命令 邏輯刪除與恢復(fù)記錄邏輯刪除與恢復(fù)記錄: “表表”菜單的菜單的“刪除刪除”和和“恢復(fù)恢復(fù)”記錄過(guò)濾器:記錄過(guò)濾器:“表表”菜單中菜單中“屬性屬性”命令命令/“數(shù)據(jù)數(shù)據(jù)過(guò)濾過(guò)濾器器”字段選擇器:字段選擇器: “表表”菜單中菜單中“屬性屬性”命令命令/“字段篩選字段篩選”窗口的顯示模式:窗口的顯示模式:“顯示顯示
38、”菜單中的菜單中的“瀏覽瀏覽”、“編編輯輯”命令命令37刪除標(biāo)記列(由刪除標(biāo)記塊組成)記錄選擇列(由記錄選擇塊組成)拆分條列分隔線行分隔線字段標(biāo)簽當(dāng)前記錄指示器數(shù)據(jù)窗口的組成38表的瀏覽表的瀏覽 BROWSEBROWSE命令命令格式:格式:BROWSE FIELDS FieldListBROWSE FIELDS FieldList FOR Expression FOR Expression FONT cFontName ,nFontSize FONT cFontName ,nFontSize 功能:打開(kāi)瀏覽窗口,顯示當(dāng)前表的記錄。功能:打開(kāi)瀏覽窗口,顯示當(dāng)前表的記錄。說(shuō)明:說(shuō)明:1.Field
39、s FieldList1.Fields FieldList:為用逗號(hào):為用逗號(hào)(,)(,)分隔的字段分隔的字段名列表名列表, ,用于指定在瀏覽窗口中顯示的字段。用于指定在瀏覽窗口中顯示的字段。忽略該子句忽略該子句, ,則在瀏覽器窗口顯示全部字段。則在瀏覽器窗口顯示全部字段。39表的瀏覽表的瀏覽說(shuō)明說(shuō)明: :2.2.FONT cFontName ,nFontSizeFONT cFontName ,nFontSize:指定瀏覽窗口的字指定瀏覽窗口的字體及字體大小。如果在體及字體大小。如果在FONTFONT子句中省略了字體大小,子句中省略了字體大小,則瀏覽窗口默認(rèn)采用則瀏覽窗口默認(rèn)采用1010磅字體
40、,如果省略磅字體,如果省略FONTFONT子句,子句,則默認(rèn)采用則默認(rèn)采用8 8磅字體。磅字體。3. 3. FOR Expression 表示只對(duì)邏輯表達(dá)式取真值的記表示只對(duì)邏輯表達(dá)式取真值的記錄進(jìn)行規(guī)定操作。錄進(jìn)行規(guī)定操作。40表的瀏覽表的瀏覽例如例如, ,在瀏覽窗口用在瀏覽窗口用“宋體宋體”1313號(hào)字,顯示號(hào)字,顯示studentstudent表表中所有男同學(xué)的信息。命令如下中所有男同學(xué)的信息。命令如下: :useusestudentstudentBROWSE FOR BROWSE FOR 性別性別=男男 FONT “FONT “宋體宋體”,13,13再如再如, ,在瀏覽窗口在瀏覽窗口9
41、898級(jí)女學(xué)生的信息。級(jí)女學(xué)生的信息。( (設(shè)學(xué)號(hào)字段是設(shè)學(xué)號(hào)字段是數(shù)值型數(shù)值型) )命令如下命令如下: :BROWSE FOR BROWSE FOR 性別性別=女女 AND substr(strAND substr(str( (學(xué)學(xué)號(hào)號(hào),7),1,2)=“98”,7),1,2)=“98”41(1) (1) 數(shù)值轉(zhuǎn)換成字符串?dāng)?shù)值轉(zhuǎn)換成字符串格式:格式:STR(STR( , , ) )功能:將數(shù)值表達(dá)式的值轉(zhuǎn)換成字符串。轉(zhuǎn)換時(shí)根據(jù)需功能:將數(shù)值表達(dá)式的值轉(zhuǎn)換成字符串。轉(zhuǎn)換時(shí)根據(jù)需要自動(dòng)進(jìn)行四舍五入。要自動(dòng)進(jìn)行四舍五入。返回字符串的理想長(zhǎng)度返回字符串的理想長(zhǎng)度L L = =數(shù)值表達(dá)式值的數(shù)值表達(dá)式
42、值的整數(shù)位數(shù)整數(shù)位數(shù)+ +小數(shù)位數(shù)小數(shù)位數(shù)+1+1位小數(shù)點(diǎn)位小數(shù)點(diǎn)。 如果如果 的值大于的值大于L L,則字符串加前導(dǎo)空格以,則字符串加前導(dǎo)空格以滿足規(guī)定的滿足規(guī)定的 要求;要求;數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)42 如果如果 的值大于等于的值大于等于 值的整值的整數(shù)部分位數(shù)(包括負(fù)號(hào)),但又小于數(shù)部分位數(shù)(包括負(fù)號(hào)),但又小于L L,則優(yōu)先滿足,則優(yōu)先滿足整數(shù)部分而自動(dòng)調(diào)整小數(shù)位數(shù);整數(shù)部分而自動(dòng)調(diào)整小數(shù)位數(shù); 如果如果 的值和的值和 都缺省,則只輸出都缺省,則只輸出整數(shù)部分。整數(shù)部分。 如果如果 的值小于的值小于 值的整數(shù)部分值的整數(shù)部分位數(shù)(包括負(fù)號(hào)),輸出結(jié)果為位數(shù)(包括負(fù)號(hào)),輸出結(jié)
43、果為“* *”,(表示溢出),(表示溢出)數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)43(1) 數(shù)值轉(zhuǎn)換成字符串?dāng)?shù)值轉(zhuǎn)換成字符串 例:例:N= -321.4456 ?str(n) , str(n,5) -321 -321 (前面有前面有1個(gè)空格個(gè)空格) ?str(n,3), STR(n,6,1) * -321.4 ? str(n,6,2), str(n,9,2) -321.5 -321.45 (前面有前面有2個(gè)空格個(gè)空格)441.命令方式命令方式 LIST | DISPLAY Scpe FIELDS FieldsList FOR Expression1 WHILE Expression2 OFF TO
44、PRINT TO FILE FileName 功能:在主窗口中顯示當(dāng)前表的有關(guān)信息。功能:在主窗口中顯示當(dāng)前表的有關(guān)信息。 List 默認(rèn)范圍是所有記錄,默認(rèn)范圍是所有記錄, Display 默認(rèn)范圍是當(dāng)前記錄。默認(rèn)范圍是當(dāng)前記錄。顯示記錄命令顯示記錄命令45說(shuō)明:說(shuō)明:Scope 指明執(zhí)行命令時(shí)的作用范圍。指明執(zhí)行命令時(shí)的作用范圍。RECORD n 表中第表中第N條記錄。條記錄。NEXT n 從表中當(dāng)前記錄起,向下共從表中當(dāng)前記錄起,向下共n個(gè)記錄。個(gè)記錄。REST 從表中當(dāng)前記錄起到末記錄止。從表中當(dāng)前記錄起到末記錄止。 ALL 表中全部記錄。表中全部記錄。 TO PRINTER 將結(jié)果同
45、時(shí)輸出到屏幕和打印機(jī)。將結(jié)果同時(shí)輸出到屏幕和打印機(jī)。 TO FILE FileName 將記錄輸出到指定的文本文件中,將記錄輸出到指定的文本文件中, 默認(rèn)擴(kuò)展名默認(rèn)擴(kuò)展名是是.txt。 OFF 在主窗口顯示記錄時(shí)不顯示記錄號(hào)。在主窗口顯示記錄時(shí)不顯示記錄號(hào)。46 FOR Expression 表示只對(duì)邏輯表達(dá)式取表示只對(duì)邏輯表達(dá)式取真值的記錄進(jìn)行規(guī)定操作。真值的記錄進(jìn)行規(guī)定操作。 WHILE Expression表示,表示, 如默認(rèn)范圍子如默認(rèn)范圍子句,則從當(dāng)前記錄開(kāi)始測(cè)試是否滿足邏輯表達(dá)句,則從當(dāng)前記錄開(kāi)始測(cè)試是否滿足邏輯表達(dá)式條件,如滿足便對(duì)該記錄進(jìn)行規(guī)定操作。接式條件,如滿足便對(duì)該記錄進(jìn)
46、行規(guī)定操作。接著對(duì)下一條記錄進(jìn)行測(cè)試,如仍滿足就再進(jìn)行著對(duì)下一條記錄進(jìn)行測(cè)試,如仍滿足就再進(jìn)行規(guī)定操作,否則停止操作,不管其后是否還有規(guī)定操作,否則停止操作,不管其后是否還有滿足條件的記錄。滿足條件的記錄。47例:寫(xiě)出下列命令執(zhí)行后的結(jié)果。例:寫(xiě)出下列命令執(zhí)行后的結(jié)果。USE STUDENT ?RECNO( ) &顯示當(dāng)前記錄顯示當(dāng)前記錄號(hào)號(hào)DISPLAY &顯示當(dāng)前記錄顯示當(dāng)前記錄LIST OFF &顯示表中全部記錄顯示表中全部記錄,不顯示記錄不顯示記錄號(hào)號(hào)?EOF( ) &顯示顯示EOF() 函數(shù)狀態(tài)函數(shù)狀態(tài)GO 5 &將記錄指針指向?qū)⒂涗浿羔樦赶?
47、號(hào)記錄號(hào)記錄LIST NEXT 1 &顯示當(dāng)前記錄顯示當(dāng)前記錄 = DISPLAYLIST NEXT 4 &顯示顯示58號(hào)記錄號(hào)記錄?RECNO( ) &顯示當(dāng)前記錄號(hào)顯示當(dāng)前記錄號(hào)LIST REST &顯示從當(dāng)前記錄到最后一個(gè)記錄顯示從當(dāng)前記錄到最后一個(gè)記錄48格式格式: LEFT(: LEFT(,) RIGHT( RIGHT(,) SUBSTR( SUBSTR(,)返回值類(lèi)型:字符型返回值類(lèi)型:字符型功能:功能:LEFT( )LEFT( )從字符表達(dá)式值的左端取指定長(zhǎng)度的子從字符表達(dá)式值的左端取指定長(zhǎng)度的子串作為返回值。串作為返回值。 RIGHT( )RIG
48、HT( )從字符表達(dá)式值的右端取指定長(zhǎng)度的子從字符表達(dá)式值的右端取指定長(zhǎng)度的子串作為返回值。串作為返回值。 SUBSTR( )SUBSTR( )從字符表達(dá)式值的指定起始位置取指從字符表達(dá)式值的指定起始位置取指定長(zhǎng)度的子串作為返回值。定長(zhǎng)度的子串作為返回值。字符串函數(shù)字符串函數(shù)49(1)(1)系統(tǒng)日期和時(shí)間函數(shù)系統(tǒng)日期和時(shí)間函數(shù)格式:格式:DATE( )DATE( ) TIME( ) TIME( )功能:返回系統(tǒng)的當(dāng)前系統(tǒng)日期、時(shí)間。功能:返回系統(tǒng)的當(dāng)前系統(tǒng)日期、時(shí)間。 DATE( )DATE( )函函數(shù)返回值類(lèi)型為日期型;數(shù)返回值類(lèi)型為日期型; TIME( )TIME( )函數(shù)返回值類(lèi)型函數(shù)返
49、回值類(lèi)型為字符型。為字符型。函數(shù)返回格式可以通過(guò)函數(shù)返回格式可以通過(guò)SET CENTURYSET CENTURY,SET DATESET DATE和和SET SET MARK TOMARK TO命令來(lái)改變。命令來(lái)改變。SET CENTURY OFFSET CENTURY OFF? DATE( )DATE( )02/21/01 02/21/01 顯示不帶世紀(jì)的當(dāng)天日期顯示不帶世紀(jì)的當(dāng)天日期SET CENTURY ONSET CENTURY ON? DATE( ) DATE( ) 顯示帶世紀(jì)的當(dāng)天日期顯示帶世紀(jì)的當(dāng)天日期 日期和時(shí)間函數(shù)日期和時(shí)間函數(shù)50格式:格式:YEAR() MONTH( DA
50、Y()功能:分別返回與指定日期對(duì)應(yīng)的年、月、日值。功能:分別返回與指定日期對(duì)應(yīng)的年、月、日值。返回值類(lèi)型:數(shù)值型返回值類(lèi)型:數(shù)值型X=date()?year(x),month(x),day(x) 2001 2 21 問(wèn)題:?jiǎn)栴}:year(x),month(x) ,day(x)函數(shù)的返回值是什么類(lèi)函數(shù)的返回值是什么類(lèi)型?型? 求年份、月份和天數(shù)求年份、月份和天數(shù)返回51字符串轉(zhuǎn)換成日期或日期時(shí)間字符串轉(zhuǎn)換成日期或日期時(shí)間格式:格式:CTOD(字符表達(dá)式字符表達(dá)式)功能:將字符表達(dá)式的值轉(zhuǎn)換成日期型數(shù)據(jù)功能:將字符表達(dá)式的值轉(zhuǎn)換成日期型數(shù)據(jù)返回值類(lèi)型:日期型。返回值類(lèi)型:日期型。X=ctod(“1
51、2/09/92”)?X,type(x)12/09/92 D數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)52格式:格式:DTOC(,1)功能:將一個(gè)日期表達(dá)式中的日期轉(zhuǎn)換成字符功能:將一個(gè)日期表達(dá)式中的日期轉(zhuǎn)換成字符型日期。型日期。返回值類(lèi)型:字符型返回值類(lèi)型:字符型 A=2001-09-06?dtoc(a),TYPE(A)09/06/01 C日期或日期時(shí)間轉(zhuǎn)換成字符串日期或日期時(shí)間轉(zhuǎn)換成字符串?dāng)?shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)53例:根據(jù)不同要求例:根據(jù)不同要求,寫(xiě)出操作命令寫(xiě)出操作命令:顯示顯示STUDENT表中姓表中姓“王王”的的記錄的的記錄USE STUDENTLIST FOR LEFT(姓名姓名,2
52、)=“王王”或者或者LIST FOR 姓名姓名=“王王” &系統(tǒng)為系統(tǒng)為 SET EXACT OFF顯示所有姓名中第顯示所有姓名中第2個(gè)字是個(gè)字是“志志”的記錄的記錄LIST FOR SUBS(姓名姓名,3,2)=“志志”顯示籍貫是顯示籍貫是“河北河北”,“湖北湖北”和和“北京北京”的記錄的記錄LIST FOR “北北”$籍貫籍貫54顯示所有年齡大于顯示所有年齡大于22歲的記錄歲的記錄LIST FOR YEAR(DATE()-YEAR(出生年月出生年月)22顯示所有顯示所有80年以前出生的記錄年以前出生的記錄DISP FOR YEAR(出生年月出生年月)1980顯示顯示81年年5月月2
53、日出生的記錄日出生的記錄DISP FOR 出生年月出生年月=1981-05-02或者或者:DISP FOR DTOC(出生年月出生年月)=“05/02/81”55命令格式:命令格式: REPLACE Scope , FieldName2 WITH eExpression2 , FOR Expression1 WHILE Expression2功能:用表達(dá)式的值自動(dòng)替換指定字段中的值,功能:用表達(dá)式的值自動(dòng)替換指定字段中的值,若沒(méi)有若沒(méi)有范圍和條件選項(xiàng)時(shí)只對(duì)當(dāng)前記錄操作。范圍和條件選項(xiàng)時(shí)只對(duì)當(dāng)前記錄操作。注意:注意:with 兩邊的數(shù)據(jù)類(lèi)型必須一致;多工作區(qū)時(shí),字兩邊的數(shù)據(jù)類(lèi)型必須一致;多工作區(qū)
54、時(shí),字段名允許是另一工作區(qū)已打開(kāi)的庫(kù)文件的字段名。段名允許是另一工作區(qū)已打開(kāi)的庫(kù)文件的字段名。 數(shù)據(jù)更新命令數(shù)據(jù)更新命令 (替換字段值替換字段值)56命令格式:命令格式: UPDATE 表名表名 SET 字段名字段名1=表達(dá)式表達(dá)式1 ,字段名,字段名2=表達(dá)式表達(dá)式2 WHERE 條件條件 功能:用表達(dá)式的值自動(dòng)替換指定字段中的值,功能:用表達(dá)式的值自動(dòng)替換指定字段中的值,若沒(méi)有若沒(méi)有WHERE 條件選項(xiàng)時(shí),則更新全部記錄條件選項(xiàng)時(shí),則更新全部記錄的字段值。否則,更新滿足條件記錄的字段值。的字段值。否則,更新滿足條件記錄的字段值。注意:注意:= 兩邊的數(shù)據(jù)類(lèi)型必須一致。兩邊的數(shù)據(jù)類(lèi)型必須一致
55、。 SQL的數(shù)據(jù)更新命令的數(shù)據(jù)更新命令57UPDATE STUDENT ; SET 備注備注= “2003年被評(píng)為三好學(xué)生年被評(píng)為三好學(xué)生” ; WHERE 姓名姓名=王志剛王志剛例:在例:在SCORE.DBF中增加一個(gè)年齡字段中增加一個(gè)年齡字段,將每個(gè)記將每個(gè)記錄的年齡值填入字段中。錄的年齡值填入字段中。ALTER TABLE SCORE ADD 年齡年齡 N(3) REPLACE ALL 年齡年齡 WITH year(date( )-year(出生年月出生年月)例:例:1. 用用SQL命令將王志剛同學(xué)的備注字段中填入命令將王志剛同學(xué)的備注字段中填入“2003年被評(píng)為三好學(xué)生年被評(píng)為三好學(xué)生
56、”。 2. 顯示填入備注字段的內(nèi)容顯示填入備注字段的內(nèi)容.LIST FIELD 備注備注 FOR 姓名姓名=王志剛王志剛58USE STUDENTCOPY TO STU &復(fù)制一個(gè)新表復(fù)制一個(gè)新表USE STU REPLACE 學(xué)號(hào)學(xué)號(hào) WITH left(學(xué)號(hào)學(xué)號(hào),2) + “A” ;+ right(學(xué)號(hào)學(xué)號(hào),4) FOR subs(學(xué)號(hào)學(xué)號(hào),3,1) = “1”REPLACE 學(xué)號(hào)學(xué)號(hào) WITH left(學(xué)號(hào)學(xué)號(hào),2) + “B” ;+ right(學(xué)號(hào)學(xué)號(hào),4) FOR substr(學(xué)號(hào)學(xué)號(hào),3,1) = “2”例:使用命令將學(xué)號(hào)第例:使用命令將學(xué)號(hào)第3個(gè)字符是個(gè)字符是“1”
57、的替換為的替換為“A”,第第3個(gè)字符是個(gè)字符是“2”的替換為的替換為“B”,并顯示替換后的內(nèi)容,并顯示替換后的內(nèi)容。(學(xué)號(hào)字段的類(lèi)型必須是學(xué)號(hào)字段的類(lèi)型必須是“字符型字符型”)例如例如: 9811052 - 98A1052 9921036 - 99B1036591. 編輯記錄編輯記錄格式:格式: EDIT Scope Fields FieldList FOR / WHILE Expression CHANGE Scope Fields FieldList FOR / WHILE Expression 功能:用手工方式編輯、修改指定的字段值。功能:用手工方式編輯、修改指定的字段值。 說(shuō)明:說(shuō)明:
58、EDIT和和CHANGE命令功能相同。命令功能相同。兩命令默認(rèn)兩命令默認(rèn)的范圍是的范圍是 ALL 。 記錄的編輯、修改記錄的編輯、修改60例:用例:用 EDIT 命令手工修改命令手工修改student表中第表中第5個(gè)記個(gè)記錄錄“學(xué)制學(xué)制”字段的內(nèi)容。字段的內(nèi)容。(“學(xué)制學(xué)制”字段值改為字段值改為“七七”)Use studentEdit field 學(xué)制學(xué)制 FOR recno( )=5例:用例:用 CHANG 命令手工編輯命令手工編輯student表中臨床醫(yī)表中臨床醫(yī)學(xué)專業(yè)記錄學(xué)專業(yè)記錄“備注備注”字段的內(nèi)容。字段的內(nèi)容。(內(nèi)容自定內(nèi)容自定)Change for 專業(yè)專業(yè)=“臨床醫(yī)學(xué)臨床醫(yī)學(xué)”
59、 fields 備注備注 *用手工方式填入用手工方式填入“七七”*依次分別雙擊依次分別雙擊memo用手工方式填入內(nèi)容用手工方式填入內(nèi)容61記錄的插入記錄的插入命令格式命令格式: INSERT BEFORE BLANK 說(shuō)明:說(shuō)明: 若選擇若選擇BEFORE,則在當(dāng)前記錄之前插入一條記,則在當(dāng)前記錄之前插入一條記錄;否則,在當(dāng)前記錄之后插入一條記錄;錄;否則,在當(dāng)前記錄之后插入一條記錄; 若選擇若選擇BLANK,則僅插入一條空白記錄;否則,則僅插入一條空白記錄;否則,立即進(jìn)入數(shù)據(jù)窗口編輯該空白記錄;立即進(jìn)入數(shù)據(jù)窗口編輯該空白記錄;注意:注意: 若表存在若表存在結(jié)構(gòu)化復(fù)合索引結(jié)構(gòu)化復(fù)合索引或者有已
60、打開(kāi)的單索引,則或者有已打開(kāi)的單索引,則 INSERT 命令將失去插入效果,其執(zhí)行的結(jié)果等同于命令將失去插入效果,其執(zhí)行的結(jié)果等同于 APPEND 命令命令62 記錄的刪除記錄的刪除 刪除記錄時(shí)為了安全,刪除記錄時(shí)為了安全,VFP要經(jīng)過(guò)兩個(gè)步驟完成:首要經(jīng)過(guò)兩個(gè)步驟完成:首先給記錄作刪除標(biāo)記先給記錄作刪除標(biāo)記(稱稱邏輯刪除邏輯刪除),然后把所有做了刪,然后把所有做了刪除標(biāo)記的記錄從數(shù)據(jù)表文件中清除掉除標(biāo)記的記錄從數(shù)據(jù)表文件中清除掉(稱稱物理刪除物理刪除)。 凡是被邏輯刪除的記錄,均可恢復(fù)成正常記錄。凡是被邏輯刪除的記錄,均可恢復(fù)成正常記錄。 記錄的第一個(gè)字節(jié)專門(mén)用來(lái)保存記錄的刪除標(biāo)記。記錄的第一個(gè)字節(jié)專門(mén)用來(lái)保存記錄的刪除標(biāo)記。 當(dāng)當(dāng) SET DELETE ON 命令執(zhí)行后,被邏輯刪除的記錄,命令執(zhí)行后,被邏輯刪除的記錄,將不再
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)療行業(yè)大數(shù)據(jù)隱私保護(hù)合規(guī)政策與實(shí)施指南報(bào)告001
- 2025年云計(jì)算服務(wù)模式創(chuàng)新與行業(yè)應(yīng)用解決方案競(jìng)爭(zhēng)格局研究報(bào)告
- 2025年元宇宙社交平臺(tái)營(yíng)銷(xiāo)策略與品牌合作報(bào)告
- 2025年醫(yī)院電子病歷系統(tǒng)優(yōu)化在醫(yī)院信息化建設(shè)中的數(shù)據(jù)生命周期管理報(bào)告001
- 2025年醫(yī)藥行業(yè)研發(fā)創(chuàng)新與技術(shù)轉(zhuǎn)移報(bào)告
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)在臨床試驗(yàn)安全性評(píng)價(jià)中的應(yīng)用報(bào)告
- 生鮮新零售行業(yè)冷鏈物流冷鏈溫控設(shè)備選型及優(yōu)化報(bào)告
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式下的新藥研發(fā)項(xiàng)目管理工具比較與選擇報(bào)告
- 綠色建筑認(rèn)證體系在綠色酒店管理中的應(yīng)用與創(chuàng)新報(bào)告
- 2025年醫(yī)藥流通企業(yè)供應(yīng)鏈創(chuàng)新與成本控制模式研究報(bào)告
- 北師大版(2024)七年級(jí)上冊(cè)生物期末復(fù)習(xí)全冊(cè)考點(diǎn)背誦提綱
- 2025年湖南中考生物試題及答案
- Unit 2 Home Sweet Home 第1課時(shí)(Section A 1a-1d) 2025-2026學(xué)年人教版英語(yǔ)八年級(jí)下冊(cè)
- 混凝土站銷(xiāo)售管理制度
- 山東省威海市實(shí)驗(yàn)中學(xué)2025屆七下英語(yǔ)期末達(dá)標(biāo)檢測(cè)試題含答案
- 第七中學(xué)高二下學(xué)期5月月考語(yǔ)文試題(含答案)
- 2025至2030中國(guó)旋轉(zhuǎn)密碼掛鎖行業(yè)發(fā)展分析及前景趨勢(shì)與投資報(bào)告
- 蘇教版八年級(jí)下物理期末考試試題(含三套試卷)
- 2025年河北省中考麒麟卷地理(三)及答案
- 河南天一大聯(lián)考2025年高二下學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)英語(yǔ)試題
- 國(guó)際學(xué)校員工管理制度
評(píng)論
0/150
提交評(píng)論