




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2015.9 日常生活工作中,我們每天都要接觸大量的信息,比如學生成績、人事檔案、工資表、貨物清單等。那么,它們都可以表示為數據的形式,這么多的數據,單靠紙、筆、算盤進行統計幾乎是不可能的,計算機的出現解決了這個復雜的問題,它將大批量的數據信息存儲在大容量磁盤上,并方便地進行管理。那么,這些數據是怎樣存儲的,怎樣被訪問、修改和刪除呢?這就用到了數據庫技術。數據庫技術將各種各樣的數據分門別類地存儲起來,用戶可以很容易地查看、管理、操作這些數據。 數據不僅僅是文本,多媒體數據庫的發展可以讓數據是圖片、聲音、視頻等內容。 a. 數據的共享性 b. 數據的獨立性 c. 數據的完整性 d. 數據的集中性
2、數據模型系名系名 系號系號 系主任系主任專業號專業名專業號專業名教師號教師號 姓名姓名 職稱職稱學號學號 姓名姓名 性別性別 年齡年齡課程號課程號 課程名課程名 學分學分課程課程學生學生選修選修系部系部 關系模型中每個關系對應一張二維表,它由一些行和列組成。關系模型中,實體和實體之間的聯系都使用關系(二維表)來表示的。關系模型結構單一、操作方便,容易被用戶接收,且有堅實的數學理論基礎,因而得到了廣泛的應用,成為目前最流行的一種數據模型。當前的一些數據庫,從Oracle到SQL Server,以及Access和VFP,都毫無例外地采用了關系模型。1、字符型(C) 由字母(漢字)、數字、空格等任意
3、字符串組成。每個字符占1字節,漢字占2字節。長度0-254。2、貨幣型(Y) 存儲與貨幣有關的數據,如工資、價格等。3、日期型(D) 保存不帶時間的日期,存儲格式為“yyyymmdd”。字段寬度8字節。4、日期時間型(T) 包括年、月、日、時、分、秒。 5、邏輯型 用于存儲只有兩個值的數據,存入的值只有(.T.)和(.F.)兩種狀態,占一個字節。如婚否,及格否等。6、數值型用來存儲由數字、小數點和正負號組成的,可以進行計算的數據,如成績、重量、體積、訂貨數量等。7、雙精度型(B) 存儲高精度的試驗數據。8、浮點型(F)9、整型 存放由數字和正負號構成的整數型數據。其字段寬度為4字節。使用整型比
4、使用其它類型節省空間,運算速度也快。10、備注型(M) 占用10個字節的空間,單獨存在于一個備注文件中,備注文件擴展名為.DBT。1、常量 值不變的數據項。 數值型常量:5、2.345、-100。 字符型常量:“XUV”、“歡迎!”、Hello。 邏輯型常量:.T. 和 .F. 。 日期型常量和日期時間型常量:2008-11-11、2009-1-12 11:11am 。2、變量 可以變化,有名字的數據。 命名規則:變量名只能由組成。以字母或下劃線,長度為1128個字符。不能使用VFP的保留字。每個漢字占2字符。 “A_XX” 、“_UU” 、“運算結果”。 “7abc” 、“IF”、 “ELS
5、E” 、“A2”、“2” 、“8開始” 。1、算術運算符2、字符串運算符3、日期時間運算符4、關系運算符5、邏輯運算符 2+3 1+4 .AND. .NOT. 68運算符名稱示例加減乘除乘方X*3, X100求余250%50=0表達式的書寫規則: 每個符號占格,所有符號都必須排在同一橫線上,不能出現上標或下標。 例如:102寫為102或10*2、3xy寫為3*x*y、2x+5(y+z)寫為2*(x+5*(y+z)、r2寫為pi*r2。練習:將下式寫為VFP算術表達式。運算符名稱說明連接將字符型數據進行連接空格移位連接兩字符串連接時,前一數據尾部的空格移到后面數據的尾部。字符串表達式: “ab1
6、23”+”88xy” 結果為:“ab12388xy”。 “歡迎光臨”“謝謝惠顧!”結果為:“歡迎光臨謝謝惠顧!”。 “abc “+” 123 “+” xyz “結果為:”abc 123 xyz “。 “ABC “+”DEF”結果為:”ABCDEF ”。日期之間只能進行加減運算,有下面3種情況: (1) 日期相減,得到相差的天數。 (2) 日期加數值,得到新的日期。 (3) 日期減數值,得到以前某個日期。例如:2008/11/11 2008/11/1 結果為數值10。2008/11/11 + 5 結果為日期型數據: 2008/11/16。2008/11/11 - 3 結果為日期型數據: 2008
7、/11/8。運算符運算符名稱名稱示例示例110 值為:值為: .T.=3=、#、!=不等于不等于72+5 值為:值為:.F. $包含于包含于“ABC”$”ABCDE”值為:值為: .T.=等同于等同于 說明:關系運算符兩邊的表達式只能是數值型、字符串型、日期型,不能是邏輯型的表達式或值 。 字符型數據按其ASCII碼值進行比較,ASCII碼大的字符所在的串值大。(ASCII碼用0-127的數字表示字母和一些符號,其中(的ASCII碼) “=”表示精確匹配。例如,使用條件UPPER(NAME)=“SMITH”進行查找時,可以找到SMITHSON、SMITHERS、SMITH等串,而如果用“=”,
8、將得到SMITH的串。.NOT. 非 .AND. 與.OR. 或邏輯運算真值表:ab.NOT. aa .AND. ba .OR. b.T.T.F.T.T.T.F.F.F.T.F.T.T.F.T.F.F.T.F.F.運算符的優先順序:優先級降低算數運算符的優先級為( ) 或* *和/ % +和- 。關系運算符: 、 1+4 .AND. .NOT. 65 .AND. .NOT. 682) 關系運算:.F. .AND. .NOT. .T.3) 非運算: .F. .AND. .F.4) 結果; .F.例:根據所給條件,寫出例:根據所給條件,寫出VFP邏輯表達式。邏輯表達式。(1) 一元二次方程ax2+
9、bx+c=0有實根的條件是: a0,并且b2-4ac0。結果為:a0 .AND. B2-4*a*c=0。 MAX(表達式1,表達式2,) 求各表達式中的最大值。 MIN( ) 求各表達式中最小值。 MOD(表達式1,表達式2) 求表達式1除以表達式2的余數。 ?BETWEEN(15,10,30) &結果顯示結果顯示 .T. score=80 ?IIF(score=90,”優優”,”合格合格”) &顯示:合格。顯示:合格。 LEN(表達式表達式) 求字符串表達式長度。求字符串表達式長度。 SUBSTR(表達式表達式 ,n,m ) 從字符串表達式中提取從從字符串表達式中提取從n開始
10、的開始的m個字符的字符串,若省略個字符的字符串,若省略m,則取,則取n開始的所有字符串。開始的所有字符串。 SUBSTR(“11/30/03”,7,2)=“03 LOWER(表達式) 將字符串表達式中的大寫字母轉化為小寫字母,其余不變。 UPPER(表達式) 與上相反。 DATE( ) 取系統當前日期。 TIME( ) 取系統當前時間。 DATETIME( ) YEAR(日期表達式) 取日期表達式的年份值,返回整數。 MONTH(日期表達式) 取日期表達式的月份值,返回整數。 DAY(日期表達式) 取日期表達式的月份值,返回整數。 STR(數值表達式) 轉換數值表達式為數字字符串。 CTOD(
11、表達式) 將字符串轉化為日期型。 DTOC(表達式) 將日期型表達式轉化為字符串。 86年出生的表達式: SUBSTR(DTOC(出生時間出生時間),7,2)=86 等價于:等價于: YEAR(出生時間出生時間)=1986 出生時間必須為日期型。出生時間必須為日期型。1、求3的10次方。2、求199除以5得的余數。3、 1995 + 年+ 8 + 月+ 日 結果為什么?4、 聞雞 起舞 + 枕戈 待旦 5、 聞雞 起舞 枕戈 待旦6、2008/11/11 - 3 結果為?7、3#9 結果為 ?(或、!=)8、菊$采菊東籬下 結果為?9、陶潛=陶 精確匹配,結果為?10、(18).AND.(28
12、).OR.(24) 12、求 a$bca .AND. (3!=5 .OR. .F.) 的值。13、ALLTRIM( 123 ) =?14、STR(表達式) 的作用?15、CTOD(表達式) 的作用?16、DTOC(表達式) 的作用?17、YEAR(CTOD(01/01/08) 的值為什么?18、MONTH(CTOD(11/01/86) 的值為什么?19、DATE()、TIME()、DATETIME() 的值為什么?VFP命令由命令動詞(關鍵字)+短語。CREATE 數據庫文件名。USE SHARED EXCLUSIVE NOUPDATE 以共享方式打開,以獨占方式打開,以只讀方式打開。以共享方
13、式打開,以獨占方式打開,以只讀方式打開。VFP中有些中有些命令要求以命令要求以獨占獨占的方式打開才能執行,如的方式打開才能執行,如ALTER TABLE 、INDEX、INSERT、MODIFY STRUCTURE 、PACK等。等。對記錄進行操作的命令:命令動詞命令動詞 FIELDS FOR OFF ( 表示可選,表示必選。)LIST | DISPLAY STRUCTURE &多出來的一個字節是存放刪除標記多出來的一個字節是存放刪除標記用的。用的。BROWSE &打開表的瀏覽窗口打開表的瀏覽窗口。LIST (列出當前表中所有記錄項)。命令:LIST &默認范圍為ALL
14、LIST NEXT 3 &只對包含當前記錄在內的n 個記錄進行操作。LIST RECORD 5 &只對第5條記錄進行操作。Go 6 &跳轉到第6條記錄。LISTREST &從當前記錄一直到文件尾。記錄范圍一般有種選擇:ALL: 對數據表文件的全部記錄進行操作,省略時,默認為ALL。NEXT n: 對包含當前記錄在內的以下n個記錄操作。RECORD n : 只對第n個記錄操作。REST :從當前位置開始到文件尾。默認的數據表記錄范圍:默認的數據表記錄范圍:DELETENEXT 1 (當前記錄)ALLDISPLAYRECALLREPLACE其它命令ALLDELETE
15、 & 刪除當前記錄行。(不帶FOR語句)DISPLAY & 顯示當前記錄。RECALL & 取消當前記錄的刪除標記DELETE FOR 性別 &(刪除所有性別為男的學生,僅打上刪除標記,非物理刪除)。DISPLAY FOR 入學成績=480 & 顯示入學成績大于480的所有記錄。Go 2RECALL ALL & 取消當前表中所有記錄的刪除標記。后面可以跟字段名和表達式。LIST FIELDS 姓名,性別,出生時間,入學成績 & 后跟字段名LIST FIELDS “姓名”+姓名,”性別”,性別FOR子句:LIST FOR 性別 .AND.
16、入學成績=480LIST FIELDS 姓名,入學成績 FOR 性別 .AND. 入學成績=480LIST FIELDS “姓名”+姓名,”性別”,性別 FOR .NOT. 性別LIST ALL FIELDS 學號,入學成績 FOR 入學成績=460 .AND. 性別DISPLAY FOR 出生時間CTOD(“03/16/86”) FOR的作用是:在規定的中,按檢查全部記錄。即從第1條記錄開始,滿足條件的就執行該命令,不滿足條件就跳過去繼續搜索,直到最后一條記錄。若省略,則默認為ALL。命令書寫規則:命令書寫規則:1)每條命令必須以一個命令動詞開頭。2).T. .F. 兩個邏輯值中的小數點與字
17、母間不能有空格。3)一個命令行的最大長度是254個字符,空格數也包括在內。4)如果一個命令太長,一行寫不下,可以使用續行符“”。5)不區分大小寫。6)命令動詞和子句中的短語可以用其前4個字符縮寫表示。如DISPLAY STRUCTURE 可簡寫為DISP STRU。7)不要用A到I之間的單個字母作為表名,因為它們已被保留作數據庫工作區的名稱。8)不要用VFP的保留字作文件名、字段名、變量名等。9)一行只能寫一條命令,每條命令的結束標志是回車鍵。10)數據庫文件后綴為數據庫文件后綴為.DBC、表文件名后綴為、表文件名后綴為.DBF、備注文件、備注文件.FPT。數據表的基本概念數據表的基本概念 數
18、據表: 一些有組織數據的集合,由行、列組成的二維表格。簡稱表(Table)。一個數據庫包含一個或多個二維表,表表示現實世界的關系或實體,各個數據表之間可能存在某種關系。 字段:數據表中的每一列稱為一個字段,它對應表格中的數據項,每個數據項的名稱稱為字段名(屬性),如“年齡”、“性別”、“學號”、“入學時間”等都是字段名。 記錄:表中每一數據行成為一條記錄,每條記錄由許多字段組成,如“2006001、趙小霞、女、1987年6月12日、490、計算機、程家吉”。St.dbf數據表數據表啟動啟動VFP建立數據表建立數據表 可以在VFP中建立兩種表:數據表和自由表。數據表是數據庫的一部分,自由表可以獨
19、立存在于任何數據庫之外。數據庫文件后綴為.DBC、表文件名后綴為.DBF、備注文件.FPT。 1) 利用“表設計器”創建新表。 2) 追加記錄。 3) 使用命令創建新表 CREATE TABLE ( () ,() 字符型(C) 由字母(漢字)、數字、空格等任意字符串組成。每個字符占1字節,漢字占2字節。長度0-254。貨幣型(Y) 存儲與貨幣有關的數據,如工資、價格等。日期型(D) 保存不帶時間的日期,存儲格式為“yyyymmdd”。字段寬度 字節。日期時間型(T) 包括年、月、日、時、分、秒。 邏輯型 用于存儲只有兩個值的數據,存入的值只有(.T.)和(.F.)兩種狀態,占 個字節。如婚否,
20、及格否等。數值型 用來存儲由數字、小數點和正負號組成的,可以進行計算的數據,如成績、重量、體積、訂貨數量等。整型 存放由數字和正負號構成的整數型數據。其字段寬度為4字節。使用整型比使用其它類型節省空間,運算速度也快。備注型(M) 占用10個字節的空間,單獨存在于一個備注文件中,備注文件擴展名為.DBT。CREATE TABLE St_1(學號 c(7), 姓名 C(6), 性別 L(1), 出生時間 d(8),入學成績 n(6,1), 所在系 c(10), 系負責人 c(8) )2、打開表命令 USE St3、關閉表命令 USE4、添加記錄命令 APPEND瀏覽數據表 USE St (如果當前
21、表不在如果當前表不在默認路徑默認路徑下下,一定要加路徑一定要加路徑) BROWSE USE “d:vfpst.dbf” 顯示數據還可以使用LIST和DISPLAY命令。命令格式如下: LIST或DISPLAY FIELDS FOR OFF (DISPLAY若沒有FOR語句,則只顯示當前行。若不指定FIELDS,則輸出所有字段。加上OFF,則顯示系統加上的記錄號,反之,不顯示。)顯示所有數據: LIST 或 DISPLAY ALL。顯示當前記錄: DISPLAY不帶記錄號現實當前記錄: DISP OFF顯示男同學的姓名和出生時間: DISPLAY 姓名,出生時間 FOR 性別 或 LIST 姓名
22、,出生時間 FOR 性別顯示入學成績在480分以上的女生的學號、姓名、性別、入學成績。 LIST OFF “學號:”+學號,姓名,性別,入學成績 FOR .not. 性別 .and. 入學成績=480顯示女同學的姓名和年齡: DISP 姓名,year(date()-year(出生時間) FOR 性別:EDIT與CHANGE命令等價。例如: 修改當前記錄 EDIT 修改第n條記錄 EDIT n 修改包括當前記錄在內的n條記錄:EDIT NEXT n列出列出8月份出生的女同學的姓名和出生時間月份出生的女同學的姓名和出生時間?列出年齡大于等于列出年齡大于等于20歲的學生紀錄歲的學生紀錄,要求不顯示記
23、錄號要求不顯示記錄號? 記錄指針的移動: 絕對定位: GO TOP、GO BOTTOM、GO 。 相對定位: SKIP 。 n0 下移、n0 上移、無n向下移動一條記錄,n包含小數,則四舍五入取整。 條件定位:LOCATE FOR條件范圍 按順序搜索表,直到找到滿足制定條件的第一個記錄,若無滿足條件的記錄,指針停在指定范圍的最后一條記錄。(所謂的“范圍”包括ALL、NEXT n、RECORD n、REST)若要繼續查找滿足條件的記錄,用CONTINUE(必須在LOCATE之后出現)。定位到第1條記錄: GO TOP。定位到最后一條記錄:GO BOTTOM。下一個: SKIP。上一個: SKIP
24、-1。定位到第n條記錄: GO n 。當前記錄的記錄號可用函數 返回。當前表中記錄的總個數可用 函數返回。指向文件頭的函數和指向文件尾的函數。 由于大多數的操作都是針對表記錄的,那么就引入了一個概念:當前記錄。剛打開一個表時,指針指向表的第一條記錄。第一條記錄前還有一個位置稱為文件頭,在最后一條記錄的后面有一個位置稱為文件尾。記錄指針記錄指針文件頭文件頭12n文件尾文件尾第第1條記錄條記錄第第2條記錄條記錄第第n條記錄條記錄 指針指向文件頭時:函數指針指向文件頭時:函數BOF( )的值為的值為 .T. 。當指針指向文件尾。當指針指向文件尾時,文件尾函數時,文件尾函數EOF( )值為真。如果打開
25、的是一個空表,則兩函數同值為真。如果打開的是一個空表,則兩函數同時為時為 .T. 。USE st?BOF(),EOF(),RECNO() &結果為 .F. .F. 1SKIP?BOF(),EOF(),RECNO() &結果為 .F. .F. 2GO TOP?BOF(),EOF(),RECNO() &結果為 .F. .F. 1SKIP-1?BOF(),EOF(),RECNO() &結果為 .T. .F. 1GO BOTTOMSKIP?BOF(),EOF(),RECNO() &結果為 .F. .T. 12 1、在“瀏覽”模式下修改記錄 2、在“編輯”模式下修
26、改記錄 EDIT 3、使用批替換命令 例:給女同學的“入學成績”加10分,將某數據表的總分字段設置為“語文”和“數學”的成績和。 命令如下: REPLACE ALL 入學成績 WITH 入學成績+10 FOR 性別 REPLACE ALL 入學成績 WITH 語文+數學將計算機系學生的成績加將計算機系學生的成績加10分分?將計算機系學生的系負責人改為將計算機系學生的系負責人改為”丁老師丁老師”? 批替換命令REPLACE可對字段內容成批自動地進行修改(替換),而不必在編輯狀態下逐條修改。語法格式如下: REPLACE WITH , WITH FOR 說明: 選項只能是ALL、NEXT、RECO
27、RD、REST4種。 若不選擇、FOR 子句,默認為當前記錄。 REPLACE 命令不重新定位記錄指針,因此在執行該命令時,必須先把記錄指針定位到要修改的那個記錄,如果沒有FOR條件限制,只更改當前行。 如果要用REPLACE命令填充一個新記錄的數據,那么這個記錄應先用APPEND BLANK或INSERT BLANK命令生成一個空記錄,再填入數據。例如: APPEND BLANK REPLACE 學號 WITH “2006200”,姓名 WITH “丁一”,性別WITH .T.,出生時間 WITH CTOD(“07/19/87”),入學成績 WITH 505,所在系 WITH “計算機”,系
28、負責人 WITH “程家吉”將第將第2條記錄的名字改為條記錄的名字改為“朱勤朱勤”。例例:新表的創建和數據的添加:新表的創建和數據的添加:create table ScoreTable(學號 c(8), 課程號 c(3), 成績 n(6,1)append blankreplace 學號 with 2002001, 課程號 with 003,成績 with 99append blankreplace 學號 with 2002200, 課程號 with 001,成績 with 80.5append blankreplace 學號 with 2002020, 課程號 with 002,成績 with
29、 89list1、在“瀏覽”或“編輯”模式下刪除記錄 標記刪除屬于邏輯刪除,不等同于物理刪除,要想真正刪除記錄(物理刪除),應選擇“表”菜單”徹底刪除”。2、刪除滿足條件的記錄3、刪除的命令 DELETE FOR &該命令屬于邏輯刪除,刪除后記錄仍能夠被修改、復制、顯示等,只是前面多了刪除標記“*”。 例:將所有記錄加上刪除標記。 DELETE ALL 例:刪除所有入學成績小于等于470的學生記錄。 DELETE ALL FOR 入學成績=470 例:刪除所有中文系的女生記錄。(VFP 中,邏輯運算符兩側的點號可以省略。) DELETE ALL FOR st.所在系=“中文” .and
30、. .not. 性別 RECALL FOR RECALL是DELETE的逆操作,作用是取消標記,恢復成正常記錄。刪除出生時間在刪除出生時間在1986年及以前的學生信息?年及以前的學生信息? 刪除中文系的所有學生?刪除中文系的所有學生? 物理刪除所有男同學的信息?物理刪除所有男同學的信息? 將數據表中所有具有刪除標記的記錄正式從表中刪除。 PACK 為物理刪除命令,一旦執行,無法恢復。 ZAP 命令等價于DELETE ALL 與 PACK連用,但速度更快,一旦執行,無法恢復。 例如:徹底刪除表中所有記錄。 DELETE ALL PACK7.2.6 修改數據表結構修改數據表結構 使用下面命令打開表
31、設計器: MODIFY STRUCTURE 或 MODI STRU 。 通常我們輸入的數據是無序的,當數據量很大,表中有成千上萬條記錄時,如果不按照某種順序排列,尋找數據必須從頭到尾搜索整個數據表,這樣效率就大大降低了。為了解決這個問題,可以讓記錄按照某種順序(如數字大小或字符順序)來排列,在數據庫中該方法稱為索引 。有了索引,用戶可以快速查到所需的數據。 索引就是根據某字段值,創建一個有序的索引文件,并不實際調整數據表中每個記錄的位置,因而記錄在數據表中的位置不變,而索引文件中的項是有序的。索引相當于基本表的目錄,如同有一本書,它前面設有目錄,目錄包括摘要內容和對應頁碼,索引則相應地含有和。
32、基于學號的索引基本表(無序)索引包括兩項內容:索引包括兩項內容:無序表無序表和和有序表有序表的查詢時間區別很大。的查詢時間區別很大。 在沒有索引的表上進行數據查詢,顯然,是對無序表的查詢,需要花費相當多的時間,從第一行記錄開始一行一行地進行查詢,這種方法顯然效率很低。那么,如果是對于一個有序表,在查詢它的某一行記錄時,就可采用查詢速度快的快速查找方法。 這樣,對于數據含量非常大的表,就必須提取一列或若干列,建立有序索引,才能大大加快數據的查詢速度。1nx折半查找法有序樹 主索引、候選索引、唯一索引、普通索引。 主索引強調“不允許出現重復值”,一個表只能有一個主索引。 候選索引也要求字段的唯一性
33、,可建立多個候選索引。 普通索引允許字段中出現重復值,可建立多個普通索引。 獨立索引后綴為 .IDX,復合索引后綴為 .CDX。 表設計器建立 命令建立 在VFP中,有時需要臨時建立一些普通索引或唯一索引,可以用命令來建立,語法如下: INDEX ON TO FOR 注意:組合索引(多列)要將非字符串類型的數據轉化為字符串數據,然后按照主關鍵字在前,次關鍵字在后的次序用“+”號連接在一起。 例如:要按語文、數學的順序對記錄建立組合索引,則各關鍵字轉化為字符后用“+”連接。索引表達式為:STR(語文,5,1)+STR(數學,5,1) 如果用多個數值型字段建立一個索引表達式,索引則按照表達式的值進
34、行排序。STR(語文,5,1)+STR(數學,5,1)與 語文+數學這兩個索引含義不同,前者建立有主次關系的組合索引,后者按照兩個數值和的值進行排序。 若選用FOR子句,則只有符合條件的記錄才被索引。這樣,既縮短了索引建立時間,又提高了FIND或SEEK命令的檢索速度。索引默認按升序排列,執行創建命令后,索引就被打開,其記錄指針指向邏輯首記錄(GO TOP處)。 幾個創建普通索引的命令: INDEX ON 學號 TO xh LIST INDEX ON -入學成績 TO cj LIST INDEX ON 姓名 TO xm LIST 篩選年齡在19歲以上的記錄:(條件為YEAR(DATE( )-Y
35、EAR(出生時間)19)。 INDEX ON 學號 to xh for year(date()-year(出生時間)=22 LIST 使用普通索引、候選索引或主索引,可以進行記錄排序,以便提高顯示、查詢或打印的速度。 例:在已經建立的索引文件的基礎上,查找姓名為“李才”和學號為“2006011”的記錄。 SET ORDER TO xm FIND 李才 DISP SET ORDER TO xh FIND 2006011 DISP FIND 2006001 DISP 注意:使用SET ORDER命令,可以改變表單中記錄的順序。格式為:SET ORDER TO (索引名為已存在的索引)。FIND字符
36、查找命令,查找關鍵字與所給字符串相匹配的第一個記錄。若找到,指針指向該記錄,否則指向文件尾。 FIND | : 例:以性別為關鍵字建立索引,并查找第一個男生記錄和第一個女生記錄. INDEX ON 性別 TO xb SET ORDER TO xb LIST SEEK .T. DISP SEEK .F. DISP SEEK 命令查找關鍵字與所給字符串相匹配的第一個記錄。若找到,指針指向該記錄,否則指向文件尾,給出信息“沒找到”。語法格式為: SEEK 刪除所有索引: 刪除索引:DELETE TAG 索引名。說明:只能找出符合條件的第一條記錄,該命令可以查找字符、數值、日期和邏輯型索引關鍵字。若為
37、字符串,則必須用界限符號括起來(,“”,)。 若是找到了符合條件的首記錄,則函數FOUND( )的值為 .T. ,否則為 .F. 。例:在數據表中依次查找86年出生的學生記錄。 USE ST LIST LOCATE FOR SUBSTR(DTOC(出生時間),7,2)=“86” DISP CONTINUE DISP CONTINUE DISP將記錄指針定位在第一條中文系學生紀錄上?將記錄指針定位在第一條中文系學生紀錄上?將記錄指針定位在第一條成績大于將記錄指針定位在第一條成績大于500分的學生分的學生紀錄上?紀錄上? LOCATE命令是在不建立索引的條件下,查找當前數據表中滿足條件的。語法格式
38、為: LOCATE FOR 建立數據表后,常常要對數據表中數值型字段的記錄進行統計。 例:分別統計女生人數和入學成績480分的學生記錄。 USE st LIST COUNT FOR .NOT. 性別 TO n COUNT FOR 入學成績=480 TO x ? n,x統計函數使用COUNT命令,格式為: COUNT FOR TO 例:求女生入學成績之和。 SUM 入學成績 FOR .NOT. 性別 TO nu 例:求86年出生的學生的平均入學成績,以及中文系男學生的平均入學成績。 AVERAGE 入學成績 FOR SUBSTR(DTOC(出生時間),7,2)=“86” TO pjcj AVER
39、AGE 入學成績 FOR SUBSTR(DTOC(出生時間),7,2)=“86” 另外一種寫法: AVERAGE 入學成績入學成績 FOR YEAR(出生時間出生時間)=1986 LIST YEAR(出生時間出生時間) &返回返回4位數整數。位數整數。 LIST FOR YEAR(出生時間出生時間)=1987 AVERAGE FOR 所在系“中文”TO pjszx ? “86年出生的學生的平均入學成績為:”+str(pjcj) ? “中文系學生的平均入學成績為:” +str(pjszx) AVERAGE命令格式為: AVERAGE FOR TO 補充內容補充內容: 如果是數字,可直接在
40、前面加“-”號。如果是字符串,則格式如下: INDEX ON 出生時間出生時間 TAG sj DESC CALCULATE SUM(入學成績入學成績),MAX(入學成績入學成績),MIN(入學成入學成績績),AVG(入學成績入學成績) CALCULATE MAX(入學成績入學成績) TO maxcj 命令如下:COPY TO FIELDS FOR COPY TO FIELDS 姓名,補助,出生日期 FOR 專業=計算機對計算機專業的學生按年齡的降序排列,生產新表對計算機專業的學生按年齡的降序排列,生產新表table1.dbf,且只包含姓且只包含姓名、性別、出生時間名、性別、出生時間3字段?字段?將將1986年出生的同學按分數升序排列,并生成新表年出生的同學按
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制硫璃瓦行業深度研究分析報告(2024-2030版)
- 鋰電池及正極材料生產項目可行性實施報告
- 2021-2026年中國綠色蔬菜市場運營態勢及發展前景預測報告
- 2025年 紅河州紅河縣人民檢察院招聘聘用制書記員附答案
- 2025年 廣東省塔式起重機操作證理論考試練習題附答案
- 中國家用物聯網行業發展監測及投資戰略研究報告
- 2025年智能電網成套設備項目綜合評估報告
- 中國無線路由器行業市場前景預測及投資價值評估分析報告
- 四川垃圾箱項目投資分析報告參考范文
- 聚氨酯粘合劑項目投資價值分析報告
- 湘美版六年級下冊美術全冊教案
- 網絡安全法律法規與政策
- 車輛爆胎突發事件的應對與處理技巧
- 2024年新蘇教版六年級下冊科學全冊知識點(精編版)
- 校服投標文件技術方案
- 2024屆廣東省中山市實驗中學數學高二第二學期期末學業質量監測試題含解析
- 數獨4宮練習題(全)
- 《物流運輸實務》課件
- 外科手術中自動打結器在強化縫合中的作用
- 在幼兒園中打造有趣的數學學習環境
- 食品小作坊應急預案范本
評論
0/150
提交評論