




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1.1數(shù)據(jù)庫基礎(chǔ)知識(shí)考點(diǎn)1計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展1數(shù)據(jù)與數(shù)據(jù)處理數(shù)據(jù)是指存儲(chǔ)在某一種媒體上能夠識(shí)別的物理符號(hào)。數(shù)據(jù)處理的中心問題是數(shù)據(jù)管理。2計(jì)算機(jī)數(shù)據(jù)管理⑴人工管理。(2)文件系統(tǒng)。(3)數(shù)據(jù)庫系統(tǒng)。(4)分布式數(shù)據(jù)庫系統(tǒng)。(5)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)。3數(shù)據(jù)庫管理系統(tǒng)為數(shù)據(jù)庫的建立、使用和維護(hù)而配置的軟件稱為數(shù)據(jù)庫管理系統(tǒng)DBMS(DataBaseManagementSystem)<>圖1-1數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)與程序的關(guān)系考點(diǎn)2數(shù)據(jù)庫系統(tǒng)1有關(guān)數(shù)據(jù)庫的概念(1)數(shù)據(jù)庫(DataBase):存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上、結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合。(2)數(shù)據(jù)庫應(yīng)用系統(tǒng)(DBAS):是由系統(tǒng)開發(fā)人員利用數(shù)據(jù)庫系統(tǒng)資源開發(fā)出來的,面向某一類實(shí)際應(yīng)用的應(yīng)用軟件系統(tǒng)。(3)數(shù)據(jù)庫管理系統(tǒng)(DBMS):對(duì)數(shù)據(jù)實(shí)行專門管理,提供安全性和完整性等統(tǒng)?機(jī)制,可以對(duì)數(shù)據(jù)庫的建立、使用和維護(hù)進(jìn)行管理。(4)數(shù)據(jù)庫系統(tǒng)(DBS):是指引進(jìn)數(shù)據(jù)庫技術(shù)后的計(jì)算機(jī)系統(tǒng),實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量相關(guān)數(shù)據(jù),提供數(shù)據(jù)處理和信息資源共享的便利手段。數(shù)據(jù)庫系統(tǒng)山硬件系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)及相關(guān)軟件、數(shù)據(jù)庫管理員和用戶等部分組成。2數(shù)據(jù)庫系統(tǒng)的特點(diǎn)⑴實(shí)現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余。(2)采用特定的數(shù)據(jù)模型。(3)具有較高的數(shù)據(jù)獨(dú)立性。(4)具有統(tǒng)一的數(shù)據(jù)控制功能。考點(diǎn)3數(shù)據(jù)模型1實(shí)體的描述(1)實(shí)體。(2)實(shí)體的屬性。(3)實(shí)體集和實(shí)體型。2實(shí)體間聯(lián)系及聯(lián)系的種類(1)一對(duì)一聯(lián)系。(2)一對(duì)多聯(lián)系。(3)多對(duì)多聯(lián)系。3數(shù)據(jù)模型簡介為了反映事物本身及事物之間的各種聯(lián)系,數(shù)據(jù)庫中的數(shù)據(jù)必須有一定的結(jié)構(gòu),這種結(jié)構(gòu)用數(shù)據(jù)模型來表示,通常有以下3種。(1)層次數(shù)據(jù)模型。(2)網(wǎng)狀數(shù)據(jù)模型。(3)關(guān)系數(shù)據(jù)模型。小提示:數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS和數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是DBS包括DB和DBMS?1.2關(guān)系模型關(guān)系模型的用戶界面非常簡單.,一個(gè)關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。這種用二維表的形式表示實(shí)體和實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系數(shù)據(jù)模型。1關(guān)系術(shù)語(1)關(guān)系:一個(gè)關(guān)系就是一張二維表,每個(gè)關(guān)系有一個(gè)關(guān)系名。在VisualFoxPro中一個(gè)關(guān)系存儲(chǔ)為一個(gè)文件,擴(kuò)展名為DBF,稱為“表”。對(duì)關(guān)系的描述稱為關(guān)系模式,一個(gè)關(guān)系模式對(duì)應(yīng)一個(gè)關(guān)系的結(jié)構(gòu),格式為:關(guān)系名(屬性名1,屬性名2,…,屬性名n)(2)元組:在一個(gè)二維表中,水平方向的行稱為元組,每一行為一個(gè)元組。(3)屬性:將二維表中垂直方向的列稱為屬性,每一列都有一個(gè)屬性名。(4)域:屬性的取值范圍,即不同元組對(duì)同一個(gè)屬性的取值所限定的范圍。(5)關(guān)鍵了:屬性或?qū)傩缘慕M合,其值能夠唯一地標(biāo)識(shí)一個(gè)元組。在VisualFoxPro中,主關(guān)鍵字和候選關(guān)鍵字就起唯一標(biāo)志一個(gè)元組的作用。(6)外部關(guān)鍵字:如果表中一個(gè)字段不是本表的主關(guān)鍵字或候選關(guān)鍵字,而是另一個(gè)表的主關(guān)鍵字或候選關(guān)鍵字,那么這個(gè)字段(屬性)就稱為外部關(guān)鍵字。2關(guān)系的特點(diǎn)(1)關(guān)系必須規(guī)范化。(2)在同一個(gè)關(guān)系中不能出現(xiàn)同名屬性,VisualFoxPro中表示為字段名的不同。(3)關(guān)系中不允許有完全相同的元組,即冗余。(4)在一個(gè)關(guān)系中元組的次序無關(guān)緊要。(5)在一個(gè)關(guān)系中列的次序無關(guān)緊要??键c(diǎn)5關(guān)系運(yùn)算對(duì)關(guān)系數(shù)據(jù)庫進(jìn)行查詢時(shí),需要找到用戶感興趣的數(shù)據(jù),這就需要對(duì)關(guān)系進(jìn)行一定的關(guān)系運(yùn)算,關(guān)系的基本運(yùn)算有兩類:傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算。1傳統(tǒng)的集合運(yùn)算(1)并:兩個(gè)相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個(gè)關(guān)系的全部元組組成的集合。(2)差:兩個(gè)相同結(jié)構(gòu)關(guān)系的差是由屬于前一個(gè)關(guān)系的元組而不屬于后一個(gè)關(guān)系的元組組成的集合。例如,關(guān)系R和S的差結(jié)果是由屬于R但不屬于S的元組組成的集合。(3)交:兩個(gè)相同結(jié)構(gòu)關(guān)系的交是由屬于這兩個(gè)關(guān)系所共有的元組組成的集合。2專門的關(guān)系運(yùn)算(1)選擇:從關(guān)系中找出滿足給定條件的元組的操作。(2)投影:從關(guān)系模式中指定若干個(gè)屬性組成新的關(guān)系:(3)連接:關(guān)系的橫向結(jié)合,將兩個(gè)關(guān)系模式拼接成一個(gè)更寬的關(guān)系模式。(4)自然連接:在連接運(yùn)算中,按照字段值對(duì)應(yīng)相等為條件進(jìn)行的連接操作稱為等值連接。自然連接是去掉重復(fù)屬性的等值連接。小提示:選擇和投影運(yùn)算的操作對(duì)象只是?個(gè)表,相當(dāng)于對(duì)一個(gè)二維表進(jìn)行切割。連接運(yùn)算則需要把兩個(gè)表作為操作對(duì)象。如果兩個(gè)表以上進(jìn)行連接,應(yīng)當(dāng)兩兩進(jìn)行連接。1.3數(shù)據(jù)庫設(shè)計(jì)基礎(chǔ)考點(diǎn)6數(shù)據(jù)庫設(shè)計(jì)步驟1設(shè)計(jì)原則⑴關(guān)系數(shù)據(jù)庫的設(shè)計(jì)應(yīng)遵從概念單一化“一事一地'’的原則。(2)避免在表之間出現(xiàn)重復(fù)字段。(3)表中的字段必須是原始數(shù)據(jù)和基本數(shù)據(jù)元素。(4)用外部關(guān)鍵字保證有關(guān)聯(lián)的表之間的聯(lián)系。2設(shè)計(jì)步驟利用VisualFoxPro來開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng),可以按照以下步驟來設(shè)計(jì)。(1)需求分析。(2)確定需求表C(3)確定需求字段。(4)確定聯(lián)系。(5)設(shè)計(jì)精確1.4VisualFoxPro系統(tǒng)概述考點(diǎn)7VisualFoxPro的特點(diǎn)⑴增強(qiáng)項(xiàng)目與數(shù)據(jù)庫管理。(2)提高應(yīng)用程序開發(fā)的生產(chǎn)率。(3)互操作性與支持Internet?(4)充分利用已有數(shù)據(jù)。VisualFoxPro的安裝和啟動(dòng)考點(diǎn)1VisualFoxPro的系統(tǒng)要求VisualFoxPro功能強(qiáng)大,但它對(duì)系統(tǒng)的要求并不高,個(gè)人計(jì)算機(jī)軟硬件基本要求如下。⑴處理器;486DX/66MHz處理器,推薦使用Pentium或更高處理器的PC。(2)內(nèi)存:16MB以上的內(nèi)存,推薦使用24MB內(nèi)存。(3)硬盤空間:典型安裝需要85MB硬盤空間,最大安裝需要90MB硬盤空間。(4)其他硬件:一個(gè)鼠標(biāo)、一個(gè)光盤驅(qū)動(dòng)器。推薦使用VGA或更高分辨率的監(jiān)視器。(5)操作系統(tǒng):山于VisualFoxPro是32位產(chǎn)品,需要在Windows95/98(中文版)、WindowsNT4.0(中文版)或更高版本的操作系統(tǒng)上運(yùn)行。小提示:退出Windows中的應(yīng)用程序或關(guān)閉窗口等操作,都可以利用快捷鍵Alt+F4來完成。VisualFoxPro的用戶界面考點(diǎn)2VisualFoxPro的主界面VisualFoxPro的主界面即其工作環(huán)境,啟動(dòng)VisualFoxPro后,打開如圖2—1所示的界面??键c(diǎn)3工具欄的使用設(shè)置工具欄是微軟公司流行軟件的共同特點(diǎn),利用各種工具欄比菜單要方便得多。其默認(rèn)界面僅包括“常用”工具欄和“表單設(shè)計(jì)器”工具欄。除此之外,VisualFoxPro還提供其他10個(gè)工具欄,如表2-1所示。
" Dl九I I13?I,l;kl| JBd㈤川??汨2T、bwl收小生事第M2-1Vbw)Fexb?XA?*HA欄一聆 2j 工JH2多琲素一一素 | tat 一?先登”w> I.—一單報(bào)去 ^ ]■也梅 ~~一”修 ] ㈱■■訐a;" !M-ncrR,SWi(m小提示:VisualFoxPro中有兩種工作方式:交互操作方式和程序方式,命令方式和菜單方式都屬于交互操作方式。項(xiàng)目管理器考點(diǎn)4使用項(xiàng)目管理器(1)項(xiàng)目管理器窗口中共有6個(gè)選項(xiàng)長,其中“全部”選項(xiàng)卡用來集中顯示該項(xiàng)目中的所有文件,“數(shù)據(jù)”、”文檔”、”類"、"代碼''和"其他"5個(gè)選項(xiàng)卡用來分類顯示各種文件。(2)項(xiàng)目管理器一是提供了簡便的、可視化的方法來組織和處理表、數(shù)據(jù)庫、表單、查詢和其他一切文件,通過單擊鼠標(biāo)就能實(shí)現(xiàn)對(duì)文件的創(chuàng)建、修改、刪除等操作;二是在項(xiàng)口管理器中可以將應(yīng)用系統(tǒng)編譯成一個(gè)擴(kuò)展名為APP的應(yīng)用文件或EXE的可執(zhí)行文件。(3)在VisualFoxPro中的不同文件類型及其擴(kuò)展名,如表2-2所示。表2-2VisualFoxPro中的不同文件類型及其擴(kuò)展名
擴(kuò)展名文件初1擴(kuò)屐^文件理ACT向?qū)Р僮鲌D的文檔LBX標(biāo)簽APP生成的應(yīng)用程序或ActiveDocumentIDX相,壓縮索CDX復(fù)合索LOG代躁圍日志.CHM編譯的HTMLHelpLST向?qū)Я斜淼木艱BC數(shù)據(jù)庫MEM內(nèi)存變量保存DCT數(shù)據(jù)庫備注.MNT菜單備注DCX數(shù)據(jù)庫粥1.MNX肄D(zhuǎn)BF表MPR生成的菜單程序DBG調(diào)試器配置MPX編譯后的菜謔序DEP相關(guān)文件(由“安野]導(dǎo)”創(chuàng)建)OCXActiveXDLLWindows動(dòng)態(tài)微接庫PJT項(xiàng)目備件ERR先譯錯(cuò)誤PJX項(xiàng)目ESL\lsualFoxPro支持的庫PRG程序EXE可執(zhí)行程序.QPR生成的查詢程序FKY宏.QPX編版的粉FKLFoxPro動(dòng)態(tài)熊接庫.SCT表單備注FMT格式文件.sex理FPT表備注.SPR生成的屏幕程序.FRT報(bào)表備注.SPX編譯后的屏幕程序*FRX候.TBK備注備份FXP編設(shè)后的程序.TXT文本H頭文件.VCT可視庫備注HLPWinHelp.vex可叫庫HTMHTML.VUEFoxPro2.x腌LBT標(biāo)簽備注.WIN窗口文件考點(diǎn)5定制項(xiàng)目管理器(1)移動(dòng)、縮放和折疊。(2)拆分項(xiàng)目管理器。(3)停放項(xiàng)目管理器小提示:要拆分選項(xiàng)卡使之單獨(dú)使用,必須將選項(xiàng)卡折疊后才可以實(shí)現(xiàn)。VisualFoxPro向?qū)?、設(shè)計(jì)器、生成器考點(diǎn)6VisualFoxPro的向?qū)驅(qū)且环N交互式程序用戶在一系列向?qū)聊簧匣卮饐栴}或者選擇選項(xiàng)后,向?qū)?huì)根據(jù)回答生成文件或者執(zhí)行任務(wù),幫助用戶快速完成一般性的任務(wù)(例如創(chuàng)建表單、編排報(bào)表的格式、建立查詢、制作圖表、生成數(shù)據(jù)透視表、生成交叉表報(bào)表及在Web上按HTML格式發(fā)布等??键c(diǎn)7VisualFoxPro的設(shè)計(jì)器VisualFoxPro的設(shè)計(jì)器是創(chuàng)建和修改應(yīng)用系統(tǒng)各種組件的可視化工具:利用各種設(shè)計(jì)器使得創(chuàng)建表、表單、數(shù)據(jù)庫、查詢和報(bào)表及管理數(shù)據(jù)變得輕而易舉,為初學(xué)者提供了方便。考點(diǎn)8VisualFoxPro的生成器生成器是帶有選項(xiàng)卡的對(duì)話框,用于簡化對(duì)表單、復(fù)雜控件及參照完整性代碼的創(chuàng)建和修改過程。每個(gè)生成器顯示一系列選項(xiàng)卡,用于設(shè)置選中對(duì)象的屬性??墒褂蒙善髟跀?shù)據(jù)庫表之間生成控件、表單、設(shè)置控件格式和創(chuàng)建參照完整性.3.1常量與變量考點(diǎn)1常量常量用以表示一個(gè)具體的、不變的值。不同類型常量的書寫格式不同。在VisualFoxPro中,常量主要包括以下幾種類型。1數(shù)值型常量數(shù)值型常量即常數(shù),用來表示一個(gè)數(shù)量的大小,由數(shù)字0-9小數(shù)點(diǎn)和正負(fù)號(hào)組成。2貨幣型常量貨幣型常量用來表示貨幣值,其書寫格式與數(shù)值型常量類似,但要加上一個(gè)前置的符號(hào)($)。3字符型常量字符型常量也稱為字符串,其表示方法是用半角單引號(hào)、雙引號(hào)或方括號(hào)把字符串括起來。這里的單引號(hào)、雙引號(hào)或方括號(hào)稱為定界符許多常量都有定界符。定界符雖然不作為常量本身的內(nèi)容,但它規(guī)定了常量的類型及常量的起始和終止界限。4日期型常量日期型常量的定界符是一對(duì)花括號(hào)?;ɡㄌ?hào)內(nèi)包括年、月、日3部分內(nèi)容,各部分內(nèi)容之間用分隔符分隔。5日期時(shí)間型常量日期時(shí)間型常量包括日期和時(shí)間兩部分內(nèi)容:{〈日期>,〈時(shí)間>}?!慈掌凇挡糠峙c日期型常量相似,也有傳統(tǒng)的和嚴(yán)格的兩種格式。6邏輯型常量邏輯型數(shù)據(jù)只有邏輯真和邏輯假兩個(gè)值。前后兩個(gè)句點(diǎn)作為邏輯型常量的定界符是必不可少的,否則會(huì)被誤認(rèn)為變量名。邏輯型數(shù)據(jù)只占用1字節(jié)??键c(diǎn)2變量VisualFoxPro中變量分為字段變量和內(nèi)存變量二其中字段變量就是表中的字段。內(nèi)存變量是內(nèi)存中的一塊存儲(chǔ)區(qū)域,變量值就是存放在這個(gè)存儲(chǔ)區(qū)域里的數(shù)據(jù),變量的類型取決于變量值的類型。內(nèi)存變量的數(shù)據(jù)類型包括:字符型(C)、數(shù)值型(N)、貨幣型(Y)、日期型(D)、日期時(shí)間型(T)和邏輯型(L)。1簡單的內(nèi)存變量每一個(gè)變量都有一個(gè)名字,可以通過變量名訪問變量。如果當(dāng)前表中存在一個(gè)同名的字段變量,則在訪問內(nèi)存變量時(shí),必須在變量名前加上前綴M.(或M->),否則系統(tǒng)將訪問同名的字段變量。2數(shù)組與簡單內(nèi)存變量不同,數(shù)組在使用之前一般要用DIMENSION或DECLARE命令顯示創(chuàng)建,規(guī)定數(shù)組是一維數(shù)組還是二維數(shù)組,數(shù)組名和數(shù)組大小。數(shù)組大小由下標(biāo)值的上、下限決定,下限規(guī)定為1。在使用數(shù)組和數(shù)組元素時(shí),應(yīng)注意如下問題。(1)在一切使用簡單內(nèi)存變量的地方,均可以使用數(shù)組元素。(2)在賦值和輸入語句中使用數(shù)組名時(shí),表示將同一個(gè)值同時(shí)賦給該數(shù)組的全部數(shù)組元素。(3)在同一個(gè)運(yùn)行環(huán)境下,數(shù)組名不能與簡單變量名重復(fù)。(4)在賦值語句中的表達(dá)式位置不能出現(xiàn)數(shù)組名。(5)可以用一維數(shù)組的形式訪問二維數(shù)組。考點(diǎn)3內(nèi)存變量常用命令1內(nèi)存變量的賦值格式1:〈內(nèi)存變量名>=<表達(dá)式>格式2:STORE<表達(dá)式>T0〈內(nèi)存變量名表〉2表達(dá)式值的顯示格式1:?〈表達(dá)式表〉格式2:??〈表達(dá)式表〉3內(nèi)存變量的顯示格式1:LISTMEMORY[LIKE<通配符>][T0PRINTER!TOFILE<文件名>]格式2:DISPLAYMEMORY[LIKE<通配符>][T0PRINTER|TOFILEv文件名習(xí)4內(nèi)存變量的清除格式1:CLEARMEMORY格式2:RELEASE<內(nèi)存變量名表>格式3:RELEASEALL[EXTENDED]格式4:RELEASEALL[LIKE<通配符>|EXCEPT<通配符》]5表中數(shù)據(jù)與數(shù)組數(shù)據(jù)之間的交換將表的當(dāng)前記錄復(fù)制到數(shù)組。格式1:SCATTER[FIELDS<字段名表習(xí)[MEMO]TO<數(shù)組名>[BLANK]格式2:SCATTER[FIELDSLIKE<通配符>|FIELDSEXCEPT〈通配符習(xí)[MEMO]TO<數(shù)組名〉[BLANK]將數(shù)組數(shù)據(jù)復(fù)制到表的當(dāng)前記錄。格式1:GATHERFROM<數(shù)組名RFIELDS〈字段名表刁[MEMO]格式2:GATHERFROM<數(shù)組名>[FIELDSLIKE<通配符>|FIELDSEXCE<通配符刁[MEMO]小提不:如果當(dāng)前表中存在個(gè)同名的字段變量,則在訪問內(nèi)存變量時(shí),必須在內(nèi)存變量名前加上前綴M.(或M->),否則系統(tǒng)訪問的將是同名的字段變量。3.2表達(dá)式考點(diǎn)4數(shù)值、字符與日期時(shí)間表達(dá)式1數(shù)值表達(dá)式(1)算術(shù)運(yùn)算優(yōu)先級(jí)。數(shù)值表達(dá)式中的算術(shù)運(yùn)算符有些與日常使用的運(yùn)算符稍有Lx=別,算術(shù)運(yùn)算符及其含義和優(yōu)先級(jí)如表3-1所示。表3-1算術(shù)運(yùn)算符及其優(yōu)先級(jí)優(yōu)先級(jí)運(yùn)算將說明I<>" i"-1,理表達(dá)貳內(nèi)的的代達(dá)式2**或A塞方麗算3*/、算席商運(yùn)算.求余超玲4*^(2)求余運(yùn)算。求余運(yùn)算%和取余函數(shù)MOD()的作用相同。余數(shù)的正負(fù)號(hào)與除數(shù)一致當(dāng)表達(dá)式中出現(xiàn)*、/和%運(yùn)算時(shí),它們具有相同的優(yōu)先級(jí)。2字符表達(dá)式由字符串運(yùn)算符將字符型數(shù)據(jù)連接起來形成,其結(jié)果仍是字符型數(shù)據(jù)字符型數(shù)據(jù)只能進(jìn)行兩種運(yùn)算(+、-),它們的優(yōu)先級(jí)相同。首尾連接前后兩個(gè)字符串形成一個(gè)新的字符串;連接前后兩個(gè)字符串,并將前字符串的尾部空格移到合并后的新字符串尾部3日期時(shí)間表達(dá)式日期時(shí)間表達(dá)式中可以使用的運(yùn)算符也有“+”和兩個(gè),其格式也有一定的限制,不能任意組合,如不能用運(yùn)算符“+”將兩個(gè)〈日期〉連接起來??键c(diǎn)5關(guān)系表達(dá)式1關(guān)系表達(dá)式關(guān)系表達(dá)式通常也稱為簡單邏輯表達(dá)式,它是由關(guān)系運(yùn)算符將兩個(gè)運(yùn)算對(duì)象連接起來而形成的,即:〈表達(dá)式x關(guān)系運(yùn)算符><表達(dá)式>。關(guān)系運(yùn)算符及其含義如表3-2所示,它們的優(yōu)先級(jí)相同。表3-2關(guān)系運(yùn)算符運(yùn)算符說明|運(yùn)算符說<小干<=「小于等于>大于>?七丁號(hào)干等于字得中棺硼比較o或!-saitcns 于小包畬測(cè)成2設(shè)置字符的排序次序當(dāng)比較兩個(gè)字符串時(shí),系統(tǒng)對(duì)兩個(gè)字符串的字符自左向右逐個(gè)進(jìn)行比較;一旦發(fā)現(xiàn)兩個(gè)對(duì)應(yīng)字符不同,就根據(jù)這兩個(gè)字符的排序序列決定兩個(gè)字符串的大小3字符串精確比較與EXACT設(shè)置在用雙等號(hào)運(yùn)算符==比較兩個(gè)字符串時(shí),只有當(dāng)兩個(gè)字符串完全相同(包括空格及各字符的位置)時(shí),運(yùn)算結(jié)果才會(huì)是邏輯其工,否則為邏輯假.F.??键c(diǎn)6邏輯表達(dá)式1邏輯表達(dá)式邏輯運(yùn)算符的運(yùn)算規(guī)則如表3-3所示,其中<IE1>和<IE2>各代表兩個(gè)邏輯型常量。表3-3邏輯運(yùn)算規(guī)則<IEI>>.AND,<IE2>v卸>.OR,<1E2>J.-T.萬..T.F.F..T.I?RT.,E.F.,F. 1■P2運(yùn)算符優(yōu)先級(jí).NOT.或?。ㄟ壿嫹牵?、.AND.(邏輯與)、.OR.(邏輯或)依次降低。小提不:表達(dá)式是指常量、變量、函數(shù)或由它們通過特定的運(yùn)算符連接起來的式子。3.3常用函數(shù)考點(diǎn)7數(shù)值函數(shù)數(shù)值函數(shù)是指函數(shù)值為數(shù)值的一類函數(shù),它們的自變量和返回值往往都是數(shù)值型數(shù)據(jù)。1絕對(duì)值和符號(hào)函數(shù)格式:ABSv數(shù)值表達(dá)式,)SIGN(〈數(shù)值表達(dá)式〉)功能:ABS()返回指定的數(shù)值表達(dá)式的絕對(duì)值。SIGN。返回指定數(shù)值表達(dá)式的符號(hào)。2求平方根函數(shù)格式:SQRT(v數(shù)值表達(dá)式力功能:返回指定表達(dá)式的平方根,表達(dá)式的值不能為負(fù)。3圓周率函數(shù)格式:PIO功能:返回圓周率二,該函數(shù)沒有自變量。4求整數(shù)函數(shù)格式:INT(〈數(shù)值表達(dá)式〉)CEILING(〈數(shù)值表達(dá)式,)FLOOR(v數(shù)值表達(dá)式刁功能:INTO返回指定數(shù)值表達(dá)式的整數(shù)部分。CEILING。返回大于或等于指定數(shù)值表達(dá)式的最小整數(shù)。FLOOR。返回小于或等于指定數(shù)值表達(dá)式的最大整數(shù)。5四舍五入函數(shù)格式:ROUND(v數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)功能:返回V數(shù)值表達(dá)式A在指定位置四舍五入后的結(jié)果,<數(shù)值表達(dá)式2>指明四舍五入的位置。若〈數(shù)值表達(dá)式2>大于等于0,表示的是要保留的小數(shù)位,若小于。,則表示整數(shù)部分的舍入位數(shù)。6求余數(shù)函數(shù)格式:MOD(〈數(shù)值表達(dá)式<數(shù)值表達(dá)式2>)功能:返回兩個(gè)數(shù)相除后的余數(shù)。余數(shù)的正、負(fù)號(hào)與除數(shù)相同。如果被除數(shù)與除數(shù)同號(hào),則函數(shù)值為兩數(shù)相除的余數(shù);如果異號(hào),則函數(shù)值為兩數(shù)相除的余數(shù)再加上除數(shù)的值。7求最大值和最小值函數(shù)格式:MAX(v數(shù)值表達(dá)式<數(shù)值表達(dá)式2>[,<數(shù)值表達(dá)式MIN(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>[,<數(shù)值表達(dá)式功能MAX()返回自變量中的最大值。MIN()返回自變量中的最小值。考點(diǎn)8字符函數(shù)1求字符串長度函數(shù)格式:LEN(〈字符表達(dá)式,)功能:返回指定字符表達(dá)式值的長度,即字符個(gè)數(shù)。2大小寫轉(zhuǎn)換函數(shù)格式:LOWER(〈字符表達(dá)式〉)UPPER(〈字符表達(dá)式〉)功能:LOWER。將指定表達(dá)式中的大寫字母轉(zhuǎn)換成小寫字母,其他字符保持不變;UPPER。將指定表達(dá)式中的小寫字母轉(zhuǎn)換成大寫字母,其他字符保持不變。3空格字符串生成函數(shù)格式:SAPCE(〈數(shù)值表達(dá)式〉)功能:返回由指定數(shù)目的空格組成的字符串。4側(cè)除前后空格函數(shù)格式:TRIM(〈字符表達(dá)式〉)LTRIM(〈字符表達(dá)式〉)ALLTRIM(〈字符表達(dá)式))功能:TRIM。刪除指定表達(dá)式尾部的空格。LTRIM()刪除指定表達(dá)式前端的空格。ALLTRIM()刪除指定字符串前端和尾部的空格。5取子串函數(shù)格式:LEFT(〈字符表達(dá)式〉,〈長度〉)RIGHT(〈字符表達(dá)式〉,〈長度〉)SUBSTR(〈字符表達(dá)式〉,〈起始位置>[,<長度習(xí))功能:LEFT。從指定表達(dá)式左端截取一個(gè)指定長度的子串作為函數(shù)值。RIGHT。從指定表達(dá)式右端載取一個(gè)指定長度的子串作為函數(shù)值。SUBSTRO從指定表達(dá)式指定位置截取一個(gè)指定長度的子串作為函數(shù)值,若默認(rèn)〈長度〉,則截取的子串表示從指定位置開始一直到字符串尾部。6計(jì)算子串出現(xiàn)次數(shù)函數(shù)格式:OCCURS(〈字符表達(dá)式1>,〈字符表達(dá)式2>)功能:返回第一個(gè)字符串在第二個(gè)字符串中出現(xiàn)的次數(shù)。7求子串位置函數(shù)格式:AT(〈字符表達(dá)式1>,〈字符表達(dá)式2>[,<數(shù)值表達(dá)式>])ATC(〈字符表達(dá)式1>,〈字符表達(dá)式2>[,<數(shù)值表達(dá)式習(xí))功能:AT()返回第一個(gè)字符串的首字符在第一二個(gè)字符串中出現(xiàn)的位置。前提條件是第一個(gè)字符串必須是第二個(gè)字符串的子串,否則函數(shù)返回值為0。ATC()功能與AT()類似,但不區(qū)分字符串中字符的大小寫。8子串替換函數(shù)格式:STUFF〈字符表達(dá)式1>,〈起始位置〉,〈長度〉,〈字符表達(dá)式2>)功能:用〈字符表達(dá)式2>的值替換〈字符表達(dá)式1>中由〈起始位置〉和<長度〉指定的一個(gè)子串。9字符替換函數(shù)格式CHRTRAN(〈字符表達(dá)式1>,〈字符表達(dá)式2>,〈字符表達(dá)式3>)功能:該函數(shù)的自變量是三個(gè)字符表達(dá)式。當(dāng)?shù)谝粋€(gè)字符串中的一個(gè)或多個(gè)字符與第二個(gè)字符串中的某個(gè)字符相匹配時(shí),應(yīng)用第三個(gè)字符串中的對(duì)應(yīng)字符(相同位置)替換這些字符如果第三個(gè)字符串包含的字符個(gè)數(shù)少于第二個(gè)字符串包含的字符個(gè)數(shù),因?yàn)闆]有對(duì)應(yīng)字符,那么第一個(gè)字符串中相匹配的各字符將被刪除。如果第三個(gè)字符串包含的字符個(gè)數(shù)多于第二個(gè)字符串包含的字符個(gè)數(shù),多余字符將被忽略。10字符串匹配函數(shù)格式:LIKE(〈字符表達(dá)式1>,〈字符表達(dá)式2>)功能:比較兩個(gè)字符串時(shí)應(yīng)位置_L的字符。其中〈字符表達(dá)式1>中可包含通配符*和?。*表示若干個(gè)任意字符,?表示任意一個(gè)字符??键c(diǎn)9日期和時(shí)間函數(shù)1系統(tǒng)日期和時(shí)間函數(shù)格式:DATE()TIME()DATETIME0功能:DATE()返回當(dāng)前系統(tǒng)日期,函數(shù)值為日期TIME()以24小時(shí)制返回當(dāng)前系統(tǒng)時(shí)間,函數(shù)值為字符型:DATETIME。返回肖前系統(tǒng)日期時(shí)間,函數(shù)值為日期時(shí)間型。2求年份、月份和天數(shù)的函數(shù)格式:YEAR(〈日期表達(dá)式>|〈日期時(shí)間表達(dá)式〉)MONTH(<日期表達(dá)式>|<日期時(shí)間表達(dá)式〉)DAY(<日期表達(dá)式>|<日期時(shí)間表達(dá)式〉)功能:YEAR()從指定的日期表達(dá)式或日期時(shí)間表達(dá)式中返回年份。MONTH。從指定的日期表達(dá)式或日期時(shí)間表達(dá)式中返回月份DAY()從指定的日期表達(dá)式或日期時(shí)間表達(dá)式中返回月份的天數(shù)。這3個(gè)函數(shù)的返回值均為數(shù)值型數(shù)據(jù)3求時(shí)、分和秒的函數(shù)格式:HOUR(<I1期時(shí)間表達(dá)式〉)MINUTE(<日期時(shí)間表達(dá)式〉)SEC(〈日期時(shí)間表達(dá)式〉)功能:HOUR。從指定的日期時(shí)間表達(dá)式中返回小時(shí)部分(24小時(shí)制)。MINUTE。從指定的II期時(shí)間表達(dá)式中返回分鐘部分。SEC()從指定的口期時(shí)間表達(dá)式中返回秒鐘部分。考點(diǎn)10數(shù)據(jù)類型轉(zhuǎn)換函數(shù)數(shù)據(jù)類型轉(zhuǎn)換函數(shù)的功能是將某一種類型的數(shù)據(jù)轉(zhuǎn)換成另一種類型的數(shù)據(jù)。1數(shù)值轉(zhuǎn)換成字符串函數(shù)格式:STR(〈數(shù)值表達(dá)式>[,<長度>[,〈小數(shù)位數(shù)刁])功能:將〈數(shù)值表達(dá)式〉的值轉(zhuǎn)換成字符串,轉(zhuǎn)換時(shí)根據(jù)需要自動(dòng)四舍五入。2字符串轉(zhuǎn)換成數(shù)值函數(shù)格式:VAL(〈字符表達(dá)式〉)功能:將山數(shù)字符號(hào)(包括符號(hào)、小數(shù)點(diǎn))組成的字符型數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)值型數(shù)據(jù)。3字替串轉(zhuǎn)換成日期或日期時(shí)間函數(shù)格式:CTOD(〈字符表達(dá)式〉)CTOT<字符表達(dá)式〉)功能:CTOD()將〈字符表達(dá)式〉轉(zhuǎn)換成II期型數(shù)據(jù)CTOT()將〈字符表達(dá)式〉轉(zhuǎn)換成II期時(shí)間型數(shù)據(jù)。4II期或日期時(shí)間轉(zhuǎn)換成字符串函數(shù)格式:DTOC(〈日期表達(dá)式>|〈日期時(shí)間表達(dá)式>[,1])TTOC(<日期時(shí)間表達(dá)式>[,1])功能:DTOC()將日期型數(shù)據(jù)或日期時(shí)間型數(shù)據(jù)的日期部分轉(zhuǎn)換成字符串。TTOC()將日期時(shí)間型數(shù)據(jù)轉(zhuǎn)換成字符串。5宏替換函數(shù)格式:&<字符型變量>[.]功能:替換出字符型變量的內(nèi)容,即&的值是變量中的字符串。如果該函數(shù)與其后面的字符無明顯分界,則要用作為函數(shù)結(jié)束標(biāo)識(shí)宏替換可以嵌套使用??键c(diǎn)11測(cè)試函數(shù)1值域測(cè)試函數(shù)格式:BETWEEN(〈表達(dá)式1〉,〈表達(dá)式2>,<表達(dá)式3>)功能:判斷一個(gè)表達(dá)式的值是否介于其他兩個(gè)表達(dá)式的值之間。2空值(NULL)測(cè)試函數(shù)格式:ISNULL(〈表達(dá)式〉)功能:判斷一個(gè)表達(dá)式的運(yùn)算結(jié)果是否為NULL值。3“空”值測(cè)試函數(shù)格式:EMPTY(〈表達(dá)式〉)功能:略。4數(shù)據(jù)類型測(cè)試函數(shù)格式:VARTYPE(〈表達(dá)式>[,〈邏輯表達(dá)式>])功能:測(cè)試表達(dá)式的類型,返回一個(gè)大寫字母,函數(shù)值為字符型。字母含義如表3d所表3-4VARTYPE。測(cè)得的數(shù)據(jù)類型KSSICGMSND日皿¥Blip?T日MMESLXNULL0U■_"-IBM5表文件尾測(cè)試函數(shù)格式:EOF([<工作區(qū)號(hào)>|〈表別名習(xí))功能:測(cè)試當(dāng)前表文件(若默認(rèn)自變量)或指定表文件中的記錄指針是否指向文件尾,若是,則返回邏輯真(.T.),否則為邏輯假(.E)。若在指定工作區(qū)上沒有打開表文件,則函數(shù)返回邏輯假(.F.),若表文件中不包含任何記錄,則函數(shù)返回邏輯真(.T.)。6表文件首測(cè)試函數(shù)格式:BOF(卜工作區(qū)號(hào)>|〈表別名刁)功能:測(cè)試當(dāng)前表義件(若默認(rèn)自變量)或指定表文件中的記錄指針是否指向文件首,若是,則返回邏輯真(.T.),否則為邏輯假(.F.)(若在指定工作區(qū)上沒有打開表文件,則函數(shù)返回邏輯假(.F.),若表文件中不包含任何記錄,則函數(shù)返回邏輯真(.T.)。7記錄號(hào)測(cè)試函數(shù)格式:RECNO(卜工作區(qū)號(hào)>|(表別名>])功能:返回當(dāng)前表文件(若默認(rèn)自變量)或指定表文件中當(dāng)前記錄的記錄號(hào)。如果指定工作區(qū)上沒有打開表文件,則函數(shù)值為0:如果記錄指針指向文件尾,則函數(shù)值為表文件中的記錄數(shù)加1;如果記錄指針指向文件首,則函數(shù)值為表文件中第一條記錄的記錄號(hào)。8記錄個(gè)數(shù)測(cè)試函數(shù)格式:RECCOUNT(卜工作區(qū)號(hào)>|〈表別名〉])功能:返回當(dāng)前表文件(若默認(rèn)自變量)或指定表文件中的記錄個(gè)數(shù)。如果指定工作區(qū)上沒有打開表文件,則函數(shù)值為0,RECCOUNT)函數(shù)不受刪除標(biāo)記及SETDELETED設(shè)置的影響,同樣測(cè)試表中所有的記錄個(gè)數(shù)。9條件測(cè)試函數(shù)格式:HF(〈邏輯表達(dá)式〉,〈表達(dá)式1〉,〈表達(dá)式2>)功能:測(cè)試〈邏輯表達(dá)式>的值,若為邏輯真(1),則函數(shù)返回〈表達(dá)式1>的值,否則返回〈表達(dá)式2〉的值〈表達(dá)式1>和<表達(dá)式2>的類型可以不相同。10記錄刪除測(cè)試函數(shù)格式:DELETED(卜工作區(qū)號(hào)>|<表別名>])功能:測(cè)試當(dāng)前表文件(若默認(rèn)自變量)或指定表文件中,記錄指針?biāo)傅漠?dāng)前記錄是否有刪除標(biāo)記“*若有,則為真,否則為假。4.1VisualFoxPro數(shù)據(jù)庫及其建立考點(diǎn)1建立和使用數(shù)據(jù)庫1數(shù)據(jù)庫的建立(1)在項(xiàng)目管理器中建立數(shù)據(jù)庫。(2)通過“新建”對(duì)話框建立數(shù)據(jù)庫。(3)使用命令建立數(shù)據(jù)庫,格式為:CREATEDATABASE[DatabaseName|?]2數(shù)據(jù)庫的打開(1)在項(xiàng)目管理器中打開。(2)通過“打開”對(duì)話框打開數(shù)據(jù)庫。(3)使用命令打開數(shù)據(jù)庫,格式為:OPENDATABASE[FileName|?][EXCLUSIVEISHARED][NOUPDATE][VALIDATE]考點(diǎn)2修改和刪除數(shù)據(jù)庫VisualFoxPro在建立數(shù)據(jù)庫時(shí)建立了擴(kuò)展名分別為dbc、det和dcx的3個(gè)文件,用戶不能直接修改這些文件。VisualFoxPro中修改數(shù)據(jù)庫實(shí)際是打開數(shù)據(jù)庫設(shè)計(jì)器,完成數(shù)據(jù)庫中各種對(duì)象的建立、修改和刪除等操作??梢杂?種方法打開數(shù)據(jù)庫設(shè)計(jì)器。(1)從項(xiàng)目管理器中打開數(shù)據(jù)庫設(shè)計(jì)器。(2)從“打開”對(duì)話框中打開數(shù)據(jù)庫設(shè)計(jì)器。(3)使用命令打開數(shù)據(jù)庫設(shè)計(jì)器,格式為:MODIFYDATABASE[DatabaseName!?]在項(xiàng)目管理器中不管刪除還是移去數(shù)據(jù)庫文件,都不會(huì)刪除其所包含的各個(gè)對(duì)象做口數(shù)據(jù)表)。如果要在刪除數(shù)據(jù)庫的同時(shí)刪除其所包含的數(shù)據(jù)表,就必須使用命令,格式為:DELETEDATABASEDatabaseName|?[DELETETABLES][RECYCLE]小提示:在VisualFoxPro'4',OpenDataBase和ModifyDataBase命令的區(qū)別在于:OpenDataBase打開的只是數(shù)據(jù)庫的工作環(huán)境,并不會(huì)進(jìn)入數(shù)據(jù)庫設(shè)計(jì)器:ModifyDataBase是打開數(shù)據(jù)庫設(shè)計(jì)器。4.2建立數(shù)據(jù)庫表考點(diǎn)3在數(shù)據(jù)庫中建立表在數(shù)據(jù)庫中建立數(shù)據(jù)表,最直接的方法就是在數(shù)據(jù)庫設(shè)計(jì)器中利用鼠標(biāo)右鍵單擊空白處,選擇“新建表”命令,在彈出的表設(shè)計(jì)器中設(shè)置數(shù)據(jù)表結(jié)構(gòu)。另外可以在命令窗口利用OPENDATA命令先打開數(shù)據(jù)庫,然后利用CREATE命令打開表設(shè)計(jì)器進(jìn)行數(shù)據(jù)表設(shè)計(jì),如圖4-1所示。圖4-1表設(shè)計(jì)器1字段名(1)自由表字段名最長為10個(gè)字符。(2)數(shù)據(jù)庫表字段名最長為128個(gè)字符。(3)字段名必須以字母或漢字開頭。(4)字段名可以由字母、漢字、數(shù)字和下劃線組成。(5)字段名中不能包含空格。2字段類型和寬度(1)字符型:可以是字母、數(shù)字等各種字符型文本,如用戶名稱。(2)貨幣型:貨幣單位,如貨物價(jià)格。(3)數(shù)值型:整數(shù)或小數(shù),如訂貨數(shù)量。(3)浮點(diǎn)型:功能類似于“數(shù)值型”,其長度在表中最長可達(dá)20位。(4)日期型:由年、月、日構(gòu)成的數(shù)據(jù)類型,如訂貨日期。(5)日期時(shí)間型:由年、月、日、時(shí)、分、秒構(gòu)成的數(shù)據(jù)類型,如員工上班的時(shí)間。(6)雙精度型:雙精度數(shù)慎類型,一般用于要求精度很高的數(shù)據(jù)。(7)整型:不帶小數(shù)點(diǎn)的數(shù)值類型,如訂單的行數(shù)。(8)邏輯型:值為“真”(.T.)或假(.F.),如表示訂單是否已執(zhí)行完。(9)備注型:不定長的字符型文本。在表中占4個(gè)字節(jié),表備注型文件的擴(kuò)展名為FPT。(10)通用型:用于標(biāo)記電子表格、文檔、圖片等OLE對(duì)象,在表中占4個(gè)字節(jié)。(11)字符型(二進(jìn)制)。(12)備注型(二進(jìn)制)。3空值一個(gè)字段是否允許為空值與實(shí)際應(yīng)用有關(guān),比如作為關(guān)鍵字的字段是不允許為空值的,而那些在插入記錄時(shí)允許暫缺的字段值往往允許為空值。4字段有效性組框在字段有效性組框中可以定義字段的有效性規(guī)則、違反規(guī)則時(shí)的提示信息和字段的默認(rèn)值。5顯示組框在顯示組框下可以定義字段顯示的格式、輸入的掩碼和字段的標(biāo)題。輸入掩碼是字段的一種屬性,用限制或控制用戶輸入的格式。標(biāo)題用于字段顯示時(shí)的標(biāo)題,如果不指定標(biāo)題則顯示字段名。當(dāng)字段名是英文或縮寫時(shí),則通過指定標(biāo)題可以使界面更友好。6字段注釋可以為每個(gè)字段添加注釋,便于日后或其他人對(duì)數(shù)據(jù)庫進(jìn)行維護(hù)??键c(diǎn)4修改表結(jié)構(gòu)在VisualFoxPro中可以對(duì)表結(jié)構(gòu)任意修改,修改表結(jié)構(gòu)和建立表結(jié)構(gòu)時(shí),表設(shè)計(jì)器界面完全一樣。修改數(shù)據(jù)表結(jié)構(gòu)時(shí),首先應(yīng)該用USE命令打開要修改的數(shù)據(jù)表,然后利用MODIFYSTRUCTURE打開表設(shè)計(jì)器進(jìn)行修改,具體操作有以下幾種。(1)修改己有字段。(2)添加新字段。(3)刪除不用的字段。4.3表的基本操作考點(diǎn)5使用瀏覽器操作表在交互式工作方式下,最簡單、方便的方法就是使用BROWSE瀏覽器瀏覽表,打開瀏覽器的方法有多種。在項(xiàng)目管理器中將數(shù)據(jù)庫展開至表,然后單擊“瀏覽”按鈕,或直接在窗口中輸入BROWSE命令(首先應(yīng)該打開表文件)。1瀏覽器操作(1)下一記錄(下箭頭鍵)。(2)前一記錄(上箭頭鍵)。F??頁(PageDown鍵)。(4)上一頁(PageUp鍵)。(5)下一字段(Tab鍵)。(6)前一字段(Shift+Tab鍵)。2修改記錄只需將光標(biāo)定位到要修改的記錄和字段上,就可以進(jìn)行修改了。3刪除記錄VisualFoxPro中刪除記錄有邏輯刪除和物理刪除兩種,邏輯刪除只在記錄旁做刪除標(biāo)記(如圖4-2所示),必要時(shí)可以進(jìn)行恢復(fù)物理刪除是在邏輯刪除的基礎(chǔ)上真正地將記錄從表中刪除。要在瀏覽器中刪除有刪除標(biāo)記的記錄,可選擇“表/徹底刪除''菜單命令。圖4-2增加和刪除記錄
3兇20030;3兇20030;考點(diǎn)6增加、刪除、修改和顯示記錄的命令1增加記錄APPEND命令是在表的尾部增加記錄,格式有如下兩種。格式1:APPEND格式2:APPENDBLANK2插入記錄格式:INSERT[BEFORE][BLANK]3刪除記錄刪除記錄有物理刪除和邏輯刪除兩種,VisualFoxPro用來刪除記錄的命令如下。(1)設(shè)置刪除標(biāo)記的命令格式:DELETE[FORlExpressionl]說明:如果不使用FOR短語指定邏輯條件,則只刪除當(dāng)前記錄,否則邏輯刪除滿足條件的所有記錄。(2)恢復(fù)記錄的命令。格式:RECALL[FORlExpressionl]說明:使用該命令恢復(fù)表中邏輯刪除的記錄,短語FOR的功能同上。(3)物理刪除有刪除標(biāo)記的記錄格式:PACK說明:此命令用來物理刪除當(dāng)前表中所有帶刪除標(biāo)記的記錄。(4)物理刪除表中的全部記錄格式:ZAP說明:不管表中記錄是否帶有刪除標(biāo)記,此命令可以一次性將當(dāng)前表中的記錄全部物理刪除,但表結(jié)構(gòu)仍保留使用此命令相當(dāng)于DELETEALL與PACK的連用。4修改記錄在VisualFoxPro中可以交互修改記錄,也可以用指定值直接修改記錄。⑴用EDIT或CHANGE命令交互式修改。(2)用REPLACE命令直接修改。5顯示記錄格式:LIST/DISPLAY[[FIELDS]FieldList][FORLExpressionl][OFF][TOPRINTER[PROMPT]|TOFILEFileName]考點(diǎn)7查詢定位的命令(1)用GOTO命令直接定位(2)SKIP命令(3)用LOCATE命令定位。LOCATE命令是按條件定位記錄位置,格式為:LOCATEFORlExpressionlLOCATE命令常用結(jié)構(gòu)如下。LOCATEFORlExpressionlDOWHILEFOUND()*處理數(shù)據(jù)***CONTINUEENDDO小提示:連續(xù)使用DELETEALL和PACK命令,其操作結(jié)果與ZAP命令一樣,都可以將表中的所有記錄一次性物理刪除。索引與排序考點(diǎn)8索引的基本概念索引是對(duì)表中的記錄按照某種邏輯順序重新排列。⑴主索引:在指定的字段或表達(dá)式中不允許出現(xiàn)重愛值的索引,且一個(gè)表只能創(chuàng)建一個(gè)主索引。(2)候選索引:具有與主索引相同的性質(zhì)和功能,但一個(gè)表中可以創(chuàng)建多個(gè)候選索引,其指定的字段或表達(dá)式中也不允許出現(xiàn)重復(fù)值。(3)唯一索引:它的“唯一性”是指索引項(xiàng)的唯一,而不是字段值的唯一。但在使用該索引時(shí),重復(fù)的索引段值只有唯一一個(gè)值出現(xiàn)在索引項(xiàng)中。(4)普通索引:不僅允許字段中出現(xiàn)重復(fù)值,并且索引項(xiàng)中也允許出現(xiàn)重復(fù)值??键c(diǎn)9索引的建立1單項(xiàng)索引在表設(shè)計(jì)器界面中有“字段”、”索引”和“表”3個(gè)選項(xiàng)卡,在“字段”選項(xiàng)卡中定義字段時(shí)就可以直接指定某些字段是否為索弓I項(xiàng),用鼠標(biāo)單擊定義索引的下拉列表框可以看到3個(gè)選項(xiàng):無、升序和降序(默認(rèn)是無)。如果選定升序或降序,則在對(duì)應(yīng)的字段上建立一個(gè)普通索引,索引名與字段名同名,索引表達(dá)式就是對(duì)應(yīng)的字段。2復(fù)合字段索引⑴在嗦引”選項(xiàng)卡中的索引名欄目中輸入索引名。(2)在索引類型的下拉框中選擇索引類型。(3)單擊表達(dá)式欄右側(cè)的按鈕,打開表達(dá)式生成器。(4)在“表達(dá)式”文本框中輸入索引表達(dá)式(如圖4-3所示),最后單擊“確定”按鈕。圖4-3表達(dá)式生成器界面3使用命令建立索引格式:INDEXONeExpressionTOIDXFileName|TAGTagName[OFCDXFileName][FORlExpression][COMPACT][ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]從索引的組織方式來講,索引共有3種類型。(1)單獨(dú)的IDX索引,是一種非結(jié)構(gòu)索引。(2)采用非默認(rèn)名的CDX索引,也是一種非結(jié)構(gòu)復(fù)合索引.(3)與表同名的CDX索引,是結(jié)構(gòu)復(fù)合索引。結(jié)構(gòu)復(fù)合索引文件可隨表的打開而打開,在同一個(gè)索引文件中能包含多個(gè)索引方案或索引關(guān)鍵字,在添加、更改或刪除記錄時(shí)自動(dòng)維護(hù)索引??键c(diǎn)10索引的使用⑴打開索引文件,格式為:SETINDEXTOIndexfilelist(2)設(shè)置當(dāng)前索引,格式為:SETORDERTO[nlndexNumber|[TAG]TagName][ASCENDING|DESCENDING](3)使用索引快速定位,格式為:SEEKeExpression[ORDERnIndexNumber|[TAG]TagName][ASCENDING|DESCENDING](4)刪除索引,格式為:DELETETAGTagNamel&&TagName1為索引名要?jiǎng)h除全部索引,可使用命令:DELETETAGALL考點(diǎn)11排序索引可以使用戶按照某種順序?yàn)g覽或查找表中的記錄,這種順序是邏輯的,如耍對(duì)表中的記錄按物理順序重新排列,可使用SORT命令,格式為:SORTTOTableNameONFieldNainel[/A}/D][/C][,FieldName2[/A|/D][/C]...][ASCENDING|DESCENDING][FORlExpressionl][FIELDSFieldNameList]小提示:在數(shù)據(jù)庫表中只能有一個(gè)主索引,且只能在表設(shè)計(jì)器中建立。其他3種索引可以建立多個(gè),既能在表設(shè)計(jì)器中建立,也能以命令方式建立,但在自由表中不能為其創(chuàng)建主索引,只能創(chuàng)建后3種索引,同樣也可以建立多個(gè)。數(shù)據(jù)完整性考點(diǎn)12實(shí)體完整性與主關(guān)健字(1)實(shí)體完整性是保證表中記錄唯一的特性,即在同一個(gè)表中不允許有重復(fù)的記錄出現(xiàn)。在VisualPro中通過主索引和候選索引來保證數(shù)據(jù)的實(shí)體完整性。(2)如果一個(gè)字段的值或幾個(gè)字段的值能夠唯一標(biāo)志表中的一條記錄,則稱這個(gè)字段為候選關(guān)鍵字。在VisualFoxPro中將主關(guān)鍵字稱做主索引,將候選關(guān)鍵字稱為候選索引??键c(diǎn)13參照完整性與表之間的關(guān)聯(lián)1建立表之間的聯(lián)系參照完整性與表之間的聯(lián)系有關(guān),其含義大致是:當(dāng)插入、刪除或修改一個(gè)表中的數(shù)據(jù)時(shí),通過參照引用相互關(guān)聯(lián)的另一個(gè)表中的數(shù)據(jù),檢查對(duì)表的數(shù)據(jù)操作是否正確。在數(shù)據(jù)庫設(shè)計(jì)器中設(shè)計(jì)表之間的聯(lián)系時(shí),要在父表中建立主索引,在子表中建立普通索引,然后通過父表主索引和子表的普通索引建立起兩個(gè)表之間的聯(lián)系。2設(shè)置參照完整性約束建立參照完整性之前,首先必須清理數(shù)據(jù)庫,即物理刪除表中被邏輯刪除的記錄,然后選擇兩個(gè)關(guān)聯(lián)表之間的連線并選擇“數(shù)據(jù)庫”、"編輯參照完整性''菜單命令,打開如圖44所示的“參照完整性生成器''對(duì)話框。??I?I?■■ - >*--..._ ??1硼般I 噸]—“I圖44“參照完整性生成器”對(duì)話框小提示:欲建立兩表之間的聯(lián)系,首先用鼠標(biāo)選中一個(gè)表的主索引,按住鼠標(biāo)左鍵不放,并拖動(dòng)鼠標(biāo)到另一個(gè)表的索引上,這時(shí)鼠標(biāo)箭頭變成小矩形狀,最后釋放鼠標(biāo)。4.6自由表考點(diǎn)14數(shù)據(jù)庫表與自由表自由表是不屬于任何數(shù)據(jù)庫的表。在沒有打開數(shù)據(jù)庫時(shí),所建立的表就是自由表。數(shù)據(jù)庫表與自由表之間可以相互轉(zhuǎn)化。1建立自由表的方法(1)在項(xiàng)目的“數(shù)據(jù)”選項(xiàng)卡中選擇“自由表”,單擊“新建”按鈕。(2)在沒有打開數(shù)據(jù)庫的情況下,通過“新建”對(duì)話框,選擇“表”并單擊"新建文件”按鈕。(3)在沒有打開數(shù)據(jù)庫的情況下,在命令窗口輸入CREATE命令,新建自由表。2數(shù)據(jù)庫表相對(duì)于自由表的特點(diǎn)⑴數(shù)據(jù)庫表可以使用長表名,在表中可以使用長字段名。(2)可以為數(shù)據(jù)庫表中的字段指定標(biāo)題和添加注釋。(3)可以為數(shù)據(jù)庫表中的字段指定默認(rèn)值和輸入掩碼。(4)數(shù)據(jù)庫表的字段有默認(rèn)的控件類。(5)可以為數(shù)據(jù)庫表規(guī)定字段級(jí)規(guī)則和記錄級(jí)規(guī)則。(6)數(shù)據(jù)庫表支持主關(guān)犍字、參照完整性和表之間的聯(lián)系。(7)支持INSERT,UPDATE和DELETE事件的觸發(fā)器。考點(diǎn)15將自由表添加到數(shù)據(jù)庫中(1)在數(shù)據(jù)庫設(shè)計(jì)器中可利用“數(shù)據(jù)庫”—“添加表''菜單命令,在“打開”對(duì)話框中選擇自由表文件,將其添加到數(shù)據(jù)庫中。(2)直接用命令方式將自由表添加到當(dāng)前數(shù)據(jù)庫中,格式為:ADDTABLETableName|?[NAMELongTableName]考點(diǎn)16從數(shù)據(jù)庫中移出表(1)直接利用命令移出數(shù)據(jù)庫表,格式為:REMOVETABLETableName|?[DELETE][RECYCLE](2)從項(xiàng)目管理器中移出數(shù)據(jù)庫。(3)從數(shù)據(jù)庫設(shè)計(jì)器中移出數(shù)據(jù)庫。4.7多個(gè)表的同時(shí)使用在VisualFoxPro中,一次可以打開多個(gè)數(shù)據(jù)庫,每個(gè)數(shù)據(jù)庫都可以打開多個(gè)數(shù)據(jù)表??键c(diǎn)17多工作區(qū)的概念指定工作區(qū)的命令格式為SELECTnWorkArea|cTableAlias,每個(gè)表打開后都有兩個(gè)默認(rèn)別名,一個(gè)是表的自身名,另一個(gè)是工作區(qū)所對(duì)應(yīng)的別名。在前10個(gè)工作區(qū)中指定的默認(rèn)別名是工作區(qū)字母A?J,其后面的工作區(qū)所對(duì)應(yīng)的別名為W11?W32767。另外還可以在USE命令中通過ALIAS短語指定表別名。例如:USE學(xué)生表IN1ALIASstudent,為學(xué)生表指定了別名studento考點(diǎn)18使用不同工作區(qū)的表除了使用SELECT命令切換不同的工作區(qū)之外,也可以在一個(gè)工作區(qū)使用其他工作區(qū)的數(shù)據(jù)表。即通過短語:INnWorkArea|cTableAlias。在表別名后加上".’喊操作符,可在一個(gè)工作區(qū)中直接調(diào)用其他工作區(qū)中數(shù)據(jù)表的記錄。例如當(dāng)前工作區(qū)號(hào)為2,要調(diào)用1區(qū)上學(xué)生表中的班級(jí)號(hào)的相關(guān)字段,可使用命令:學(xué)生表.班級(jí)號(hào)或?qū)W生表->班級(jí)號(hào)或A.班級(jí)號(hào)或A->班級(jí)號(hào)考點(diǎn)19表之間的關(guān)聯(lián)使用SETRELATION命令建立表間記錄指針的臨時(shí)聯(lián)系(關(guān)聯(lián))。格式:SETRELATIONTOeExpressionlINTOnWorkArealIcTableAliasl。說明:eExpressionl是指建立臨時(shí)聯(lián)系的索引關(guān)鍵字,一般是父表的主索引,子表的普通索引。用工作區(qū)號(hào)nWorkAreal或表的別名cTableAliasI說明臨時(shí)聯(lián)系是由當(dāng)前工作區(qū)的表到哪個(gè)表。利用SETRELATIONTO命令將取消當(dāng)前表到所有表的臨時(shí)聯(lián)系。SQL概述考點(diǎn)1概述1概念SQL是結(jié)構(gòu)化查詢語言StructuredQueryLanguage的縮寫。它包括數(shù)據(jù)查詢、數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制4部分。VisualFoxPro在SQL方面支持?jǐn)?shù)據(jù)定義、數(shù)據(jù)查詢和數(shù)據(jù)操縱功能。另外,由于VisualFoxPro自身在安全控制方面的缺陷,所以它沒有提供數(shù)據(jù)控制功能。2SQL語言的特點(diǎn)一種一體化的語言。(2)一種高度非過程化的語言。(3)語言非常簡潔。(4)可以直接以命令方式交互使用,也可以以程序方式使用。5.2查詢功能SQL的核心是查詢,基本形式由SELECT-FROM-WHERE查詢塊組成,多個(gè)查詢塊可嵌套執(zhí)行,如表5-1所示。SQL功能命令動(dòng)調(diào)rw虬SELECT、ALTER數(shù)據(jù)操縱拓Sit,胸疑]敷據(jù)控制GRANT.REVOKE表5-1SQL命令動(dòng)詞考點(diǎn)2簡單查詢1簡單查詢簡單查詢是由SELECT和FROM短語構(gòu)成的無條件查詢,或山SELECT,FROM和WHERE短語構(gòu)成的條件查詢。2簡單的連接查詢連接是關(guān)系的基本操作之一,連接查詢是一種基于多個(gè)關(guān)系的查詢。3嵌套查詢嵌套查詢所要求的結(jié)果出自一個(gè)關(guān)系,但關(guān)系的條件卻涉及多個(gè)關(guān)系。其內(nèi)層基本上也是一個(gè)SELECT-FROM-WHERE查詢語句。這種簡單嵌套查詢,可使用謂詞IN或NOTN來判斷在外層的查詢條件中是否包含內(nèi)層查詢的結(jié)果。考點(diǎn)3特殊運(yùn)算符號(hào)BETWEEN...AND...含義:該查詢的條件是在……范圍之內(nèi),相當(dāng)于用AND連接的一個(gè)邏輯表達(dá)式。LIKE含義:它是一個(gè)字符串匹配運(yùn)算符,與之搭配使用的通配符包括“*”和考點(diǎn)4排序使用SQLSELECT可以將查詢結(jié)果進(jìn)行排序,排序的短語是ORDERBY。格式:ORDERBYOrder」tem[ASCIDESC][,OrderItem[ASC|DESC]...]說明:可以按升序(ASC)或降序(DESC)排序,允許按一列或多列排序??键c(diǎn)5計(jì)算查詢1簡單的計(jì)算查詢SQL不僅具有一般的檢索能力,而且還有計(jì)算方式的檢索,用于計(jì)算檢索的函數(shù)有:COUNT(計(jì)數(shù))、SUM(求和)、AVG(計(jì)算平均值)、MAX(求最大值)及MIN(求最小值)。2分組與計(jì)算查詢?cè)赟QLSELECT中可以利用GROUPBY子句進(jìn)行分組計(jì)算查詢。格式:GROUPBYGroupColumn[,GroupColumn...][HAVINGFilterCondition]說明:可以按一列或多列分組,還可以用HAVING子句進(jìn)一步限定分組的條件。它必須跟在GROUPBY子句之后,不可單獨(dú)使用,與WHERE子句并不矛盾??键c(diǎn)6別名和自連接查詢(l)SQL語句允許在二OM短語中為關(guān)系定義別名,格式為:一〈關(guān)系名〉<別名〉SQL不僅可以對(duì)多個(gè)關(guān)系進(jìn)行連接操作,也可以將同一關(guān)系與其自身進(jìn)行連接,這種連接就稱為自連接。在關(guān)系的自連接操作中,別名是必不可少的??键c(diǎn)7使用量詞和謂詞的查詢與嵌套查詢或子查詢有關(guān)的運(yùn)算符,除了IN和NOTIN運(yùn)算符外,還有兩類與子查詢有關(guān)的運(yùn)算符,它們有以下兩種格式。⑴〈表達(dá)式x比較運(yùn)算符>[ANYIALL|SOME](子查詢)(2)[NOT]EXISTS(子查詢)EXISTS是謂詞,EXISTS或NOTEXISTS是用來檢查在子查詢中是否有結(jié)果返回,即存在元組或不存在元組。其本身并沒有進(jìn)行任何運(yùn)算或比較,只用來返回子查詢結(jié)果。考點(diǎn)8超鏈接查詢(1)在新的SQL標(biāo)準(zhǔn)中支持兩個(gè)新的關(guān)系連接運(yùn)算符,這兩個(gè)新的連接運(yùn)算是左連接(*=)和右連接=*):首先保證一個(gè)表中滿足條件的元組都在結(jié)果表中,然后將滿足連接條件的元組與另一個(gè)表的元組進(jìn)行連接,不滿足連接條件的則應(yīng)將來自另一個(gè)表的屬性值置為空值。在一般SQL中超鏈接運(yùn)算符是“*="(左連接)和“=*"(右連接)。(2)在VisualFoxPro中不支持超鏈接運(yùn)算符“*="和VisualFoxPro有專門的連接運(yùn)算。下面拼出SQL中超鏈接的部分語句格式:SELECT...FROMTableINNER|LEFT|RIGHT|FULLJOINTableONJoinConditionWHERE...考點(diǎn)9VisualFoxPro中SQLSELECT的幾個(gè)特殊選項(xiàng)⑴顯示部分結(jié)果,格式為:TOPnExpr[PERCENT](2)將查詢結(jié)果存放到數(shù)組中,格式為:INTOARRAYArrayName(3)將查詢結(jié)果存放到臨時(shí)文件中,格式為:INTOCURSORCursorName(4)將查詢結(jié)果存放到永久表中,格式為:INTODBF|TABLETableName(5)將查詢結(jié)果存放到文本文件中,格式為:TOFILEFileName[ADDITIVE](6)將查詢結(jié)果直接輸出到打印機(jī),格式為:TOPRINTER[PROMPT]操作功能考點(diǎn)10插入VisualFoxPro支持兩種SQL插入命令的格式,一種是標(biāo)準(zhǔn)格式,另一種是特殊格式。1標(biāo)準(zhǔn)格式INSERTINTOdbfname[(frame1[?fhame2,...])]VALUES(eExpressionl[,eExpression2,...])2特殊格式INSERTINTOdbf_nameFROMARRAYArrayName|FROMMEMVAR考點(diǎn)11更新SQL的數(shù)據(jù)更新命令格式如下:UPDATETableNameSETColumn_Namel=eEpressionl[,Column_Name2=eExpression2…]WHERECondition說明:利用WHERE字句指定條件,以更新滿足條件的一些記錄的字段值,并巨一次可更新多個(gè)字段;如果不使用WHERE子句,則更新全部記錄??键c(diǎn)12刪除SQL從表中刪除數(shù)據(jù)的命令格式如下:DELETEFROMTableName[WHERECondition]說明:FROM指定從哪個(gè)表中刪除記錄,WHERE指定被刪除的記錄所滿足的條件,如果不使用WHERE子句,則刪除該表中的全部記錄。小提示:當(dāng)一個(gè)表定義一個(gè)主索引或候選索引后,由于相應(yīng)的字段具有關(guān)鍵字的特性,即不能為空,所以只能用此命令插入記錄、)APPEND和INSERT都是插入一條空白記錄再輸入各字段的值,故不能用它們來插入記錄。定義功能考點(diǎn)13表的定義利用SQL命令建立的數(shù)據(jù)表同樣可以完成在表設(shè)計(jì)器中設(shè)計(jì)表的所有功能。格式:CREATETABLEIDBFTableNamel[NAMELongTableName][FREE](FieldNamelFieldType[(nFieldWidth[,nPrecision])][NULL|NOTNULL][CHECKlExpressionl[ERRORcMessageTextl]][DEFAULTeExpressionl][PRIMARYKEYIUNIQUE][REFERENCESTableName2[AGTagNamel]][NOCPTRANS][,FieldName2...][,PRIMARYKEYeEpression2TAGTagName2|,UNIQUEeExpression3TAGTagName3][,FOREIGNKEYeExpression4TagNamc4[NODUP]REFERENCESTableName3[TAGTagName5]][,CHECKlExpression2[ERRORcMessagcTcxt2]])|FROMARRAYArravNasne說明:此命令除了建立表的基本功能外,還包括滿足實(shí)體完整性的主關(guān)鍵字(主索引)PRIMARYKEY、定義域完整性的CHECK約束及出錯(cuò)提示信息ERROR、定義默認(rèn)值DEFAULT等,另外還有描述表之間聯(lián)系的FOREIGNKEY和REFERENCES等??键c(diǎn)14表的刪除利用SQL命令刪除表,可直接使用語句,格式為:DROPTABLETablename說明:如果刪除的是自由表,則應(yīng)該將當(dāng)前打開的數(shù)據(jù)庫先關(guān)閉,才能進(jìn)行刪除。如果刪除數(shù)據(jù)庫表,則要先打開數(shù)據(jù)庫,在數(shù)據(jù)庫中進(jìn)行操作二否則,即使刪除了數(shù)據(jù)庫表,但記錄在數(shù)據(jù)庫中的信息并沒有被刪除,此后會(huì)出現(xiàn)錯(cuò)誤提示。考點(diǎn)15表結(jié)構(gòu)的修改修改表結(jié)構(gòu)的命令是ALTERTABLE,該命令有3種格式。(l)ALTERTABLETableNamelADD|ALTER[COLUMN]FieldNamelFieldTvpe[(nFicldWidth[,nPrecision])][NULL|NOTNULL][CHECKlExpressionl[ERRORcMessageTextl]][DEFAULTeExpressionl][PRIMARYKEY|UNIQUE][REFERENCESTableName2[TAGTagNamel)](2)ALTERTABLETableNamelALTER[COLUMN]FieldName2[NULL|NOTNULL][SETEFAULTeExpression2][SETCHECK!Expression2[ERRORcMessageText2][DROPDEFAULT][DROPCHECK](3)ALTERTABLETableNamel[DROP[COLUMN]FieldName3][SETCHECK!Expression3[ERRORcMessageText3][DROPCHECK][ADDPRIMARYKEYeExpression3TAGTagName2[FOR!Expression4]][DROPPRIMARYKEY)[ADDUNIQUEeExpression4[TAGTagName3[FOR!Expression5]]][DROPUNIQUETAGTagName4][ADDFOREIGNKEY[eExpression5]TAGTagName4[FORlExpression6]REFERENCESTableName2[TAGTagName5]][DROPFOREIGNKEYTAGTagName6[SAVE]][RENAMECOLUMNFieldName4TOFieldName5]考點(diǎn)16視圖的定義1視圖的概念及其定義⑴視圖的概念。VisualFoxPro中視圖是一個(gè)虛擬的表,可以是本地的、遠(yuǎn)程的或帶參數(shù)的。(2)視圖的定義,格式為:CREATEVIEWviewname[(column_name[,columnname]...)]ASselectstatement2從單個(gè)表派生出來的視圖視圖一經(jīng)定義,就可以和基本表一樣進(jìn)行各種查詢,也可以進(jìn)行一些修改操作。對(duì)于最終用戶來說,有時(shí)并不需要知道操作的是基本表還是視圖。3從多個(gè)表派生出來的視圖視圖一方面可以限定對(duì)數(shù)據(jù)的訪問,另一方面又可以簡化對(duì)數(shù)據(jù)的訪問。4視圖的刪除視圖由于是從表派生出來的,所以不存在修改結(jié)構(gòu)的問題,但是視圖可以刪除。格式:DROPVIEWv視圖名〉5關(guān)于視圖的說明在關(guān)系數(shù)據(jù)庫中,視圖始終不真正含有數(shù)據(jù),它總是原有表的一個(gè)窗口。所以,雖然視圖可以像表一樣進(jìn)行各種查詢,但是插入、更新和刪除操作在視圖上卻有一定限制。在一般情況下,當(dāng)一個(gè)視圖是由單個(gè)表導(dǎo)出時(shí)可以進(jìn)行插入和更新操作,但不能進(jìn)行刪除操作;當(dāng)視圖是從多個(gè)表導(dǎo)出時(shí),插入、更新和刪除操作都不允許進(jìn)行。這種限制是很有必要的,它可以避免一些潛在問題的發(fā)生。7.1程序與程序文件考點(diǎn)1程序的概念、建立與執(zhí)行1程序的概念程序是能夠完成一定任務(wù)的命令集合。這組命令被存放在稱為程序文件或命令文件的文本文件中。當(dāng)運(yùn)行程序時(shí),系統(tǒng)會(huì)按照一定的次序自動(dòng)執(zhí)行包含在程序文件中的命令。2程序文件的建立與修改程序文件的建立與修改一般是通過調(diào)用系統(tǒng)內(nèi)置的文本編輯器來進(jìn)行的。其建立步驟如下。(I)打開文本編輯窗口。(2)在文本編輯窗口中輸入程序內(nèi)容,此處所輸入的程序命令不會(huì)馬上被執(zhí)行。(3)編輯完成后,從“文件”菜單中選擇“保存”命令或按快捷鍵Ctrl+W保存程序文件。3打開或修改程序文件的方法(1)從“文件”菜單中選擇“打開”命令,彈出“打開”對(duì)話框。(2)在“文件類型”列表框中選擇“程序”o(3)在文件列表框中選定要修改的文件,并單擊“確定”按鈕。(4)編輯修改后,從“文件”菜單中選擇“保存”命令或按快捷鍵Ctrl+W保存程序文件,若要放棄修改,可直接按Esc鍵,或從“文件”菜單中選擇“還原”命令。4程序文件的執(zhí)行程序文件建立后,可使用多種方式、多次執(zhí)行它,常用的以下有兩種方式。⑴菜單方式。(2)命令方式??键c(diǎn)2簡單的輸入輸出命令程序一般都包含數(shù)據(jù)輸入、數(shù)據(jù)處理和數(shù)據(jù)輸出3個(gè)部分。INPUT命令格式:INPUT卜字符表達(dá)式刁TO<內(nèi)存變量〉功能:該命令等待用戶從犍盤輸入數(shù)據(jù),當(dāng)用戶回車后,系統(tǒng)將表達(dá)式的值存入指定的內(nèi)存變量。注釋:輸入的數(shù)據(jù)可以是常量、變量,也可以是更為一般的表達(dá)式。但不能不輸入任何內(nèi)容直接按回車鍵輸入字符串時(shí)必須加定界符,輸入邏輯型常量時(shí)要用圓點(diǎn)定界(如.T.,.F.),則輸入日期時(shí)間型常量時(shí)要用大括號(hào)(如{A2001-03-01))。ACCEPT命令格式:ACCEPT[〈字符表達(dá)式>]TO〈內(nèi)存變量〉功能:該命令等待用戶從鍵盤輸入字符串,當(dāng)用戶回車后,系統(tǒng)將表達(dá)式的值存入指定的內(nèi)存變量。注釋:該命令只能接收字符串。用戶在輸入字符串時(shí)不需要加定界符;否則,系統(tǒng)會(huì)把定界符作為字符串本身的一部分。如果不輸入任何內(nèi)容而直接按回車鍵,系統(tǒng)會(huì)把空串賦給指定的內(nèi)存變量。WAIT命令格式:WAIT[〈字符表達(dá)式〉][T0<內(nèi)存變量>][WINDOW[AT<行>,<列>]][NOWAIT][CLEARINOCLEAR][TIMEOUT(數(shù)值表達(dá)式>]功能:該命令顯示字符表達(dá)式的值作為提示信息,暫停程序的執(zhí)行,直到用戶按任意鍵或單擊鼠標(biāo)時(shí)繼續(xù)程序運(yùn)行。注釋:〈內(nèi)存變量〉用來保存用戶輸入的字符,其類型為字符型。若用戶按的是Enter鍵或單擊了鼠標(biāo),那么〈內(nèi)存變量〉中保存的將是空串若不選TO〈內(nèi)存變量〉短語,則輸入的單字符不保留。小提示:如果用DO命令執(zhí)行查詢文件、菜單文件,在文件名中必須要包括擴(kuò)展名(QPR、MPR)。7.2程序的基本結(jié)構(gòu)程序結(jié)構(gòu)是指程序中命令或語句執(zhí)行的流程結(jié)構(gòu),包括3種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)??键c(diǎn)3順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡單的程序結(jié)構(gòu),它是按命令在程序中出現(xiàn)的先后次序依次執(zhí)行??键c(diǎn)4選擇結(jié)構(gòu)支持選擇結(jié)構(gòu)的語句包括條件語句和分支語句。1條件語句格式:IF<條件>〈語句序列1>[ELSE>〈語句序列2>]ENDIF功能:該語句根據(jù)<條件>是否成立從兩組代碼中選擇一組執(zhí)行。語句的執(zhí)行流程圖如圖7-1和圖7-2所示。圖7-1有ELSE的選擇語句 圖7-2無ELSE的選擇語句2分支語句格式:DOCASECASE<條件1>〈語句序列1>CASE<條件2>〈語句序列2>CASEV條件n>〈語句序列n>[OTHERWISE〈語句序列習(xí)ENDCASE功能:語句執(zhí)行時(shí),依次判斷CASE后面的條件是否成立。分支語句實(shí)現(xiàn)的是一種擴(kuò)展的選擇結(jié)構(gòu),可以根據(jù)條件從多組代碼中選擇一組執(zhí)行。分支語句的流程如圖7-3所示。圖7-3多分支語句考點(diǎn)5循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)也稱為重復(fù)結(jié)構(gòu),是指程序在執(zhí)行的過程中,其中的某段代碼被市復(fù)執(zhí)行若一干珠。被重復(fù)執(zhí)行的代碼段,通常稱為循環(huán)體。VisualFoxPro支持循環(huán)結(jié)構(gòu)的語句包括:DOWHILE-ENDDO,FOR-ENDFOR和SCAN-ENDSCAN。DOWHILE-ENDDO語句格式:DOWHILE<條件>〈語句序列1>[LOOP]〈語句序列2>[EXIT]〈語句序列3>ENDDO功能:首先判斷循環(huán)條件是否為真,如果成立則執(zhí)行DOWHILE和ENDDO之間的命令序列,如果遇到LOOP語句,則回到DOWHILE處繼續(xù)執(zhí)行,遇到EXIT語句,則退出
循環(huán)體;當(dāng)執(zhí)行到ENDDO時(shí),再次返回DOWHILE處判斷循環(huán)條件,一直到條件為假時(shí),退出循環(huán)體,執(zhí)行ENDDO之后的語句。DOWHILE循環(huán)語句的控制流程如圖7-4和圖7-5所示。然壞體堵句然壞體堵句圖74基本循環(huán)結(jié)構(gòu)圖 7-5含有LOOP或EXIT的循環(huán)FOR-ENDFOR語句格式:FOR<循環(huán)變量>=<初值>TCK終值>[STEP<步長刁〈循環(huán)體〉ENDFOR功能:首先將初值賦給循環(huán)變量,然后判斷循環(huán)條件是否成立(若步長為正值,則循環(huán)條件為〈循環(huán)變量><=<終值〉;若步長為負(fù)值,則循環(huán)條件為〈循環(huán)變量>>=<終值>)。如果成立,則執(zhí)行循環(huán)體,然后循環(huán)變量增加一個(gè)步長值,并再次判斷循環(huán)條件,一直到條件為假時(shí),退出循環(huán)體。該語句通常用于實(shí)現(xiàn)循環(huán)次數(shù)已知情況下的循環(huán)結(jié)構(gòu))SCAN-ENDSCAN語句格式:SCAN卜范圍>][FOR<條件1>][WHERE(條件2>]〈循環(huán)體〉ENDSCAN功能:該循環(huán)語句一般用于處理表中記錄,語句可指明需要處理的記錄范圍及應(yīng)滿足的條件。執(zhí)行該語句時(shí),記錄指針自動(dòng)、依次地在當(dāng)前表的指定范圍內(nèi)滿足條件的記錄上移動(dòng),對(duì)每一條記錄執(zhí)行循環(huán)體內(nèi)的命令。.3多模塊程序模塊是一個(gè)相對(duì)獨(dú)立的程序段,它可以被其他模塊調(diào)用,也可以調(diào)用其他模塊。通常,把被其他模塊調(diào)用的模塊稱為子程序,把調(diào)用其他模塊而沒有被其他模塊調(diào)用的模塊稱為主程序。應(yīng)用程序一般都是多模塊程序,包含多個(gè)程序模塊。考點(diǎn)6模塊的定義和調(diào)用1模塊的定義在VisualFoxPro中,模塊可以是命令文件,也可以是過程。過程定義的語句格式為:PROCEDUREFUNCTION〈過程名〉〈命令序列》[RETURN卜表達(dá)式刁][ENDPROCIENDFUNC]功能說明如下。(1)PROCEDURE|FUNCTION命令表示一個(gè)過程的開始,并命名過程。過程名必須以字母或下劃線開頭,可以包含數(shù)字、字母和下劃線。(2)當(dāng)程序執(zhí)行到RETURN命令時(shí),控制將轉(zhuǎn)回到調(diào)用處(或命令窗口),并返回表達(dá)式的值。若默認(rèn)RETURN命令,系統(tǒng)將在過程結(jié)束處自動(dòng)調(diào)用一條隱含的RETURN命令。(3)ENDPROC|ENDFUNC命令表示一個(gè)過程的結(jié)束。如果默認(rèn)此語句,那么過程結(jié)束于下一條PROCEDURE|FUNCTION命令或文件尾。2模塊的調(diào)用模塊調(diào)用的格式有兩種。(1)使用DO命令,格式如下。DO<文件名>|〈過程名〉(2)在名字后加一對(duì)小括號(hào),格式如下?!次募祙〈過程名>()3打開過程文件命令格式如下。SETPROCEDURETO卜過程文件1>[,〈過程文件2>,…"ADDITIVE]4關(guān)閉過程文件命令格式如下。RELEASEPROCEDURE〈過程文件1>[,〈過程文件2>,…]考點(diǎn)7參數(shù)傳遞模塊程序可以接收調(diào)用程序傳遞過來的參數(shù)。(l)PARAMETERSv形參變量1>[,<形參變量2>,…]。(2)LPARAMETERS<形參變量1>[,<形參變量2>,…]。說明PARAMETERS聲明的形參被看做是模塊程序中建立的私有變量,LPARAMETERS聲明的形參被看做是模塊程序中建立的局部變量。除此之外,兩條命令無其他區(qū)別。不管是PARAMETERS或LPARAMETERS,都應(yīng)該是模塊程序的第一條可執(zhí)行命令。(1)調(diào)用參數(shù)調(diào)用模塊程序參數(shù)的格式如下。D0<文件名>|〈過程名〉WITH<實(shí)參1>[,<實(shí)參2>,…]〈文件名〉|〈過程名〉(〈實(shí)參1>[,<實(shí)參2>,…])說明:實(shí)參可以是常量、變量或一般表達(dá)式,調(diào)用模塊程序時(shí),形參的數(shù)目不能少于實(shí)參的數(shù)目,當(dāng)形參數(shù)目多于實(shí)參數(shù)目時(shí),多余的形參取初值邏輯假(2)參數(shù)的傳遞。模塊中參數(shù)的傳遞分為兩種:按值傳遞(實(shí)參一般為常量和表達(dá)式)和引用傳遞(實(shí)參一般為變量)。參數(shù)的傳遞方式可以重新設(shè)置,格式如下。SETUDFPARMSTOVALUE|REFERENCE考點(diǎn)8變量的作用域變量的一個(gè)重:要屬性是作用域。變量的作用域指的是變量在什么范圍內(nèi)是有效或能夠被訪問的。在VisualFoxPro中,可分為公共變量、私有變量和局部變量3類。1.公共變量在任何模塊中都可使用的變量稱為公共變量,公共變量必須先定義后使用,格式如下。PUBL1C<內(nèi)存變量表〉說明:該命令是建立公共的內(nèi)存變量,并賦以初值邏輯假.F.o建立好的公共變量一直有效,即使程序結(jié)束返回命令窗口也不會(huì)消失,只有執(zhí)行CLEARMEMORY,RELEASE或QUIT等命令后,才能被釋放。2私有變量在程序中直接使用(沒有預(yù)先聲明),而由系統(tǒng)自動(dòng)隱含建立的變量都是私有變量。私有變量的作用域是建立它的模塊及其下屬的各層模塊。3局部變量局部變量只能在建立它的模塊中使用,不能在上層或下層模塊中使用。程序結(jié)束時(shí),自動(dòng)釋放局部變量。格式如下LOCALv內(nèi)存變量表〉說明:該變量同樣給建立的內(nèi)存變量賦以初值邏輯假.F.,也必須先定義后使用。當(dāng)子程序中定義的變量名與主程序中同名時(shí),為避免子程序中的變量值改變主程序中的變量值,可在子程序中使用PRIVATE命令隱藏主程序中可能存在的變量,使這些變量在子程序中暫時(shí)無效。格式如下。(1)PRIVATE<內(nèi)存變量表(2)PRIVATEALL[LIKE<通酉已符>|EXCEPT〈通酉己符>]。說明:該命令并不建立內(nèi)存變量,它只是隱藏指定的在上層模塊中可能已經(jīng)存在的內(nèi)存變量,但是當(dāng)模塊程序返回到上層模塊時(shí),被隱藏的變量就自動(dòng)恢復(fù)有效性,保持原值。7.4程序調(diào)試考點(diǎn)9調(diào)試器環(huán)境程序調(diào)試是指在發(fā)現(xiàn)程序有錯(cuò)誤的情況下,確定HI錯(cuò)位置并糾正錯(cuò)誤。計(jì)算機(jī)一般能夠發(fā)現(xiàn)程序的出錯(cuò)位置,但對(duì)于計(jì)算機(jī)不能發(fā)現(xiàn)的錯(cuò)誤,只能由用戶自己來查錯(cuò)。VisualFoxPro提供的功能強(qiáng)大的調(diào)試工具一調(diào)試器,可幫助我們進(jìn)行這項(xiàng)工作。調(diào)用調(diào)試器的方法一般有兩種。⑴選擇“工具”菜單中的“調(diào)試器”命令。(2)在命令窗口中輸入DEBUG命令??键c(diǎn)10設(shè)置斷點(diǎn)可以設(shè)置以下4種類型的斷點(diǎn)。(1)在定位處中斷:可指定一行代碼,當(dāng)程序調(diào)試執(zhí)行到該行時(shí),中斷程序運(yùn)行。(2)如果表達(dá)式值為真,則在定位處中斷:指定一行代碼及一個(gè)表達(dá)式,當(dāng)程序調(diào)試執(zhí)行到該行代碼時(shí),如果表達(dá)式值為真,就中斷程序運(yùn)行。(3)當(dāng)表達(dá)式值為真時(shí)中斷:可以指定一個(gè)表達(dá)式,在程序調(diào)試執(zhí)行過程中,當(dāng)該表達(dá)式值為邏輯真.T.時(shí),中斷程序運(yùn)行。(4)當(dāng)表達(dá)式值改變時(shí)中斷:可以指定一個(gè)表達(dá)式,在程序調(diào)試執(zhí)行過程中,當(dāng)該表達(dá)式值改變時(shí),中斷程序運(yùn)行??键c(diǎn)11“調(diào)試”菜單“調(diào)試”菜單包含執(zhí)行程序、選擇執(zhí)行方式、終止程序執(zhí)行、修改程序,以及調(diào)整程序執(zhí)行速度等命令。各命令具體功能如下。(1)運(yùn)行:執(zhí)行在跟蹤窗口中打開的程序:(2)繼續(xù)執(zhí)行:當(dāng)程序被中斷時(shí),該命令可使程序在中斷處繼續(xù)往下執(zhí)行。(3)取消:終止程序的調(diào)試執(zhí)行,并關(guān)閉程序。(4)定位修改:終止程序的調(diào)試執(zhí)行,然后在文本編輯窗口中打開調(diào)試程序。(5)跳出:以連續(xù)方式而非單步方式繼續(xù)執(zhí)行被調(diào)用模塊程序中的代碼,然后在調(diào)用程序的調(diào)用語句的下一行處中斷。(6)單步:單步執(zhí)行下一行代碼。如果下一行代碼調(diào)用了過程或者方法程序,那么該過程或者方法程序在后臺(tái)執(zhí)行。(7)單步跟蹤:單步執(zhí)行下一行代碼。(8)運(yùn)行到光標(biāo)處:從當(dāng)前位置執(zhí)行代碼直至光標(biāo)處中斷。(9)調(diào)速:打開“調(diào)整運(yùn)行速度''對(duì)話框,設(shè)置兩代碼行執(zhí)行之間的延遲秒數(shù)。(10)設(shè)置下一條語句:程序中斷時(shí)選擇該命令,可使光標(biāo)所在行成為恢復(fù)執(zhí)行后要執(zhí)行的語句。6.1查詢考點(diǎn)1查詢?cè)O(shè)計(jì)器1查詢的概念查詢是從指定的表或視圖中提取滿足條件的記錄,然后按照想得到的輸出類型定向輸出查詢結(jié)果。查詢以擴(kuò)展名為QPR的文件保存在磁盤上的,這是一個(gè)文本文件,它的主體是SQLSELECT語句。2查詢的建立建立查詢可以使用“查詢?cè)O(shè)計(jì)器”,但它的基礎(chǔ)是SQLSELECT語句。建立查詢的方法有以下幾個(gè)方面。⑴可以利用CREATEQUERY命令打
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 郫縣電梯加裝施工方案
- 2025屆湖南省張家界市名校中考生物五模試卷含解析
- 出售廣東漁船合同范例
- 專題01 聲現(xiàn)象(3大模塊知識(shí)清單+3個(gè)易混易錯(cuò)+2種方法技巧+典例真題精析)-2025年中考地理一輪復(fù)習(xí)知識(shí)清單
- 單位共有房屋買賣合同范例
- 多媒體教學(xué)計(jì)劃
- 眼科手術(shù)患者護(hù)理
- 員工福利的改進(jìn)與落實(shí)計(jì)劃
- 環(huán)保與可持續(xù)發(fā)展計(jì)劃
- 班主任的班級(jí)學(xué)習(xí)目標(biāo)計(jì)劃
- 中國古典園林史復(fù)習(xí)
- 32個(gè)管理學(xué)經(jīng)典理論
- 高壓線下作業(yè)安全技術(shù)交底
- 模型18奔馳模型(原卷版+解析)
- 2024華中區(qū)域電力并網(wǎng)運(yùn)行管理實(shí)施細(xì)則
- 安全員崗位競(jìng)聘課件
- 職能科室對(duì)醫(yī)技科室醫(yī)療質(zhì)量督查記錄表(檢驗(yàn)科、放射科、超聲科、功能科、內(nèi)鏡室)
- 報(bào)警員服務(wù)規(guī)范用語
- 護(hù)士職業(yè)暴露后處理
- 廣東省珠海市香洲區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期期末歷史試題(原卷版)
- 反訴狀(業(yè)主反訴物業(yè))(供參考)
評(píng)論
0/150
提交評(píng)論