數(shù)據(jù)庫程序設計教案.ppt_第1頁
數(shù)據(jù)庫程序設計教案.ppt_第2頁
數(shù)據(jù)庫程序設計教案.ppt_第3頁
數(shù)據(jù)庫程序設計教案.ppt_第4頁
數(shù)據(jù)庫程序設計教案.ppt_第5頁
已閱讀5頁,還剩100頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

16:16,1,數(shù)據(jù)庫程序設計教案,劉麗麗,2,基本內(nèi)容,第一章 數(shù)據(jù)庫基礎 第二章 數(shù)據(jù)庫與數(shù)據(jù)表 第三章 查詢與視圖 第四章 結構化查詢語言 第五章 程序設計基礎 第六章 表單 第七章 報表和標簽 第八章 菜單 第九章 系統(tǒng)的生成,3,第一章 數(shù)據(jù)庫基礎,基本操作 Visual FoxPro 語言基礎 變量,4,1.1 基本操作,1 系統(tǒng)的啟動 從程序菜單啟動; 在資源管理器中雙擊VFP6.EXE文件; 桌面上雙擊VFP6.EXE文件; 在運行對話框中運行VFP6.EXE程序。 2 系統(tǒng)主窗口 標題欄、菜單欄、工具欄、編輯區(qū)、命令窗口、狀態(tài)欄。 3 系統(tǒng)環(huán)境的配置 菜單方式:工具選項對話框; 命令方式:SET 命令。 例:set clock on; 4 系統(tǒng)退出 鍵盤操作: 按Alt+F4組合鍵(關閉當前窗口);Ctrl+Alt+Del組合鍵-選擇VF程序-單擊結束任務; 命令窗口中執(zhí)行“quit”命令 鼠標操作: 文件-退出; 單擊窗口右端“”按鈕; 雙擊窗口左端的Vf圖標;單擊窗口標題欄左端的圖標-單擊“關閉”選項。,5,1.2 Visual FoxPro 語言基礎,1. 數(shù)據(jù)類型 字符型C:用定界符雙引號、單引號、或方括號定界。(例:X1= “abide” , X1=abide, X1= abide ) 數(shù)值型N:描述數(shù)量的數(shù)據(jù)類型,可進行運算,例: x2=50.678 浮點型F: 與數(shù)值型數(shù)據(jù)完全等價,只是在存儲形式上采取浮點格式。 雙精度型D:是更高精度的數(shù)值型數(shù)據(jù),只用于數(shù)據(jù)表中字段類型的定義,采用固定長度浮點格式存儲。 整型I:不包含小數(shù)點部分的數(shù)值型數(shù)據(jù)。 日期型D:表示日期的數(shù)據(jù),8位,mm/dd/yyyy: 默認格式 例:a=2005-03-21 日期時間型T: mm/dd/yyyy hh:mm:ss 例:b=2007-03-26 05:28:14 邏輯型L:.T. /.F. 備注型M:存放較長的字符型數(shù)據(jù)類型。 通用型G:存儲OLE對象。 注:顯示變量的數(shù)據(jù)類型type( 變量),數(shù)據(jù)類型 表達式 基本命令 文件類型,6,2. 表達式 1)數(shù)值表達式 數(shù)值操作符按優(yōu)先順序依次為: 括號:();乘方:*或 ;乘:*; 除:/ ;模運算:% ;加:+ ;減:- 2)字符表達式 :連接兩個字符型數(shù)據(jù); - :連接兩個字符型數(shù)據(jù),并把第一個字符型數(shù)據(jù)的尾部空格移到第二個字符型數(shù)據(jù)后面; $ :測試第二個字符串是否包含第一個字符串。 3)日期表達式 :一個日期加上天數(shù); - :一個日期減去天數(shù)或兩個日期相減。 4)關系表達式 小于: ;等于(第一個字符串是否包含第二個字符串): :不等于:,#,!= ; 小于等于:= ;字符串精確等于:= = 5)邏輯表達式 與:AND;或:OR;非:NOT,數(shù)據(jù)類型 表達式 基本命令 文件類型,7,3. 基本命令 1)設置默認路徑(拷貝) 格式:SET DEFAULT TO 路徑 注:無路徑選項,取消默認路徑的設置 2)顯示 格式:?|? AT 列數(shù) FONT “字體名” ,字號 STYLE “風格符” 注:?:先換行再輸出結果;?:不換行就輸出結果。 例: ? “清華大學出版社” FONT “隸書”,40 STYLE “B” 3)賦值命令 格式1: STORE TO 格式2: 內(nèi)存變量名= 例:STORE 10 TO X1,X2,X3 NAME=“張力” 注:賦值時定義變量類型。 4)顯示內(nèi)存變量 格式:DISPLAY | LIST MEMORY LIKE 通配字符 TO PRINTER PROMPT | TO FILE 文件名 5)清除 格式:CLEAR ALL | WINDOWS | EVENTS 注:不含任何選項,清除主窗口;ALL:釋放所有內(nèi)存變量、數(shù)組及自定義菜單和窗口,關閉所有的表及相關索引、格式、備注文件,不釋放系統(tǒng)內(nèi)存變量,自動選擇1工作區(qū)為當前工作區(qū);MEMORY:釋放所有內(nèi)存變量、數(shù)組,不釋放系統(tǒng)內(nèi)存變量;WINDOWS:釋放所有自定義窗口;EVENTS:終止由 READ EVENTS 啟動的事件處理狀態(tài)。,數(shù)據(jù)類型 表達式 基本命令 文件類型,8,4)文件類型,數(shù)據(jù)類型 表達式 基本命令 文件類型,9,4)文件類型,數(shù)據(jù)類型 表達式 基本命令 文件類型,10,1.3 變量,常量:操作過程中值保持不變。 變量:操作過程中值可以變化(內(nèi)存變量、數(shù)組變量、字段變量、系統(tǒng)變量) 1.內(nèi)存變量(store、:賦值的變量) 顯示:DISPLAY | LIST MEMORY LIKE 通配符 TO PRINTERPROMPT | TO FILE 文件名 釋放1(釋放所有內(nèi)存變量):clear all 釋放2(釋放指定內(nèi)存變量): release | all like | except 2. 數(shù)組變量 定義:declare 數(shù)組名1(m1 ,n1),數(shù)組名2(m2 ,n2) 注:定義數(shù)組后,系統(tǒng)自動為每一個數(shù)組賦初值.F.;為整個數(shù)組賦同一個值,可賦給數(shù)組名;為單個元素賦值,需指定下標。 3. 字段變量 4. 系統(tǒng)變量:VF本身內(nèi)建,不用定義,11,第二章 數(shù)據(jù)庫和數(shù)據(jù)表,數(shù)據(jù)庫與數(shù)據(jù)表 項目文件的操作 數(shù)據(jù)表的基本操作 數(shù)據(jù)庫表的屬性設置 數(shù)據(jù)表的維護 設置數(shù)據(jù)表的索引 數(shù)據(jù)表的關聯(lián) 多表操作,12,2.1 數(shù)據(jù)庫與數(shù)據(jù)表,1. 自由表(.DBF :游離在數(shù)據(jù)庫之外的表)的創(chuàng)建: 菜單:文件-新建-表-新建文件-命名保存-設計; 字段名:不超過10個字符(5個漢字) 輸入、插入、刪除、改變位置、索引(索引文件不可以脫離表,可以隨表的打開而打開,并隨表的關閉而關閉)、Null(空值,允許該字段的值為空, ctrl+0輸入NULL值)。 命令:CREATE 向?qū)В何募?新建-表-向?qū)А?3. 數(shù)據(jù)表(.DBF:保存在數(shù)據(jù)庫中的表)的建立 注:需先建立數(shù)據(jù)庫文件;字段名:不超過128個字符 操作: 數(shù)據(jù)庫菜單; 數(shù)據(jù)庫工具欄; 鼠標右鍵 注:自由表與數(shù)據(jù)表的轉換,自由表 數(shù)據(jù)庫 數(shù)據(jù)表,13,2. 數(shù)據(jù)庫(.DBC:用來組織和管理數(shù)據(jù)表和視圖) 1)創(chuàng)建 菜單:文件-新建-數(shù)據(jù)庫-新建文件-命名保存-設計; 命令方式:CREATE DATABASE 文件名|? 2)打開: 菜單:所有文件都可以通過菜單“文件-打開”命令打開。 命令:OPEN DATABASE 文件名|? EXCLUSIVE | SHARED NOUPDATE 注:EXCLUSIVE(獨占方式打開)| SHARED(共享方式打開) NOUPDATE:只讀方式打開。 3)刪除:DELETE DATABASE DELETETABLES RECYCLE 注:DELETETABLES:刪除數(shù)據(jù)庫的同時刪除其中的表、視圖等。 RECYCLE:把刪除的文件放入回收站中。,自由表 數(shù)據(jù)庫 數(shù)據(jù)表,14,2.2 項目文件的操作,1. 創(chuàng)建(.PJX) 菜單方式:新建-項目-新建文件/向?qū)?命令方式: 格式1: MODIFY PROJECT 格式2: CREATE PROJECT 注:MODIFY命令也可以打開已有的項目文件 2. 打開(鼠標方式):文件-打開 3. 關閉 鼠標方式: 文件-關閉; 單擊窗口右上角“關閉”按鈕; 單擊窗口左上角控制圖標;標題欄右擊鼠標-關閉。 命令方式: 格式:CLOSE ALL DATABASE | PROCEDURE | TABLES 注:該命令可關閉所有工作區(qū)中打開的數(shù)據(jù)庫、數(shù)據(jù)表和索引文件等,并選定1工作區(qū),但不關閉由SET PRINT命令打開的文件,及命令窗口、調(diào)試窗口、幫助和追蹤窗口。 4. 選項卡的操作(P31):選定、折疊、展開、拆分、移動、放大、縮小、形成工具欄。 5. 添加數(shù)據(jù)庫、數(shù)據(jù)表,15,作業(yè),建立一個文件名為“student”的項目文件,此項目中包括一個文件名為“學生管理”的數(shù)據(jù)庫文件,在“學生管理”數(shù)據(jù)庫中包含四個數(shù)據(jù)表,分別是:基本情況表、學習成績表、個人表現(xiàn)表、社會關系表,這些表的結構與記錄見06級數(shù)學系VF課本P42中圖36所示。,16,2.3 數(shù)據(jù)表的基本操作,1. 數(shù)據(jù)表的打開與關閉 格式:use 數(shù)據(jù)表名 in 工作區(qū) exclusive shared alias 別名 注:不帶任何選項,關閉當前工作區(qū)中數(shù)據(jù)表; 2. 瀏覽與編輯: 菜單方式:打開數(shù)據(jù)表顯示/瀏覽; 命令方式:打開數(shù)據(jù)表 browse (browse last) 注:拖動分隔符,成兩窗口,瀏覽/編輯。 記錄的顯示:display fieldlist scope for 條件1 while 條件2 off to printer | to file 文件名 scope:all 、next n、record n、 rest off:不顯示記錄號 display all = list 3. 追加數(shù)據(jù)記錄 追加一條記錄:打開數(shù)據(jù)表browse 表/追加新記錄; 連續(xù)追加:打開數(shù)據(jù)表browse 顯示/追加方式(或 單擊下面的空行) 成組追加:表/追加記錄(APPEND FROM 表名);,打開關閉、瀏覽編輯、追加記錄、記錄指針的定位記錄的邏輯、物理刪除及恢復 記錄編輯修改,字段值的替換 記錄的篩選,select():選擇工作區(qū) recno():求當前記錄號,17,4. 記錄指針的定位 鼠標定位:移動鼠標單擊; 菜單定位:表轉到記錄; 命令定位: 指針絕對移動命令:go/goto 指針相對移動命令:skip 數(shù)值表達式 (注:skip = skip +1) 5. 記錄的邏輯刪除:只作刪除標記,不真正刪除。 鼠標操作:單擊瀏覽窗口的第二列 注:工具選項數(shù)據(jù)(選中 “忽略已刪除記錄”) set delete on :系統(tǒng)不再顯示和處理邏輯刪除的記錄。 set delete off :系統(tǒng)顯示和處理邏輯刪除的記錄。 菜單方式:表刪除記錄 注:for : 所有滿足條件的記錄; while : 從當前記錄開始所有滿足條件的記錄,遇到不滿足條件的記錄停止。 命令:delete for while 注:scope-all, next n , rest , record n .,打開關閉、瀏覽編輯、追加記錄、記錄指針的定位記錄的邏輯、物理刪除及恢復 記錄編輯修改,字段值的替換 記錄的篩選,18,6. 記錄的物理刪除:從數(shù)據(jù)表中徹底刪除。 菜單方式:表徹底刪除 (刪除所有帶刪除標記的記錄) 命令方式:1) PACK:刪除所有帶刪除標記的記錄 2) ZAP:刪除當前表中的所有記錄(不論是否有刪除標記) 7. 記錄的恢復(RECALL):恢復做邏輯刪除的記錄 。 請參照“記錄的邏輯刪除自學” 8. 記錄的編輯修改 一般記錄:單擊字段內(nèi)容修改; 備注型:雙擊鼠標添加修改; 通用型:雙擊鼠標編輯菜單/插入對象。 9. 字段值的替換 菜單方式:表替換字段 命令方式:replace with additive with additive for while 注:若替換備注型字段值,“additive”可使替換值追加在原值后面,否則新值替換原值。,打開關閉、瀏覽編輯、追加記錄、記錄指針的定位記錄的邏輯、物理刪除及恢復 記錄編輯修改,字段值的替換 記錄的篩選,19,10. 記錄的篩選:選擇出符合條件的記錄 菜單操作:表屬性 命令操作 格式1:set filter to 注:設置記錄的篩選,不帶任何選項取消篩選; 格式2:set fields to , 注:設置字段的篩選,set fields to all 取消篩選; 格式3:set fields on | off :打開或關閉字段的篩選(默認關閉)。,打開關閉、瀏覽編輯、追加記錄、記錄指針的定位記錄的邏輯、物理刪除及恢復 記錄編輯修改,字段值的替換 記錄的篩選,20,記錄級別的屬性(表設計器表):在一條記錄的各字段之間進行限制 表名屬性:可另起一個長表名,當表出現(xiàn)在項目與數(shù)據(jù)庫、查詢、視圖等設計器窗口時,可顯示該長表名,便于對數(shù)據(jù)表內(nèi)容的了解; 記錄有效性屬性: 規(guī)則:是一個關系或邏輯表達式,已經(jīng)存在的或以后要輸入記錄必須符合此表達式; 信息:輸入的記錄不滿足此表達式時的提示信息。 觸發(fā)器屬性 刪除觸發(fā)器:控制刪除操作,表達式結果為.t.,可刪除;為.F.,不可刪除,出現(xiàn)提示信息; 插入觸發(fā)器:控制插入操作,表達式結果為.t.,可插入;為.F.,不可插入,出現(xiàn)提示信息; 更新控制:控制編輯修改操作,表達式結果為.t.,可修改;為.F.,不可修改,出現(xiàn)提示信息;,2.4 數(shù)據(jù)庫表的屬性設置-記錄級別的屬性,21,2.5 數(shù)據(jù)表的維護,修改數(shù)據(jù)表結構 菜單:打開數(shù)據(jù)表顯示/表設計器; 命令:打開數(shù)據(jù)表modify structure 數(shù)據(jù)表結構的復制(只復制結構沒有記錄) 命令:copy structure to fields with cdx with cdx:為新表建立與原表相同的結構復合索引文件。 數(shù)據(jù)表的復制(既有結構又有記錄) 命令: copy to fields with cdx for while ,22,2.6 設置數(shù)據(jù)表的索引,排序:使原數(shù)據(jù)表中的記錄按升序(或降序)全部重新排列,并生產(chǎn)一個新的數(shù)據(jù)表文件。 索引:以升序(或降序)的方式改變原數(shù)據(jù)表中記錄的顯示順序,并生成索引文件,不可脫離原數(shù)據(jù)表。(可以為一個數(shù)據(jù)表建立多個不同的索引文件) 1)索引關鍵字的類型 主索引(關鍵字段的內(nèi)容不可重復,數(shù)據(jù)表,一數(shù)一主索引):唯一確定數(shù)據(jù)表中記錄的排列順序。 候選索引(關鍵字段的內(nèi)容不可重復,數(shù)據(jù)表|自由表,一表多候選索引):唯一確定數(shù)據(jù)表中記錄的排列順序。 普通索引(關鍵字段的內(nèi)容可重復,數(shù)據(jù)表|自由表,默認) 唯一索引(關鍵字段的內(nèi)容可重復,重復只保留第一條,和低版本兼容),索引簡述 索引的操作,23,1) 創(chuàng)建索引文件 創(chuàng)建簡單索引 創(chuàng)建復雜索引 2) 打開:隨著數(shù)據(jù)表的打開而打開 3) 關閉:隨著數(shù)據(jù)表文件的關閉,所有索引文件自動關閉。 4) 確定主控索引:數(shù)據(jù)表記錄以某個索引進行排序,則這個索引就稱為該數(shù)據(jù)表的主控索引。 只打開一個索引,則此索引為主控索引; 一個接一個打開,最后打開的索引為主控索引; 一次打開多個索引,排在最前面的為主控索引; 注:索引文件打開后,其中的索引標識(Tag)不起作用,數(shù)據(jù)表記錄順序保持原始順序,必須執(zhí)行確定主控索引的操作后,數(shù)據(jù)表記錄的排列順序才會跟著變化。 命令方式1:set order to TAG ASCENDING | DESENDING 命令方式2:USE ORDER TAG ASCENDING | DESENDING 菜單方式:表屬性索引順序 5) 刪除索引: 菜單方式:表設計器索引; 命令方式:DELETE TAG ALL | , ;,在“表設計器”里創(chuàng)建,索引簡述 索引的操作,24,2.7 數(shù)據(jù)表的關聯(lián),1) 數(shù)據(jù)表之間聯(lián)系的分類 一對一(1:1)聯(lián)系:當前表中的一條記錄可以唯一對應另一個表中的一條記錄; 一對多(1:n)聯(lián)系:當前表中的一條記錄可以對應另一個表中的多條記錄; 多對多(m:n)聯(lián)系:當前表中的多條記錄可以對應另一個表中的多條記錄。 注:在數(shù)據(jù)表之間可以建立“永久關聯(lián)”和“臨時關聯(lián)”兩種連接。 永久關聯(lián):被保存在數(shù)據(jù)庫中的數(shù)據(jù)表間的聯(lián)系,隨數(shù)據(jù)庫長期保存,隨數(shù)據(jù)庫的打開而打開,關閉而關閉。 臨時關聯(lián):使用時臨時建立的表間聯(lián)系,數(shù)據(jù)表關閉則臨時關聯(lián)消失。 父表:創(chuàng)建數(shù)據(jù)表之間的關聯(lián)時,當前所使用的數(shù)據(jù)表; 子表:創(chuàng)建數(shù)據(jù)表之間的關聯(lián)時,被關聯(lián)的表。 創(chuàng)建關聯(lián)的必要條件:1)兩個要建立關聯(lián)的數(shù)據(jù)表中存在同類字段;2)每個數(shù)據(jù)表事先要以該“同類字段”建立了索引。,關聯(lián)簡述 關聯(lián)操作 臨時關聯(lián),25,1 )建立表間的一對一關聯(lián) 注:兩個表都具有同一類屬性的字段;父表和子表分別以該字段作過主索引或候選索引。 操作:在數(shù)據(jù)庫設計器中建立。 2)建立表間的一對多關聯(lián) 注:父表作主索引,子表作普通索引。 操作:在數(shù)據(jù)庫設計器中建立。 3)調(diào)整或刪除關聯(lián) 刪除關聯(lián):選中關聯(lián)線按Del鍵(或右鍵/刪除關系) 編輯關聯(lián):選中關聯(lián)線右鍵/編輯關系(或數(shù)據(jù)庫/編輯關系) 4)建立數(shù)據(jù)表間的參照完整性 操作1:選中關聯(lián)線右鍵編輯關系/參照完整性; 操作2:選中關聯(lián)線右鍵編輯參照完整性; 操作3:數(shù)據(jù)庫菜單編輯參照完整性。,關聯(lián)簡述 關聯(lián)的操作 臨時關聯(lián),26,臨時關聯(lián):可在數(shù)據(jù)表之間建立,也可在自由表之間建立 注:父表已作主索引(或候選索引),子表已作普通索引。 操作: 菜單方式:打開數(shù)據(jù)工作期選定父表單擊“關系”選定子表及關聯(lián)字段選定父表關聯(lián)字段 注:(1)瀏覽父表的記錄,會自動關聯(lián)子表的相應記錄; (2)關閉“數(shù)據(jù)工作期”窗口不會影響兩個表的關聯(lián); (3)關閉數(shù)據(jù)表后,關聯(lián)自動消失。 命令方式: set relation to into | 注:(1)缺省選項取消當前的臨時關聯(lián); (2) 是主(當前)表的連接索引關鍵字; (3)用 | 指定連接(子)表。 (4)父表為當前表,兩表都設置了主控索引,關聯(lián)簡述 關聯(lián)的操作 臨時關聯(lián),27,2.8 多表操作,VF允許最多同時打開32 767 個數(shù)據(jù)表,每次操作只能選中其中一個。 1. 工作區(qū) 解釋:工作區(qū)是一個編號區(qū)域,指內(nèi)存中的一塊存儲區(qū)域,用區(qū)號和別名來標識。 區(qū)號:1(或0)32 767 ;區(qū)名:AJ (10);后面:w11w32767 命令:select 注:每個工作區(qū)只能打開一個數(shù)據(jù)表,系統(tǒng)啟動后,默認一號工作區(qū)為當前工作區(qū)。 別名:某個工作區(qū)中數(shù)據(jù)表文件的別名 2. 數(shù)據(jù)表別名: 系統(tǒng)在內(nèi)存中引用和識別數(shù)據(jù)表的標識。每當數(shù)據(jù)表打開時,系統(tǒng)要求必須為數(shù)據(jù)表指定一個唯一的別名。數(shù)據(jù)表的別名是臨時性的,關閉數(shù)據(jù)表時會自動釋放。下次打開數(shù)據(jù)表時,可為它指定完全不同的另一個別名。 格式:use alias 注:省略選項,系統(tǒng)以原文件名作為別名。,工作區(qū)、別名 數(shù)據(jù)工作期、多表操作,28,數(shù)據(jù)工作期: 是一個獨立的工作狀態(tài)和操作環(huán)境,包含了自己的一組工作區(qū)及打開的數(shù)據(jù)表、索引及表間的關聯(lián),并為表單、報表等提供了動態(tài)的操作環(huán)境。 打開:窗口/數(shù)據(jù)工作期 (set view on); 關閉:文件/關閉 (set view off); 多表的打開與關閉 利用數(shù)據(jù)工作期 use in 區(qū)號| 區(qū)名 一個數(shù)據(jù)表在多個工作區(qū)打開 利用數(shù)據(jù)工作區(qū) 命令:use alias again,工作區(qū)、別名 數(shù)據(jù)工作期、多表操作,29,第三章 查詢與視圖,查詢文件 視圖操作,30,3.1 查詢文件,用查詢設計器創(chuàng)建查詢(.QPR):用設計器創(chuàng)建查詢,原理也是使用SQLSelect創(chuàng)建查詢,但只能實現(xiàn)相對簡單的查詢,沒有Select語句功能強大。 打開查詢設計器的方法: 文件新建/查詢/新建文件; 項目管理器:數(shù)據(jù)查詢新建; 查詢文件的創(chuàng)建: 創(chuàng)建單表查詢: 操作:打開查詢設計器添加一個表; 創(chuàng)建多表查詢: 操作:打開查詢設計器添加多個表 運行查詢文件 項目管理器:選定查詢文件運行按鈕; 查詢設計器中:查詢菜單運行查詢; 查詢設計器中:工具欄運行按鈕; 查詢設計器中:CtrlQ快捷鍵; 查詢設計器中:右擊鼠標運行查詢; 程序菜單運行; 命令窗口:DO 查詢文件名.qpr(必須寫擴展名)。,創(chuàng)建與運行 查詢設計器選項卡 查詢輸出方式,31,查詢設計器的選項卡 1)字段卡:選定字段、字段表達式(對字段做運算后輸出); 2)聯(lián)接卡:設置聯(lián)接類型及聯(lián)接條件; 3)篩選卡:選取符合條件的記錄; 4)排序依據(jù)卡:對記錄進行排序; 5)分組依據(jù)卡:對同一字段值的內(nèi)容進行統(tǒng)計; 6)雜項卡:設置顯示的記錄數(shù)等。 查詢輸出方式: 1)瀏覽:browse瀏覽窗口; 2)臨時表:一旦退出系統(tǒng),臨時表消失; 查看內(nèi)容:查詢菜單運行查詢顯示菜單瀏覽。 3)表:數(shù)據(jù)表; 查看內(nèi)容:同上。,創(chuàng)建與運行 查詢設計器選項卡 查詢輸出方式,32,創(chuàng)建與運行 查詢設計器選項卡 查詢輸出方式,4)圖形:Excel圖形; 如不可用,則執(zhí)行命令:_GENGRAPH=C:Program FilesMicrosoft Visual StudioVfp98WizardsWZGRAPH.APP 查看內(nèi)容:運行查詢。 5)屏幕: 只屏幕;屏幕、打印機;屏幕、文本文件。 屏幕之間暫停:記錄很多時,滿一屏暫停,任意鍵繼續(xù),Esc鍵終止。 6)報表:報表格式文件 頁面預覽:可在預覽窗口觀察輸出結果; 活動控件臺:可將查詢結果送到當前活動窗口;報告之前釋放頁:在打印輸出前,先空走一頁紙。 查看內(nèi)容:查詢菜單運行查詢; 7)標簽:標簽格式文件 查看內(nèi)容:查詢菜單運行查詢;,33,3.2 視圖操作,視圖(只能保存在數(shù)據(jù)庫中):本地視圖、遠程視圖(可更新表)。 單表視圖:由一個數(shù)據(jù)表生成,一般只包含數(shù)據(jù)表的部分字段。 注:視圖是依托數(shù)據(jù)庫而存在,創(chuàng)建視圖應首先打開相應的數(shù)據(jù)庫。 1)用視圖設計器創(chuàng)建 文件新建 /視圖/新建文件; 數(shù)據(jù)庫新建本地視圖; 項目管理器中選定“本地視圖”新建。 2)用視圖向?qū)?chuàng)建:在“新建本地視圖”窗口中選擇“視圖向?qū)А薄?3)用命令創(chuàng)建 格式:CREATE SQL VIEW AS SELECT 字段列表FROM WHERE 注:忽略下劃線中的選項,將打開視圖設計器。 瀏覽視圖中的內(nèi)容:select * from 視圖文件名,創(chuàng)建單表視圖 創(chuàng)建多表視圖,34,多表視圖:由兩個以上數(shù)據(jù)表或視圖建立的新視圖。 1)使用設計器創(chuàng)建 用創(chuàng)建單表視圖的方法打開“視圖設計器”。 2)使用命令創(chuàng)建 同“創(chuàng)建單表視圖”的命令格式,顯示字段如相同需用文件名加以標識。 查看視圖程序(需先打開視圖設計器) 查詢查看SQL選項; 快捷菜單“查看SQL選項”; 視圖設計器工具欄查看SQL選項 視圖設計器祥解 更新:鑰匙設置關鍵字段(如希望視圖中數(shù)據(jù)的修改影響到源表,必須設定);鉛筆設置可更新字段(只在視圖中);發(fā)送SQL:使更新影響到源表;SQL WHERE:多用戶操作環(huán)境:使用更新:SQL delete然后insert刪除后插入,SQL update:直接修改。,創(chuàng)建單表視圖 創(chuàng)建多表視圖,35,第四章 結構化查詢語言(),SQL既可在數(shù)據(jù)庫中使用,也可在C,F(xiàn)ORTRAN等高級語言中使用。 SQL命令動詞: 數(shù)據(jù)查詢:SELECT () 數(shù)據(jù)定義:CREATE, DROP, ALTER 數(shù)據(jù)操縱:INSERT, UPDATE, DELETE 數(shù)據(jù)控制:GRANT, REVOKE,36,1、基本格式:select ALL | DISTINCT 別名. as 列名 | * from 數(shù)據(jù)庫名! 知識點:DISTINCT:結果不包含完全相同的記錄; * :代表所有字段。 在字段表達式中可以出現(xiàn)集函數(shù),如: sum(字段), avg(字段), count(字段), min(字段), max(字段) 例1:select 學習成績.高數(shù)+學習成績.哲學 as 總分,高數(shù),哲學 from 學習成績 2、 select where 例2:select 女生總分:,sum(體育),人數(shù):,count(*) from 學習成績,; 基本情況 where 學習成績.學號=基本情況.學號 and 基本情況.性別=女 知識點: and , or, not; 字段 between 值1 and 值2; 字段 not between 值1 and 值2; 字段 in (值1,值2,); 字段 not in (值1,值2,); 字段 like 通配符 (:任意字符串,_:任何一個字符) 字段 is NULL (字段值是空值),基本查詢 聯(lián)接查詢 嵌套查詢 合并查詢,4.1 SQL查詢,37,3、排序:selectorder by 字段asc | desc, TOP PERCENT 注:TOP PERCENT應和order by聯(lián)用。 例:select * from 學習成績 order by 學號 top 3 4、分組:selectgroup by 分組字段 having 注: having 應和group by聯(lián)用,如未和其聯(lián)用,則和where的功能相同。 例:select 社會關系.學號,qsrs:,count(*) from 社會關系; having 學號 ADDITIVE :某個文本文件 注: ADDITIVE 將查詢結果追加到文本文件后面。 into cursor :只讀臨時數(shù)據(jù)表文件 into dbf | table :數(shù)據(jù)表文件 into array :二維數(shù)組,基本查詢 聯(lián)接查詢 嵌套查詢 合并查詢,38,聯(lián)接查詢: selectfrom 表1 inner join 表2 on 1)兩個表之間的連接 內(nèi)部連接:只包含滿足條件的記錄; 格式:selectfrom 表1 inner join 表2 on 等價于:select from 表1, 表2 where 右連接:包含滿足條件的記錄,右端表全部記錄; 格式:selectfrom 表1 right outer join 表2 on 注:outer可以不用,強調(diào)是一個外連接。 左連接:包含滿足條件的記錄,左端表全部記錄; 格式:selectfrom 表1 left outer join 表2 on 完全連接:包含滿足條件的記錄,左右表中所有記錄 格式:selectfrom 表1 full outer join 表2 on 2) 單表自身連接 格式:selectfrom 表 別名1, 表 別名2 where 例:select xxcj1.高數(shù),xxcj2.哲學 ; from 學習成績 xxcj1,學習成績 xxcj2; where xxcj1.學號=xxcj2.學號 and xxcj1.高數(shù)xxcj2.哲學,right | left | full,基本查詢 聯(lián)接查詢 嵌套查詢 合并查詢,39,嵌套查詢 格式:selectfromwhere ( selectfromwhere ) 比較符:=(左邊是否包含右邊)、(!=, #)、=、=、= =(完全相等) in:父字段值在子字段值里 any:以子表達式最小值決定主表達式結果; all:以子表達式最大值決定主表達式結果; not exists:以子表達式值作為主表達式的條件 例:select * from 基本情況 where exists (select * from 學習成績 where 學號=基本情況.學號) 合并查詢(格式:select union select ) 例:select * from 個人表現(xiàn) where 學號=9901101 union select * from 個人表現(xiàn) where 學號=9901103 注:兩個表的輸出字段的類型和寬度必須一致。,父查詢 子查詢 如增加排序控制,則只能放在最外層結構,基本查詢 聯(lián)接查詢 嵌套查詢 合并查詢,40,1、表的定義 格式:create table | dbf free ( ( ,) , ) null not null check(字段有效性規(guī)則) error “錯誤信息” default 字段初值 primary key unique , check (表的有效性規(guī)則) error “錯誤信息” 說明: free:表示所創(chuàng)建的表是自由表,不添加到數(shù)據(jù)庫中。如數(shù)據(jù)庫沒打開,所創(chuàng)建的表也是自由表。 null | not null:表示允許或不允許該字段為空值。 check (字段有效性規(guī)則) error “錯誤信息” :指定字段的有效性規(guī)則,當增加一條空白記錄時,就進行有效性檢查。 error “錯誤信息”:指定字段有效性檢查出現(xiàn)錯誤時的錯誤提示信息。 default 字段初值:當增加一條空白記錄時,指定字段的默認值。 primary key:指定該字段為主索引字段,索引標識名稱與字段名稱相同。 unique:創(chuàng)建與字段同名的候選索引標識。 check (表的有效性規(guī)則) error “錯誤信息”:指定表的有效性規(guī)則,C(字符), D(日期),T(日期時間),N(數(shù)),F(浮數(shù)), I(整數(shù)),B(雙精度),Y(貨幣),L(邏輯),M(備注),G(通用),P(圖片),只適于數(shù)據(jù)表,基本表 視圖,4.2 SQL數(shù)據(jù)定義,41,2、表的刪除 格式:drop table 3、表的修改 格式:alter table add | alter column ( ,) null not null check(字段有效性規(guī)則) error “錯誤信息” default 字段初值 primary key unique 說明: add:增加一個字段。 alter:修改字段。 column:無意義,起提示作用。 4、視圖的定義 格式:create view as select 語句 5、視圖的刪除 格式:drop view ,基本表 視圖,42,插入數(shù)據(jù) 格式1:insert into ( ,) value ( ,) 說明:把表達式的值插入到指定的字段值中。 格式2: insert into from array | memvar 說明:把數(shù)組或內(nèi)存變量的值插入到記錄中。 更新數(shù)據(jù) 格式:update 庫名! set = , where 刪除數(shù)據(jù) 格式:delete from where ,插入數(shù)據(jù) 更新數(shù)據(jù) 刪除數(shù)據(jù),4.3 SQL數(shù)據(jù)操縱,43,第五章 程序設計基礎,程序設計方法 面向過程方法(DOS):通過程序命令流來完成所有工作。 面向?qū)ο蠓椒ǎ╓indows):通過系統(tǒng)提供的對象模型來完成大部分工作。 程序設計概述 結構控制語句 多模塊程序 程序的調(diào)試,44,5.1 程序設計概述,創(chuàng)建 菜單方式:文件新建程序新建文件; 命令方式:modify command 程序文件名 注:省略“程序文件名”,則默認“程序1”為文件名 編輯修改 菜單方式:文件打開; 命令方式:modify command 程序文件名 注:保存快捷鍵:CtrlW;放棄存盤:Esc鍵或CtrlQ鍵 程序的運行 菜單方式:程序運行; 命令方式:DO ; 編輯中執(zhí)行:工具欄“!”按鈕,程序的創(chuàng)建、編輯修改及運行 簡單輸入/輸出命令,45,簡單輸入/輸出命令 格式:INPUT 提示信息 to 功能:等待用戶從鍵盤輸入數(shù)據(jù),回車鍵結束輸入,輸入的值賦給內(nèi)存變量,字符串須加定界符。 格式:ACCEPT 提示信息 to 功能:等待用戶從鍵盤輸入字符串,回車鍵結束輸入,不須定界符。 格式:WAIT 提示信息 to 內(nèi)存變量 WINDOW AT nRow, nColumn TIMEOUT nSeconds:以窗口的形式顯示指定信息。 內(nèi)存變量:用于保存用戶鍵入的字符,類型為字符型。若用戶按的是Enter鍵或單擊鼠標,則保存的是空串。,程序的創(chuàng)建、編輯修改及運行 簡單輸入/輸出命令,46,5.2 結構控制語句,三種基本程序結構:順序、分支、循環(huán) 順序結構: 例1:在屏幕上顯示由*組成的菱形( sequence.prg) 分支結構 1、條件語句(最多允許384層嵌套) 語句格式 if else endif 例2:在基本情況表中查找某個學生,如找到則顯示該學生的姓名,性別,否則顯示“查無此人!”(find_if.prg) 注:locate:順序查找表中滿足指定條件的第一條記錄。 格式:locate for 條件 eof():指示數(shù)據(jù)表文件尾;found():查找結果,順序結構 分支結構 循環(huán)結構,47,2、多分支選擇結構(最多允許384層嵌套) 語句格式 DO CASE CASE CASE CASE OTHERWISE ENDCASE 例3:打開成績表,統(tǒng)計學生的數(shù)學成績是屬于哪個層次(優(yōu):10090;良:8980;中:7970;及格:6960;不及格:=60,順序結構 分支結構 循環(huán)結構,48,1、基本循環(huán)結構(最多允許384層嵌套) 語句格式 do while loop exit enddo 注: loop:使程序無條件的調(diào)回到do while語句,重新判斷條件; exit:使程序無條件的跳出循環(huán)體,接著執(zhí)行enddo后面的語句. 例4:在學習成績表中查找某人記錄(find_dowhil.prg),順序結構 分支結構 循環(huán)結構,49,2、計數(shù)循環(huán)結構 語句格式: for = to step loop exit endfor | next 例5:計算1到100的和(分別用do while語句和for語句實現(xiàn):for.prg;dowhile2.prg),順序結構 分支結構 循環(huán)結構,50,3、掃描(指針型)循環(huán)結構 語句格式 scan | for | while loop exit endscan 作用:按表文件記錄的順序在指定范圍內(nèi)從頭到尾掃描每一條記錄,每掃描一次就執(zhí)行一次循環(huán)體語句,直到全部掃描完跳出endscan語句。,順序結構 分支結構 循環(huán)結構,51,5.3 多模塊程序,結構化程序設計的原則:結構化、模塊化。 定義過程 格式: PROCEDURE (參數(shù)表) *如有參數(shù),則第一行命令應是參數(shù)接收命令 return 注:如過程和主程序不在同一程序文件中,此語句可不寫;如過程和主程序在同一程序文件中,此語句必須寫;如過程在過程庫中,此語句也必須寫 調(diào)用過程 格式:DO WITH 作用:在當前程序中調(diào)用一個文件,定義過程 調(diào)用過程 內(nèi)存變量的作用區(qū)域 參數(shù)接收 過程庫 自定義函數(shù),52,例: *計算m!n!,子程序n! clear public s1,s2,s input “請給變量m賦值(m0):m“ to m input “請給變量n賦值(n0):n“ to n do 3_30PP with m s1=s ?s1 do 3_30P with n s2=s ?s2 s=s1+s2 ?s return,procedure 3_30PP m1 ;寫不寫都可parameters m1 s=m1 do while m11 s=s*(m1-1) m1=m1-1 enddo return s,53,由于程序分為主程序和子程序等不同層次,所以各級程序中使用的變量也有不同的級別和不同的作用范圍。 1、公共(Public)變量 注:在各級程序段中都可以使用,直到程序運行結束才被釋放。必須先用命令定義以后才能使用。 格式:public 注:在命令窗口中,直接用賦值語句定義的變量也認為是公共變量。 2、私有(Private)變量 注:只在定義該類變量的子程序及其下級程序中起作用,一旦返回上級程序便自動釋放。 格式:private 注:在程序中不加定義而使用的變量也認為是私有變量。 3、局部(Local)變量 注: 只在定義它的子程序中使用,進入上級或下級程序時,都自動釋放; 也必須先用命令定義以后才能使用;如果當前局部變量與上級程序中的變量同名,則隱含原變量,直到返回上級程序時釋放當前私有變量,恢復原隱含變量。 格式:local 注:所有定義好的變量(公共、私有、局部)都被自動賦值予邏輯初值 .F.,定義過程 調(diào)用過程 內(nèi)存變量的作用區(qū)域 參數(shù)接收 過程庫 自定義函數(shù),54,參數(shù)接收 格式1:PARAMETERS 格式2:LPRARMETERS 作用: 中的參數(shù)是一組內(nèi)存變量或數(shù)組,它們與過程調(diào)用命令中參數(shù)一一對應,按順序分別接收調(diào)用命令中對應參數(shù)中的值。系統(tǒng)最多可以有27個參數(shù),各參數(shù)之間用“,”分隔。 注: 中的變量名不一定和調(diào)用命令中中變量名相同,但參數(shù)數(shù)量應當不多于調(diào)用命令中參數(shù)的數(shù)量。 格式1創(chuàng)建私有變量,格式2創(chuàng)建局部變量。 例:輸出學生檔案表中性別為男生或女生的記錄。( mainP1, moduleP1) 過程庫:包含很多個過程的程序文件 注:如要調(diào)用一個過程庫中的過程,程序必須首先用以下命令打開過程庫 set procedure to ,定義過程 調(diào)用過程 內(nèi)存變量的作用區(qū)域 參數(shù)接收 過程庫 自定義函數(shù),55,定義函數(shù) 格式: FUNCTION *如有參數(shù),則第一行命令應是參數(shù)接收命令 *parameters 參數(shù)列表 return 調(diào)用函數(shù) 變量函數(shù)名(參數(shù)列表),定義過程 調(diào)用過程 內(nèi)存變量的作用區(qū)域 參數(shù)接收 過程庫 自定義函數(shù),56,5.4 面向過程程序的調(diào)試,程序錯誤的分類:1)語法錯誤:程序設計結構或命令語法有錯誤;2)系統(tǒng)錯誤:由計算機軟、硬件引起的錯誤,例VF本身的缺陷或病毒感染等;3)邏輯錯誤:不違反系統(tǒng)規(guī)則,但卻不合邏輯或不合題意的錯誤。這類錯誤系統(tǒng)不能自檢出來,由程序員自己借助調(diào)試器來檢查。 打開調(diào)試器 菜單方式:工具調(diào)試器 命令方式:debug 調(diào)試器的構成和使用 1.跟蹤窗口:顯示正在調(diào)試執(zhí)行的程序文件 :指向調(diào)試中正在執(zhí)行的代碼行; :表示斷點,程序執(zhí)行到該代碼行時,中斷程序執(zhí)行。 2.監(jiān)視窗口:指定表達式在程序調(diào)試執(zhí)行過程中的取值變化情況 指定表達式:在監(jiān)視窗口編輯,Enter確認。 3.局部窗口:顯示模塊程序中的內(nèi)存變量的名稱、當前取值及類型。 4.調(diào)用堆棧窗口:顯示當前處于執(zhí)行狀態(tài)的程序、過程或方法程序。 5.調(diào)試輸出窗口:可在模塊程序中安置一些DebugOut命令,當程序執(zhí)行到此命令后,會計算出表達式的值,并把結果送入調(diào)試輸出窗口。 命令格式:DebugOut 注:為區(qū)別于DEBUG命令,DebugOut至少要寫出6個字母。,調(diào)試器環(huán)境 設置斷點 調(diào)試菜單,57,設置斷點:工具斷點 調(diào)試菜單介紹: 1、取消:終止程序的調(diào)試執(zhí)行,并關閉程序。 2、定位修改:終止程序的調(diào)試執(zhí)行,再在文本編輯窗口打開調(diào)試程序 3、跳出:連續(xù)執(zhí)行被調(diào)用程序中的代碼,再在調(diào)用程序的調(diào)用語句的下一行處中斷。 4、單步:單步執(zhí)行下一行代碼。如下一行代碼調(diào)用了過程或者方法程序,則此過程或者方法程序在后臺執(zhí)行。 5、單步跟蹤:單步執(zhí)行下一行代碼。 6、調(diào)速:設置兩行代碼之間的延遲秒數(shù)。 7、設置下一行語句:使光標所在行稱為斷點恢復后要執(zhí)行的語句。,調(diào)試器環(huán)境 設置斷點 調(diào)試菜單,58,第六章 表單,表單的建立與修改 面向?qū)ο蟪绦蛟O計基礎 子類的設計與使用 表單控件使用1(學習成績表單) 表單控件使用2(基本情況表單) 系統(tǒng)登錄表單的設計,59,6.1 表單的建立與修改,用“表單向?qū)А苯⒈韱?.SCX): 方法:表單新建表單向?qū)?例:建立一個“一對多”的社會關系表 運行表單:單擊“運行”按鈕;表單執(zhí)行表單 用“表單設計器設計”設計表單: 方法:表單新建新建表單鼠標右鍵“數(shù)據(jù)環(huán)境” 例:建立“基本情況”表單 附: LABEL標簽: 屬性:Caption, FontName, FontSize, ForeColor 給表單添加向?qū)Э丶?“表單控件”工具欄“查看類”Visual FoxPro98WIZARDSWIZBTNS.VCX“txtbtns”按鈕 TAB:,用“表單向?qū)А苯⒈韱?用“表單設計器設計”設計表單,60,6.2 面向?qū)ο蟪绦蛟O計基礎,1、對象(Object) 現(xiàn)實世界中可以獨立存在的,能夠被區(qū)分的一切實體都是對象。 在VF中常用的對象有:表單集(FormSet)、表單(Form)和控件(Control)等。 2、類(Class) 具有共同屬性、共同操作性質(zhì)的對象的集合。 例:自然界中昆蟲是類,而瓢蟲、蝗蟲等就是對象,實例。 VF為用戶提供了29個基類,分為:容器類和控件類。 注:所有對象都是從類中產(chǎn)生,都是某個類的實例; 容器類對象可以容納其他對象,并允許訪問其中的對象。如:表單是一個對象,但可以把按鈕、編輯框、文本框等放在其中。 控件類對象不可以容納其它對象。如:文本框?qū)ο笾胁豢梢栽诜牌渌鼘ο蟆?3、屬性(Attribute) 屬性是對象的特征,是對象外觀及行為的表現(xiàn)。 4、事件(Event) 事件是對象可以識別和響應的行為與操作。如:單擊,雙擊鼠標。 5、方法(Method) 方法是和對象緊密相連的,對象所具有的功能就是他的方法 注:一般說每個事件都有自己相對應的方法。,基本概念和術語 類的特點 對象的引用,61,類的特點 1)封裝性:將對象的特性(屬性)和行為(方法)包裝在一起,類的內(nèi)部信息對用戶是隱蔽的。 2)繼承性:子類可以繼承父類的所有屬性(繼承),并且可以有與父類不同的屬性(可擴展性)。 3)多態(tài)性:同一個類可以有多個事件 對象的引用 絕對引用: thisformset:表示當前表單集 thisform:表示當前表單 相對引用: this:表示當前對象 parent:表示當前對象的上一層容器對象,基本概念和術語 類的特點 對象的引用,62,6.3 子類的設計與使用,創(chuàng)建: 菜單方式:文件新建/類新建文件 項目管理器:類庫新建 命令方式:create class 修改:打開類設計器 使用:工具欄查看類 例:創(chuàng)建一個操作表的命令按鈕組類,并在表單中使用。 屬性:Caption, ButtonCount, 事件:c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論