• 名師風采
    裴鵬飛,男,中共黨員,1994.9~1998.7,安徽農業(yè)技術師范學院本科畢業(yè)。1998.7~2001.8 在宣城市宣州區(qū)雙橋職高擔任計算機教師。2001.9至今調至宣城市職高(更名為宣城市信息工程學校)……
    工作坊概況
    2016年安徽省教育廳、財政廳、人社廳等單位根據安徽省中等職業(yè)教育質量提升工程批準創(chuàng)建的,目前工作坊計12人,均具有本科以上學歷,碩士研究生1人,副高6人,中級職稱2人, 35歲以下青年教師3人, 外聘教師2人。
    8.1 查詢和統計
    發(fā)布時間:2019-01-27 01:01:12  信息來源:出處:   閱讀次數:

    8.1 查詢和統計

    目的與要求:

    通過本次課的學習,掌握數據表查詢和數據統計。

    教學內容與時間安排、教學方法:

    教學安排:

    查詢                                     40分鐘

    統計                                    40分鐘

    教學方法:

    CAI、圖形、表格

    教學重點及如何突出重點、難點及如何突破難點:

    教學重點:

    表查詢、統計

    教學難點:

    表的查詢

    基本內容

    教學
    手段

    課堂設計
    和時間安排

    5.3查詢

    對建立的數據表,VFP提供了兩種查詢的方法:順序查詢和索引查詢

    一、順序查詢(也稱條件定位查詢)

    【格式】LOCATE  [范圍] [FOR〈條件〉] [WHILE〈條件〉]

    【功能】在當前表文件中按照記錄的物理順序,由上到下依次查找在指定范圍內的滿足條件的第一條記錄(因此可以對查找表不建立索引),若找到(即查找成功),則將記錄指針定位到該記錄,可用DISP命令或BROWSE命令進行顯示。此時FOUND()=.T. (查找成功),若FOUND()=.F. (查找不成功)  

    說明:

    1)若省略范圍,系統默認為ALL,此時,若查不到,記錄指針定位于最后一個記錄的后邊(即文件尾),EOF()=.T. ;FOUND()=.F.

    2)若指定范圍(除ALL外):查不到時,記錄指針定位到指定范圍的最后一條記錄上EOF()=.F.;FOUND()=.F.  

    3)若在查找前執(zhí)行了“SET  EXACT ON”命令,用LOCATE查找字符串時一定要將字符串寫的和庫中查找的數據一致,即不能模糊查找

    4)當找到一條符合條件的記錄時,可用DISPLAY命令進行顯示該記錄

    二、繼續(xù)查找命令

    【格式】CONTINUE  

    【功能】繼續(xù)執(zhí)行LOCATE命令的查找,找到后,將記錄指針定位到LOCATE命令中指定條件的下一個記錄

    說明:

    1)使用該命令前,必須使用一次LOCATE命令,即所謂的LOCATE和CONTINUE匹配使用問題

    2)CONTINUE命令可多次使用,直到超出查找范圍或遇到文件尾為止

    3)本命令查找是否成功,可用FOUND()函數檢測,.T.——成功;.F.——失敗

    本命令查找是否成功,可用eof()函數檢測,.F.——成功;.T.——失敗

    【例】在student.dbf表中查找年齡大于18的所有記錄

    USE  STUDENT

    LOCATE  FOR 年齡>18

    DISP 姓名, 年齡

    CONTINUE

    DISP 姓名, 年齡

    CONTINUE

    ?EOF()

    ?FOUND()

    三、索引查詢

    索引查詢是在索引文件中進行查詢的一種方法。VFP提供了兩條查詢命令:FIND和SEEK命令。

    1. FIND查找命令

    【格式】FIND〈常量〉

    功能:查找打開索引文件的數據表中,是否有與命令中的〈常量〉相一致的關鍵字值的第一個記錄,找到后,把記錄指針指向該記錄號,便停止查找,如果沒找到“則給出有關沒有找到”的信息,此時,記錄指針指向尾記錄的下面(即記錄總和值+1),函數EOF()=.T.,FOUND()=.F.

    【說明】

    1)  當庫中有多個索引關鍵字的值與命令中字符串相一致的記錄時,FIND只找相一致的第一個,可使用DISPLAY命令將該記錄顯示出來

    2) FIND命令只能查找C型和N型索引關鍵字段的值,不能查找日期型、邏輯型和MEMO型關鍵字的值

    3) FIND命令查找字符串(字符常量)時,如果無前導空格時,可以不用限界符(單引號、雙引號或方括號)括起來,如果字符串有前導空格時,應使用限界符(單引號、雙引號或方括號)括起來

    如:查找姓名的值:

    王海   用      FIND "  王海"

    張洋    用      FIND    張洋

    4) 查找的字符串可以是關鍵字的全部,也可以是最左邊的一部分字符(稱模糊查詢)

    例:FIND  李

    5) 查找的常數為N型關鍵字的值時,命令中的數據一定按確切的值寫。如:128.28不能寫成:FIND  128.00

    6)  FIND可以查找復合索引關鍵字的值,可寫成字符串或字符串表達式的形式,但給出的字符串的寬度一定要與庫中的寬度相一致,否則找不到

    【例】打開student1.dbf表文件,按姓名和高考成績建立索引(.idx)其中:姓名字段寬度=8,高考成績寬度=6, 1位小數。 查找姓名為"王琪",高考成績?yōu)?10分的記錄.

    use student1

    INDEX ON 姓名+STR(高考成績,6,1)  TO  xmcj

    FIND "王琪   610" 或FIND  "王琪   "+"   610"

    5) FIND 不能直接查找內存變量的值,對于C型內存變量,要用宏代換函數代換出其值,對N型變量,應將其轉換成C型后,再用宏代換函數代換出其值后查找

    【例】FIND 查找示例

    USE  D:\MYVFP\STUDENT

    INDEX ON 姓名 TO  D:\MYVFP\xm

    FIND  周慶國    

    ? found()  &&函數返回值為.T.時,表示查找成功.

    DISP

    2.SEEK查找命令

    格式: SEEK   <表達式>

    SEEK命令的作用和使用方法與FIND基本一致,但SEEK功能更強,它們的區(qū)別:

    1)FIND只能查找C型和N型的索引關鍵字的值;SEEK表達式>可以查找:N、C、L、D型索引關鍵字的值。

    2) FIND查找C型索引關鍵字的值時,可用或不用限界符('、"、[ ])括起來或不括起來;SEEK查找字符型索引關鍵字的值時,必須用單引號或雙引號或方括號限界符括起來

    3)  FIND命令不能直接查找字符型內存變量的值,需使用宏代換函數,對數值型內存變量值需用轉換成字符串后,再用宏代換代換后查找。如:高考成績=570,應高考成績=STR(高考成績,6,1), FIND &高考成績;SEEK可以直接查找內存變量的值,如:SEEK  高考成績

    說明:

    1)不管是FIND還是SEEK查找,找到后,記錄指針定位到該記錄,可用DISPLAY或BROWSE命令顯示出找到的記錄內容,若數據庫中還有符合條件的記錄,可以用SKIP 命令繼續(xù)定位到符合條件的記錄,再用DISP或BROWSE顯示其內容,若一個也沒找到,記錄指針定位到索引文件尾部

    2)SEEK 和FIND查詢后,可使用FOUND()函數檢測查找是否成功

    【例】 SEEK查找示例  

    SET DEFAULT  TO D:\MYVFP

    USE   STUDENT1   INDEX  XM,GK,XMCJ,RQ

    SEEK  "   秦飛"

    DISP

    SET  ORDER TO   2

    SEEK  610

    DISP

    GK=586.6

    SEEK  GK   &&直接查找數值型內存變量的值,不用&函數

    DISP

    -----------本節(jié)課結束-----------

    5.4 計算與統計命令

    計算和統計是數據庫應用的重要內容,VFP具有多項計算統計功能,,如按指定條件統計數據表中記錄的個數,對指定數值字段的全部或部分值求和或求平均計算,以及按要求對其中的某些數據做綜合匯總等。本節(jié)主要介紹VFP提供的“記錄個數的統計、求和求平均值、匯總求和及綜合統計命令的使用。

    1. 統計命令

    【格式】COUNT  [<范圍>] [FOR <條件表達式1>]  [WHILE <條件表達式2>][TO <內存變量名表>]

    【功能】計算當前表中指定范圍內符合條件的記錄數。

    【說明】

    FOR <條件表達式1>或WHILE <條件表達式2>項:表示對符合條件的記錄進行統計個數,省略,統計整個表中記錄的個數。

    省略范圍和條件短語時,則對表中所有記錄進行統計。

    TO <內存變量名表>項:選,表示將統計的結果依次存入變量中。

    省略TO <內存變量名表>項,只將統計的結果顯示在屏幕上。

    【例】統計STUDENT.DBF表中年齡大于18歲的記錄。

    SET DEFAULT TO  D:\myvfp

    USE STUDENT

    COUNT ALL FOR 年齡>18  &&統計結果顯示在狀態(tài)欄上。

    2. 求和及求平均值

    【格式】SUM|AVERAGE  [<數值表達式表>] [<范圍>][FOR  <條件表達式1>] [WHILE <條件表達式2>]

    [TO <內存變量名表>|ARRAY  <數組名>]

    【功能】對<數值表達式表>的各個表達式求和(SUM)或者求平均值(AVERAGE)。

    【說明】

    <范圍>:有四種情況:RECORD<n>,NEXT <N>,REST,ALL

    <數值表達式表>中各表達式的和或均值可依次存入<內存變量表>或數組中,內存變量的數目要與表達式表的數量相同,其間用逗號分隔。如果省略表達式表,則對當前表的所有數值型字段求和(或求平均值)。

    缺省范圍和條件短語,則對所有數值字段進行列向求和或求平均值。

    3. 綜合計算

    綜合計算,指通過調用函數計算某個字段或某些字段的計數值、累加值、平均值、最大值和最小值等。

    【格式】calculate  [<表達式表>][<范圍>][FOR  <條件表達式1>][WHILE <條件表達式2>][TO <內存變量名表>|ARRAY <數組名>]

    【功能】分別計算<表達式表>中各個表達式的值。

    【說明】表達式常用的函數分別為別有:計數值函數cnt()、累加值函數sum()、平均值函數avg()、最大值函數max()和最小值函數min()。除cnt()函數外,其余四個函數的括號內都需指定字段名或表達式。

    1)〈范圍〉有四種情況:同SUM命令

    2)〈條件〉:選對符合條件的記錄的字段組成的表達式作統計計算

    3) 范圍和條件都省略時對所有記錄

    4)〈表達式〉必選項,由下列函數組成:

      CNT():無參數,用于計算數據庫中記錄的個數;

      MAX(〈表達式〉):返回〈表達式〉中的最大值,〈表達式〉的內容可以是數值型、字符型、日期型、邏輯型字段;

      MIN(〈表達式〉):返回〈表達式〉中的最小值,〈表達式〉可以是數值型、字符型、日期型、邏輯型字段;

      AVG(〈數值表達式〉):計算數值表達式的平均值

      SUM(〈數值表達式〉):計算數值表達式的和值

    5)  命令中使用上述函數時,若不選〈條件〉和〈范圍〉項時,則對數據庫中的全部記錄進行操作,否則,對范圍內符合條件的記錄進行操作

    6)  TO〈內存變量表〉子句:選將各函數求出的表達式的值依次賦值給各個內存變量,省略TO〈內存變量〉統計計算的結果不保存。

    【例】要計算表student.dbf的記錄數,統計所有學生的最小年齡和平均年齡。

    use student

    calculate  cnt(),min(年齡),avg(年齡) TO JS,ZXNL,PJNL

    4. 分類匯總

    【格式】TOTAL  TO 〈匯總表文件名〉 [范圍] ON〈關鍵字〉[FIELDS〈數值表達式〉] [FOR〈條件〉] [WHILE 〈條件〉]

    【功能】對當前表文件中的數值字段進行分類匯總,并產生一個新的匯總表文件(.dbf)

    【說明】

    1)  TO 〈匯總表文件名〉:表示匯總結果的新表文件名

    2)  ON〈關鍵字〉:表示分類匯總的表文件必須按〈關鍵字〉字段排序或索引(按哪個字段分類,就需按哪個字段排序或索引)

    3)  范圍:選表示分類匯總表記錄的范圍

    4)  FOR〈條件〉:用來指定一個條件,表示只有對符合條件的記錄進行分類匯總

    5)  WHILE〈條件〉:表示表中的記錄一直被分類匯總,直到WHILE中規(guī)定的條件為假,即執(zhí)行到第一個條件為假的記錄,便停止操作

    6)  若條件、范圍子句都不選,則對全部記錄

    7)  TOTAL匯總時,每遇到一個新〈關鍵字〉的值(即分類的類別)改變,就將具有該值的第一條記錄存入匯總表文件,然后對該值的記錄指定的N型字段匯總,匯總結果填入匯總表中相應字段內,即把具有該關鍵字值的第一個記錄存入〈匯總表〉文件中。

    【例】對STUDENT。DBF表按性別字段分類,對高考成績匯總,產生新的匯總表文件為XBGKHZ.DBF, 要求把匯總表保存到D:\MYVFP文件夾中.

      USE D:\MYVFP\STUDENT

      INDEX ON 性別 TO D:\MYVFP\XBSY

      LIST

      TOTAL ON 性別 TO   D:\MYVFP\XBGKHZ  FIELDS 高考成績

      USE   D:\MYVFP\XBGKHZ

      LIST

    -----------本節(jié)課結束-----------

    講述

    順序查詢
    10分鐘

    繼續(xù)查找命令5分鐘

     

    Find查找命令10分鐘

     

    Seek查找命令15分鐘

    統計命令
    5分鐘

    求和及平均值8分鐘

     

    綜合計算
    5分鐘

    分類匯總
    15分鐘

     


    CopyRight ? 2016 宣城市信息工程學校 地址:宣城市梅溪路902號 后臺登錄

    郵編:242000 電話(傳真):0563-2629508 如有問題,歡迎惠賜 Email:xclmq@163.com

    午夜免费啪在线观看视频,国产日韩欧美久久一区,久久无码高潮喷潮,国产日韩久久久久老熟女 在线观看肉片AV网站免费