版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
VisualFoxPro數(shù)據(jù)庫設(shè)計與應(yīng)用(第3版)完整教學(xué)課件第1章VisualFoxPro6.0系統(tǒng)概述第1章VisualFoxPro6.0系統(tǒng)概述3課程簡介學(xué)習(xí)VisualFoxPro的最終目標是什么?掌握基本的數(shù)據(jù)庫操作方法理解程序設(shè)計的理念和基本方法第1章VisualFoxPro6.0系統(tǒng)概述41.1數(shù)據(jù)庫系統(tǒng)的基本概念為了通過計算機來管理類似的表,必須掌握以下兩方面技:
(1)如何利用計算機創(chuàng)建一個表格用來存放數(shù)據(jù);
(2)如何增加、刪除、修改、查找或統(tǒng)計表格中的信息數(shù)據(jù)庫技術(shù)1.數(shù)據(jù)庫第1章VisualFoxPro6.0系統(tǒng)概述51.1數(shù)據(jù)庫系統(tǒng)的基本概念數(shù)據(jù)庫數(shù)據(jù)庫(Database)是數(shù)據(jù)的集合,具體指按照一定的結(jié)構(gòu)模型,組織、存儲在一起、能為多個用戶共享的、與應(yīng)用程序相對獨立的、存儲在計算機存儲設(shè)備上的相關(guān)的數(shù)據(jù)集合。層次模型網(wǎng)狀模型關(guān)系模型第1章VisualFoxPro6.0系統(tǒng)概述61.1數(shù)據(jù)庫系統(tǒng)的組成2.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem)負責(zé)數(shù)據(jù)庫的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護和數(shù)據(jù)服務(wù)等數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心
第1章VisualFoxPro6.0系統(tǒng)概述71.1數(shù)據(jù)庫系統(tǒng)的基本概念3.數(shù)據(jù)庫系統(tǒng)(DBS)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺等構(gòu)成,是以數(shù)據(jù)庫管理系統(tǒng)為核心的完整的運行實體。第1章VisualFoxPro6.0系統(tǒng)概述81.1數(shù)據(jù)庫系統(tǒng)的基本概念4.數(shù)據(jù)庫應(yīng)用系統(tǒng)(DBAS)數(shù)據(jù)庫應(yīng)用系統(tǒng)(DatabaseApplicationSystem)是在數(shù)據(jù)庫系統(tǒng)基礎(chǔ)上進行應(yīng)用開發(fā)而形成的一個應(yīng)用系統(tǒng)。第1章VisualFoxPro6.0系統(tǒng)概述9練習(xí)【例1】數(shù)據(jù)庫(DB)、數(shù)據(jù)庫系統(tǒng)(DBS)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)之間的關(guān)系是______。A.DB包含DBS和DBMS B.DBMS包含DB和DBS
C.DBS包含DB和DBMS
D.沒有任何關(guān)系解析:數(shù)據(jù)庫系統(tǒng)(DBS)由5部分組成:硬件系統(tǒng)、數(shù)據(jù)庫集合(DB)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)及相關(guān)軟件、數(shù)據(jù)庫管理員和用戶。答案:C【例2】VisualFoxProDBMS是______。A.操作系統(tǒng)的一部分 B.操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯程序 D.一種操作系統(tǒng)解析:VisualFoxPro是一種在微機上運行的數(shù)據(jù)庫管理系統(tǒng)軟件,而DBMS(即數(shù)據(jù)庫管理系統(tǒng))是為數(shù)據(jù)庫的建立、使用和維護而配置的軟件。DBMS利用了操作系統(tǒng)提供的輸入/輸出控制和文件訪問功能,所以它需要在操作系統(tǒng)的支持下運行。答案:B
第1章VisualFoxPro6.0系統(tǒng)概述10測試1.數(shù)據(jù)庫系統(tǒng)的核心是______。A.?dāng)?shù)據(jù)模型 B.?dāng)?shù)據(jù)庫管理系統(tǒng) C.軟件工具 D.?dāng)?shù)據(jù)庫答案:B2.?dāng)?shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、______組成。A.DBMS、應(yīng)用程序、支持數(shù)據(jù)庫運行的軟、硬件環(huán)境和DBAB.DBMS和DBAC.DBMS、應(yīng)用程序和DBAD.DBMS、應(yīng)用程序、支持數(shù)據(jù)庫運行的軟件環(huán)境和DBA答案:A第1章VisualFoxPro6.0系統(tǒng)概述111.2.1關(guān)系模型以二維表的形式表示實體及實體間聯(lián)系的數(shù)據(jù)模型。二維表簡稱為表,一個二維表就是一個關(guān)系,一個關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。
屬性(字段)field:垂直列,字段名。元組(記錄)record:水平行,具體記錄。域:屬性的取值范圍稱為域。1.2關(guān)系數(shù)據(jù)庫第1章VisualFoxPro6.0系統(tǒng)概述121.2關(guān)系數(shù)據(jù)庫鍵:在關(guān)系表中能唯一標識元組的最小屬性集稱為鍵,也稱為碼
主鍵:在關(guān)系表中可以有多個鍵,用戶選取使用的鍵為主鍵第1章VisualFoxPro6.0系統(tǒng)概述131.2關(guān)系數(shù)據(jù)庫1.2.2關(guān)系運算1.投影:一種縱向的操作,即從列的角度進行運算,它可以根據(jù)用戶的要求從關(guān)系中選取若干個屬性(字段)組成一個新的關(guān)系。新關(guān)系所包含的屬性的個數(shù)往往比原來的關(guān)系少,或者屬性的排列順序不同。投影運算可以改變關(guān)系的結(jié)構(gòu)。例如,對“學(xué)生”關(guān)系中的“專業(yè)”屬性進行投影運算,得到無重復(fù)元組的新關(guān)系“學(xué)生1”。
第1章VisualFoxPro6.0系統(tǒng)概述141.2關(guān)系數(shù)據(jù)庫2.選擇:是一種橫向的操作,即從行的角度進行運算,它可以根據(jù)用戶的要求從關(guān)系中篩選出滿足一定條件的元組(記錄)。選擇運算可以改變關(guān)系表中元組的個數(shù),但不影響關(guān)系的結(jié)構(gòu)。例如,在“學(xué)生”關(guān)系中選擇出“性別”為“男”的學(xué)生,得到新的關(guān)系“學(xué)生2”
第1章VisualFoxPro6.0系統(tǒng)概述151.2關(guān)系數(shù)據(jù)庫3.連接:是兩個關(guān)系的橫向結(jié)合操作,它可以根據(jù)用戶的要求將兩個關(guān)系拼接成滿足連接條件的新關(guān)系。例如,從“學(xué)生”和“選課”兩個關(guān)系中查詢學(xué)生的學(xué)號、姓名、課程號和成績信息。得到新的關(guān)系“學(xué)生3”
第1章VisualFoxPro6.0系統(tǒng)概述16練習(xí)【例3】在VisualFoxPro中“表”是指______。A.報表 B.關(guān)系 C.表格 D.表單【例4】從關(guān)系模式中指定若干個屬性組成新的關(guān)系的運算稱___。A.連接 B.投影 C.選擇 D.排序【例5】在下列4個選項中,不屬于基本關(guān)系運算的是______。A.連接 B.投影 C.選擇 D.排序【例6】操作對象只能是一個表的關(guān)系運算是______。
A.連接和選擇 B.連接和投影
C.選擇和投影 D.自然連接和選擇BDBC第1章VisualFoxPro6.0系統(tǒng)概述17練習(xí)【例7】在教師表中,如果要找出職稱為“教授”的教師,所采用的關(guān)系運算是______。A.選擇B.投影C.聯(lián)接D.自然聯(lián)接【例8】下列關(guān)于關(guān)系的說法正確的是______。A.列的次序非常重要B.行的次序非常重要C.列的次序無關(guān)緊要D.關(guān)鍵字必須指定為第一列【例9】設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學(xué)號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)是_____。A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績ACC第1章VisualFoxPro6.0系統(tǒng)概述181.3VFP6.0系統(tǒng)的特點良好的用戶界面數(shù)據(jù)庫的操作更加方便強大的查詢與管理功能支持面向?qū)ο蟮某绦蛟O(shè)計開發(fā)與維護更加方便集成開發(fā)實現(xiàn)了數(shù)據(jù)共享支持網(wǎng)絡(luò)應(yīng)用第1章VisualFoxPro6.0系統(tǒng)概述191.4VFP6.0啟動與退出1.4.1VisualFoxPro6.0的啟動啟動VisualFoxPro通常采用以下三種方式。(1)從“開始”菜單啟動(2)雙擊桌面上的VisualFoxPro6.0快捷方式圖標(3)雙擊與VisualFoxPro6.0關(guān)聯(lián)的文件
第1章VisualFoxPro6.0系統(tǒng)概述201.4.2VisualFoxPro6.0的退出退出VisualFoxPro系統(tǒng)經(jīng)常使用以下幾種方法:(1)選擇“文件”→“退出”命令。(2)在系統(tǒng)主界面窗口中單擊“關(guān)閉”按鈕。(3)在“命令”窗口中輸入QUIT命令,并按<Enter>鍵。(4)按<ALT+F4>組合鍵。1.4VFP6.0啟動與退出第1章VisualFoxPro6.0系統(tǒng)概述211.5VisualFoxPro的用戶界面VisualFoxPro6.0用戶界面菜單欄命令窗口標題欄工具欄工作區(qū)狀態(tài)欄第1章VisualFoxPro6.0系統(tǒng)概述221.6VFP工作方式和命令規(guī)則1.6.1VisualFoxPro6.0的工作方式1.交互操作方式命令操作可視化操作2.程序執(zhí)行方式
第1章VisualFoxPro6.0系統(tǒng)概述231.6VFP工作方式和命令規(guī)則1.6.2VisualFoxPro的命令規(guī)則命令方式是VFP中常用的工作方式,VFP中的命令都有固定的格式,必須按相應(yīng)的格式和語法規(guī)則書寫和使用,否則系統(tǒng)無法識別和執(zhí)行。1.VisualFoxPro命令的基本格式<命令動詞>[<范圍子句>][<條件子句>][<字段名表子句>]1)命令格式中語法標識符的意義和用法<>:必選項,表示命令中必須選擇該項,不可省略。[]:可選項,表示可根據(jù)實際需要選用或省略該項內(nèi)容。|:任選項,表示根據(jù)實際需要任選且必選其中一項內(nèi)容。注意:以上符號表示各選項在語句中的地位。在輸入命令時,不能包含上述這些語法標識符。第1章VisualFoxPro6.0系統(tǒng)概述241.6VFP工作方式和命令規(guī)則2)命令動詞命令動詞一般是要執(zhí)行的操作所對應(yīng)的英文單詞,是一條命令中必不可少的部分。一條命令必須以命令動詞開頭,當(dāng)此命令動詞超過4個字母時,在使用時可以只寫前四個字母,系統(tǒng)會自動識別。3)范圍子句范圍子句用于限定命令操作的記錄范圍。范圍子句包括如下四種選擇范圍。ALL:對當(dāng)前表中所有記錄操作。RECORD<n>:僅對當(dāng)前表中記錄號為n的記錄操作。NEXT<n>:對當(dāng)前表中從當(dāng)前記錄開始的連續(xù)n條記錄操作。REST:對當(dāng)前表中從當(dāng)前記錄開始到表尾的所有記錄操作。第1章VisualFoxPro6.0系統(tǒng)概述251.6VFP工作方式和命令規(guī)則4)條件子句條件子句的作用是以指定的邏輯條件為依據(jù),從表中選擇符合條件的記錄。它對應(yīng)于關(guān)系運算的選擇運算。條件子句有兩種:FOR<條件>:對指定范圍內(nèi)所有滿足條件的記錄進行操作。WHILE<條件>:在指定范圍內(nèi)按順序?qū)M足條件的記錄操作,直到遇到第一個不滿足條件的記錄為止。注意:<條件>由一個邏輯表達式或關(guān)系表達式構(gòu)成,其值為邏輯型數(shù)據(jù)。(5)字段名表子句字段名表子句用來限制只對指定的若干個字段進行操作。字段名表子句的格式如下:[FIELDS]<字段名表>其中字段名表由若干個以逗號分隔的字段名構(gòu)成,默認情況下是對當(dāng)前表中的所有字段進行操作,但不包括備注型字段和通用型字段。第1章VisualFoxPro6.0系統(tǒng)概述261.6VFP工作方式和命令規(guī)則2.VisualFoxPro命令的書寫規(guī)則(1)命令必須以命令動詞開頭,命令中其他各子句的次序可以任意排列。(2)命令動詞與子句之間、各子句之間以空格分隔。(3)命令中的字符不區(qū)分大小寫。(4)命令中的所有字符和標點符號都必須在英文半角狀態(tài)下輸入。(5)一條命令可以分成多行書寫,用分號“;”作為續(xù)行標志。第1章VisualFoxPro6.0系統(tǒng)概述271.7
VFP系統(tǒng)環(huán)境配置1.使用“選項”對話框1)設(shè)置默認目錄VFP默認的工作目錄是安裝VFP系統(tǒng)時用戶和系統(tǒng)所確定的安裝目錄,即存放VFP系統(tǒng)文件的目錄,通常是“C:\ProgramFiles\MicrosoftVisualStudio\Vfp98”。在使用VFP中產(chǎn)生的所有文件將存儲在此目錄下,為了避免與系統(tǒng)文件混淆,用戶應(yīng)定義自己的工作目錄,將用戶創(chuàng)建的文件存儲在自己的目錄下。選擇“工具”→“選項”命令,彈出“選項”對話框,單擊“文件位置”選項卡,在此對話框中,可以設(shè)置默認目錄。第1章VisualFoxPro6.0系統(tǒng)概述281.7
VFP系統(tǒng)環(huán)境配置【例1.1】設(shè)置默認目錄為D:\教學(xué)管理系統(tǒng)在D盤建立“教學(xué)管理系統(tǒng)”文件夾。12378當(dāng)前設(shè)置保存為VFP的默認(永久)設(shè)置4D:\教學(xué)管理系統(tǒng)56D:\教學(xué)管理系統(tǒng)第1章VisualFoxPro6.0系統(tǒng)概述291.7
VFP系統(tǒng)環(huán)境配置(2)設(shè)置日期和時間的顯示方式VFP默認的日期顯示方式為“mm/dd/yy”,默認的時間顯示方式為12小時制,可以根據(jù)需要重新設(shè)置時期和時間的顯示方式?!纠?.2】設(shè)置日期的顯示格式為“年月日”,設(shè)置日期的分隔符為“-”,年份用4位顯表示,時間的顯示格式為24小時的表示形式。12345第1章VisualFoxPro6.0系統(tǒng)概述301.7
VFP系統(tǒng)環(huán)境配置2.使用SET命令設(shè)置VisualFoxPro提供了一系列以SET開頭的命令,用戶可以隨時在命令窗口中輸入執(zhí)行這些命令,改變系統(tǒng)當(dāng)前的環(huán)境配置參數(shù)。例如:SETDATETOANSI&&將系統(tǒng)的日期格式設(shè)置為yy.mm.ddSETDEFAULTTOd:\教學(xué)管理系統(tǒng)&&將系統(tǒng)的默認目錄指定為“d:\教學(xué)管理系統(tǒng)”。注意:如果使用SET命令配置環(huán)境,只對當(dāng)前工作期有效,即僅在本次VisualFoxPro運行期間有效,重新啟動VisualFoxPro后,所做的設(shè)置無效。第1章VisualFoxPro6.0系統(tǒng)概述311.8VFP輔助設(shè)計工具向?qū)У?章VisualFoxPro6.0系統(tǒng)概述321.8VFP輔助設(shè)計工具設(shè)計器第1章VisualFoxPro6.0系統(tǒng)概述331.8VFP輔助設(shè)計工具生成器第1章VisualFoxPro6.0系統(tǒng)概述341.9VFP常用文件類型第1章VisualFoxPro6.0系統(tǒng)概述35本章小結(jié)本章重點講述了數(shù)據(jù)庫系統(tǒng)的有關(guān)概念,描述了關(guān)系數(shù)據(jù)模型中的關(guān)系、屬性、元組、鍵等定義,介紹了關(guān)系模型的并、差、交等集合運算和選擇、投影、連接等操作運算;總結(jié)了VisualFoxPro6.0系統(tǒng)的功能和特點,詳細地講述了VisualFoxPro6.0系統(tǒng)的窗口、菜單、工具欄等開發(fā)環(huán)境,并介紹了向?qū)?、生成器以及項目管理器的功能和作用,最后總結(jié)了VisualFoxPro6.0的性能指標和常用文件類型。ThankYou!第1章VisualFoxPro6.0系統(tǒng)概述37<范圍子句>:限定命令操作的記錄范圍
ALL:對當(dāng)前表中所有記錄操作。RECORD<n>:僅對當(dāng)前表中記錄號為n的記錄操作。NEXT<n>:對當(dāng)前表中從當(dāng)前記錄開始的連續(xù)n條記錄操作。REST:對當(dāng)前表中從當(dāng)前記錄開始到表尾的所有記錄操作。<條件子句>:限制只對符合指定條件的記錄進行操作
FOR<條件>:選擇表中符合條件的所有記錄WHILE<條件>:選擇符合條件的記錄,直到第一個不符合條件的記錄為止<字段名表子句>:限制只對指定的若干個字段進行操作
[FIELDS]<字段名表>
第2章數(shù)據(jù)與數(shù)據(jù)運算第2章數(shù)據(jù)與數(shù)據(jù)運算39本章內(nèi)容數(shù)據(jù)類型2.1常量2.2變量運算符與表達式常用函數(shù)2.32.42.5第2章數(shù)據(jù)與數(shù)據(jù)運算402.1數(shù)據(jù)類型數(shù)據(jù)類型表示符號寬度字節(jié)說明數(shù)值型NumericN最多20整數(shù)或小數(shù)。如學(xué)生的入學(xué)成績字符型CharacterC最多254字母、數(shù)字和漢字等一切可打印ASCII字符。如學(xué)生姓名日期型DateD8由年、月、日構(gòu)成。如學(xué)生的出生日期日期時間型DateTimeT8由年、月、日、時、分、秒構(gòu)成。如學(xué)生上課時間邏輯型LogicalL1值為真或假。如是否為黨員貨幣型CurrencyY8帶有貨幣符號的數(shù)值。如商品價格雙精度型DoubleB8雙精度數(shù)值,常用于精度要求很高的數(shù)據(jù)浮點型FloatF最多20類似于數(shù)值型整數(shù)型IntegerI4不含小數(shù)點的數(shù)值類型。如商品數(shù)量備注型MemoM4不定長的字母、數(shù)字、文本。如個人簡歷通用型GeneralG4OLE對象(存儲聲音、圖像、文檔、電子表格等)二進制字符型C最多254與字符型數(shù)據(jù)類似,以二進制存儲二進制備注型M4與備注型數(shù)據(jù)類似,以二進制存儲第2章數(shù)據(jù)與數(shù)據(jù)運算412.2常量常量表示程序運行過程中具體的、不變的值。不同類型的常量有不同的書寫格式。1.數(shù)值型常量用來表示一個具體的數(shù),即通常所說的常數(shù)。由數(shù)字0~9、小數(shù)點和正負號組成?!纠?18、123表示正數(shù),-3.45、-78表示負數(shù)。數(shù)值型常量也可以用科學(xué)記數(shù)法表示?!纠?/p>
7.9×105在計算機中表示為7.9E53.14×10-7在計算機中寫成3.14E-7第2章數(shù)據(jù)與數(shù)據(jù)運算422.2常量2.字符型常量由中英文字符、各種符號、空格和數(shù)字組成,使用時需要用定界符括起來。在字符型常量中,一個漢字占兩個字節(jié),其他字符占一個字節(jié)。定界符包括半角單引號、雙引號或方括號,必須成對出現(xiàn),即前后定界符一致。正確的字符型常量:′hello′、"123"、[大學(xué)]錯誤的字符型常量:"計算機]、[二級′、考試不含任何字符的空串(″″)和包含空格的字符串(″″)是不一樣的,空串里邊沒有任何內(nèi)容,長度為0,而空格的長度是1。第2章數(shù)據(jù)與數(shù)據(jù)運算432.2常量3.日期型常量
用于表示具體日期,定界符是一對花括號{}?;ɡㄌ杻?nèi)用斜杠(/)將年、月、日三部分內(nèi)容分隔開。斜杠(/)是默認的分隔符,其他的合法分隔符還有減號(-)、句點(.)和空格等。1)傳統(tǒng)日期格式與嚴格日期格式日期型常量分為傳統(tǒng)日期格式和嚴格日期格式。在程序或命令中通常使用嚴格日期格式。在書寫嚴格日期格式時一定要在前邊加脫字符(^)。表示方式說明舉例傳統(tǒng)日期格式mm/dd/yy其中mm是用兩位表示月份,dd是用兩位表示日,yy是用兩位表示年{05/01/15}表示2015年5月1日嚴格日期格式{^yyyy-mm-dd}可以確切地表示一個日期而不會受到命令語句的任何影響{^2015-05-01}表示2015年5月1日第2章數(shù)據(jù)與數(shù)據(jù)運算442.2常量2)影響日期格式的設(shè)置命令(1)設(shè)置日期格式【格式】SETDATE[TO]AMERICAN︱ANSI︱MDY︱DMY︱YMD【功能】設(shè)置日期顯示的格式。例如:使用SETDATETOYMD命令,則日期將以yy/mm/dd的格式顯示(2)設(shè)置日期分隔符【格式】SETMARKTO[日期分隔符]【功能】用于設(shè)置顯示日期型數(shù)據(jù)時使用的分隔符。若執(zhí)行SETMARKTO沒有指定任何分隔符,表示恢復(fù)系統(tǒng)默認的斜杠(/)分隔符?!菊f明】分隔符為字符型常量,即兩邊需要加定界符。第2章數(shù)據(jù)與數(shù)據(jù)運算452.2常量2)影響日期格式的設(shè)置命令(3)設(shè)置年份的位數(shù)【格式】SETCENTURYON∣OFF【功能】用于設(shè)置顯示日期型數(shù)據(jù)時是否顯示世紀。【說明】ON表示日期輸出時顯示世紀值,即年份占4位。OFF為默認值,表示日期輸出時不顯示世紀值,即年份占2位。第2章數(shù)據(jù)與數(shù)據(jù)運算462.2常量【例2.1】設(shè)置不同的日期格式。在命令窗口中輸入下列4條命令,并分別回車執(zhí)行:SETCENTURYON &&設(shè)置4位數(shù)年份SETMARKTO"-" &&設(shè)置日期分隔符(-)SETDATETOYMD &&設(shè)置年、月、日格式?{^2015/05/01}輸出結(jié)果:2015-05-01繼續(xù)輸入:SETCENTURYOFF&&設(shè)置2位數(shù)年份SETMARKTO&&設(shè)置日期分隔符為系統(tǒng)默認(/)SETDATETOAMERICAN&&設(shè)置日期格式為mm/dd/yy?{^2015-05-01}輸出結(jié)果:05/01/15第2章數(shù)據(jù)與數(shù)據(jù)運算472.2常量4.日期時間型常量日期時間型常量用來表示具體的日期及時間,分為傳統(tǒng)日期時間型常量和嚴格日期時間型常量。嚴格日期時間型常量的格式為:{^yyyy-mm-dd,[hh[:mm[:ss]][a|p]]}嚴格日期時間型常量由前面的日期和后面的時間組成,日期和時間之間用逗號或空格隔開,其中hh、mm和ss分別表示小時、分和秒,a代表上午,p代表下午,默認為上午。第2章數(shù)據(jù)與數(shù)據(jù)運算482.2常量5.邏輯型常量
邏輯型常量用來表示邏輯值,只有邏輯真(True)和邏輯假(False)邏輯真的表現(xiàn)形式有:.T.、.t.、.Y.和.y.。邏輯假的表現(xiàn)形式有:.F.、.f.、.N.和.n.。前后兩個句點是邏輯型常量的定界符,不能缺省。6.貨幣型常量
貨幣型常量常用來表示貨幣的值。貨幣型數(shù)據(jù)與數(shù)值型數(shù)據(jù)的不同之處就是前面的貨幣符號($)?!纠?18,$-18.65第2章數(shù)據(jù)與數(shù)據(jù)運算492.3變量變量是指在命令操作或程序運行過程中其值可以改變的量。VisualFoxPro中的變量分為內(nèi)存變量、數(shù)組變量、字段變量和系統(tǒng)變量。2.3.1內(nèi)存變量內(nèi)存變量是存放單個數(shù)據(jù)的內(nèi)存單元,是獨立于數(shù)據(jù)庫之外存在于內(nèi)存中的臨時存儲變量,用來存放程序運行中的原始數(shù)據(jù)、中間結(jié)果和最后結(jié)果。內(nèi)存變量類型取決于變量值的類型,主要有:字符型、數(shù)值型、貨幣型、邏輯型、日期型和日期時間型6種。1.內(nèi)存變量命名規(guī)則固定的名稱,標識該內(nèi)存單元的存儲位置。以字母或漢字開頭,可由字母(不區(qū)分大小寫)、漢字、下劃線和數(shù)字組成,其長度最多可達到254個字符。第2章數(shù)據(jù)與數(shù)據(jù)運算502.3變量2.內(nèi)存變量賦值內(nèi)存變量在使用之前必須先賦值?!靖袷?】<內(nèi)存變量名>=<表達式>【格式2】STORE<表達式>TO<內(nèi)存變量名表>【功能】將表達式的值賦給內(nèi)存變量?!菊f明】
格式1:一次只能給一個變量賦值。
格式2:可以同時給若干個變量賦予相同的值,變量間用,分開??梢酝ㄟ^對內(nèi)存變量重新賦值來改變內(nèi)存變量內(nèi)容或類型。第2章數(shù)據(jù)與數(shù)據(jù)運算512.3變量【例2.2】內(nèi)存變量的賦值。A=123&&創(chuàng)建數(shù)值型變量A,值為123(一百二十三)
A=″123″&&創(chuàng)建字符型變量A,值為″123″(一二三)B={^2015/05/01}&&創(chuàng)建日期型變量B,值為{^2015/05/01}STORE20TOX,Y&&創(chuàng)建數(shù)值型變量X和Y,值為20注意:STORE命令不能把多個不同的值分別賦給若干變量。例如STORE20,30TOX,Y&&這個命令的使用方式是錯誤的應(yīng)改為:X=20Y=30第2章數(shù)據(jù)與數(shù)據(jù)運算522.3變量3.內(nèi)存變量值的輸出【格式1】?[<表達式>]【格式2】??<表達式>【功能】計算表達式的值,并把結(jié)果顯示在屏幕上?!菊f明】使用“?”命令,顯示結(jié)果在下一行輸出;使用“??”命令,顯示結(jié)果在當(dāng)前行輸出。只執(zhí)行不帶任何表達式的“?”命令,則輸出一個空行。第2章數(shù)據(jù)與數(shù)據(jù)運算532.3變量【例2.3】輸出變量的值STORE15TOm,n &&創(chuàng)建變量m,n數(shù)據(jù)類型為數(shù)值型,值為15。?m,n+1??m,n-1 &&不換行,在前面的結(jié)果后直接輸出。輸出結(jié)果:15161514 繼續(xù)輸入:?m,n+1 &&換行顯示?m,n-1輸出結(jié)果:1516 1514第2章數(shù)據(jù)與數(shù)據(jù)運算542.3變量4.變量顯示【格式1】LISTMEMORY[LIKE<通配符>]【格式2】DISPLAYMEMORY[LIKE<通配符>]
【功能】顯示內(nèi)存變量的當(dāng)前信息,包括變量名、作用域、取值和類型。格式1不暫停連續(xù)顯示,直到顯示結(jié)束。格式2分屏顯示,每顯示一屏?xí)和?,等待用戶按任意鍵繼續(xù)顯示。選用LIKE短語只顯示與通配符相匹配的內(nèi)存變量。通配符*和?:*表示任意多個字符,?表示任意一個字符。Listmemorylikea*Listmemorylikeb?第2章數(shù)據(jù)與數(shù)據(jù)運算552.3變量5.內(nèi)存變量清除變量的清除指釋放不再使用的變量所占的內(nèi)存空間,被清除的變量不能在程序中繼續(xù)使用。清除變量可以使用以下命令?!靖袷?】CLEARMEMORY【格式2】RELEASE<內(nèi)存變量名表>【功能】格式1清除所有內(nèi)存變量,格式2清除指定內(nèi)存變量。第2章數(shù)據(jù)與數(shù)據(jù)運算562.3變量2.3.2數(shù)組變量數(shù)組變量是名字相同而下標不同的一組有序內(nèi)存變量的集合,其中每一個內(nèi)存變量都是這個數(shù)組的一個元素,每個數(shù)組元素在內(nèi)存中獨占一個內(nèi)存單元,相當(dāng)于一個簡單的內(nèi)存變量。為了區(qū)分不同的數(shù)組元素,每個數(shù)組元素都是通過數(shù)組名和下標來訪問的。數(shù)組下標的個數(shù)稱為數(shù)組的維數(shù),只有一個下標的數(shù)組稱為一維數(shù)組,有兩個下標的數(shù)組稱為二維數(shù)組。數(shù)組必須先定義后使用。1.?dāng)?shù)組的定義DIMENSION<數(shù)組名>(<下標上限1>[,<下標上限2>])[,……]DECLARE<數(shù)組名>(<下標上限1>[,<下標上限2>][,……]【說明】(1)數(shù)組下標的起始值為1,<下標1>用來指定數(shù)組第一維的最大下標,<下標2>用來指定數(shù)組第二維的最大下標,缺省<下標2>時,定義的是一維數(shù)組。第2章數(shù)據(jù)與數(shù)據(jù)運算572.3變量(2)當(dāng)數(shù)組被定義為二維時,也能以一維下標方式進行訪問。這是由于在內(nèi)存中,二維數(shù)組元素是按行次序線性排列的。例如:DIMENSIONX(3),Y(2,3)表示定義了一維數(shù)組X和二維數(shù)組Y,其中一維數(shù)組X中包含3個元素:X(1)、X(2)和X(3);二維數(shù)組Y中包含6個元素:Y(1,1)、Y(1,2)、Y(1,3)、Y(2,1)、Y(2,2)和Y(2,3),二維數(shù)組Y也可表示為Y(1)、Y(2)、Y(3)、Y4)、Y(5)和Y(6)Y(1,1)Y(1,2)Y(1,3)Y(2,1)Y(2,2)Y(2,3)Y(1)Y(2)Y(3)Y(4)Y(5)Y(6)第2章數(shù)據(jù)與數(shù)據(jù)運算582.3變量2.?dāng)?shù)組的賦值數(shù)組定義后,自動為每一個元素賦邏輯假值.F.??梢韵騼?nèi)存變量賦值一樣,通過STORE命令或“=”為整個數(shù)組或個別數(shù)組元素重新賦值。同一數(shù)組中的各個元素可以存放不同類型的數(shù)據(jù)。【例2.4】DIMENSIONX(3),Y(2,3)X=3&&將數(shù)組X的所有元素都賦值為3X(1)=.T. &&將數(shù)組X的第1個元素賦值為.T.Y(2,1)=X&&將數(shù)組Y的第4個元素賦值為數(shù)組X的第一個元素STORE“北京”TOY(2)&&將數(shù)組Y的第2個元素賦值為“北京”
注意:數(shù)組變量可以不帶下標使用,當(dāng)它被賦值時,表示該數(shù)組中的所有元素;當(dāng)將它的值賦給其它變量時,表示該數(shù)組中的第一個元素。第2章數(shù)據(jù)與數(shù)據(jù)運算592.3變量2.3.3字段變量字段變量就是數(shù)據(jù)表中的字段,變量名就是表中的字段名。例如:學(xué)生表中的“學(xué)號”、“姓名”等字段就是字段變量。注意:內(nèi)存變量可以和字段變量重名。在這種情況下,字段變量具有更高的優(yōu)先級。
在兩種變量同名的前提下,用戶訪問內(nèi)存變量,需要在內(nèi)存變量名前加M.或M->作為前綴。例如:M.學(xué)號或M->學(xué)號,但對字段變量賦值時不能加M.或M->作為前綴,字段變量可以加表名作為自己的前綴,例如:學(xué)生表中的“學(xué)號”、“姓名”字段,可以表示成:“學(xué)生.學(xué)號”、“學(xué)生.姓名”。第2章數(shù)據(jù)與數(shù)據(jù)運算602.3變量【例2.5】有如圖所示的“學(xué)生”數(shù)據(jù)表,指針指向第一條記錄。執(zhí)行以下命令:學(xué)號=″88888888″?學(xué)號輸出結(jié)果:15010001繼續(xù)輸入:?M.學(xué)號輸出結(jié)果:88888888假設(shè)指針指向第二條記錄,執(zhí)行以下命令:?學(xué)生.學(xué)號,學(xué)生.姓名輸出結(jié)果:15010002張美芳第2章數(shù)據(jù)與數(shù)據(jù)運算612.4運算符與表達式
表達式是由常量、變量、函數(shù)通過運算符連接起來的特定公式,它的運算結(jié)果是單一的值,即表達式的值。根據(jù)運算結(jié)果數(shù)據(jù)類型的不同,表達式可以分為數(shù)值表達式、字符表達式、日期時間表達式和邏輯表達式,各類表達式都有自己特定的運算符,且存在一定的運算順序,也稱作運算優(yōu)先級。第2章數(shù)據(jù)與數(shù)據(jù)運算622.4.1算術(shù)運算符和數(shù)值表達式及其函數(shù)<數(shù)值1><算術(shù)運算符1><數(shù)值2>[<算術(shù)運算符2><數(shù)值3>…]【說明】數(shù)值表達式由算術(shù)運算符、數(shù)值型常量、變量、函數(shù)和圓括號組成。結(jié)果類型:數(shù)值型。優(yōu)先級運算符說明1()形成表達式的子表達式2^或**乘方,如3^4表示3*3*3*33*、/、%乘、除、求余4+、-加、減第2章數(shù)據(jù)與數(shù)據(jù)運算63返回兩數(shù)值相除的余數(shù),返回值的符號與除數(shù)的符號相同?!纠?.6】求余運算符“%”運算示例。?10%3,-10%3,10%-3,-10%-3輸出結(jié)果:12-2-12.4.1算術(shù)運算符和數(shù)值表達式及其函數(shù)第2章數(shù)據(jù)與數(shù)據(jù)運算642.4.2字符運算符和字符表達式【格式】<字符串1><字符運算符1><字符串2>[<字符運算符2><字符串3>…]【說明】表達式由字符型常量、變量、函數(shù)和運算符“+、-”組成運算結(jié)果類型:字符型+:前后兩個字符串首尾連接形成一個新的字符串-:連接前后兩個字符串,將前串尾部空格移到合并后新串尾部【例2.7】字符串運算示例(注:□表示空格)a=″hello□□″b=″teacher!□□″?a+b,a-bhello□□teacher!□□helloteacher!□□□□?″計算機□″+″□□網(wǎng)絡(luò)″+″技術(shù)″?″計算機□″-″□□網(wǎng)絡(luò)″+″技術(shù)″計算機□□□網(wǎng)絡(luò)技術(shù)計算機□□網(wǎng)絡(luò)□技術(shù)第2章數(shù)據(jù)與數(shù)據(jù)運算65日期型數(shù)據(jù)是比較特殊的數(shù)據(jù)類型,只能進行+和-運算。此外,在格式上還有嚴格的限制,一些合法的組合如表所示。輸出結(jié)果:05/06/1530-30【例2.8】日期運算示例?{^2015-05-01}+5?{^2015-05-01}-{^2015-04-01}?{^2015-04-01}-{^2015-05-01}2.4.3日期時間運算符和日期時間表達式
第2章數(shù)據(jù)與數(shù)據(jù)運算66【格式】<表達式1><關(guān)系運算符><表達式2>【說明】相同類型的數(shù)據(jù)之間的比較。結(jié)果類型:邏輯型。運算符$和==僅可用于字符型數(shù)據(jù),其他運算符適用于任何數(shù)據(jù);在比較運算時,前后兩個運算對象的類型必須相同。
2.4.4關(guān)系運算符與關(guān)系表達式第2章數(shù)據(jù)與數(shù)據(jù)運算671.數(shù)值、貨幣和日期時間型數(shù)據(jù)的比較比較類型規(guī)則舉例數(shù)值和貨幣型數(shù)據(jù)按數(shù)值大小5>-4;$12<$34日期和日期時間型數(shù)據(jù)越早的日期時間越小{^2015-05-01}>{^2014-12-31}邏輯型數(shù)據(jù)邏輯真大于邏輯假.T.>.F.2.4.4關(guān)系運算符與關(guān)系表達式第2章數(shù)據(jù)與數(shù)據(jù)運算682.字符型數(shù)據(jù)的比較從左到右逐個字符進行比較,當(dāng)發(fā)現(xiàn)兩個對應(yīng)的字符不同時,根據(jù)兩個字符在字母表中的順序判斷兩個字符串的大小。在VFP中,默認按pinyin(拼音次序)進行排序,其排序的規(guī)則是:空格<0~9<a<A<b<B……<z<Z<漢字。對常用的漢字而言,根據(jù)它們的拼音順序決定大小?!纠?.9】默認排序設(shè)置下字符串的比較。?″abd″<″abc″,″b″<″B″,"十"<"三"輸出結(jié)果:.F..T..F.2.4.4關(guān)系運算符與關(guān)系表達式第2章數(shù)據(jù)與數(shù)據(jù)運算692.4.4關(guān)系運算符與關(guān)系表達式使用″==″對字符串進行的是精確比較,即只有當(dāng)兩個字符串完全相同時(包括空格、各字符的位置),運算結(jié)果才為真,否則為假。使用″=″對字符串進行比較,結(jié)果和SETEXACTON∣OFF命令有關(guān),如表所示。
第2章數(shù)據(jù)與數(shù)據(jù)運算702.4運算符與表達式3.子串包含運算$:【格式】<字符串表達式1>$<字符串表達式2>【說明】如果字符串表達式1是字符串表達式2的一個子串,即一部分,結(jié)果為真,否則為假?!纠?.10】子串包含運算?”學(xué)”$”高等教育學(xué)”,?“教學(xué)”$”高等教育學(xué)”,?”高等教育學(xué)”$”教育學(xué)”輸出結(jié)果:.T. .F. .F.第2章數(shù)據(jù)與數(shù)據(jù)運算712.4.5邏輯運算和邏輯表達式邏輯運算符有3個,分別是.AND.(邏輯與)、.OR.(邏輯或)和.NOT.(邏輯非),也可以省略兩邊的圓點。它們的優(yōu)先級依次是NOT、AND、OR。邏輯運算的操作數(shù)是邏輯型數(shù)據(jù),運算的結(jié)果也是邏輯型數(shù)據(jù)。第2章數(shù)據(jù)與數(shù)據(jù)運算722.4.6運算符優(yōu)先級在每一類運算中,各個運算符都有自己的優(yōu)先級。當(dāng)不同類別的運算符出現(xiàn)在同一個表達式中,其運算符的優(yōu)先級從高到低依次為:算術(shù)運算符>字符、日期和時間運算符>關(guān)系運算符>邏輯運算符圓括號具有最高的優(yōu)先級,可以任意改變運算順序。相同優(yōu)先級的運算符按從左到右的順序進行運算?!纠?.11】不同運算符優(yōu)先級示例。?22>12AND″tianjin″<″beijing″OR.T.<=.F.運算結(jié)果:.F.第2章數(shù)據(jù)與數(shù)據(jù)運算731.在下面的VisualFoxPro表達式中,不正確的是______。A.{^2001-05-0110:10:10AM}-10B.{^2001-05-01}-DATE()C.{^2001-05-0110:10:10AM}+DATE()D.{^2001-05-0110:10:10AM}+10002.下列表達式中結(jié)果為“計算機等級考試”的表達式為______。A.″計算機″|″等級考試″B.″計算機″&″等級考試″C.″計算機″and″等級考試″D.″計算機″+″等級考試″3.關(guān)系運算符$用來判斷一個字符串表達式是否____另一個字符串表達式。A.等于 B.完全等于 C.不等于 D.包含于4.以下日期正確的是______。A.{″^2001-05-25″} B.{′^2001-05-25′}C.{^2001-05-25} D.{[^2001-05-25]}練習(xí)CDDC第2章數(shù)據(jù)與數(shù)據(jù)運算745.VisualFoxPro的表達式中不僅允許有常量、變量,而且還允許有______。A.過程 B.函數(shù) C.子程序 D.主程序6.6E-3是一個______。A.內(nèi)存變量B.字符常量 C.?dāng)?shù)值常量 D.非法表達式7.以下賦值語句正確的是______。A.STORE8TOX,YB.STORE8,9TOX,YC.X=8,Y=9D.X,Y=88.設(shè)有一字段變量’姓名’,目前值為’王華’,又有一內(nèi)存變量’姓名’,其值為’李敏’,則命令?姓名顯示的結(jié)果應(yīng)為______。A.王華B.李敏 C.’王華’ D.‘李敏’9.邏輯型數(shù)據(jù)的取值不能是______。A..T.或.F. B..Y.或.N.C..T.或.F.或.Y.或.N. D.T或F練習(xí)BCAAD第2章數(shù)據(jù)與數(shù)據(jù)運算7510.設(shè)字段變量job是字符型的,pay是數(shù)值型的,能夠表達“job是處長且pay不大于1000元”的表達式是______。A.job=處長.AND.pay>1000B.job=″處長″.AND.pay<1000C.job=″處長″.AND.pay<=1000 D.job=處長.AND.pay<=100011.假定M=[22+28],則執(zhí)行命令?M后屏幕將顯示______。A.50B.22+28 C.[22+28]D.50.0012.下列表達式中,是邏輯型常量的是______。A.Y B.N C.NOT D..F.13.下列選項中不是常量的是______。A.a(chǎn)bc B.″abc″ C.1.4E+2 D.{^1999/12/31}14.變量名中不能包括______。A.?dāng)?shù)字 B.字母 C.漢字 D.空格練習(xí)CBDAD第2章數(shù)據(jù)與數(shù)據(jù)運算762.5常用函數(shù)函數(shù)是一段程序代碼,用來進行一些特定的運算或操作。函數(shù)調(diào)用的一般形式為:函數(shù)名([參數(shù)1],[參數(shù)2],…)函數(shù)分為用戶自定義函數(shù)和系統(tǒng)函數(shù),系統(tǒng)函數(shù)用戶可以隨時調(diào)用。按函數(shù)運算處理的對象及結(jié)果的數(shù)據(jù)類型,可將函數(shù)分為數(shù)值函數(shù)、字符函數(shù)、日期和時間函數(shù)、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)和測試函數(shù)等。第2章數(shù)據(jù)與數(shù)據(jù)運算772.5常用函數(shù)2.5.1數(shù)值函數(shù)1.取絕對值函數(shù)ABS()【格式】ABS(<數(shù)值表達式>)【功能】返回指定數(shù)值表達式的絕對值?!纠?.12】?ABS(-20),ABS(10-20)輸出結(jié)果:20 102.最大值函數(shù)MAX(),最小值函數(shù)MIN()【格式】MAX|MIN(<表達式1>,<表達式2>,……)【功能】返回n個表達式中的最大值(或最小值)?!菊f明】所有表達式的類型必須相同?!纠?.13】?MAX(10,20),MIN(-10,-20,-30),?MAX("a","B","西")輸出結(jié)果:20 -30 西第2章數(shù)據(jù)與數(shù)據(jù)運算782.5常用函數(shù)2.5.1數(shù)值函數(shù)3.求余數(shù)函數(shù)MOD()【格式】MOD(<數(shù)值表達式1>,<數(shù)值表達式2>)【功能】返回兩數(shù)值相除的余數(shù),返回值的符號與除數(shù)的符號相同?!纠?.14】?MOD(23,5),MOD(23,-5),MOD(-23,5),MOD(-23,-5)輸出結(jié)果:3 -2 2 -34.四舍五入函數(shù)ROUND()【格式】ROUND(<數(shù)值表達式1>,<數(shù)值表達式2>)【功能】對數(shù)值表達式1按照數(shù)值表達式2進行四舍五入,數(shù)值表達式2大于等于0對小數(shù)部分進行四舍五入;數(shù)值表達式2小于0對整數(shù)部分進行四舍五入?!纠?.15】?ROUND(345.6799,3),ROUND(345.6799,-2) 輸出結(jié)果:345.680 300第2章數(shù)據(jù)與數(shù)據(jù)運算792.5常用函數(shù)5.求平方根函數(shù)SQRT()【格式】SQRT(<數(shù)值表達式>)【功能】返回非負數(shù)值表達式的平方根。6.圓周率函數(shù)【格式】PI()【功能】返回圓周率PI的近似值,該函數(shù)沒有自變量?!纠?.16】?SQRT(16),PI()輸出結(jié)果:4.003.14第2章數(shù)據(jù)與數(shù)據(jù)運算802.5常用函數(shù)7.取整函數(shù)【格式】INT(<數(shù)值表達式>)FLOOR(<數(shù)值表達式>)CEILING(<數(shù)值表達式>)【功能】INT()返回指定數(shù)值表達式的整數(shù)部分,小數(shù)部分不四舍五入。
FLOOR()函數(shù)返回小于或等于指定數(shù)值表達式的最大整數(shù)。CEILING()函數(shù)返回大于或等于指定數(shù)值表達式的最小整數(shù)?!纠?.17】?INT(5.9),INT(-8.66),INT(10.9-2.6)輸出結(jié)果:5 -8 8【例2.18】?FLOOR(-3.45),FLOOR(0.7),FLOOR(2.8)輸出結(jié)果:-402【例2.19】?CEILING(-3.45),CEILING(0.7)CEILING(2.8)輸出結(jié)果:-313第2章數(shù)據(jù)與數(shù)據(jù)運算812.5常用函數(shù)8.符號函數(shù)【格式】SIGN(<數(shù)值表達式>)【功能】返回指定數(shù)值表達式的符號,當(dāng)表達式的結(jié)果為正數(shù)、負數(shù)和零時,返回的函數(shù)值分別為1、-1和0?!纠?.20】
?SIGN(3),SIGN(0),SIGN(-3)
輸出結(jié)果:10-1第2章數(shù)據(jù)與數(shù)據(jù)運算822.5常用函數(shù)2.5.2字符函數(shù)1.刪除字符串空格函數(shù)【格式】LTRIM|RTRIM|ALLTRIM(<字符表達式>)【功能】LTRIM(),RTRIM(),ALLTRIM()分別刪除字符串左端、右端和兩端空格。其中RTRIM()也可以寫成TRIM()?!纠?.21】?″ab″+LTRIM(″□□cd□□″)+"e“&&用□表示空格?ALLTRIM(″b□″)+[c]輸出結(jié)果:abcd□□ebc2.計算字符串長度函數(shù)【格式】LEN(<字符表達式>)【功能】返回指定字符表達式的長度?!纠?.22】?LEN("ABCDF"),LEN("中國")輸出結(jié)果:5 4第2章數(shù)據(jù)與數(shù)據(jù)運算832.5常用函數(shù)2.5.2字符函數(shù)3.返回位置函數(shù)AT()【格式】AT(<字符串1>,<字符串2>,<數(shù)值表達式N>)【功能】返回字符串1在字符串2中第N次出現(xiàn)的位置,如不存在則返回0。如省略N則返回第1次出現(xiàn)的位置。【例2.23】?AT("BC","ABC"),AT("B","ABCB",2) 輸出結(jié)果:2 44.生成空格函數(shù)【格式】SPACE(<數(shù)值表達式>)【功能】生成若干個空格,空格的個數(shù)由數(shù)值表達式的值決定。【例2.26】?"中國"+SPACE(3)+"加油"輸出結(jié)果:中國□□□加油第2章數(shù)據(jù)與數(shù)據(jù)運算842.5常用函數(shù)5.取子字符串函數(shù)【格式】SUBSTR(<字符表達式>,<數(shù)值表達式N1>[,<數(shù)值表達式N2>])【功能】返回對字符表達式從N1位開始截取出N2個字符組成的字符串。如省略N2則從N1位開始截取到字符串結(jié)尾?!纠?.24】?SUBSTR("社會經(jīng)濟學(xué)",5,4) 輸出結(jié)果:經(jīng)濟【格式】LEFT|RIGHT(<字符表達式>,<數(shù)值表達式N>)【功能】返回從字符串左端或右端開始,連續(xù)取N位字符所組成的字符串?!纠?.25】?LEFT(″ABC″,2),RIGHT(″ABC″,2) 輸出結(jié)果:ABBC
第2章數(shù)據(jù)與數(shù)據(jù)運算852.5常用函數(shù)6.大小寫轉(zhuǎn)換函數(shù)
【格式】UPPER|LOWER(<字符表達式>)【例2.27】?UPPER("aBC"),LOWER("aBc") 輸出結(jié)果:ABC abc7.計算子串出現(xiàn)次數(shù)函數(shù)【格式】OCCURS(<字符表達式1>,<字符表達式2>)【功能】返回<字符表達式1>在<字符表達式2>中出現(xiàn)的次數(shù)【例2.28】?OCCURS(″c″,″abcabcd″) 輸出結(jié)果:28.子串替換函數(shù)【格式】STUFF(<字符表達式1>,<起始位置>,<長度>,<字符表達式2>)【功能】用<字符表達式2>的值替換<字符表達式1>中由<起始位置>和<長度>指明的一個子串,返回所形成的新字符串?!纠?.29】?STUFF(″aBc″,2,1,″b″) 輸出結(jié)果:abc第2章數(shù)據(jù)與數(shù)據(jù)運算862.5常用函數(shù)9.子串匹配函數(shù)【格式】LIKE(<字符表達式1>,<字符表達式2>)【功能】判斷兩個字符中對應(yīng)位置的字符是否匹配,若匹配返回邏輯真(.T.),若不匹配則返回邏輯假(.F.)。<字符表達式1>中可以包含通配符*和?,*可與任何長度字符串相匹配,?只能與任何單個字符進行匹配?!纠?.30】?LIKE(″ab*″,″abcd″),LIKE(″Abc″,″abc″),LIKE(″ab?″,″abcd″)輸出結(jié)果:.T..F..F.10.重復(fù)輸出指定次數(shù)的字符函數(shù)【格式】REPLICATE(<字符表達式>,<數(shù)值表達式>)【功能】將字符串表達式重復(fù)指定的次數(shù)?!纠?.31】?REPLICATE("abc",3)輸出結(jié)果:abcabcabc第2章數(shù)據(jù)與數(shù)據(jù)運算872.5常用函數(shù)2.5.3日期和時間函數(shù)1.系統(tǒng)當(dāng)前日期和時間函數(shù)【格式】DATE()DATETIME()TIME()【功能】DATE()函數(shù)返回系統(tǒng)當(dāng)前日期,結(jié)果為日期型。TIME()函數(shù)返回系統(tǒng)當(dāng)前時間,結(jié)果為字符型。DATETIME()函數(shù)返回系統(tǒng)當(dāng)前日期和時間,結(jié)果為日期時間型?!纠?.32】?DATE(),TIME(),DATETIME()
輸出結(jié)果:05/01/1521:24
:0505/01/1509
:24
:05PM第2章數(shù)據(jù)與數(shù)據(jù)運算882.5常用函數(shù)2.5.3日期和時間函數(shù)2.年份、月份和天數(shù)函數(shù)【格式】YEAR(<日期表達式>|<日期時間表達式>)MONTH(<日期表達式>|<日期時間表達式>)DAY(<日期表達式>|<日期時間表達式>)【功能】分別返回日期或日期時間中對應(yīng)的年份、月份和天數(shù),結(jié)果為數(shù)值型?!纠?.33】D={^2015-05-01}?YEAR(D),MONTH(D),DAY(D) 輸出結(jié)果:201551第2章數(shù)據(jù)與數(shù)據(jù)運算892.5常用函數(shù)2.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
1.字符型轉(zhuǎn)換成數(shù)值型函數(shù)【格式】VAL(<字符表達式>)【功能】把符合數(shù)字符號規(guī)則的字符串部分轉(zhuǎn)換成數(shù)值,當(dāng)遇到非數(shù)字符時則舍棄剩余字符,默認四舍五入并保留兩位小數(shù)?!纠?.34】?VAL("23.756"),VAL("2+3") 輸出結(jié)果:23.76 2.00第2章數(shù)據(jù)與數(shù)據(jù)運算902.5常用函數(shù)2.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
2.數(shù)值型轉(zhuǎn)換為字符型函數(shù)【格式】STR(<數(shù)值表達式N1>[,<數(shù)值表達式N2>[,<數(shù)值表達式N3>]])【功能】把N1轉(zhuǎn)換成小數(shù)位為N3、總長度為N2的字符型數(shù)據(jù),省略N2、N3時表示不保留小數(shù)位,長度默認為10,如果N2和N3不能同時滿足,則優(yōu)先保證整數(shù)位?!纠?.35】?STR(-3.14159,5,3),STR(3.14) 輸出結(jié)果:-3.14 3第2章數(shù)據(jù)與數(shù)據(jù)運算912.5常用函數(shù)3.字符轉(zhuǎn)換成ASCII碼函數(shù)【格式】ASC(<字符表達式>)【功能】返回字符串中第一個字符的ASCII碼值。【例2.37】?ASC("ABC")輸出結(jié)果:654.ASCII碼值轉(zhuǎn)換成字符函數(shù)【格式】CHR(<數(shù)值表達式>)【例2.38】?CHR(66),CHR(97)輸出結(jié)果:B a第2章數(shù)據(jù)與數(shù)據(jù)運算922.5常用函數(shù)5.字符串轉(zhuǎn)換成日期函數(shù)【格式】CTOD()(<字符表達式>)【功能】將字符型數(shù)據(jù)轉(zhuǎn)換成日期型數(shù)據(jù)?!纠?.38】?CTOD(″^2015/05/01″)輸出結(jié)果:05/01/156.日期轉(zhuǎn)換成字符串函數(shù)【格式】DTOC()(<日期表達式>[,1])【功能】將日期型數(shù)據(jù)轉(zhuǎn)換成字符型數(shù)據(jù)。若選參數(shù)1,結(jié)果為yyyymmdd格式;缺省可選項時,結(jié)果為mm/dd/yy格式?!纠?.39】?DTOC({^2015/05/01}),DTOC({^2015/05/01},1)輸出結(jié)果:05/01/1520150501第2章數(shù)據(jù)與數(shù)據(jù)運算932.5常用函數(shù)2.5.5測試函數(shù)1.值域測試函數(shù)
【格式】BETWEEN(<表達式1>,<表達式2>,<表達式3>)【功能】判斷表達式1的值是否大于等于表達式2的值并且小于等于表達式3的值,若是,則返回.T.,否則返回.F.?!纠?.40】?BETWEEN(5,3,7),BETWEEN("A","X","Y") 輸出結(jié)果:.T. .F.2.空值測試函數(shù)【格式】ISNULL(<表達式>)【功能】判斷一個表達式的運算結(jié)果是否為NULL值,若是NULL值則返回.T.,否則返回.F.?!纠?.41】?ISNULL(null) 輸出結(jié)果:.T.第2章數(shù)據(jù)與數(shù)據(jù)運算942.5常用函數(shù)
3.”空”測試函數(shù)【格式】EMPTY(<表達式>)【功能】判斷一個表達式的運算結(jié)果是否為“空”,如果為“空”則返回.T.,否則返回.F.。【說明】數(shù)值0、邏輯值.F.和空字符串″″或任意多個空格字符串″″都可以理解為“空”?!纠?.42】?EMPTY(0),EMPTY(.F.),EMPTY(""),EMPTY("") 輸出結(jié)果:.T..T..T..T.4.數(shù)據(jù)類型測試函數(shù)【格式】VARTYPE(<表達式>)【功能】以一個大寫字母的形式返回表達式的類型?!纠?.43】?VARTYPE(5),VARTYPE("m"),VARTYPE(DATE())輸出結(jié)果:N C D第2章數(shù)據(jù)與數(shù)據(jù)運算952.5常用函數(shù)5.條件測試函數(shù)【格式】IIF(<邏輯表達式>,<表達式1>,<表達式2>)【功能】判斷邏輯表達式的值,若為真函數(shù)返回表達式1,若為假則返回表達式2?!纠?.44】?IIF(3<4,"正確","錯誤"),IIF(3>4,"正確","錯誤") 輸出結(jié)果:正確錯誤
6.表文件尾測試函數(shù)【格式】EOF(工作區(qū)號|表別名)【功能】測試指定表文件中的記錄指針是否指向文件尾,指向文件尾返回.T.,否則返回.F.。7.表文件頭測試函數(shù)【格式】BOF(工作區(qū)號|表別名)【功能】測試指定表文件中的記錄指針是否指向文件首,指向文件首返回.T.,否則返回.F.。
第2章數(shù)據(jù)與數(shù)據(jù)運算962.5常用函數(shù)8.記錄號測試函數(shù)【格式】RECNO(工作區(qū)號|表別名)【功能】返回指定表文件中當(dāng)前記錄的記錄號,返回值是一個整型數(shù)據(jù)。9.記錄個數(shù)測試函數(shù)【格式】RECCOUNT(工作區(qū)號|表別名)【功能】返回指定表文件中的記錄個數(shù),返回值是一個整型數(shù)據(jù)。10.記錄刪除測試函數(shù)【格式】DELETED(工作區(qū)號|表別名)【功能】測試指定表文件中當(dāng)前記錄是否有刪除標記,有刪除標記返回.T.,否則返回.F.。11.查找是否成功測試函數(shù)【格式】FOUND(工作區(qū)號|表別名)【功能】如果LOCATE/CONTINUE、SEEK等查找記錄的命令按照條件查找成功(即找到了記錄),該函數(shù)返回.T.,否則返回.F.。第2章數(shù)據(jù)與數(shù)據(jù)運算972.5常用函數(shù)2.5.6其他函數(shù)1.宏替換函數(shù)&【格式】&<字符型內(nèi)變量>[.字符表達式]【功能】用字符型內(nèi)存變量的值去替換&和字符型內(nèi)存變量。[.字符表達式]用來將替換之后的內(nèi)容與字符表達式聯(lián)接。【例2.45】 m=3 n=″m+2″ ?n,&n
輸出結(jié)果:m+2 5第2章數(shù)據(jù)與數(shù)據(jù)運算982.5常用函數(shù)2.顯示信息對話框函數(shù)【格式】MESSAGEBOX(<提示信息>[,<數(shù)值表達式>][,<標題文本>])【功能】以對話框形式顯示信息,返回選取按鈕的對應(yīng)數(shù)值?!菊f明】(1)<提示信息>:指定在對話框中顯示的文本。(2)<數(shù)值表達式>:指定對話框中的按鈕、圖標和顯示對話框時的默認按鈕。這里只介紹對話框中的按鈕,如表2-11所示,缺省時只顯示“確定”按鈕。(3)<標題文本>指定對話框標題欄中的文本。若省略,標題欄中將顯示“MicrosoftVisualFoxPro”。(4)MESSAGEBOX()的返回值標明選取了對話框中的哪個按鈕。1確定、2取消、3放棄、4重試、5忽略、6是、7否。第2章數(shù)據(jù)與數(shù)據(jù)運算992.5常用函數(shù)數(shù)值表達式對話框按鈕數(shù)值表達式對話框按鈕0“確定”按鈕3“是”、“否”和“取消”按鈕1“確定”和“取消”按鈕4“是”和“否”按鈕2“終止”、“重試”和“忽略”按鈕5“重試”和“取消”按鈕【例2.46】X=MESSAGEBOX("是否繼續(xù)查找!",1,"查找")
?X第2章數(shù)據(jù)與數(shù)據(jù)運算100本章小結(jié)
本章主要介紹了常量、變量、表達式和函數(shù)4個概念及其各種數(shù)據(jù)類型的運算。常量和變量是數(shù)據(jù)處理的基本對象,表達式和函數(shù)則體現(xiàn)出計算機數(shù)據(jù)處理的強大功能。ThankYou!第3章數(shù)據(jù)庫與數(shù)據(jù)表第3章數(shù)據(jù)表與數(shù)據(jù)庫103本章內(nèi)容數(shù)據(jù)庫的創(chuàng)建與操作
3.1數(shù)據(jù)庫表的建立與操作
3.2數(shù)據(jù)表的操作3.3表的索引
3.4數(shù)據(jù)完整性
3.5自由表3.6多表同時使用3.7第3章數(shù)據(jù)表與數(shù)據(jù)庫1043.1數(shù)據(jù)庫創(chuàng)建與操作3.1.1創(chuàng)建數(shù)據(jù)庫【例3.1】建立“教學(xué)”數(shù)據(jù)庫123第3章數(shù)據(jù)表與數(shù)據(jù)庫1053.1.2打開和關(guān)閉數(shù)據(jù)庫1.打開數(shù)據(jù)庫2.關(guān)閉數(shù)據(jù)庫3.1數(shù)據(jù)庫創(chuàng)建與操作若選擇“以只讀方式打開”復(fù)選框,則打開的數(shù)據(jù)庫不能修改,默認的打開方式是讀寫方式;若選擇“獨占”復(fù)選框,則不允許其他用戶同時使用該數(shù)據(jù)庫,默認為共享方式。數(shù)據(jù)庫使用完之后要及時關(guān)閉,關(guān)閉數(shù)據(jù)庫需要使用CLOSEDATABASE命令完成。第3章數(shù)據(jù)表與數(shù)據(jù)庫1063.1數(shù)據(jù)庫創(chuàng)建與操作3.1.3修改數(shù)據(jù)庫修改數(shù)據(jù)庫實際上是打開數(shù)據(jù)庫設(shè)計器,在數(shù)據(jù)庫設(shè)計器中完成各種數(shù)據(jù)對象的建立、修改和刪除等操作。利用菜單打開數(shù)據(jù)庫后會自動打開數(shù)據(jù)庫設(shè)計器,然后可以對數(shù)據(jù)庫進行修改。第3章數(shù)據(jù)表與數(shù)據(jù)庫1073.1數(shù)據(jù)庫創(chuàng)建與操作3.1.4有關(guān)數(shù)據(jù)庫的基本操作命令1.創(chuàng)建數(shù)據(jù)庫【格式】CREATEDATABASE[<數(shù)據(jù)庫名>|?]【說明】如果不指定數(shù)據(jù)庫名或輸入“?”,系統(tǒng)會彈出“創(chuàng)建”對話框,請用戶輸入數(shù)據(jù)庫名?!纠?.2】通過命令方式建立“教學(xué)”數(shù)據(jù)庫。CREATEDATABASE教學(xué)2.打開數(shù)據(jù)庫【格式】OPENDATABASE<數(shù)據(jù)庫文件名>【例3.3】通過命令方式打開“教學(xué)”數(shù)據(jù)庫。OPENDATABASE教學(xué)3.關(guān)閉數(shù)據(jù)庫【格式】CLOSEDATABASE
【功能】關(guān)閉當(dāng)前打開的數(shù)據(jù)庫和數(shù)據(jù)表。第3章數(shù)據(jù)表與數(shù)據(jù)庫1083.2數(shù)據(jù)庫表建立與操作3.2.1設(shè)計表結(jié)構(gòu)學(xué)號姓名性別民族出生日期專業(yè)入學(xué)成績簡歷照片15010001王欣女漢1992-10-11外語52515010002張美芳女苗1993-07-01外語51015010003楊永豐男漢1991-12-15外語50815060001周軍男漢1993-05-10物理48515060002孫志奇男苗1992-06-11物理47815060003胡麗梅女漢1992-01-12物理47815060004李丹陽女漢1992-02-15物理47015080001鄭志男壯1993-05-10計算機51015080002趙海軍男藏1992-08-01計算機479每一列稱為一個字段第一行以下的每一行稱作一條記錄
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版特許經(jīng)營合同書范本及其規(guī)定2篇
- 2025年度租賃合同的租賃物描述3篇
- 2025年度鐵藝工程設(shè)計與環(huán)保評估合同3篇
- 2025年外研版三年級起點八年級物理下冊階段測試試卷含答案
- 2025年滬教新版必修1物理上冊階段測試試卷含答案
- 2025年教科新版選擇性必修1生物上冊階段測試試卷含答案
- 2025年湘教版八年級科學(xué)下冊月考試卷含答案
- 二零二五EPS線條綠色建材認證采購合同3篇
- 2025年外研版選修2地理下冊階段測試試卷含答案
- 2025年度電子商務(wù)B2B購銷合同:融合數(shù)據(jù)分析與風(fēng)險控制3篇
- 化學(xué)-山東省濰坊市、臨沂市2024-2025學(xué)年度2025屆高三上學(xué)期期末質(zhì)量檢測試題和答案
- 領(lǐng)導(dǎo)學(xué) 課件全套 孫健 第1-9章 領(lǐng)導(dǎo)要素- 領(lǐng)導(dǎo)力開發(fā)
- 2024-2025學(xué)年七年級上學(xué)期語文期末考前押題卷(統(tǒng)編版2024+含答案)
- 土建定額培訓(xùn)課件
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實踐指導(dǎo)材料之13:“6策劃-6.2創(chuàng)新目標及其實現(xiàn)的策劃”(雷澤佳編制-2025B0)
- 2024年保護環(huán)境的建議書范文(33篇)
- 2025新譯林版英語七年級下單詞默寫表
- 退休人員公益活動合作合同
- 四年級數(shù)學(xué)(四則混合運算帶括號)計算題專項練習(xí)與答案
- 急診創(chuàng)傷疼痛護理
- 2022年期貨從業(yè)資格《期貨基礎(chǔ)知識》考試題庫(含典型題)
評論
0/150
提交評論