




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1第二章數據庫的建立與基本操作第二章數據庫的建立與基本操作 表:保存在磁盤中的一張二維表。(表:保存在磁盤中的一張二維表。( .DBF/.FPT.DBF/.FPT) 與數據庫相關聯與數據庫相關聯的表叫的表叫數據庫表數據庫表 ;與數據庫無關聯與數據庫無關聯的表叫的表叫自由表自由表。 字段(字段(FieldField):表中的一列,規定了數據的特征。):表中的一列,規定了數據的特征。 記錄(記錄(RecordRecord):表中的一行,多個字段的集合。):表中的一行,多個字段的集合。 表結構(表結構(StructureStructure):存儲表記錄的一個公共結):存儲表記錄的一個公共結構。構。
2、要建立一張完整的表,必須先建立表的結構,要建立一張完整的表,必須先建立表的結構,然后再輸入記錄(數據)。然后再輸入記錄(數據)。2創建表結構創建表結構表設計器方式表設計器方式用菜單或工具欄打開用菜單或工具欄打開“表設計器表設計器”- - 命令方式命令方式CREATE ? CREATE ? | | 表名表名 “項目管理器項目管理器”中的中的“新建新建”SQLSQL命令方式命令方式 格式:格式: CREATE TABLE | DBF CREATE TABLE | DBF 表文件名表文件名 (字段名(字段名1 1 字段類型字段類型 (字段寬度字段寬度 ,小數位數小數位數) , ,字段名字段名2 2
3、字段類型字段類型 (字段寬度字段寬度 ,小數位數小數位數))功能:創建一個含有指定字段的表。功能:創建一個含有指定字段的表。 3向表中輸入數據(記錄)向表中輸入數據(記錄) 記錄的輸入記錄的輸入立即輸入記錄立即輸入記錄瀏覽狀態下追加記錄瀏覽狀態下追加記錄用用INSERT-SQLINSERT-SQL命令追加記錄命令追加記錄用用APPENDAPPEND命令追加記錄命令追加記錄APPENDAPPENDAPPEND FROM APPEND FROM 表文件名表文件名:從其他表中追加記錄。從其他表中追加記錄。APPEND FROM APPEND FROM 文本文件名文本文件名 SDFSDF 從文本文件添
4、加。從文本文件添加。從其他類型的文件追加記錄從其他類型的文件追加記錄4INSERT-SQL命令命令格式格式1:1:INSERT INTO INSERT INTO 表名表名 (字段字段1 1 , ,字段字段2 2 , );); VALUES ( VALUES (表達式表達式1 1 ,表達式表達式2,2,)格式格式2:2:INSERT INTO INSERT INTO 表名表名 FROM ARRAY FROM ARRAY 數組名數組名| |FROM MEMVARFROM MEMVAR功能功能: :在表末尾追加一個包含指定字段值的記錄。新記在表末尾追加一個包含指定字段值的記錄。新記錄的值可以是錄的值
5、可以是VALUESVALUES后面的表達式的值,也可以是指后面的表達式的值,也可以是指定數組中各元素的數據,或是指定的內存變量。定數組中各元素的數據,或是指定的內存變量。例例. .向向student.dbfstudent.dbf表末尾添加一條記錄,內容如下:表末尾添加一條記錄,內容如下: 9601007,”9601007,”曹曉燕曹曉燕“,女女,信息學信息學INSERT INTO student (INSERT INTO student (學號學號, ,姓名姓名, ,性別性別, ,專業專業);); VALUE (9601007 , ” VALUE (9601007 , ”曹曉燕曹曉燕“ “ ,
6、 , 女女 , , 信息學信息學) )注意:追加進表的記錄總在最后一條,被追加的表注意:追加進表的記錄總在最后一條,被追加的表不需要先打開。不需要先打開。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 &清除所有內存變量清除所有內存變量
7、學號學號=“9911101”=“9911101”姓名姓名=“=“劉長江劉長江”性別性別=“=“男男”INSERT INTO STUDENT FROM MEMVARINSERT INTO STUDENT FROM MEMVARBROWSEBROWSE6格式格式1 : 1 : APPEND blank in nWorkAreaAPPEND blank in nWorkArea 功能功能: : 在指定工作區表的末尾添加記錄。在指定工作區表的末尾添加記錄。說明:說明:blankblank:在指定表的末尾添加一空記錄。此時:在指定表的末尾添加一空記錄。此時系統不會自動打開編輯窗口。可以在系統不會自動打開
8、編輯窗口。可以在browsebrowse、changechange、editedit窗口中編輯新記錄內容。窗口中編輯新記錄內容。 in nWorkArea in nWorkArea: nWorkAreanWorkArea為工作區號,為工作區號,指定追加新記錄所在工作區。指定追加新記錄所在工作區。APPEND命令命令7格式格式2: 2: APPEND FROM FileName APPEND FROM FileName | | ? Fields FieldList Fields FieldList For Expression For Expression功能功能: : 從指定數據文件中讀取數據
9、,并追加到當前表中來。從指定數據文件中讀取數據,并追加到當前表中來。說明:說明:FileNameFileName:文件名,指定讀取數據的文件。如果給出的文件名:文件名,指定讀取數據的文件。如果給出的文件名 不包含擴展名,則默認為表文件。不包含擴展名,則默認為表文件。?:顯示?:顯示“打開打開”文件對話框,從中選擇要讀取的數據文件。文件對話框,從中選擇要讀取的數據文件。Fields FieldListFields FieldList:為用逗號:為用逗號(,)(,)分隔的字段名列表分隔的字段名列表, ,指出要追指出要追 加數據的字段。加數據的字段。For ExpressionFor Express
10、ion: ExpressionExpression為一邏輯表達式,作為篩選條為一邏輯表達式,作為篩選條件,當其為件,當其為“真真”(.T.T.)時,滿足條件的記錄追加到當前表)時,滿足條件的記錄追加到當前表中中, ,如果省略如果省略For,For,則文件數據全部追加到當前表中則文件數據全部追加到當前表中. .APPEND命令命令8例例1.1.向向student.dbfstudent.dbf表末尾添加一條記錄表末尾添加一條記錄 (9811002 (9811002 王小王小 男男 信息學信息學 ) )。 USE STUDENTUSE STUDENT APPEND APPEND (在編輯窗口添加學號
11、(在編輯窗口添加學號, ,姓名姓名, ,性別性別, ,專業的具體值)專業的具體值)或者或者: : INSERT INTO STUDENT ( INSERT INTO STUDENT (學號學號, ,姓名姓名, ,性別性別, ,專業專業) ) ; VALUES (9811002,VALUES (9811002,王小王小,男男,信息學信息學)例例2.2.向表向表score1.dbfscore1.dbf中添加兩條空白記錄。中添加兩條空白記錄。use score1use score1append blankappend blank append blank append blankbrowsebrow
12、se9例如:有兩個結構完全相同的表例如:有兩個結構完全相同的表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的全部記錄的學號,姓名,專業字段值添加到的全部記錄的學號,姓名,專業字段值添加到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 學號,姓名,專業學號,姓名,專業BROWSEBROWSE10用用“表表”菜單追加記錄菜單追加記錄1. 打開打開STUDENT.DBF,單擊單擊“顯示顯示”菜單的菜單的“瀏覽瀏覽”命令
14、命令, 出現出現STUDENT瀏覽窗口瀏覽窗口;2. 單擊單擊“表表”菜單的菜單的“追加記錄追加記錄”命令命令,在在“追追加加”來源窗口的來源窗口的“類型類型”框中選框中選“Table(Dbf)”,在在“來源于來源于”中選擇要追加記中選擇要追加記錄的表名錄的表名(TTT);3. 單擊單擊“確定確定”按鈕。按鈕。11表結構的修改與復制表結構的修改與復制 表設計器方式表設計器方式打開表文件打開表文件/ /【顯示】菜單【顯示】菜單/“/“表設計器表設計器”命令命令 命令方式命令方式MODIFY STRUCTURE MODIFY STRUCTURE 功能:打開表設計器,從中可以修改當前或選定表功能:打
15、開表設計器,從中可以修改當前或選定表 的結構。的結構。例:修改例:修改score.dbf,score.dbf,增加平均分字段增加平均分字段N(6,2)N(6,2)USE SCOREUSE SCOREMODIFY STRU MODIFY STRU ( (在表設計器中在表設計器中, ,增加平均分字段增加平均分字段N(6,2)N(6,2)12表結構的修改表結構的修改 ALTER TABLE-SQLALTER TABLE-SQL命令命令ALTER TABLE ALTER TABLE 表名表名 ADD | AlterADD | Alter COLUMNCOLUMN 字段名字段名 字段類型字段類型( (字
16、段寬度字段寬度 ,小數小數)注意注意: :一個一個ALTERALTER命令一次只能對一個字段操作命令一次只能對一個字段操作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表結構的修改表結構的修改ALTER TABLE ALTER TABLE 表名表名 RENAMERENAME 老字段名老字段名 TOTO 新字段名新字段名 功能功能: : 對表中指定的字段重新命名。對表中指定的字段重新命名。例例: :重命名重命名scorescore表中的表中的“平均分平均分”字段為字段為“平均成績平均成績”ALTER TABLE score RENAME ALTER TABLE score RENAME 平均分平均分 TO TO 平均成績平均成績ALTER TABLE ALTER
18、 TABLE 表名表名 Drop Drop 字段名字段名 功能功能: : 刪除表中指定的字段。刪除表中指定的字段。例例: :刪除刪除scorescore表中的表中的字段字段“平均成績平均成績”ALTER TABLE score DROP COLUMN ALTER TABLE score DROP COLUMN 平均成績平均成績14表結構的復制表結構的復制1復制表結構復制表結構格式格式: COPY STRUCTURE TO TableName FIELDS FieldList功能功能: 用當前選定的表的結構創建一個新的空自由表。用當前選定的表的結構創建一個新的空自由表。例:將例:將STUDENT
19、.DBF的所有字段復制到的所有字段復制到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 功能:顯示當前打開的表結構。功能:顯示當前打開的表結構。說明說明:1.TO PRINTER 將表結構顯示在屏
20、幕上的同時輸將表結構顯示在屏幕上的同時輸出到打印機上。出到打印機上。2.TO FILE FileName 將表結構顯示在屏幕上的同將表結構顯示在屏幕上的同時輸出到文本文件中。時輸出到文本文件中。 3.LIST 連續顯示表結構連續顯示表結構; DISPLAY 分屏顯示表結分屏顯示表結構。構。顯示表結構顯示表結構162.使用使用“表設計器表設計器”查看表的結構查看表的結構(1) 選擇【文件】菜單的【打開】命令,并選選擇【文件】菜單的【打開】命令,并選擇想要查看擇想要查看的表的表STUDENT.DBF;(2) 單擊【顯示】菜單的單擊【顯示】菜單的“表設計器表設計器”命令命令,系系統將顯示表的結構。統
21、將顯示表的結構。 171. 表的打開表的打開 一、命令方式一、命令方式格式:格式:USE IN ALIAS AGAIN IN 功能功能 : 在指定工作區中打開一個指定的表文件,在指定工作區中打開一個指定的表文件,并將并將記錄指針定位于表中的第記錄指針定位于表中的第1號記錄。號記錄。表的打開與關閉表的打開與關閉18當前工作區當前工作區 VFPVFP把正在使用的工作區稱為當前把正在使用的工作區稱為當前工作區。工作區。 用函數用函數 SELECT( )SELECT( )測試當前工作區測試當前工作區號。號。 用用ALIAS( )ALIAS( )函數測試當前工作區中函數測試當前工作區中表的別名。表的別名
22、。 狀態欄中可顯示當前工作區中表的狀態欄中可顯示當前工作區中表的別名。別名。內存1 xs2 teacher33276719選用工作區選用工作區 在在“數據工作期數據工作期”窗口中設置。窗口中設置。 使用命令:使用命令:SELECT SELECT 工作區號工作區號| |別名別名 SELECT 0SELECT 0:選擇未使用最小編號的工作區:選擇未使用最小編號的工作區 在在VFPVFP中最多可以同時使用中最多可以同時使用3276732767個工作區個工作區。工作區可以用數字來表示,工作區可以用數字來表示,1 1代表第一個工作區,代表第一個工作區,2 2代表第二個工作區,代表第二個工作區,;或者用系
23、統給定的別名或者用系統給定的別名表示,表示,前十個工作區的別名是字母前十個工作區的別名是字母A A到到J J,從,從1111號工號工作區開始,別名為作區開始,別名為 W11 W11 到到 W32767W32767。20例例: (1) 分別在分別在1、3工作區同時打開表工作區同時打開表student.dbf;(2)選擇未使用的最小工作區選擇未使用的最小工作區 2 打開表打開表 SCORE.DBF 命令如下命令如下: USE STUDENT IN A USE STUDENT AGAIN IN C USE SCORE IN 0注意:用可視化方式,必須選中注意:用可視化方式,必須選中“獨占獨占”方式方
24、式21例:在不同工作區打開同一例:在不同工作區打開同一個表個表(在(在“數據工作期數據工作期”中觀察)中觀察)USE STUDENT IN AUSE STDDENT ALIAS SSS AGAIN IN BUSE SCORE IN CUSE SCORE AGAIN IN 0 問題問題:(1)第第2個命令個命令 執行完后,執行完后,student.dbf 的別名是什么的別名是什么?(2) 第第4個命令個命令 執行完后,執行完后,score.dbf 是在哪個工作區中被是在哪個工作區中被打開打開?22二、可視化方式二、可視化方式1.單擊【文件】菜單的【打開】命令單擊【文件】菜單的【打開】命令,在在“
25、打開打開”對 話 框 的對 話 框 的 “ 文 件 類 型文 件 類 型 ” 框 中 選 擇框 中 選 擇 “ 表表(*.DBF)”; ;2.在查找范圍框中選擇驅動器和文件夾在查找范圍框中選擇驅動器和文件夾,再選中再選中“獨占獨占”復選框復選框;3.用鼠標左鍵雙擊需要打開文件的文件名。用鼠標左鍵雙擊需要打開文件的文件名。23表的關閉表的關閉表的關閉表的關閉數據工作期窗口中關閉數據工作期窗口中關閉關閉指定工作區中的表:關閉指定工作區中的表: USE IN USE IN 工作區號工作區號 | |別名別名 關閉所有工作區中的表和與其相關的文件:關閉所有工作區中的表和與其相關的文件: CLOSE AL
26、LCLOSE ALL QUITQUIT & &關閉所有工作區中的表和與其相關的關閉所有工作區中的表和與其相關的 文件文件, ,并退出并退出VFPVFP窗口窗口. .24例:在例:在“數據工作期數據工作期”窗口中觀察表的打開與關閉。窗口中觀察表的打開與關閉。SELECT 1USE STUDENT USE STUDENT AGAIN IN 2 ALIAS ABCUSE SCORE IN 3USE & 關閉哪個工作區中的表關閉哪個工作區中的表?USE IN C USE IN ABC 25記錄的定位記錄的定位 記錄的指針記錄的指針 系統在打開一個表文件后將自動生成三個控制標志:
27、系統在打開一個表文件后將自動生成三個控制標志:記錄開始標志記錄開始標志、記錄指針標志記錄指針標志、記錄結束標志記錄結束標志。文件頭(含表結構等信息)第1號記錄第2號記錄第n號記錄文件尾記錄開始標志記錄指針記錄結束標志Begin Of File BOF( ) End Of File EOF( ) 26記錄指針記錄指針 記錄指針是記錄指針是VFPVFP系統內部的一個指示器,在表中指向系統內部的一個指示器,在表中指向記錄。記錄。每當打開一個表文件時,指針總是指向第一條每當打開一個表文件時,指針總是指向第一條記錄。記錄。 記錄指針指向的記錄叫記錄指針指向的記錄叫當前記錄當前記錄,改變指針的指向叫,改變
28、指針的指向叫記錄的定位。記錄的定位。 測試當前記錄用函數測試當前記錄用函數RECNORECNO()。最小值為()。最小值為1 1,最大值,最大值為為RECCOUNTRECCOUNT()()+1+1。 打開表時記錄指針情況:打開表時記錄指針情況:表中無記錄:表中無記錄: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( | )功能:確定表中當前記錄的編號。功能:確
29、定表中當前記錄的編號。返回值類型:數值型返回值類型:數值型說明:說明:: 指定被測試工作區號,其范圍指定被測試工作區號,其范圍132767。 : 指定表別名指定表別名 RECNO()函數函數28 RECCOUNT()函數函數格式:格式:RECCOUNT( | )功能:確定表中記錄的個數。功能:確定表中記錄的個數。返回值類型:數值型返回值類型:數值型說明:說明:: 指定被測試工作區號,其范圍指定被測試工作區號,其范圍132767。 : 指定表別名指定表別名29 BOF( )函數函數格式格式:BOF (|)返回值類型返回值類型: 邏輯型邏輯型功能功能:判斷表的記錄指針是否在表的開始標志。如果是則返
30、回判斷表的記錄指針是否在表的開始標志。如果是則返回“真真”值值(.T.),否則返回假值,否則返回假值(.F.) 。EOF( )函數函數格式格式:EOF( | )返回值類型返回值類型: 邏輯型邏輯型功能功能:判斷表的記錄指針是否在表的結束標志。如果是則返回判斷表的記錄指針是否在表的結束標志。如果是則返回“真真”值值(.T.),否則返回假值,否則返回假值(.F.) 。30格式格式1: GO | GOTO nRecordNumber IN nWorkArea 功能:將表的記錄指針移動到指定位置。該命令允許省功能:將表的記錄指針移動到指定位置。該命令允許省略略GO 或或 GOTO 命令關鍵字。命令關鍵
31、字。 nRecordNumber:物理記錄號:物理記錄號 IN nWorkArea :指定移動指針操作表所在的工作區。指定移動指針操作表所在的工作區。說明:定位結果不受任何因素影響。說明:定位結果不受任何因素影響。絕對定位命令絕對定位命令 GO 命令命令31格式格式2: GO TOP | BOTTOM 功能:將表的記錄指針移動到功能:將表的記錄指針移動到首記錄首記錄 或或末記錄末記錄說明:定位結果說明:定位結果受受下列因素下列因素(1)的聯合影響,)的聯合影響,但但不受因素(不受因素(2)的影響。的影響。(1) 索引:僅當無索引或索引不起作用時,首記錄就是第索引:僅當無索引或索引不起作用時,首
32、記錄就是第1號記號記錄,而末記錄為記錄號最大的哪一條記錄;錄,而末記錄為記錄號最大的哪一條記錄;(2)命令命令 SET DELETE ON | OFF:這是一條刪除標記開關命令,當這是一條刪除標記開關命令,當ON時,有刪除標記的記錄不時,有刪除標記的記錄不參與操作;當參與操作;當OFF時,有刪除標記的記錄仍參與操作。時,有刪除標記的記錄仍參與操作。絕對定位命令絕對定位命令 GO 命令命令32例例:根據下列命令根據下列命令,寫出操作結果寫出操作結果:SET DELETE OFF USE STUDENT?recno(),eof(),bof(),RECCOUNT() GO 1 & 或者或者
33、GO TOP (表中沒有建立索引表中沒有建立索引)?recno() ,eof(),bof() GO BOTTOM?recno() ,eof(),bof()Index on 姓名姓名 TO XMGO TOP & 記錄指針指向表中首記錄記錄指針指向表中首記錄,但不一定是但不一定是1號記錄號記錄?recno() GO BOTTOM?recno() & 記錄指針指向表中末記錄記錄指針指向表中末記錄,但不一定是記錄號最大的記錄但不一定是記錄號最大的記錄33相對定位命令相對定位命令 SKIP格式:格式:SKIP nRecords IN nWorkArea 功能:以當前記錄為基準,在指定表中
34、向上或向下移功能:以當前記錄為基準,在指定表中向上或向下移動記錄指針(位移量由動記錄指針(位移量由 nRecords 決定)。決定)。說明:說明: 當當 nRecords 缺省時,默認位移量為缺省時,默認位移量為1,即,即 SKIP 等價于等價于 SKIP 1。 若記錄指針若記錄指針已在末記錄已在末記錄,再,再SKIP,則函數,則函數RECNO( ) 的的返回值是表中總記錄數加返回值是表中總記錄數加1的,且的,且EOF( )返回返回“真真”值。值。 若記錄指針若記錄指針已在首記錄已在首記錄,再,再SKIP -1 ,則,則RECNO( ) 的的返回值仍為返回值仍為1, 但但BOF( )返回返回“
35、真真”值。值。34BOF( )及及EOF( )函數示例函數示例設設STUDENT 表中有表中有10條記錄條記錄在命令窗口輸出在命令窗口輸出在狀態行上顯示在狀態行上顯示BOF( )EOF( )當前記錄號當前記錄號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記錄定位記錄定位可視方式可視方式(先打開表(先打開表,顯示數據窗口)顯示數據窗口) 鼠標直接定位:鼠
36、標所點的記錄鼠標直接定位:鼠標所點的記錄 菜單操作定位:選擇菜單操作定位:選擇VFP主菜單的主菜單的表表菜單中的菜單中的“轉到記錄轉到記錄”子菜單下命令提供了六種方式:子菜單下命令提供了六種方式:第一個:第一個: 相當于相當于 GO TOP 命令命令最后一個:相當于最后一個:相當于 GO BOTTOM 命令命令下一個:下一個: 相當于相當于 SKIP 1 命令命令上一個:上一個: 相當于相當于 SKIP -1 命令命令記錄號:記錄號: 相當于相當于 GO nRecordNumber 命令命令定位:定位: 相當于相當于 LOCATE FOR 命令命令36表的瀏覽表的瀏覽數據窗口(本書叫表瀏覽器)
37、的功能:數據窗口(本書叫表瀏覽器)的功能: 顯示記錄顯示記錄:記錄過濾器、字段選擇器、窗口分區:記錄過濾器、字段選擇器、窗口分區 修改記錄修改記錄: “表表”菜單中菜單中 “字段替換字段替換”命令命令 追加與批量追加記錄追加與批量追加記錄: “表表”菜單的菜單的“追加記錄追加記錄”命令命令 邏輯刪除與恢復記錄邏輯刪除與恢復記錄: “表表”菜單的菜單的“刪除刪除”和和“恢復恢復”記錄過濾器:記錄過濾器:“表表”菜單中菜單中“屬性屬性”命令命令/“數據數據過濾過濾器器”字段選擇器:字段選擇器: “表表”菜單中菜單中“屬性屬性”命令命令/“字段篩選字段篩選”窗口的顯示模式:窗口的顯示模式:“顯示顯示
38、”菜單中的菜單中的“瀏覽瀏覽”、“編編輯輯”命令命令37刪除標記列(由刪除標記塊組成)記錄選擇列(由記錄選擇塊組成)拆分條列分隔線行分隔線字段標簽當前記錄指示器數據窗口的組成38表的瀏覽表的瀏覽 BROWSEBROWSE命令命令格式:格式:BROWSE FIELDS FieldListBROWSE FIELDS FieldList FOR Expression FOR Expression FONT cFontName ,nFontSize FONT cFontName ,nFontSize 功能:打開瀏覽窗口,顯示當前表的記錄。功能:打開瀏覽窗口,顯示當前表的記錄。說明:說明:1.Field
39、s FieldList1.Fields FieldList:為用逗號:為用逗號(,)(,)分隔的字段分隔的字段名列表名列表, ,用于指定在瀏覽窗口中顯示的字段。用于指定在瀏覽窗口中顯示的字段。忽略該子句忽略該子句, ,則在瀏覽器窗口顯示全部字段。則在瀏覽器窗口顯示全部字段。39表的瀏覽表的瀏覽說明說明: :2.2.FONT cFontName ,nFontSizeFONT cFontName ,nFontSize:指定瀏覽窗口的字指定瀏覽窗口的字體及字體大小。如果在體及字體大小。如果在FONTFONT子句中省略了字體大小,子句中省略了字體大小,則瀏覽窗口默認采用則瀏覽窗口默認采用1010磅字體
40、,如果省略磅字體,如果省略FONTFONT子句,子句,則默認采用則默認采用8 8磅字體。磅字體。3. 3. FOR Expression 表示只對邏輯表達式取真值的記表示只對邏輯表達式取真值的記錄進行規定操作。錄進行規定操作。40表的瀏覽表的瀏覽例如例如, ,在瀏覽窗口用在瀏覽窗口用“宋體宋體”1313號字,顯示號字,顯示studentstudent表表中所有男同學的信息。命令如下中所有男同學的信息。命令如下: :useusestudentstudentBROWSE FOR BROWSE FOR 性別性別=男男 FONT “FONT “宋體宋體”,13,13再如再如, ,在瀏覽窗口在瀏覽窗口9
41、898級女學生的信息。級女學生的信息。( (設學號字段是設學號字段是數值型數值型) )命令如下命令如下: :BROWSE FOR BROWSE FOR 性別性別=女女 AND substr(strAND substr(str( (學學號號,7),1,2)=“98”,7),1,2)=“98”41(1) (1) 數值轉換成字符串數值轉換成字符串格式:格式:STR(STR( , , ) )功能:將數值表達式的值轉換成字符串。轉換時根據需功能:將數值表達式的值轉換成字符串。轉換時根據需要自動進行四舍五入。要自動進行四舍五入。返回字符串的理想長度返回字符串的理想長度L L = =數值表達式值的數值表達式
42、值的整數位數整數位數+ +小數位數小數位數+1+1位小數點位小數點。 如果如果 的值大于的值大于L L,則字符串加前導空格以,則字符串加前導空格以滿足規定的滿足規定的 要求;要求;數據類型轉換函數數據類型轉換函數42 如果如果 的值大于等于的值大于等于 值的整值的整數部分位數(包括負號),但又小于數部分位數(包括負號),但又小于L L,則優先滿足,則優先滿足整數部分而自動調整小數位數;整數部分而自動調整小數位數; 如果如果 的值和的值和 都缺省,則只輸出都缺省,則只輸出整數部分。整數部分。 如果如果 的值小于的值小于 值的整數部分值的整數部分位數(包括負號),輸出結果為位數(包括負號),輸出結
43、果為“* *”,(表示溢出),(表示溢出)數據類型轉換函數數據類型轉換函數43(1) 數值轉換成字符串數值轉換成字符串 例:例:N= -321.4456 ?str(n) , str(n,5) -321 -321 (前面有前面有1個空格個空格) ?str(n,3), STR(n,6,1) * -321.4 ? str(n,6,2), str(n,9,2) -321.5 -321.45 (前面有前面有2個空格個空格)441.命令方式命令方式 LIST | DISPLAY Scpe FIELDS FieldsList FOR Expression1 WHILE Expression2 OFF TO
44、PRINT TO FILE FileName 功能:在主窗口中顯示當前表的有關信息。功能:在主窗口中顯示當前表的有關信息。 List 默認范圍是所有記錄,默認范圍是所有記錄, Display 默認范圍是當前記錄。默認范圍是當前記錄。顯示記錄命令顯示記錄命令45說明:說明:Scope 指明執行命令時的作用范圍。指明執行命令時的作用范圍。RECORD n 表中第表中第N條記錄。條記錄。NEXT n 從表中當前記錄起,向下共從表中當前記錄起,向下共n個記錄。個記錄。REST 從表中當前記錄起到末記錄止。從表中當前記錄起到末記錄止。 ALL 表中全部記錄。表中全部記錄。 TO PRINTER 將結果同
45、時輸出到屏幕和打印機。將結果同時輸出到屏幕和打印機。 TO FILE FileName 將記錄輸出到指定的文本文件中,將記錄輸出到指定的文本文件中, 默認擴展名默認擴展名是是.txt。 OFF 在主窗口顯示記錄時不顯示記錄號。在主窗口顯示記錄時不顯示記錄號。46 FOR Expression 表示只對邏輯表達式取表示只對邏輯表達式取真值的記錄進行規定操作。真值的記錄進行規定操作。 WHILE Expression表示,表示, 如默認范圍子如默認范圍子句,則從當前記錄開始測試是否滿足邏輯表達句,則從當前記錄開始測試是否滿足邏輯表達式條件,如滿足便對該記錄進行規定操作。接式條件,如滿足便對該記錄進
46、行規定操作。接著對下一條記錄進行測試,如仍滿足就再進行著對下一條記錄進行測試,如仍滿足就再進行規定操作,否則停止操作,不管其后是否還有規定操作,否則停止操作,不管其后是否還有滿足條件的記錄。滿足條件的記錄。47例:寫出下列命令執行后的結果。例:寫出下列命令執行后的結果。USE STUDENT ?RECNO( ) &顯示當前記錄顯示當前記錄號號DISPLAY &顯示當前記錄顯示當前記錄LIST OFF &顯示表中全部記錄顯示表中全部記錄,不顯示記錄不顯示記錄號號?EOF( ) &顯示顯示EOF() 函數狀態函數狀態GO 5 &將記錄指針指向將記錄指針指向5
47、號記錄號記錄LIST NEXT 1 &顯示當前記錄顯示當前記錄 = DISPLAYLIST NEXT 4 &顯示顯示58號記錄號記錄?RECNO( ) &顯示當前記錄號顯示當前記錄號LIST REST &顯示從當前記錄到最后一個記錄顯示從當前記錄到最后一個記錄48格式格式: LEFT(: LEFT(,) RIGHT( RIGHT(,) SUBSTR( SUBSTR(,)返回值類型:字符型返回值類型:字符型功能:功能:LEFT( )LEFT( )從字符表達式值的左端取指定長度的子從字符表達式值的左端取指定長度的子串作為返回值。串作為返回值。 RIGHT( )RIG
48、HT( )從字符表達式值的右端取指定長度的子從字符表達式值的右端取指定長度的子串作為返回值。串作為返回值。 SUBSTR( )SUBSTR( )從字符表達式值的指定起始位置取指從字符表達式值的指定起始位置取指定長度的子串作為返回值。定長度的子串作為返回值。字符串函數字符串函數49(1)(1)系統日期和時間函數系統日期和時間函數格式:格式:DATE( )DATE( ) TIME( ) TIME( )功能:返回系統的當前系統日期、時間。功能:返回系統的當前系統日期、時間。 DATE( )DATE( )函函數返回值類型為日期型;數返回值類型為日期型; TIME( )TIME( )函數返回值類型函數返
49、回值類型為字符型。為字符型。函數返回格式可以通過函數返回格式可以通過SET CENTURYSET CENTURY,SET DATESET DATE和和SET SET MARK TOMARK TO命令來改變。命令來改變。SET CENTURY OFFSET CENTURY OFF? DATE( )DATE( )02/21/01 02/21/01 顯示不帶世紀的當天日期顯示不帶世紀的當天日期SET CENTURY ONSET CENTURY ON? DATE( ) DATE( ) 顯示帶世紀的當天日期顯示帶世紀的當天日期 日期和時間函數日期和時間函數50格式:格式:YEAR() MONTH( DA
50、Y()功能:分別返回與指定日期對應的年、月、日值。功能:分別返回與指定日期對應的年、月、日值。返回值類型:數值型返回值類型:數值型X=date()?year(x),month(x),day(x) 2001 2 21 問題:問題:year(x),month(x) ,day(x)函數的返回值是什么類函數的返回值是什么類型?型? 求年份、月份和天數求年份、月份和天數返回51字符串轉換成日期或日期時間字符串轉換成日期或日期時間格式:格式:CTOD(字符表達式字符表達式)功能:將字符表達式的值轉換成日期型數據功能:將字符表達式的值轉換成日期型數據返回值類型:日期型。返回值類型:日期型。X=ctod(“1
51、2/09/92”)?X,type(x)12/09/92 D數據類型轉換函數數據類型轉換函數52格式:格式:DTOC(,1)功能:將一個日期表達式中的日期轉換成字符功能:將一個日期表達式中的日期轉換成字符型日期。型日期。返回值類型:字符型返回值類型:字符型 A=2001-09-06?dtoc(a),TYPE(A)09/06/01 C日期或日期時間轉換成字符串日期或日期時間轉換成字符串數據類型轉換函數數據類型轉換函數53例:根據不同要求例:根據不同要求,寫出操作命令寫出操作命令:顯示顯示STUDENT表中姓表中姓“王王”的的記錄的的記錄USE STUDENTLIST FOR LEFT(姓名姓名,2
52、)=“王王”或者或者LIST FOR 姓名姓名=“王王” &系統為系統為 SET EXACT OFF顯示所有姓名中第顯示所有姓名中第2個字是個字是“志志”的記錄的記錄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功能:用表達式的值自動替換指定字段中的值,功能:用表達式的值自動替換指定字段中的值,若沒有若沒有范圍和條件選項時只對當前記錄操作。范圍和條件選項時只對當前記錄操作。注意:注意:with 兩邊的數據類型必須一致;多工作區時,字兩邊的數據類型必須一致;多工作區
54、時,字段名允許是另一工作區已打開的庫文件的字段名。段名允許是另一工作區已打開的庫文件的字段名。 數據更新命令數據更新命令 (替換字段值替換字段值)56命令格式:命令格式: UPDATE 表名表名 SET 字段名字段名1=表達式表達式1 ,字段名,字段名2=表達式表達式2 WHERE 條件條件 功能:用表達式的值自動替換指定字段中的值,功能:用表達式的值自動替換指定字段中的值,若沒有若沒有WHERE 條件選項時,則更新全部記錄條件選項時,則更新全部記錄的字段值。否則,更新滿足條件記錄的字段值。的字段值。否則,更新滿足條件記錄的字段值。注意:注意:= 兩邊的數據類型必須一致。兩邊的數據類型必須一致
55、。 SQL的數據更新命令的數據更新命令57UPDATE STUDENT ; SET 備注備注= “2003年被評為三好學生年被評為三好學生” ; WHERE 姓名姓名=王志剛王志剛例:在例:在SCORE.DBF中增加一個年齡字段中增加一個年齡字段,將每個記將每個記錄的年齡值填入字段中。錄的年齡值填入字段中。ALTER TABLE SCORE ADD 年齡年齡 N(3) REPLACE ALL 年齡年齡 WITH year(date( )-year(出生年月出生年月)例:例:1. 用用SQL命令將王志剛同學的備注字段中填入命令將王志剛同學的備注字段中填入“2003年被評為三好學生年被評為三好學生
56、”。 2. 顯示填入備注字段的內容顯示填入備注字段的內容.LIST FIELD 備注備注 FOR 姓名姓名=王志剛王志剛58USE STUDENTCOPY TO STU &復制一個新表復制一個新表USE STU REPLACE 學號學號 WITH left(學號學號,2) + “A” ;+ right(學號學號,4) FOR subs(學號學號,3,1) = “1”REPLACE 學號學號 WITH left(學號學號,2) + “B” ;+ right(學號學號,4) FOR substr(學號學號,3,1) = “2”例:使用命令將學號第例:使用命令將學號第3個字符是個字符是“1”
57、的替換為的替換為“A”,第第3個字符是個字符是“2”的替換為的替換為“B”,并顯示替換后的內容,并顯示替換后的內容。(學號字段的類型必須是學號字段的類型必須是“字符型字符型”)例如例如: 9811052 - 98A1052 9921036 - 99B1036591. 編輯記錄編輯記錄格式:格式: EDIT Scope Fields FieldList FOR / WHILE Expression CHANGE Scope Fields FieldList FOR / WHILE Expression 功能:用手工方式編輯、修改指定的字段值。功能:用手工方式編輯、修改指定的字段值。 說明:說明:
58、EDIT和和CHANGE命令功能相同。命令功能相同。兩命令默認兩命令默認的范圍是的范圍是 ALL 。 記錄的編輯、修改記錄的編輯、修改60例:用例:用 EDIT 命令手工修改命令手工修改student表中第表中第5個記個記錄錄“學制學制”字段的內容。字段的內容。(“學制學制”字段值改為字段值改為“七七”)Use studentEdit field 學制學制 FOR recno( )=5例:用例:用 CHANG 命令手工編輯命令手工編輯student表中臨床醫表中臨床醫學專業記錄學專業記錄“備注備注”字段的內容。字段的內容。(內容自定內容自定)Change for 專業專業=“臨床醫學臨床醫學”
59、 fields 備注備注 *用手工方式填入用手工方式填入“七七”*依次分別雙擊依次分別雙擊memo用手工方式填入內容用手工方式填入內容61記錄的插入記錄的插入命令格式命令格式: INSERT BEFORE BLANK 說明:說明: 若選擇若選擇BEFORE,則在當前記錄之前插入一條記,則在當前記錄之前插入一條記錄;否則,在當前記錄之后插入一條記錄;錄;否則,在當前記錄之后插入一條記錄; 若選擇若選擇BLANK,則僅插入一條空白記錄;否則,則僅插入一條空白記錄;否則,立即進入數據窗口編輯該空白記錄;立即進入數據窗口編輯該空白記錄;注意:注意: 若表存在若表存在結構化復合索引結構化復合索引或者有已
60、打開的單索引,則或者有已打開的單索引,則 INSERT 命令將失去插入效果,其執行的結果等同于命令將失去插入效果,其執行的結果等同于 APPEND 命令命令62 記錄的刪除記錄的刪除 刪除記錄時為了安全,刪除記錄時為了安全,VFP要經過兩個步驟完成:首要經過兩個步驟完成:首先給記錄作刪除標記先給記錄作刪除標記(稱稱邏輯刪除邏輯刪除),然后把所有做了刪,然后把所有做了刪除標記的記錄從數據表文件中清除掉除標記的記錄從數據表文件中清除掉(稱稱物理刪除物理刪除)。 凡是被邏輯刪除的記錄,均可恢復成正常記錄。凡是被邏輯刪除的記錄,均可恢復成正常記錄。 記錄的第一個字節專門用來保存記錄的刪除標記。記錄的第一個字節專門用來保存記錄的刪除標記。 當當 SET DELETE ON 命令執行后,被邏輯刪除的記錄,命令執行后,被邏輯刪除的記錄,將不再
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025LED照明設備安裝合同模板
- 2025食品銷售合同模板
- 《2025企業合作合同范本 技術共享協議與協同研發保密合同(分公司專用)》
- 2025建筑外墻陶瓷掛板分包合同范本
- 黑龍江省哈爾濱市2024-2025學年高二下冊7月期末考試數學試卷(附答案)
- 海南省定安縣2024~2025學年 高二下冊開學考試數學試卷附解析
- 廣東省普寧市2024~2025學年 高一下冊第二次調研考試數學試卷附解析
- 甘肅省天水市部分學校2025屆高三第三次聯考(三模)數學試卷附解析
- 2025屆四川省綿陽市三臺縣中考二模數學試卷含答案
- 量子計算環境下隱私數據加密方法-洞察闡釋
- 以DeepSeek為代表的AI在能源行業的應用前景預測
- 中國糧食面試試題及答案
- 旅游公司介紹模板
- LY/T 3408-2024林下經濟術語
- 2024年度無人駕駛技術課件
- 《南京中山陵》課件
- 計算機網絡知到智慧樹章節測試課后答案2024年秋遼寧工程技術大學
- 計算機網絡(中國石油大學(華東))知到智慧樹章節測試課后答案2024年秋中國石油大學(華東)
- 2024年廣東省中考語文試題含答案
- DB32∕T 2127-2012 安防服務企業報警服務規范
- 大學體育知到智慧樹章節測試課后答案2024年秋云南民族大學
評論
0/150
提交評論