版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Visualfoxpro數(shù)據(jù)庫(kù)管理系統(tǒng)考核內(nèi)容:數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)VFP概述數(shù)據(jù)類型與函數(shù)數(shù)據(jù)庫(kù)和表的操作程序設(shè)計(jì)SQL語(yǔ)言的使用表單的設(shè)計(jì)考試題型:(70分)一、填空題(10分)5個(gè)題,共10分,數(shù)據(jù)庫(kù)基礎(chǔ)部分,前四章的內(nèi)容二、寫出運(yùn)營(yíng)結(jié)果(24分)8?jìng)€(gè)題,每題3分,都是程序。三、完善程序(24分)8個(gè)題,每題3分,共24分,都是程序四、改錯(cuò)(12分)4個(gè)題,每題3分,都是程序。判斷2-100以內(nèi)的數(shù)是否是質(zhì)數(shù)。求1-100的累加和。求100!打印如下圖形:**********或*********第一章VisualFoxpro基礎(chǔ)1.1數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)一、數(shù)據(jù)、數(shù)據(jù)解決、信息、數(shù)據(jù)管理的含義1)數(shù)據(jù):是指存儲(chǔ)在某一種媒體上能被辨認(rèn)物理符號(hào)。隨著信息的發(fā)展,數(shù)據(jù)不再是單純的數(shù)值型,即0-9,正負(fù)號(hào)。數(shù)據(jù)已經(jīng)擴(kuò)展了,涉及文本、圖形、聲音、視頻等。2)數(shù)據(jù)解決數(shù)據(jù)解決是對(duì)數(shù)據(jù)進(jìn)行收集、加工解決的一個(gè)過(guò)程。3)信息數(shù)據(jù)通過(guò)加工解決,得到故意義的數(shù)據(jù),叫信息。原始數(shù)據(jù):出生日期。加工得來(lái)的數(shù)據(jù):年齡。4)數(shù)據(jù)管理是指對(duì)數(shù)據(jù)進(jìn)行收集、加工、整理的一些工作2.?dāng)?shù)據(jù)管理的發(fā)展階段1)手工管理階段數(shù)據(jù)和程序都不保存,數(shù)據(jù)和程序不獨(dú)立。數(shù)據(jù)冗余度大。2)文獻(xiàn)管理階段數(shù)據(jù)以文獻(xiàn)方式存儲(chǔ),按文獻(xiàn)名來(lái)使用數(shù)據(jù)。程序與數(shù)據(jù)有一定的獨(dú)立性,分開存儲(chǔ),數(shù)據(jù)保存在存儲(chǔ)器中。3)數(shù)據(jù)庫(kù)階段程序與數(shù)據(jù)獨(dú)立,程序發(fā)生變化,數(shù)據(jù)不變,數(shù)據(jù)發(fā)生變化程序不變。。實(shí)現(xiàn)數(shù)據(jù)共享性,減少數(shù)據(jù)冗余。數(shù)據(jù)獨(dú)立性高,數(shù)據(jù)與程序分開,互不影響。有專門的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)來(lái)管理、維護(hù)數(shù)據(jù)庫(kù)的數(shù)據(jù)。4)分布式數(shù)據(jù)庫(kù)是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫(kù)技術(shù)的結(jié)合的產(chǎn)物。5)面向?qū)ο蟮臄?shù)據(jù)庫(kù)系統(tǒng)引入了類、對(duì)象、方法、屬性。二、基本概念1.數(shù)據(jù)庫(kù)(DB)是指存儲(chǔ)在計(jì)算機(jī)中的互相關(guān)聯(lián)的結(jié)構(gòu)化的相關(guān)數(shù)據(jù)集合。數(shù)據(jù)庫(kù)中不僅存放數(shù)據(jù),并且存儲(chǔ)數(shù)據(jù)與數(shù)據(jù)之間的聯(lián)系。2)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)人員運(yùn)用數(shù)據(jù)庫(kù)管理系統(tǒng)開發(fā)的面向某一應(yīng)用的軟件系統(tǒng),比如工資管理系統(tǒng)。3)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是用于管理、維護(hù)、建立、使用數(shù)據(jù)庫(kù)的系統(tǒng)軟件。4)數(shù)據(jù)庫(kù)系統(tǒng)(DBS)是一個(gè)應(yīng)用了數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)由五大部分構(gòu)成:硬件系統(tǒng)、數(shù)據(jù)庫(kù)集合、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶。DBA:數(shù)據(jù)庫(kù)管理員。以上所講的幾部分,包含關(guān)系如下:DBS包含DBMS和DB數(shù)據(jù)庫(kù)管理系統(tǒng)(dbms)是數(shù)據(jù)庫(kù)系統(tǒng)的核心。2.數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)1)實(shí)現(xiàn)數(shù)據(jù)共享,減少了數(shù)據(jù)冗余2)采用特定的數(shù)據(jù)模型。層次模型、網(wǎng)狀模型關(guān)系模型。3)具有較高的數(shù)據(jù)獨(dú)立性分為物理獨(dú)立性和邏輯獨(dú)立性。4)有統(tǒng)一的數(shù)據(jù)控制功能。數(shù)據(jù)并發(fā)。三、數(shù)據(jù)模型1.實(shí)體的描述1)實(shí)體客觀存在的可以互相區(qū)別事物。實(shí)體可以是具體的,也可以是抽象的。例如:一臺(tái)電腦、一部電話、一次比賽、一次借閱,一次訂貨2)屬性用來(lái)描述實(shí)體的特性稱為屬性。用于區(qū)別其他事物的特性。學(xué)生實(shí)體(編號(hào)、姓名,班級(jí),性別)這里的屬性就是VFP中表的字段。3)實(shí)體集和實(shí)體型.實(shí)體集:同類實(shí)體的集合。在VFP中,用表存儲(chǔ)實(shí)體集。實(shí)體型:同類實(shí)體所有屬性的集合,實(shí)體型,在VFP中就是表中所有字段,二維表中的標(biāo)題。學(xué)號(hào)姓名性別99001張一男99002李四女99003王東男2.實(shí)體之間的聯(lián)系(實(shí)體之間的相應(yīng)關(guān)系)聯(lián)系的類型如下:1)一對(duì)一的聯(lián)系表達(dá)一個(gè)實(shí)體集中的一個(gè)實(shí)體,相應(yīng)另一個(gè)實(shí)體集中的一個(gè)實(shí)體,如班級(jí)與班長(zhǎng),公司與廠長(zhǎng)。2)一對(duì)多的聯(lián)系表達(dá)一個(gè)實(shí)體集中的一個(gè)實(shí)體,相應(yīng)另一個(gè)實(shí)體集中的多個(gè)實(shí)體。比如:學(xué)生和成績(jī)。3)多對(duì)多的聯(lián)系例如:學(xué)生和課程學(xué)生和教師教師和課程運(yùn)動(dòng)員和比賽項(xiàng)目3.數(shù)據(jù)模型為了反映事物自身及事物之間的各種聯(lián)系,數(shù)據(jù)庫(kù)中的數(shù)據(jù)必須有一定的結(jié)構(gòu),這種結(jié)構(gòu)稱為數(shù)據(jù)模型。數(shù)據(jù)模型不僅表達(dá)事物自身的數(shù)據(jù),并且表達(dá)數(shù)據(jù)之間的聯(lián)系。分為三種:1)層次模型系教研室系教研室課程教師特點(diǎn):除根結(jié)點(diǎn)外,每一個(gè)結(jié)點(diǎn)有且只能有一個(gè)父結(jié)點(diǎn)。2)網(wǎng)狀模型用網(wǎng)狀結(jié)構(gòu)來(lái)表達(dá)實(shí)體結(jié)構(gòu)。課程號(hào)課程號(hào)課程學(xué)生教員任課選課特點(diǎn):網(wǎng)狀模型突破了層次模型的兩點(diǎn)限制:允許結(jié)點(diǎn)有多于一個(gè)的父結(jié)點(diǎn),可以有一個(gè)以上的結(jié)點(diǎn)沒(méi)有父結(jié)點(diǎn)。3)關(guān)系模型用二維表格的形式表達(dá)實(shí)體和實(shí)體之間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型在關(guān)系模型中,操作的對(duì)象和結(jié)果都是關(guān)系,職工號(hào)姓名性別001王軍女002陳明男特點(diǎn):關(guān)系就是二維表格。1.2關(guān)系數(shù)據(jù)庫(kù)VFP是一種微機(jī)上的32位的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。一、關(guān)系術(shù)語(yǔ)1)關(guān)系:一個(gè)關(guān)系就是一張二維表,在VFP中存儲(chǔ)為一個(gè)文獻(xiàn),稱為表,擴(kuò)展名為.dbf。2)元組:二維表中行,元組在VFP的表中叫記錄。3)屬性:二維表中列。在VFP中叫字段,屬性名叫字段名,屬性值叫字段值。4)域:屬性的取值范圍叫域。月份:取值為:1月至12月5)關(guān)鍵字:可以惟一區(qū)別其他實(shí)體的屬性叫關(guān)鍵字。學(xué)生(學(xué)號(hào),姓名,性別)6)外部關(guān)鍵字:是指在第一表不是關(guān)鍵字,但在第二表中是關(guān)鍵字的。通過(guò)外部關(guān)鍵字用來(lái)聯(lián)系兩個(gè)表的。成績(jī)(學(xué)號(hào),課號(hào),成績(jī))學(xué)生(學(xué)號(hào),姓名,性別)二.關(guān)系的特點(diǎn)1)關(guān)系必須規(guī)范化,每一列都是不可再分的單元。學(xué)號(hào)姓名成績(jī)數(shù)學(xué)語(yǔ)文英語(yǔ)2)同一個(gè)關(guān)系不能出現(xiàn)同名屬性。3)關(guān)系中不能出現(xiàn)完全相同的行。4)關(guān)系中行與列的順序隨意,沒(méi)有影響。三、關(guān)系的運(yùn)算重要有兩種:1、傳統(tǒng)的集合運(yùn)算(必須有相同的關(guān)系模式,即相同結(jié)構(gòu))并:由屬于這兩個(gè)關(guān)系的元組成的集合。差:設(shè)有兩個(gè)相同的元組R和S,R差S的結(jié)果是由屬于R但不屬于S的元組組成的集合。交:設(shè)有兩個(gè)相同的元組R和S,它們的交是由屬于R又屬于S的元組組成。2、專門的關(guān)系運(yùn)算:1)選擇從關(guān)系中找出滿足條件的元組的操作叫選擇。顯示學(xué)生表中性別為男的所有記錄。LISTFOR性別=”男”選擇是從行的角度進(jìn)行的運(yùn)算,水平方向抽取記錄。2)投影從關(guān)系中抽取若干個(gè)屬性組成新的關(guān)系的操作。從列的角度而言,垂直分解。比如:查詢學(xué)生表的學(xué)號(hào)和姓名。Listfields學(xué)號(hào),姓名既有選擇又有投影。對(duì)于選擇在VFP中使用for來(lái)限制或while。對(duì)于投影在VFP中使用fields操作。Listfields學(xué)號(hào),姓名for性別=”男”3)聯(lián)接是關(guān)系的橫向結(jié)合,聯(lián)接運(yùn)算將兩個(gè)關(guān)系模式拼接成一個(gè)更寬的模式。生成的新關(guān)系中包含滿足條件的元組。等值聯(lián)接:在聯(lián)接運(yùn)算中,按照字段值相應(yīng)相等為條件進(jìn)行的聯(lián)接操作稱為等值聯(lián)接。自然聯(lián)接:去掉反復(fù)屬性的等值聯(lián)接(最常用)選擇和投影都是對(duì)一個(gè)關(guān)系而言的。聯(lián)接至少兩個(gè)聯(lián)系。比如:學(xué)生(學(xué)號(hào),姓名)成績(jī)(學(xué)號(hào),成績(jī))生成的表(學(xué)號(hào),姓名,成績(jī))在VFP中有兩個(gè)聯(lián)接命令SETRELATIONTO(shè):邏輯聯(lián)接JOINWITH:物理聯(lián)接**********補(bǔ)充知識(shí)************VFP的命令格式構(gòu)成:格式如下:命令動(dòng)詞[范圍][for/while條件]1)命令動(dòng)詞顯示記錄:list/display追加記錄:append刪除記錄:delete查詢:locat(yī)e/seek/find插入記錄:insert2)范圍范圍是對(duì)記錄而言的,。all:表達(dá)操作的記錄范圍為所有記錄。所有元組。。nextN:從當(dāng)前記錄開始連續(xù)N條記錄。。rest:從當(dāng)前記錄開始到尾記錄。。recordn表達(dá)第N條記錄約定:假如省略范圍,有FOR,則范圍為ALL。3)for/while<條件>此處是選擇操作,for和while是條件關(guān)鍵字。For:表達(dá)從范圍內(nèi)找滿足條件的所有記錄。While:表達(dá)選擇,但碰到一個(gè)不滿足記錄即停止。一般不用。4)其他參數(shù)toprint:送到打印機(jī)tofile文獻(xiàn)名:送到文獻(xiàn)中***********************************第二章VFP系統(tǒng)初步一、VFP啟動(dòng)與退出1、啟動(dòng)系統(tǒng):通過(guò)開始菜單程序---MICROSOFTVISUALFOXPRO6.02、退出系統(tǒng)(4種方法)1)用鼠標(biāo)左鍵單擊VFP標(biāo)題欄右面的關(guān)閉窗口按鈕2)從“文獻(xiàn)”下拉菜單中選擇“退出”3)單擊主窗口左上方的狐貍圖標(biāo),在下拉菜單中選擇”關(guān)閉”,或者按ALT+F4。4)在命令窗口中鍵入QUIT(按ENTER鍵)。二、VFP的窗口構(gòu)成:1.標(biāo)題欄2.菜單欄(動(dòng)態(tài)的)3.工具欄:默認(rèn)界面涉及“常用”、“表單設(shè)計(jì)器”工具欄。4.狀態(tài)欄:顯示當(dāng)前打開的數(shù)據(jù)庫(kù)和表,當(dāng)前記錄號(hào)/總記錄數(shù)5.內(nèi)容區(qū):(顯示執(zhí)行結(jié)果)6.命令窗口:用于輸入命令,命令輸入完畢后,按回車鍵立刻執(zhí)行命令,1)隱藏命令窗口:(1)單擊命令窗口右上角的關(guān)閉按鈕關(guān)閉它。(2)按CTRL+F4隱藏命令窗口2)顯示命令窗口(1)單擊“常用”工具欄上的“命令窗口”按鈕。(2)通過(guò)“窗口”菜單下的“命令窗口”選項(xiàng)可以重新打開。(3),按CTRL+F2顯示命令窗口7、滾動(dòng)條三、VFP有三種工作方式:1)菜單方式(交互式)2)命令方式(交互式)3)程序方式四、項(xiàng)目管理器:是VFP中用來(lái)組織管理各類文獻(xiàn)的容器。是文獻(xiàn)、數(shù)據(jù)、文檔和VFP對(duì)象的集合,擴(kuò)展名為.pjx。一、創(chuàng)建項(xiàng)目的兩種途徑:1)僅創(chuàng)建一個(gè)項(xiàng)目文獻(xiàn),用來(lái)分類管理其他文獻(xiàn)2)使用應(yīng)用程序向?qū)闪艘粋€(gè)項(xiàng)目和一個(gè)VFP應(yīng)用程序框架二、打開和關(guān)閉項(xiàng)目1)打開項(xiàng)目“文獻(xiàn)”菜單“打開”文件類型為“項(xiàng)目”----選中要打開的項(xiàng)目--單擊“擬定”按鈕2)關(guān)閉項(xiàng)目單擊項(xiàng)目管理器右上角的“關(guān)閉”按鈕三、項(xiàng)目管理器選項(xiàng)卡:(共有6個(gè))1)數(shù)據(jù)選項(xiàng)卡:數(shù)據(jù)庫(kù)(.DBC)、查詢(.QPR)、自由表(.DBF)、視圖等。2)文檔選項(xiàng)卡:表單(.SCX)、報(bào)表(.FRX)、標(biāo)簽(.LBL)3)代碼選項(xiàng)卡:程序(.PRG),api庫(kù),應(yīng)用程序(.app)4)類選項(xiàng)卡:類文獻(xiàn)(.VCX)5)其他選項(xiàng)卡:菜單文獻(xiàn)、圖片文獻(xiàn)、其他文獻(xiàn)6)所有:以上各類文獻(xiàn)的集中顯示。四、項(xiàng)目管理器基本操作(第8頁(yè))1)在項(xiàng)目中創(chuàng)建文獻(xiàn):選擇要新建文獻(xiàn)類型,再單擊“新建”按鈕2)在項(xiàng)目中加入文獻(xiàn):選擇要添加文獻(xiàn)的類型,再單擊“添加”按鈕3)在項(xiàng)目中修改文獻(xiàn):先選擇要修改的文獻(xiàn),再單擊“修改”按鈕4)在項(xiàng)目中移去文獻(xiàn):選擇要移去的文獻(xiàn),再單擊“移去”按鈕,文獻(xiàn)會(huì)從項(xiàng)目中移去,但不會(huì)從磁盤中刪除文獻(xiàn),或按“刪出”按鈕,文獻(xiàn)會(huì)從項(xiàng)目中移去并從磁盤中刪除文獻(xiàn)5)為文獻(xiàn)添加說(shuō)明在“項(xiàng)目管理器”中選定文獻(xiàn),從“項(xiàng)目”菜單中選擇“編輯說(shuō)明”,在編輯說(shuō)明對(duì)話框中鍵入對(duì)文獻(xiàn)的說(shuō)明,單擊“擬定”按鈕。6)查看表中的數(shù)據(jù)從項(xiàng)目中可以瀏覽項(xiàng)目中表的內(nèi)容。若要瀏覽表,選擇“數(shù)據(jù)”選項(xiàng)卡,選定一個(gè)表并單擊“瀏覽”按鈕。五、項(xiàng)目管理器的命令按鈕(不可用時(shí)是灰色)1.新建:創(chuàng)建一個(gè)新文獻(xiàn)或?qū)ο?.添加:把已有的對(duì)象添加到項(xiàng)目中3.修改:在合適的設(shè)計(jì)器中打開選定項(xiàng)4.瀏覽:在瀏覽窗口中打開一個(gè)表5.關(guān)閉:關(guān)閉一個(gè)打開的數(shù)據(jù)庫(kù)6.打開:打開一個(gè)數(shù)據(jù)庫(kù)7.移去:從項(xiàng)目中移去選定文獻(xiàn)或?qū)ο?.連編:編譯一個(gè)項(xiàng)目或應(yīng)用程序9.預(yù)覽:在打印方式下顯示選定的報(bào)表或標(biāo)簽。10.運(yùn)營(yíng):執(zhí)行選定的查詢、表單或程序六、定制項(xiàng)目(改變項(xiàng)目的外觀)1)移動(dòng)、縮放、折疊(項(xiàng)目管理器上右上角的向上箭頭)2)拆分項(xiàng)目管理器-先折疊項(xiàng)目管理器拖出選項(xiàng)卡3)停放項(xiàng)目管理器將項(xiàng)目管理器拖到VFP主窗口的上部就可以像工具欄同樣顯示在主窗口的頂部。五、Vfp中常用的文獻(xiàn)擴(kuò)展名.pjx:項(xiàng)目文獻(xiàn).pjt:項(xiàng)目備注文獻(xiàn).dbf:表文獻(xiàn).fpt:表備注文獻(xiàn).dbc:數(shù)據(jù)庫(kù)文獻(xiàn).dct:數(shù)據(jù)庫(kù)備注文獻(xiàn).dcx:數(shù)據(jù)庫(kù)索引文獻(xiàn).frx:報(bào)表文獻(xiàn).frt:報(bào)表備注文獻(xiàn).scx:表單文獻(xiàn).sct:表單備注文獻(xiàn).lbx:標(biāo)簽文獻(xiàn).lbt:標(biāo)簽備注文獻(xiàn).qpr:查詢文獻(xiàn).mnx:菜單源文獻(xiàn).mnt:菜單的備注文獻(xiàn).mpr:菜單生成文獻(xiàn).prg:程序文獻(xiàn).app:生成的應(yīng)用程序文獻(xiàn).exe:可執(zhí)行文獻(xiàn)*******總結(jié)***********************:一、數(shù)據(jù)管理的發(fā)展1.手工管理2.文獻(xiàn)管理3.數(shù)據(jù)庫(kù)管理4.分布式數(shù)據(jù)庫(kù)5.面向?qū)ο髷?shù)據(jù)庫(kù)二、數(shù)據(jù)庫(kù)管理系統(tǒng)1.數(shù)據(jù)庫(kù)2.數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)3.數(shù)據(jù)庫(kù)管理系統(tǒng)4.數(shù)據(jù)庫(kù)系統(tǒng)DB,DBMS,DBS三、數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)1.數(shù)據(jù)共享,減少了數(shù)據(jù)冗余2.?dāng)?shù)據(jù)獨(dú)立性高3.?dāng)?shù)據(jù)模型4.具有統(tǒng)一的控制管理功能四、數(shù)據(jù)模型1.實(shí)體2.屬性3.實(shí)體集,實(shí)體型4.實(shí)體與實(shí)體之間聯(lián)系一對(duì)一,一對(duì)多,多對(duì)多。5.數(shù)據(jù)模型(分為三種)層次模型,。網(wǎng)狀模型,關(guān)系模型。五、關(guān)系模型1.關(guān)系2.元組3.屬性4.域5.關(guān)鍵字6.外部關(guān)鍵字7.關(guān)系的特點(diǎn)六、關(guān)系運(yùn)算分為兩種:傳統(tǒng)的集合運(yùn)算:并、并、差、除專門的關(guān)系運(yùn)算選擇,對(duì)行操作,for投影,對(duì)列操作,fields聯(lián)接,兩個(gè)表,橫向擴(kuò)展,join和setrelation七、VFP啟動(dòng)與退出退出有4種方法八、VFP窗口的構(gòu)成標(biāo)題欄、菜單欄(動(dòng)態(tài))、工具欄、狀態(tài)欄、命令窗口(ctrl+f2、ctrl+f4)、顯示區(qū)、滾動(dòng)條九、VFP有三種工作方式:菜單方式、命令方式、程序方式十、項(xiàng)目管理器(.pjx)創(chuàng)建、打開、關(guān)閉、6個(gè)選項(xiàng)卡、項(xiàng)目管理器基本操作、命令按鈕、定制項(xiàng)目。第三章數(shù)據(jù)與數(shù)據(jù)運(yùn)算在解決數(shù)據(jù)時(shí),除了需要表中的數(shù)據(jù)外,還經(jīng)常要解決其他數(shù)據(jù),根據(jù)解決數(shù)據(jù)的形式來(lái)劃分,數(shù)據(jù)可以分為四種形式:常量、變量、表達(dá)式、函數(shù)(一)、常量(6種):在程序運(yùn)營(yíng)中其值不發(fā)生變化的量。數(shù)值型常量:用來(lái)表達(dá)一個(gè)數(shù)的大小,由數(shù)字0~9、小數(shù)點(diǎn)和正負(fù)號(hào)組成。例:12、23.56、-6.78注:在內(nèi)存中用8個(gè)字節(jié)表達(dá),表達(dá)很大或很小數(shù)時(shí)用科學(xué)記數(shù)法表達(dá),例:5.678E12表達(dá)5.678×1012,1.6E-12表達(dá)1.6×10-12貨幣型常量用來(lái)表達(dá)貨幣值,其書寫格式與數(shù)值型常量類似,但要加一個(gè)前置的符號(hào)“$”,采用4位小數(shù),多于4位小數(shù)將四舍五入。沒(méi)有科學(xué)記數(shù)法形式,在內(nèi)存中占用8個(gè)字節(jié)例:$2423.5454字符型常量常稱為字符串,表達(dá)方法是用半角單引號(hào)、雙引號(hào)、方括號(hào)作為定界符把字符串?dāng)U起來(lái),定界符必須成對(duì)匹配,假如定界符自身也是字符串的內(nèi)容,則需要用另一種定界符為該字符串定界。注:不包含任何字符的字符串("")叫空串。與包含空格的字符串("")不同。?"計(jì)算","123",[456],['ABC'"123"]執(zhí)行結(jié)果:計(jì)算123456'ABC'"123"??"學(xué)習(xí)",[表達(dá)方法]學(xué)習(xí)表達(dá)方法?----在光標(biāo)的下一行顯示??---在光標(biāo)所在的當(dāng)前行顯示?123??“5667”1235667日期型常量定界符是一對(duì)花括號(hào),花括號(hào)內(nèi)涉及年、月、日三部分,各部分用分隔符分隔。分隔符可以是斜杠(/)連字號(hào)(—)、句點(diǎn)(.)和空格,斜杠是系統(tǒng)默認(rèn)的分隔符。兩種格式1)、傳統(tǒng)的日期格式默認(rèn)格式為美國(guó)日期格式“MM/DD/YY(月/日/年),傳統(tǒng)日期格式中的月、日各為2位數(shù)字,而年份可以是2位數(shù)字,也可以是4位數(shù)字。{10/08/1978}、{10-08-1978}、{100878}注:此格式受命令SETDATETO和SETCENTURYTO設(shè)立的影響。只能在SETSTRICTDATETO0狀態(tài)下使用。2)、嚴(yán)格的日期格式{^YYYY-MM-DD},能表達(dá)一個(gè)確切的日期,不受SETDATE等語(yǔ)句的影響,年月日的順序不能顛倒,不能缺省,日期型用8個(gè)字節(jié)表達(dá),取值范圍{^0001-01-01}~{^9999-12-31},可以在SETSTRICTDATETO命令的任何狀態(tài)下使用。{^2023-11-13}3)影響日期格式的設(shè)立命令(1)命令格式:SETMARKTO[日期分隔符]功能:用于設(shè)立日期型數(shù)據(jù)的分隔符,若省略“日期分隔符“表達(dá)用默認(rèn)的斜杠分隔符。Setmarkto“”Setdate“mdy”?{^2023-10-20}10/20/2023命令格式:SETDATE[TO(shè)]AMERICAN|ANSI|YM(fèi)D…功能:設(shè)立日期的顯示格式Setmarkto?{^2023-10-20}(3)設(shè)立日期是否顯示4位年份命令格式:SETCENTURYON/OFF[TO世紀(jì)值][ROLLOVER[年份參照值]]功能:用于設(shè)立顯示日期型數(shù)據(jù)時(shí)是否顯示世紀(jì)。TO(shè)選項(xiàng):擬定用2位數(shù)字表達(dá)年份所處的世紀(jì)。ROLLOVER:假如該日期的2位數(shù)字年份大于等于[年份參照值],則它們所處的世紀(jì)即為[世紀(jì)值],否則為[世紀(jì)值]+1Setcenton?{10/20/98}10/20/1998Setcentto19roll60?{10/20/98},{10/20/50},{10/20/60}10/20/199810/20/205010/20/1960(4)命令格式:SETSTRICTDATETO[0|1|2]功能:用于設(shè)立是否對(duì)日期格式進(jìn)行檢查。0:不進(jìn)行嚴(yán)格的日期格式檢查1:進(jìn)行嚴(yán)格的日期檢查,是系統(tǒng)默認(rèn)的設(shè)立2:進(jìn)行嚴(yán)格的日期檢查,并且對(duì)CTO(shè)D()和CTO(shè)T()函數(shù)的格式也有效日期時(shí)間型常量涉及日期和時(shí)間兩部分內(nèi)容{日期,時(shí)間}<日期>部分與日期型常量相似<時(shí)間>格式為[HH[:MM[:SS]][A|P]]HH-小時(shí)MM-分SS-秒,默認(rèn)值為12:00:00,A/AM-上午,P/PM-下午,時(shí)間的的取值范圍是:00:00:00AM~11:59:59PM?{^2023-03-22,11:30P},{^1999-01-01,},{^2023-10-10,3}邏輯型常量只有邏輯真和邏輯假兩個(gè)值,邏輯真有.T.,.t.,.Y.,.y.邏輯假有.F.,.f.,.N.,.n.(二)變量:在程序運(yùn)營(yíng)過(guò)程中其值可以發(fā)生變化的量每個(gè)變量都有一個(gè)名字,以字母、漢字、下劃線開頭,其余字符任意。(DF3,副12、_SFGF)1、變量的數(shù)據(jù)類型:字符型(C)、數(shù)值型(N)、貨幣型(Y)、邏型(L)、日期型(D)、日期時(shí)間型(T)2、變量的種類(字段變量、內(nèi)存變量)字段變量:表中的每個(gè)字段對(duì)不同記錄相應(yīng)不同的的值,因此字段名是變量,只有表打開時(shí),才干使用。內(nèi)存變量:(簡(jiǎn)樸內(nèi)存變量、數(shù)組變量)簡(jiǎn)樸內(nèi)存變量:每一個(gè)變量都有一個(gè)名字(以字母,漢字,下劃線開頭)假如內(nèi)存變量與字段變量同名時(shí),訪問(wèn)內(nèi)存變量時(shí),必須在變量名前加前綴M.(或M->),否則系統(tǒng)訪問(wèn)同名的字段變量.1、內(nèi)存變量的建立(不必事先定義,可直接建立)命令格式1)<內(nèi)存變量名>=<表達(dá)式>一次只能給一個(gè)變量賦值。A=12B=”a12”2)STORE〈表達(dá)式〉TO(shè)〈內(nèi)存變量名表〉一次可以給多個(gè)變量賦同一個(gè)值。STORE23TOA,B,CSTORE.T.TOAB,BC注:內(nèi)存變量類型是由變量值的類型擬定的。2、數(shù)組變量是內(nèi)存中連續(xù)的一片存儲(chǔ)區(qū)域,它由一系列元素組成,每個(gè)數(shù)組元素可以通過(guò)下標(biāo)來(lái)訪問(wèn),每個(gè)數(shù)組元素相稱一個(gè)簡(jiǎn)樸變量,可以給各個(gè)元素賦值,且各個(gè)元素的數(shù)據(jù)類型可以不同。創(chuàng)建數(shù)組(使用前必須先定義)DIMENSION<數(shù)組名>(下標(biāo)1[,下標(biāo)2][,。。。。])DECLARE<數(shù)組名>(下標(biāo)1[,下標(biāo)2][,。。。。])創(chuàng)建后系統(tǒng)自動(dòng)為每個(gè)數(shù)組元素賦以邏輯假.F.例:一維數(shù)組X具有5個(gè)元素:X(1)、X(2),X(3),X(4),X(5)二維數(shù)組Y具有6個(gè)元素y(2,3):Y(1,1)、Y(1,2),Y(1,3)、Y(2,1),Y(2,2)、Y(2,3)使用數(shù)組應(yīng)注意的問(wèn)題:1)、在一切使用簡(jiǎn)樸變量的地方,均可以使用數(shù)組元素2)、在賦值和輸入語(yǔ)句中使用數(shù)組名時(shí),表達(dá)將同一值賦給所有數(shù)組元素。3)、在同一環(huán)境下,數(shù)組名不能與簡(jiǎn)樸變量同名。4)、在賦值語(yǔ)句中的表達(dá)式位置不能出現(xiàn)數(shù)組名5)、可以用一維數(shù)組的形式訪問(wèn)二維數(shù)組。例如:數(shù)組Y中各元素用一維數(shù)組形式可依次表達(dá)為:Y(1)、Y(2)、Y(3)、Y(4)、Y(5)、Y(6),其中Y(4)與Y(2,1)是同一變量。3、內(nèi)存變量常用命令1)、內(nèi)存變量的賦值:格式1STO(shè)RE〈表達(dá)式〉TO(shè)〈變量名表〉格式2〈內(nèi)存變量名〉=〈表達(dá)式〉2)、表達(dá)式值的顯示?[〈表達(dá)式表〉]:在下一行顯示,省略表達(dá)式起換行作用??[〈表達(dá)式表〉]:在當(dāng)前行輸出3)內(nèi)存變量的顯示格式1:LISTMEMORY[LIKE〈通配符〉][TOPRINTER][TOFLIE〈文獻(xiàn)名〉]格式2:DISPLAYMEMORY[LIKE〈通配符〉][TOPRINTER][TOFLIE〈文獻(xiàn)名〉]功能:顯示內(nèi)存變量的當(dāng)前信息,涉及變量名、作用域、類型、取值。LIKE:只顯示與通配符相匹配的內(nèi)存變量*-任意多個(gè)字符。?-任意一個(gè)字符.TOPRINTER:將顯示結(jié)果送往打印機(jī)TOFILE<文獻(xiàn)名>將顯示結(jié)果保存至文本文獻(xiàn)中,文本文獻(xiàn)的擴(kuò)展名為.TXTLISTMEMORY:連續(xù)顯示DISPLAYM(fèi)EMORY分屏顯示例:LISTMEMORY:連續(xù)顯示所有的內(nèi)存變量DISPLAYMEMORY:分屏顯示所有的內(nèi)存變量4)、內(nèi)存變量的清除格式1:CLEARMEMORY清除所有的內(nèi)存變量。格式2:RELEASE<內(nèi)存變量名表>清除指定的內(nèi)存變量。Releab,cd格式3:RELEASEALL[EXTENDED]功能與格式1相同,在程序中必須加EXTENDED才干將公共內(nèi)存變量刪除格式4:RELEASEALL[LIKE<通配符>|EXCEPT<通配符>]LIKE:清除與通配符相匹配的內(nèi)存變量EXCEPT:清除與通配符不相匹配的內(nèi)存變量例:RELEASEALLLIKEA*只清除以A開頭的所有內(nèi)存變量RELEASEALLEXCEPTA?將變量名為兩個(gè)字符,且以A開頭之外的其他內(nèi)存變量清除4、表中的數(shù)據(jù)與數(shù)組數(shù)據(jù)之間的互換1)、將表中一條記錄復(fù)制到數(shù)組中格式1:SCATTER[FIELDS<字段名表>][MEMO]TO<數(shù)組名>[BALNK]格式2:SCATTER[FIELDSLIKE<通配符>][MEMO]TO<數(shù)組名>[BALNK](1)、格式1功能:將當(dāng)前記錄指定字段的第一個(gè)字段內(nèi)容開始,依次復(fù)制到數(shù)組名中的第一個(gè)數(shù)組元素開始的數(shù)組中(2)、假如不使用FIELDS短語(yǔ),則復(fù)制除備注型M和通用型G之外的字段(3)、數(shù)組可以不事先創(chuàng)建,假如數(shù)組元素個(gè)數(shù)少于字段個(gè)數(shù),系統(tǒng)自動(dòng)建立其余數(shù)組元素。(4)、DEMO:復(fù)制備注字段格式2的功能:(5)、FIELDSLIKE<通配符>:字段滿足〈通配符〉的復(fù)制。(6)、FIELDSEXCEPT<通配符>:字段滿足<通配符>不復(fù)制。2)、將數(shù)組復(fù)制到當(dāng)前記錄中功能:從第一個(gè)數(shù)組元素開始,依次向字段名表指定的字段寫數(shù)據(jù),如省略FIELDS選項(xiàng),則依次向各個(gè)字段復(fù)制,若數(shù)組元素多余字段個(gè)數(shù),多余部分被忽略,格式1:GATHERFROM<數(shù)組名>[FIELDS<字段名表>][MEMO]格式2:GATHERFROM<數(shù)組名>[FIELDSLIKE<通配符>|FIELDSEXCEPT<通配符][MEMO]MEMO:復(fù)制備注字段FIELDSLIKE<通配符>:字段滿足〈通配符〉復(fù)制FIELDSEXCEPT<通配符>:字段滿足<通配符>不復(fù)制(三)、表達(dá)式是由常量、變量、和函數(shù)通過(guò)特定的運(yùn)算符連接起來(lái)的式子。1、表達(dá)式的形式單一的運(yùn)算對(duì)象:(如常量、變量、或函數(shù))多個(gè)的運(yùn)算對(duì)象:由運(yùn)算符將運(yùn)算對(duì)象連接起來(lái)形成的式子。表達(dá)式的類型:任何表達(dá)式都有一個(gè)值,根據(jù)表達(dá)式值的類型,可分為四種類型。1)、數(shù)值表達(dá)式:由算術(shù)運(yùn)算符將數(shù)值型數(shù)據(jù)連接起來(lái)形成,其運(yùn)算結(jié)果仍然是數(shù)值型數(shù)據(jù)。算術(shù)運(yùn)算符的優(yōu)先級(jí)優(yōu)先級(jí)運(yùn)算符說(shuō)明1()形成表達(dá)式內(nèi)的子表達(dá)式2**或^乘方運(yùn)算3*、/、%乘、除運(yùn)算、求余運(yùn)算4+、—加、減運(yùn)算例:求×18.45和的值?(1/60-3/56)*18.45,(1+2^(1+2))/(2+2)求余運(yùn)算求余運(yùn)算%和取余函數(shù)MOD()的作用相同,余數(shù)的正負(fù)號(hào)與除數(shù)一致。(1)若被除數(shù)與除數(shù)同號(hào):那么結(jié)果值為:|表達(dá)式1|/|表達(dá)式2|的余數(shù)+表達(dá)式2的符號(hào)。(2)若被除數(shù)與除數(shù)異號(hào):|表達(dá)式2|-(|表達(dá)式1|/|表達(dá)式2|的余數(shù))+表達(dá)式2的符號(hào)。例:?15%4--3,-15%-4---3?10%-3---2,-10%3-2,X=10Y=-3?X%Y-22)、字符表達(dá)式:由字符串運(yùn)算符將字符型數(shù)據(jù)連接起來(lái)形成,其運(yùn)算結(jié)果仍然是字符型數(shù)據(jù)。+:前后兩個(gè)字符串首尾連接形成一個(gè)新的字符串。-:連接前后兩個(gè)字符串,并將前字符串的尾部空格移到新成字符串的尾部。例:A=“ABCD”B=“EFGH”?A+B->“ABCDEFGH”,A-B->“ABCDEFGH”3)、日期時(shí)間表達(dá)式日期時(shí)間表達(dá)式中可以使用運(yùn)算符有+和-兩個(gè),其格式有一定的限制,不能任意組合。(不能用+將兩個(gè)<日期>或<日期時(shí)間>連接起來(lái).)合法的日期時(shí)間表達(dá)式如下:格式結(jié)果及類型<日期>+<天數(shù)>或<天數(shù)>+<日期>日期型,指定日期若干天后的日期<日期>-<天數(shù)>日期型,指定日期若干天前的日期<日期>-<日期>數(shù)值型,兩個(gè)指定日期相差的天數(shù)<日期時(shí)間>+<秒數(shù)>或<秒數(shù)>+<日期時(shí)間>日期時(shí)間型,指定日期時(shí)間若干秒后的日期時(shí)間<日期時(shí)間>-<秒數(shù)>日期時(shí)間型,指定日期時(shí)間若干秒前的日期時(shí)間<日期時(shí)間>-<日期時(shí)間>數(shù)值型、兩個(gè)日期時(shí)間相差的秒數(shù)4)關(guān)系表達(dá)式關(guān)系表達(dá)式通常也稱為簡(jiǎn)樸邏輯表達(dá)式,它由關(guān)系運(yùn)算符將兩個(gè)運(yùn)算對(duì)象連接起來(lái)形成。即:<表達(dá)式1><關(guān)系運(yùn)算符><表達(dá)式2>,運(yùn)算結(jié)果為邏輯型數(shù)據(jù)。關(guān)系運(yùn)算符:運(yùn)算符說(shuō)明運(yùn)算符說(shuō)明<小于<=小于等于>大于>=大于等于=等于==字符串精確比較<>、#、!=不等于$子串包含測(cè)試運(yùn)算符==和$只能用于字符型數(shù)據(jù),其他運(yùn)算符號(hào)合用于任何類型的數(shù)據(jù),但前后兩個(gè)運(yùn)算對(duì)象的數(shù)據(jù)類型要一致.(1)、數(shù)值型、貨幣型數(shù)據(jù)比較按數(shù)值大小比較,涉及負(fù)號(hào)例:?0>-1->.T.?$150<=$160->.T.(2)、日期型、日期時(shí)間型數(shù)據(jù)比較越早的日期或日期時(shí)間越小,越晚的日期或日期時(shí)間越大例:?{^2023-01-01}>{^2023-12-31}->.T.?{^2023-01-01}<={^2023-12-31}->.F.(3)、邏輯型數(shù)據(jù)比較.T.大于.F.(4)、子串包含測(cè)試格式:<字符串1>$<字符串2>若<字符串1>是<字符串2>的子串,則結(jié)果為.T.,否則為.F.(字母區(qū)分大小寫)ASCII碼例:?"abc"$"abcdeac"->.T.?"abc"$"Dabcdeac"->.T.?"abc"$"ddAbcdeac"->.F.設(shè)立字符的排序順序字符串比較時(shí),系統(tǒng)對(duì)兩個(gè)字符串自左向右逐個(gè)比較,一旦發(fā)現(xiàn)兩個(gè)相應(yīng)字符不同,就根據(jù)這兩個(gè)字符的排序序列決定兩個(gè)字符串的大小.1)、排序設(shè)立:人機(jī)會(huì)話方式下設(shè)立“工具”--->”數(shù)據(jù)”->”排序序列”命令方式設(shè)立SETCOLLATETO“<排序順序名>”(1)、Machine(機(jī)器)順序:按照機(jī)內(nèi)碼排序,西文字符是按照ASCII碼值排列:空格在最前面,大寫字母小于小寫字母,漢字的機(jī)內(nèi)碼與漢字國(guó)標(biāo)碼一致,常用一級(jí)漢字按拼音順序決定大小。例:SETCOLLATETO“MACHINE”?“a”<”abc”,”a”<”A”,”A”>”B”.T..F..F.?“一”<”二”,”李明”<”王”,”王老師”<”王”,”您好”>”你好”.F..T..F..T.(2)PINYIN(拼音)順序按拼音順序排列,對(duì)于西文字符,空格在最前面,小寫字母在前面,大寫字母在后面.例:SETCOLLATETO“PINYIN”?“a”<”abc”,”a”<”A”,”a”<”A”.T..T..F.?“一”<”二”,”李”<”王”,”王老師”<”王”,”您好”>”你好”.F..T..F..T.(3)、STROKE(筆畫)順序無(wú)論中文、西文,按照書寫筆畫多少排序。例:SETCOLLATETO“STROKE”?“a”<”abc”,”a”<”A”,”a”<”A”.T..T..F.?“一”<”二”,”李”<”王”,”王老師”<”王”,”您好”>”你好”.T..F..F..T.?"c">"C".F.字符串精確比較與EXACT設(shè)立==:只有兩個(gè)字符串完全相同(涉及空格以及各字符的位置)時(shí),運(yùn)算結(jié)果才會(huì)是邏輯真.T.,否則為.F.,與EXACT命令設(shè)立無(wú)關(guān).=:運(yùn)算結(jié)果與SETEXACTO(shè)N|OFF設(shè)立有關(guān)。系統(tǒng)默認(rèn)為OFF狀態(tài),當(dāng)處在OFF狀態(tài)時(shí),只要右邊的字符串與左邊字符串的前面部分內(nèi)容相匹配,則結(jié)果為邏輯真.T.否則為邏輯.F.當(dāng)處在ON狀態(tài)時(shí),先在較短字符的尾部加上若干個(gè)空格使兩個(gè)字符串的長(zhǎng)度相等,然后再進(jìn)行比較SETEXACT對(duì)字符串比較的影響比較=(EXACTOFF)=(EXACTO(shè)N)==(EXACTON或OFF)“abc”=”abc”.T..T..T.“ab”=”abc”.F..F..F.“abc”=”ab”.T..F..F.“abc”=”ab“.F..F..F.“ab”=”ab”.F..T..F.“ab“=”ab”.T..T..F.“”=”ab”.F..F..F.“ab”=””.T..F..F.TRIM(“ab”)=”ab”.T..T..T.“ab”=TRIM(“ab”).T..T..T.例:SETEXACTO(shè)FFSTORE“計(jì)算機(jī)”TOS1STO(shè)RE“計(jì)算機(jī)“TOS2STORE“計(jì)算機(jī)世界”TOS3?S1=S3,S3=S1,S1=S2,S2=S1,S2==S1.F..T..F..T..F.SETEXACTON?S1=S3,S3=S1,S1=S2,S2=S1,S2==S1.F..F..T..T..F.?S2>S1.F.4)、邏輯表達(dá)式是由邏輯運(yùn)算符將邏輯數(shù)據(jù)連接起來(lái)而形成,其運(yùn)算結(jié)果仍是邏輯型數(shù)據(jù)(1)、三個(gè)運(yùn)算符:AND(邏輯與)、OR(邏輯或)、NOT(邏輯非)運(yùn)算級(jí)別為NOT-ANDOR邏輯運(yùn)算規(guī)則:設(shè)A,B分別為兩個(gè)邏輯表達(dá)式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.例:A=30B=40C=50?10<20AND10<30,10<20AND10>30,10>20AND10<30.T..F..F.?10<20OR10<30,10<20OR10>30,10>20OR10<30,10>20OR10>30.T..T..T..f.?NOT10<20,NOT10>20.F..T.(2)、運(yùn)算符優(yōu)先級(jí)算術(shù)運(yùn)算符---字符串運(yùn)算符和日期時(shí)間運(yùn)算符---關(guān)系運(yùn)算符-邏輯運(yùn)算符例:setexacoff?4^2/2^2>2AND“ABC”>”abc”?12>2AND“人”-“民”>”人”?((10%3=1)AND(15%2=0))OR"電腦"!='計(jì)算機(jī)'(四)、函數(shù)函數(shù)是用程序來(lái)實(shí)現(xiàn)的一種數(shù)據(jù)運(yùn)算,每個(gè)函數(shù)都有特定的功能,它往往需要若干個(gè)自變量,即運(yùn)算對(duì)象。但只能有一個(gè)結(jié)果,稱為函數(shù)值或返回值,函數(shù)可以用在表達(dá)式中,形式為:函數(shù)名(表達(dá)式)函數(shù)的類型:(5種類型)數(shù)值函數(shù)1、絕對(duì)值和符號(hào)函數(shù)(1)ABS(<數(shù)值表達(dá)式>)功能:返回指定的數(shù)值表達(dá)式的絕對(duì)值。例:?ABS(5)->,ABS(4-5)->1(2)SIGN(〈數(shù)值表達(dá)式〉)功能:返回指定數(shù)值表達(dá)的符號(hào)。結(jié)果為正->1結(jié)果為負(fù)->-1結(jié)果為零->0例:?SIGN(2)->1,SIGN(-2)->-1,SIGN(0)->02、求平方根格式:SQRT(<數(shù)值表達(dá)式>)功能:返回指定數(shù)值表達(dá)的平方根。自變量表達(dá)式的值不能為負(fù)。例:?SQRT(34),SQRT(81)3、圓周率函數(shù)格式:PI()功能:返回圓周率∏。該函數(shù)沒(méi)有自變量。?PI()4、求整數(shù)函數(shù):(1)INT(<數(shù)值表達(dá)式>)功能:返回指定數(shù)值表達(dá)式的整數(shù)部分.例:?INT(12.56)->12,INT(-13.8)->-13(2)CEILING(<數(shù)值表達(dá)式>)功能:返回大于或等于指定數(shù)據(jù)表達(dá)式的最小整數(shù)。例:?CEILING(34.6)->35,CEILING(-45.3)45(3)FLOOR(<數(shù)值表達(dá)>)功能:返回小于等于指定數(shù)據(jù)表達(dá)式的最大整數(shù)。?FLOOR(34.6)->34,FLOOR(-45.3)->-465、四舍五入函數(shù)ROUND(<數(shù)值表達(dá)1>,<數(shù)值表達(dá)2>)功能:返回指定表達(dá)式在指定位置四舍五入后的結(jié)果。說(shuō)明:<數(shù)值表達(dá)2>指明四舍五入的位置。(1)<數(shù)值表達(dá)2>大于等于0,表達(dá)的是要保存的小數(shù)位數(shù)。(2)<數(shù)值表達(dá)2>小于0,表達(dá)的是整數(shù)部分舍入位數(shù)。例:?ROUND(345.9856,2),ROUND(345.9856,0),ROUND(345.45,-1),ROUND(345.56,-3)求余數(shù)函數(shù)格式:MOD(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)功能:返回兩個(gè)數(shù)值相除后的余數(shù)。?mod(-10,3)->2求最大值和最小值函數(shù)(1)MAX(<表達(dá)式1>,<表達(dá)式2>[,<表達(dá)3>])功能:返回最大值。?MAX(“3”,”21”,”12”)->“3”?MAX(3,21)->21(2)MIN(<表達(dá)式1>,<表達(dá)式2>[,<表達(dá)式3>])功能:返回最小值。注:表達(dá)式的類型可以是數(shù)值型、字符型、貨幣型、日期型或日期時(shí)間型。但所有表達(dá)式的類型必須相同。例:?MAX('2','12','05'),MIN('汽車','飛機(jī)','輪船')字符函數(shù)(自變量一般是字符型數(shù)據(jù))1、求字符串長(zhǎng)度函數(shù)格式:LEN(<字符表達(dá)式>)功能:返回指定字符表達(dá)式值的字符長(zhǎng)度,即所包含的字符個(gè)數(shù)。函數(shù)值類型為數(shù)值型。?LEN(“VFP程序設(shè)計(jì)”)->122、大小寫轉(zhuǎn)換函數(shù)(1)LOWER(<字符表達(dá)式>)功能:將指定表達(dá)式中的大寫字母轉(zhuǎn)換為小寫字母。例:?LOWER(‘34ABCDbbdd’)(2)UPPER(<字符表達(dá)式>)功能:將指定表達(dá)式中的小寫字母轉(zhuǎn)換為大寫字母。例:?UPPER(‘34ABCDbbdd’)ACCEPT“請(qǐng)輸入一個(gè)字母“toAIf_UPPER(A)___=”Y”3、空格字符串生成函數(shù)格式:SAPCE(<數(shù)值表達(dá)式>)功能:返回指定數(shù)目的空格組成的字符串。?SPACE(10)+’ABC’4、刪除前后空格函數(shù)(1)TRIM(<字符表達(dá)式>)或RTRIM(<字符表達(dá)式>)功能:返回指定字符表達(dá)式去掉尾部空格后形成的字符串。例:?TRIM(“AABB”)+’11’(2)LTRIM(<字符表達(dá)式>)功能:返回指定字符表達(dá)式去掉前導(dǎo)空格后形成的字符串。例:?”11”+LTRIM(“AABB”)+’22’(3)ALLTRIM(<字符表達(dá)式>)功能:返回指定字符表達(dá)式去掉前導(dǎo)和尾部空格后形成的字符串。例:?”11”+ALLTRIM(“AABB”)+’22’5、求子串函數(shù)(1)LEFT(<字符表達(dá)式>,<長(zhǎng)度>)功能:從字符表達(dá)式左邊返回一個(gè)指定長(zhǎng)度的子串。?LEFT('ABCDE',3),LEFT('中國(guó)',2)(2)RIGHT(<字符表達(dá)式>,<長(zhǎng)度>)功能:從字符表達(dá)式右邊返回一個(gè)指定長(zhǎng)度的子串。?RIGHT('ABCDE',3),RIGHT('中國(guó)',2)(3)SUBSTR(<字符表達(dá)式>,<起始位置>[,<長(zhǎng)度>])功能:從字符表達(dá)式指定位置返回一個(gè)指定長(zhǎng)度的子串。若缺省<長(zhǎng)度>,則函數(shù)從指定位置一直取到最后一個(gè)字符。?SUBSTR('ABCDE',3),SUBSTR('中國(guó)',3,2)?SUBSTR('ABCDE',3,10)6、計(jì)算子串出現(xiàn)次數(shù)函數(shù)OCCURS(<字符表達(dá)式1>,<字符表達(dá)式2>)功能:返回第一個(gè)字符表達(dá)式1在第二個(gè)字符表達(dá)式2中出現(xiàn)的次數(shù),函數(shù)值為數(shù)值型。若第一個(gè)字符串不是第二個(gè)字符串的子串,函數(shù)值為0。例:?OCCURS(‘A’,‘ABCDEA’)->2?OCCURS(‘G可有可無(wú)’,‘ABCDEA’)->07、求子串位置函數(shù)AT(<字符表達(dá)式1>,<字符表達(dá)式2>[,<數(shù)值表達(dá)式>])或ATC(<字符表達(dá)式1>,<字符表達(dá)式2>[,<數(shù)值表達(dá)式>])功能:假如<字符表達(dá)式1>是<字符表達(dá)式2>的子串,則返回<字符表達(dá)式1>的首字符在<字符表達(dá)式2>的位置,若不是子串,則返回0。說(shuō)明:ATC()與AT()功能相似,不區(qū)分大小寫。(2)<數(shù)值表達(dá)式>用于表達(dá)在<字符表達(dá)式2>中搜索<字符表達(dá)式1>第幾次出現(xiàn),省略時(shí),默認(rèn)值是1。?AT(“AB”,”ABCDABCD”)->1?AT(“AB”,”ABCDABCD”,2)->5?ATC(“ab”,”ABCDABCD”)->1?AT(“ab”,”ABCDABCD”)->08、子串替換函數(shù)格式:STUFF(<字符表達(dá)式1>,<起始位置>,<長(zhǎng)度>,<字符表達(dá)式2>)功能:用<字符表達(dá)式2>值替換<字符表達(dá)式1>中由<起始位置>和<長(zhǎng)度>指定的一個(gè)子串。注:(1)假如<長(zhǎng)度>是0,<字符表達(dá)式2>則插在由<起始位置>指定字符前面。?stuff(“112233”,3,0,”aa”)->11aa2233(2)假如<字符表達(dá)式2>是空串,那么<字符表達(dá)式1>中由<起始位置>和<長(zhǎng)度>指定的子串被刪除。?stuff(“112233”,3,2,””)->1133?stuff(“112233”,3,2,”aa”)->11aa339、字符替換函數(shù)CHRTRAN(<字符表達(dá)式1>,<字符表達(dá)式2>,<字符表達(dá)式3>)功能:當(dāng)?shù)谝粋€(gè)字符串中的一個(gè)或多個(gè)字符與第二個(gè)字符串中的某個(gè)字符相匹配時(shí),就用第三個(gè)字符串中的相應(yīng)字符(相同位置)替換這些字符。?crhtran(“1122335”,”23”,”ab”)->11aabb5說(shuō)明:(1)假如第三個(gè)字符串包含字符個(gè)數(shù)少于第二個(gè)字符串包含的字符個(gè)數(shù),因而沒(méi)有相應(yīng)字符,那么第一個(gè)字符串中的相匹配的各字符被刪除。?crhtran(“1122335”,”23”,”a”)->11aa5假如第三個(gè)字符串包含字符個(gè)數(shù)多于第二個(gè)字符串包含的字符個(gè)數(shù),多余字符被忽略。例:?CHRTRAN('','2345','5678')?CHRTRAN('','26','5566')?CHRTRAN('','2346','55')10、字符串匹配函數(shù)格式:LIKE(<字符表達(dá)式1>,<字符表達(dá)式2>)功能:比較兩個(gè)字符串相應(yīng)位置上的字符,若所有相應(yīng)字符都相匹配,則函數(shù)返回邏輯真(.T.),否則返回邏輯假(.F.)注:<字符表達(dá)式1>中可以包含通配符*和?例:?LIKE("AB","AB")->.T.?LIKE("ABC","AB")->.F.?LIKE("AB","ABC")->.F.?LIKE("AB?","ABC")->.T.?LIKE("ABC","AB?")->.F.?LIKE("AB*","ABC")->.T.日期和時(shí)間函數(shù)1、系統(tǒng)日期和時(shí)間函數(shù)(1)DATE()功能:返回系統(tǒng)當(dāng)前日期,函數(shù)值為日期型(D)(2)TIME()功能:返回系統(tǒng)當(dāng)前時(shí)間,函數(shù)值為字符型(C)(3)DATETIME()功能:返回系統(tǒng)當(dāng)前日期時(shí)間,函數(shù)值為日期時(shí)間(T)。2、求年份、月份和天數(shù)函數(shù)(1)YEAR(<日期型表達(dá)式>|<日期時(shí)間表達(dá)式>)功能:返回表達(dá)式中的年份。YEAR({^1012/02/01})=2023YEAR({^1012/02/01})=”2023”(錯(cuò)誤)(2)MONTH(<日期型表達(dá)式>|<日期時(shí)間表達(dá)式>)功能:返回表達(dá)式中的月份。(3)DAY(<日期型表達(dá)式>|<日期時(shí)間表達(dá)式>)功能:返回表達(dá)式中指定月份里的哪一天。注:返回值都為數(shù)值型(N)3、時(shí)、分和秒函數(shù)(1)HOUR(<日期時(shí)間表達(dá)式>)功能:返回表達(dá)式中的小時(shí)部分(24小時(shí)制)。(2)MINUTE(<日期時(shí)間表達(dá)式>)功能:返回表達(dá)式中的分鐘部分。(3)SEC(<日期時(shí)間表達(dá)式>)功能:返回表達(dá)式中的秒數(shù)部分。注:返回值都為數(shù)值型(N)數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1、數(shù)值轉(zhuǎn)換成字符函數(shù)格式:STR(<數(shù)值表達(dá)式>[,<長(zhǎng)度>[,<小數(shù)位數(shù)>]])功能:<數(shù)值表達(dá)式>的值轉(zhuǎn)換成字符符串,轉(zhuǎn)換時(shí)根據(jù)需要自動(dòng)進(jìn)行四舍五入。說(shuō)明:(1)省略<長(zhǎng)度>和<小數(shù)位數(shù)>,小數(shù)位數(shù)默認(rèn)為O,長(zhǎng)度默認(rèn)值為10。(2)返回字符串的抱負(fù)長(zhǎng)度(設(shè)為L(zhǎng))為:<整數(shù)部分位數(shù)>+<1位小數(shù)點(diǎn)>+小數(shù)位數(shù)(3)假如<長(zhǎng)度>大于L,則字符串加前導(dǎo)空格補(bǔ)足規(guī)定的<長(zhǎng)度>。(4)假如<長(zhǎng)度>值小于等于L,但大于整數(shù)部分(涉及負(fù)號(hào))位數(shù),則優(yōu)先滿足整數(shù)部分而自動(dòng)調(diào)整小數(shù)部分。(5)假如<長(zhǎng)度>值小于整數(shù)部分位數(shù),則返回一串*號(hào)例:?STR(123456.78)?STR(123456.78,7)?STR(-123456.78,7)?STR(123456.78,5)2、字符轉(zhuǎn)換成數(shù)值格式:VAL(<字符型表達(dá)>)功能:將由數(shù)字符號(hào)(涉及正負(fù)號(hào)、小數(shù)點(diǎn))組成的字符型數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)值型數(shù)據(jù)。說(shuō)明:(1)若字符串內(nèi)出現(xiàn)非數(shù)字字符,那么只轉(zhuǎn)換前面部分(2)若字符串的首字符不是數(shù)字符號(hào),則返回?cái)?shù)值零,但忽略前導(dǎo)空格。例:?VAL('23.456'),VAL('-23.65')?VAL('34A.56'),VAL('B34.65')3、字符轉(zhuǎn)換成日期或日期時(shí)間(1)CTOD(<字符表達(dá)式>)功能:將<字符表達(dá)式>轉(zhuǎn)換成日期型數(shù)據(jù)SETDATETO“AMER”例:?CTOD(“03/20/99”)(2)CTOT<字符表達(dá)式>)功能:將<字符表達(dá)式>轉(zhuǎn)換成日期時(shí)間型數(shù)據(jù).例:SETDATETO“AMER”?CTOT("03/20/9915")4、日期或日期時(shí)間轉(zhuǎn)換成字符串(1)DTOC(<日期表達(dá)式>|<日期時(shí)間表達(dá)>[,1])功能:將<日期表達(dá)式>|<日期時(shí)間表達(dá)>轉(zhuǎn)換成字符串。注:1)字符串中的日期部分與SETDATETO和SETCENTURY命令有關(guān)。例:SETDATETO(shè)"AMER"SETCENTURYON?DTOC({03/20/99},1)SETCENTURYOFF?DTOC({03/20/99})2)[,1]:表達(dá)字符串的格式為YYYYMMDD格式,共8?jìng)€(gè)字符。例:?DTOC({03/20/99},1)(2)TTOC(<日期時(shí)間表達(dá)>[,1])功能:將<日期時(shí)間表達(dá)>轉(zhuǎn)換成字符串。注:(1)字符串中的日期部分與SETDATETO和SETCENTURY命令有關(guān)。(2)字符串中的時(shí)間部分與SETHOURSTO12|24命令有關(guān)。SETDATETO"AMER"SETCENTURYONSETHOURSTO12?TTOC({03/20/99})?TTO(shè)C({03/20/99,13})SETCENTURYOFFSETHOURSTO(shè)24?TTOC({03/20/99})?TTOC({03/20/99,13})2)[,1]:表達(dá)字符串的格式為YYYYMMDDHHMMSS格式,共14個(gè)字符。例:?TTOC({03/20/99,12:10},1)5、宏替換函數(shù)格式:&<字符串變量>[.]功能:替換出字符型變量的內(nèi)容,即&的值是變量中的字符串例1:AA='123'?&AA?&AA+10例2:BB=”ABCD”?&BB(為什么犯錯(cuò)?例3:AB=”23”CC=”A”?&CC.B(值為多少?)相稱于?ab測(cè)試函數(shù)1、值域測(cè)試函數(shù)格式:BETWEEN(<表達(dá)式T>,<表達(dá)式L>,<表達(dá)式H>)功能:判斷<表達(dá)式T>是否介于<表達(dá)式L>,<表達(dá)式H>之間,若是則返回.T.,否則返回.F.例:?BETWEEN(12,10,20),BETWEEN(12,13,20)注:若<表達(dá)式L>或<表達(dá)式H>有一個(gè)變量是NULL值,則函數(shù)返回NULL值。?BETWEEN(12,NULL,20),BETWEEN(12,9,.NULL.)2、空值(NULL值)測(cè)試函數(shù)格式isnull(表達(dá)式)功能:測(cè)試一個(gè)表達(dá)式的結(jié)果是否為null值。例:X=.NULL.?ISNULL(X)3、“空”值測(cè)試函數(shù)格式:empty(表達(dá)式)功能:測(cè)試表達(dá)的結(jié)果的是否為“空”值,若是空值,則返回.T.,否則返回.F.注:不同的數(shù)據(jù)類型,”空”值有不同的規(guī)定數(shù)據(jù)類型“空”值數(shù)據(jù)類型“空”值數(shù)值型、貨幣型、整型、雙精度型、浮點(diǎn)型0字符型空串、空格制表符、回車(CHR(13))、換行(CHR(10))邏輯型.F.日期型{//}或CTOD(””)日期時(shí)間型?empty({//,})或CTOT(””)備注型備注型字段無(wú)內(nèi)容4、數(shù)據(jù)類型測(cè)試函數(shù)格式:VARTYPE(<表達(dá)式>[,邏輯表達(dá)式>])功能:返回<表達(dá)式>的數(shù)據(jù)類型值。字符型。只能是C、N、D、L、Y、T注意假如是沒(méi)有類型的返回一個(gè)U返回的數(shù)據(jù)類型返回的字母數(shù)據(jù)類型返回的字母數(shù)據(jù)類型C字符型G通用型N數(shù)值、整型、浮點(diǎn)型、雙精度型D日期型Y貨幣型T日期時(shí)間型L邏輯型XNULL值O對(duì)象型U未定義說(shuō)明:(1)若〈表達(dá)式〉是一個(gè)數(shù)組,則返回第一個(gè)數(shù)組元素的數(shù)據(jù)類型。(2)若〈表達(dá)式〉的運(yùn)算結(jié)果為NULL值,則根據(jù)<邏輯表達(dá)式>來(lái)決定返回〈表達(dá)式>的類型1)若<邏輯表達(dá)式>為.T.,就返回<表達(dá)式〉的原值.2)若<邏輯表達(dá)式>為.F.,就返回X,表白<表達(dá)式〉的值為NULL值。例:A=34A=.NULL.?VARTYPE(A)?VARTYPE(A,.T.)5、條件測(cè)試函數(shù)格式:IIF(<邏輯表達(dá)式>,<表達(dá)式1>,<表達(dá)式2>)功能:若<邏輯表達(dá)式>為.T.,則返回<表達(dá)式1>的值.否則返回<表達(dá)式2>的值.例:?IIF(12>20,‘100’,200)6、表文獻(xiàn)測(cè)試函數(shù)1)表文獻(xiàn)的邏輯結(jié)構(gòu)文獻(xiàn)起始標(biāo)記(首標(biāo))首記錄(top)第2條記錄…第N條記錄尾記錄(Bottom)文獻(xiàn)結(jié)束標(biāo)記(尾標(biāo))2)表文獻(xiàn)尾測(cè)試函數(shù)格式:EOF(<工作區(qū)號(hào)>|<表別名>)功能:測(cè)試記錄指針是否指向文獻(xiàn)尾,若是返回邏輯.T.,否則顯示邏輯假.F.,表文獻(xiàn)尾是指最后一條記錄的后面。若省略自變量,則測(cè)試當(dāng)前工作區(qū)中的表文獻(xiàn)。Use倉(cāng)庫(kù)表GOBOTTO(shè)M?EOF()->.F.SKIP?EOF(),EOF(2)&&假定2號(hào)工作區(qū)沒(méi)有打開表.T..F.3)表文獻(xiàn)首測(cè)試函數(shù)格式:BOF(<工作區(qū)號(hào)>|<表別名>)功能:測(cè)試記錄指針是否指向文獻(xiàn)首,若是返回邏輯.T.,否則顯示邏輯假.F.,表文獻(xiàn)首是指第一條記錄的前面。若省略自變量,則測(cè)試當(dāng)前工作區(qū)中的表文獻(xiàn)。若當(dāng)前工作區(qū)沒(méi)有打開表,函數(shù)返回邏輯假.F.,若表文獻(xiàn)不包含任何記錄,函數(shù)返回邏輯真.T.Use倉(cāng)庫(kù)表GOTOP?BOF()->.F.SKIP-1?BOF(),BOF(2)&&假定2號(hào)工作區(qū)沒(méi)有打開表.T..F.ZAP?EOF(),BOF()->.T..T.4)記錄號(hào)測(cè)試函數(shù)格式:RECNO(<工作區(qū)號(hào)|<表別名>)功能:測(cè)試當(dāng)前表文獻(xiàn)或指定表文獻(xiàn)中的當(dāng)前記錄的記錄號(hào)。若當(dāng)前工作區(qū)沒(méi)有打開表,函數(shù)返回0Use倉(cāng)庫(kù)表&&假設(shè)表中有4條記錄?BOF(),RECNO()&&顯示.F.1Skip-1?BOF(),RECNO()&&顯示.T.1GOBOTTOM?EOF(),RECNO()&&顯示.F.4Skip?EOF(),RECNO()&&顯示.T.55)記錄個(gè)數(shù)測(cè)試函數(shù)格式:RECCOUNT(<工作區(qū)區(qū)號(hào)>|<表別名>)功能:測(cè)試當(dāng)前表文獻(xiàn)或指定表文獻(xiàn)中物理存在的記錄數(shù)。不管記錄是否被邏輯刪除Use倉(cāng)庫(kù)表&&假設(shè)表中有4條記錄?RECCOUNT()&&顯示4DELENEXT2?RECCOUNT()&&顯示46)記錄刪除測(cè)試函數(shù)格式:DELETE(<工作區(qū)號(hào)|<表別名>)功能:測(cè)試當(dāng)前表文獻(xiàn)或指定表文獻(xiàn)中當(dāng)前記錄是否有邏輯刪除標(biāo)記“*”,若有返回.T.,否則返回.F.,缺省自變量,則測(cè)試當(dāng)前工作區(qū)中所打開的表USE倉(cāng)庫(kù)表Go2Delete?delete()->.T.GO4?delete()->.F.第四章數(shù)據(jù)庫(kù)操作一、數(shù)據(jù)庫(kù)的基本概念通過(guò)一組系統(tǒng)文獻(xiàn)將互相聯(lián)系的數(shù)據(jù)庫(kù)表及相關(guān)的數(shù)據(jù)庫(kù)對(duì)象(數(shù)據(jù)庫(kù)表,視圖、表之間的聯(lián)系)統(tǒng)一組織和管理,由數(shù)據(jù)庫(kù)文獻(xiàn)(.DBC)數(shù)據(jù)庫(kù)備注文獻(xiàn)(.DCT),數(shù)據(jù)庫(kù)索引文獻(xiàn)(.DCX)三個(gè)文獻(xiàn)構(gòu)成,簡(jiǎn)稱DB。二.?dāng)?shù)據(jù)庫(kù)操作命令1、建立數(shù)據(jù)庫(kù)格式:creat(yī)edatabase數(shù)據(jù)庫(kù)名[.dbc]功能:建立一個(gè)新數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)是一個(gè)空庫(kù),建立后自動(dòng)處在打開狀態(tài),不彈出數(shù)據(jù)庫(kù)設(shè)計(jì)器例:CREATEDATABASE學(xué)生管理2、打開數(shù)據(jù)庫(kù)格式:OPENDATABASE數(shù)據(jù)庫(kù)名[EXCLUSIVE/SHARE][NOUPDATE][VALIDDATE]功能:打開數(shù)據(jù)庫(kù),不彈出數(shù)據(jù)庫(kù)設(shè)計(jì)器1)EXCLUSIVE:獨(dú)占方式打開2)SHARE:共享方式打開3)NOUPDATE:只讀方式打開,不允許編輯。4)[VALIDATE]:打開數(shù)據(jù)庫(kù)時(shí)檢查數(shù)據(jù)庫(kù)中的對(duì)象(表和索引)是否合法。例:Opendatabase學(xué)生管理3、修改數(shù)據(jù)庫(kù)格式:MODIFYDATABASE數(shù)據(jù)庫(kù)名[NOWAIT][NOEDIT]功能:修改數(shù)據(jù)庫(kù),打開數(shù)據(jù)設(shè)計(jì)器1)NOWAIT:在交互使用時(shí)無(wú)效,在程序中使用時(shí),數(shù)據(jù)庫(kù)設(shè)計(jì)器打開后,應(yīng)用程序不暫停。3)NOEDIT:嚴(yán)禁對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改。例:MODIDATA學(xué)生管理4、刪除數(shù)據(jù)庫(kù)格式:DELETEDATABASE數(shù)據(jù)庫(kù)名[DELETETABLES][RECYCLE]功能:刪除數(shù)據(jù)庫(kù)。默認(rèn)不刪除數(shù)據(jù)庫(kù)中表1)[DELETETABLES]:刪除數(shù)據(jù)庫(kù)中的表2)[RECYCLE]:刪除數(shù)據(jù)庫(kù)和表放入WINDOWS回收站中。例:DELEDATA學(xué)生管理5、設(shè)立當(dāng)前數(shù)據(jù)庫(kù)格式:SETDATABASETO[數(shù)據(jù)庫(kù)]功能:設(shè)立當(dāng)前數(shù)據(jù)庫(kù)。在同一時(shí)刻只能有一個(gè)當(dāng)前數(shù)據(jù)庫(kù);必須先打開相應(yīng)數(shù)據(jù)庫(kù)SETDATABASETO:使得所有打開的數(shù)據(jù)庫(kù)都不是當(dāng)前數(shù)據(jù)庫(kù)。所有數(shù)據(jù)庫(kù)都沒(méi)有關(guān)閉。3)在同一個(gè)工作區(qū)中可以同時(shí)打開多個(gè)數(shù)據(jù)庫(kù),但只能打開一個(gè)表例:SETDATATO(shè)學(xué)生管理SETDATATO數(shù)據(jù)庫(kù)的關(guān)閉格式1:CLOSEDATABASE功能:關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)格式2:CLOSEDATABASEALL功能:關(guān)閉所有打開的數(shù)據(jù)庫(kù)三、表的基本操作命令(自由表、數(shù)據(jù)庫(kù)表)(一)、表的建立格式:CREATE表名[.DBF]功能:建立一個(gè)表文獻(xiàn),假如建立數(shù)據(jù)表,要先打開數(shù)據(jù)庫(kù)。字段名自由表的字段名最長(zhǎng)為10個(gè)字符。數(shù)據(jù)庫(kù)表字段名最長(zhǎng)為128?jìng)€(gè)字符。字段名必須以字母、漢字開頭,其余任意字段名不能包含空格。2)字段類型:C:長(zhǎng)度可變:(最多能存儲(chǔ)254個(gè)字符)N:長(zhǎng)度可變Y:貨幣型(長(zhǎng)度為8)。不可變F:浮點(diǎn)型B:雙精度I:整型(長(zhǎng)度為4)M:備注型(長(zhǎng)度為4)(存儲(chǔ)254個(gè)以上的字符)G:通用型(長(zhǎng)度為4):存放圖片、電子表格、文檔。D:日期型(長(zhǎng)度為8)T:日期時(shí)間型(長(zhǎng)度為8)L:邏輯型:(長(zhǎng)度為1)3)記住各種類型的長(zhǎng)度。D->8,T->8,Y->8,L->1,I->4,G->4,M->44)空值(null)字段是否為空,空表達(dá)不擬定(二)、打開表格式:USE表名[IN<工作區(qū)號(hào)>][ALIAS<別名>]功能:打開表文獻(xiàn)。說(shuō)明:1)省略可選項(xiàng):在當(dāng)前工作區(qū)中打開表2)IN<工作區(qū)號(hào)>:在指定工作區(qū)中打開表3)ALIAS<別名>:為打開表提供一個(gè)別名,若省略,默認(rèn)打開的表別名與表文獻(xiàn)主文獻(xiàn)名相同。4)剛打開表時(shí),記錄指針指向首記錄。5)use:關(guān)閉表(三)表結(jié)構(gòu)的操作命令1、修改表的結(jié)構(gòu)格式:MODIFYSTRUCTURE功能:修改當(dāng)前表的結(jié)構(gòu),可以修改已有的字段,新加字段、刪除字段。2、查看表的結(jié)構(gòu)格式:1)LISTSTRUCTURE[TOPRINTER][TO(shè)FILE<文獻(xiàn)名>]2)DISPLAYSTRUCTURE[TO(shè)PRINTER][TOFILE<文獻(xiàn)名>]功能:顯示當(dāng)前表的結(jié)構(gòu)。說(shuō)明:LISTSTRU:連續(xù)顯示DISPSTRU:分屏顯示3)TOPRINTER:把表的結(jié)構(gòu)信息送打印機(jī)輸出4)TO(shè)FILE文獻(xiàn)名:把表的結(jié)構(gòu)信息輸出到一個(gè)擴(kuò)展名為.TXT的文獻(xiàn)中。3、復(fù)制表結(jié)構(gòu)格式:COPYSTRUCTURETO<文獻(xiàn)名>[FIELDS<字段名表>]功能:復(fù)制當(dāng)前表文獻(xiàn)的所有或部分字段,生成一個(gè)新的表結(jié)構(gòu)。說(shuō)明:省略FIELDS<字段名表>:新生成的表結(jié)構(gòu)與原表結(jié)構(gòu)完全相同,具有FIELDS<字段名表>:新表結(jié)構(gòu)只包含<字段名表>指定的字段。注意:以上操作必須將表先打開(四)、表記錄的操作命令1.顯示記錄(在VFP的屏幕上顯示)格式:LIST|DISPLAY[OFF][<范圍>]FOR|WHILE<條件>[FIELDS字段名表][TOPRINTER][TOFILE<文獻(xiàn)名>]功能:顯示表中的記錄說(shuō)明:1)LIST:連續(xù)顯示,DISP:分屏顯示2)省略<范圍>:LIST顯示所有記錄,DISPLAY顯示當(dāng)前記錄。3)FIELDS<字段名表>:顯示指定的字段,若省略,顯示所有的字段。4)OFF:不顯示記錄號(hào),若省略,默認(rèn)顯示記錄號(hào)。5)TOPRINTER:顯示結(jié)果送到打印機(jī)輸出6)TOFILE<文獻(xiàn)名>:顯示結(jié)果送到擴(kuò)展名為.txt的文本文獻(xiàn)中。例:1、顯示倉(cāng)庫(kù)表中的所有記錄USE倉(cāng)庫(kù)表LIST或DISPALL2、顯示倉(cāng)庫(kù)表中的第2號(hào)~第3號(hào)記錄USE倉(cāng)庫(kù)表GO2LISTNEXT23、顯示倉(cāng)庫(kù)表中面積大于等于300的記錄USE倉(cāng)庫(kù)表LISTFOR面積>=300LISTALLFOR面積>=300DISPFOR面積>=3004、顯示倉(cāng)庫(kù)表中面積大于等于300且城市為北京的記錄USE倉(cāng)庫(kù)表LISTFOR面積>=300AND城市=”北京”5、顯示倉(cāng)庫(kù)表中面積大于等于300且城市為北京的所有記錄的倉(cāng)庫(kù)號(hào),城市,面積3個(gè)字段USE倉(cāng)庫(kù)表LISTFIEL倉(cāng)庫(kù)號(hào),城市,面積FOR面積>=300AND城市=”北京“6、顯示倉(cāng)庫(kù)表中經(jīng)營(yíng)良好所有記錄的倉(cāng)庫(kù)號(hào),城市,面積3個(gè)字段USE倉(cāng)庫(kù)表LISTFIEL倉(cāng)庫(kù)號(hào),城市,面積FOR經(jīng)營(yíng)狀況->L型2、設(shè)立過(guò)濾和設(shè)立字段1)設(shè)立過(guò)濾:格式:SETFILTERTO[<條件>]功能:過(guò)濾滿足條件的記錄,省略條件選項(xiàng),恢復(fù)為所有的記錄。USE倉(cāng)庫(kù)表SETFILTERTO倉(cāng)庫(kù)號(hào)=“WH1”LIST&&只顯示倉(cāng)庫(kù)號(hào)為WH1的所有記錄SETFILTERTOLIST&&只顯示所有記錄2)設(shè)立字段格式:SETFIELDSTO[<字段名表>|ALL]功能:表達(dá)用戶只能對(duì)“字段名表”列出的字段操作,其余字段暫時(shí)隱蔽起來(lái),說(shuō)明:ALL:表達(dá)表中所有字段。SETFIELDSTO(shè):取消“字段名表”中設(shè)立的字段。SETFIELDSOFF:取消“字段名表”中設(shè)立的字段,恢復(fù)對(duì)表中所有的字段進(jìn)行操作。例:USE創(chuàng)庫(kù)表LIST&&顯示所有字段。SETFIELDSTO倉(cāng)庫(kù)號(hào),面積LIST&&只顯示倉(cāng)庫(kù)號(hào)、面積兩個(gè)字段。SETFIELDSTOLIST&&所有字段都不顯示SETFIELDSOFFLIST&&顯示所有字段。3、記錄定位1)絕對(duì)定位(GO或GOTO命令)格式:(1)go/goto<數(shù)值表達(dá)式>(2)go/gototop/bottom(3)go/gotorecord<數(shù)值表達(dá)式>功能:移動(dòng)記錄指針,記錄指針?biāo)傅奈恢眉礊楫?dāng)前記錄。例:gotop&&記錄指針指向首記錄gobottom&&記錄指針指向尾記錄go3&&記錄指針指向記錄號(hào)為3的記錄gorecord3&&記錄指針指向記錄號(hào)為3的記錄2)相對(duì)定位格式:SKIP[<數(shù)值表達(dá)式>]功能:以當(dāng)前記錄為其準(zhǔn),向上或向下移動(dòng)記錄指針。說(shuō)明:<數(shù)值表達(dá)式>為正值,記錄指針移動(dòng)、為正值,記錄指針向下移動(dòng)。例:use倉(cāng)庫(kù)表?RECNO()->1SKIP3?RECNO()->4SKIP-2?RECNO()->2添加記錄1)在尾部添加記錄格式:APPEND[BLANK]功能:只在尾部添加記錄。說(shuō)明:BLANK:只在尾部添加空記錄。2)在任意位置添中,但前提記錄定位。格式:INSERT[BEFORE][BLANK]功能:在任意位置添中,但要提前定位記錄。說(shuō)明:BLANK:只在尾部添加空記錄。BEFORE:在當(dāng)前記錄前插入記錄5.修改記錄1)BROWSE命令:以瀏覽窗口的方式修改記錄。添加記錄:CTRL+Y邏輯刪除記錄:CTRL+T2)EDIT|CHANGE交互方式修改3)用指定值直接修改格式:REPLACE[<范圍>]<字段名1>with<表達(dá)式1>[ADDITIVE][,<字段名2>with<表達(dá)式2>[ADDITIVE][FOR<條件>]]功能:在指定的范圍內(nèi),將滿足條件的記錄的某些字段內(nèi)容用相應(yīng)的表達(dá)式值來(lái)替換。注:省略[<范圍>][FOR<條件>]選項(xiàng),僅對(duì)當(dāng)前記錄替換。例:學(xué)生表(學(xué)號(hào),姓名,政治,數(shù)學(xué),總分)。計(jì)算總分:USE學(xué)生表replALL總分with政治+數(shù)學(xué)(計(jì)算所有學(xué)生的總分。Go2repl總分with政治+數(shù)學(xué)(只對(duì)記錄號(hào)為2的記錄計(jì)算總分。沒(méi)有for和all,則替換當(dāng)前記錄。5.記錄的刪除(邏輯刪除、物理刪除)1)邏輯刪除(打刪除標(biāo)記*)格式:delete[范圍][for條件]功能:邏輯刪除,只打刪除標(biāo)記。說(shuō)明:省略參數(shù):邏輯刪除當(dāng)前記錄。2)物理刪除:(從表中徹底刪除)PACK:將邏輯刪除(帶*號(hào))的記錄物理刪除ZAP:一次性物理刪除所有記錄注:物理刪除后不合恢復(fù)。6.恢復(fù)記錄格式:RECALL[范圍][FOR條件]格式:恢復(fù)邏輯刪除記錄注意:省略參數(shù):邏輯恢復(fù)當(dāng)前記錄。例:recall&&只恢復(fù)當(dāng)前記錄recallFOR倉(cāng)庫(kù)號(hào)=“WH1”&&恢復(fù)倉(cāng)庫(kù)號(hào)為“WH1”記錄recallall&&恢復(fù)所有邏輯刪除的記錄(五)、拷貝表文獻(xiàn)命令格式:COPYTO<新表名>[范圍][FIELDS字段名表][FOR<條件>]功能:將表中指定的字段與指定的記錄復(fù)制到新表中。說(shuō)明:使用該命令時(shí),源表必須先打開。FIELDS<字段名表>:新表中只涉及指定定字段。FOR<條件:新表中只涉及滿足條件的記錄。(六)注型字段與通用型字段的操作1、備注型字段1)修改備注型字段格式:MODIFYMEMO<備注型字段1>[,<備注型字段2>…][NOEDIT]功能:編輯備注型字段。說(shuō)明:NOEDIT:編輯的備注型字段具有只讀屬性,只能瀏覽。2)復(fù)制備注型字段的內(nèi)容格式:COPYMEMO<備注型字段名>TO<文獻(xiàn)名>[ADDITIVE]功能:把備注型字段的內(nèi)容復(fù)制至文獻(xiàn)中。說(shuō)明:ADDITIVE:將備注型字段內(nèi)容追加到指定文獻(xiàn)的磁盤文獻(xiàn)的尾部.不覆蓋文獻(xiàn)中原有的內(nèi)容。2)向備注型字段復(fù)制內(nèi)容格式:APPENDMEMO<備注型字段名FROM<文獻(xiàn)名>[OVERWRITE]功能:把指定文獻(xiàn)中內(nèi)容復(fù)制到備注型字段中。說(shuō)明:OVERWRITE:覆蓋備注型字段內(nèi)容,否則追加到備注型字段內(nèi)容的尾部。2、通用型字段1)將圖像文獻(xiàn)存入通用型字段APPENDGENERAL<通用型字段名>FROM<圖像文獻(xiàn)名>2)通用型字段的顯示@行,列SAY通用型字段名6.索引1)索引的分類主索引,候選索引,唯一索引,普通索引。2)索引文獻(xiàn)的分在單索引文獻(xiàn):.idx復(fù)合索引文獻(xiàn):cdx復(fù)合索引分為兩種:結(jié)構(gòu)化復(fù)合,非結(jié)構(gòu)化復(fù)事。結(jié)構(gòu)化:索引文獻(xiàn)名與表名相同,隨著表的打開是打開,隨著表的關(guān)閉而關(guān)閉。3)創(chuàng)建索引單索引建立:indexon索引表達(dá)式to索引文獻(xiàn)名當(dāng)索引表達(dá)式涉及到兩個(gè)字段時(shí),必須轉(zhuǎn)為字符型用+/-連接。會(huì)出現(xiàn)改錯(cuò)。Indexon姓名+dtoc(出生日期)toxmrq按工資降序索引indexon20230–工資togz結(jié)構(gòu)化復(fù)合索引indexon表達(dá)式tag索引標(biāo)記asc/descfor條件非結(jié)構(gòu)化復(fù)合索引indexon表達(dá)式tag索引標(biāo)記of索引文獻(xiàn)名asc/desc4)索引文獻(xiàn)的使用use表名index索引文獻(xiàn)名use表名alia別名in區(qū)號(hào)index索引文獻(xiàn)名setindexto索引文獻(xiàn)名setorderto索引標(biāo)記asc/desc指定當(dāng)前索引。6.查詢定位locatefor條件查詢定位,此語(yǔ)句不規(guī)定索引,找到后不顯示,想顯示輸入:display與locate配對(duì),實(shí)現(xiàn)繼續(xù)查找的命令是continue。8.?dāng)?shù)據(jù)完整性分為三種:實(shí)體完整性:主索引和候選索引。域完整性:約束參照完整性:由外鍵來(lái)實(shí)現(xiàn)。9.自由表addtable表名removetable表名10排序sorton字段名1/a/d/c,字段名2/a/d/cto新表名for條件fields字段中列表與索引不同,生成個(gè)新表。必須打開才干使用。已經(jīng)不推薦使用。11.多工作區(qū)操作32767轉(zhuǎn)換工作區(qū):select區(qū)號(hào)/區(qū)名select1selectaselect0顯示別名區(qū)字段的值:區(qū)名.字段名區(qū)名->字段名select1usexsdaselect2usexscj?學(xué)號(hào),xsda.性別,xsda.家庭地址usexsdaaliaxsetrelationto關(guān)鍵字into別名兩個(gè)表建立臨時(shí)連接。規(guī)定兩表建立索引。別名區(qū)的指針會(huì)隨著當(dāng)前區(qū)移動(dòng)。Joinwith別名to新有for條件fields字段名兩個(gè)表建立物理連接,生成一個(gè)新表。Select1UsexsdaSelect2UsexscjJoinwithat(yī)oxsdacjfor學(xué)號(hào)=a->學(xué)號(hào)fields學(xué)號(hào),a->姓名,a->性別,a->出生日期,政治,數(shù)學(xué),語(yǔ)文,總分12.補(bǔ)充countto變量名sum字段名表to變量名表aver字段名表to變量名totalon字段名to新表fields字段名表此命令規(guī)定必須索引。Find字符變量See(cuò)k表達(dá)式這兩個(gè)查詢語(yǔ)句必須索引。第五章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言sql:是結(jié)構(gòu)化的語(yǔ)言。它包含數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)管理控制等功能。該語(yǔ)言簡(jiǎn)樸。5.1sql概述sql86,sql89sql92具有以下特點(diǎn):1)是一個(gè)一體化語(yǔ)言,涉及數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制四大功能。2)是一種高非過(guò)程化的語(yǔ)言。3)語(yǔ)言簡(jiǎn)潔4)可以直接以命令交互使用,也可以嵌入到程序中使用。數(shù)據(jù)定義:create,alter,drop數(shù)據(jù)查詢:select數(shù)據(jù)操縱:insertupdatedelete數(shù)據(jù)控制:grantrevoke5.2查詢功能sql的核心查詢。Select命令?;菊Z(yǔ)法:select*/字段名列表distincttopnfrom表名列表where查詢條件groupby字段having分組條件orderby字段asc/desc解釋:1)select/字段名列表:表達(dá)查詢哪些字段。假如是表中的所有字段是用*表達(dá)。假如是某幾個(gè)字段,則列出段名。Select*Selectxh,xm2)distinct:表達(dá)去掉反復(fù)元組。3)topn表達(dá)只顯示滿足條件的前N條記錄。此命令規(guī)定必須與orderby配對(duì)使用。4)from表
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 磁頭清洗裝置項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- 膠面增濕器辦公用品項(xiàng)目營(yíng)銷計(jì)劃書
- 掃雪機(jī)的修理或維護(hù)行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 傷口敷料產(chǎn)品供應(yīng)鏈分析
- 臺(tái)球桿產(chǎn)品供應(yīng)鏈分析
- 航空器用機(jī)翼項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- 國(guó)際電話服務(wù)行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 卡車露營(yíng)車產(chǎn)品供應(yīng)鏈分析
- O2O服務(wù)行業(yè)營(yíng)銷策略方案
- 家用籃產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 人工智能時(shí)代高等院校教師信息素養(yǎng)提升研究
- 商家聯(lián)盟合作方案
- GB/T 44679-2024叉車禁用與報(bào)廢技術(shù)規(guī)范
- 專題13隱圓問(wèn)題(原卷版+解析)
- 2024人教版初中八年級(jí)數(shù)學(xué)上冊(cè)第十四章整式的乘法與因式分解大單元整體教學(xué)設(shè)計(jì)
- 國(guó)資國(guó)企企業(yè)學(xué)習(xí)二十屆三中全會(huì)精神專題培訓(xùn)
- (新版)突發(fā)急性傳染病防控和應(yīng)急處置技能競(jìng)賽理論考試題庫(kù)500題(含答案)
- 滬科版(2024)八年級(jí)全一冊(cè)物理第一學(xué)期期中學(xué)業(yè)質(zhì)量測(cè)試卷(含答案)
- 監(jiān)理工作重點(diǎn)、難點(diǎn)分析及解決方案
- 2024年礦業(yè)權(quán)評(píng)估師考試題庫(kù)大全(含答案)
- 國(guó)儲(chǔ)林實(shí)施方案
評(píng)論
0/150
提交評(píng)論