“數據庫及其應用”考前沖刺復習匯總
第一章 數據庫系統基本概念
1.數據管理技術的三個階段:
自由管理階段——文件管理階段——數據庫階段
2.數據庫系統的組成:
數據庫、支持數據庫運行的軟硬件、數據庫管理系統和應用程序等部分組成。
3.數據庫系統的三級組織結構:概念模式、內模式、外模式
三者之間的映射:外模式/模式、模式/內模式
4.英文含義:
DBMS:數據庫管理系統
DBA: 數據庫管理員
DDL: 數據描述語言
DML: 數據操縱語言
UWA: 用戶工作區
DD: 數據字典
#p#
第二章 數據模型
1.數據模型的概念:數據庫的數據結構形式,一一種形式化地描述數據及數據之間的聯系方法。
2.數據模型的表示方法:DM={R,L} 其中R代表記錄類型的集合;L代表不同記錄類型聯系的集合。
3.實體:實際存在的東西或是概念性的東西或是事物與事物之間的聯系。
屬性:實體所具有的性質
“型”與“值”之分:型是概念的內涵,表達的是個體的共性。而值是概念的實例,表達的是個體具體內容。
“域”:實體中的每個屬性,都有一個取值范圍,這叫作屬性的“域”。
“鍵”:在實體屬性中,可用于區別實體集中不同個體的哪個屬性或幾個屬性的組合,考試#大提示稱為該實體的“鍵”。
4.實體間的聯系方式:一對一(1:1),一對多(1:N),多對多(M:N)
5.實體聯系表示法(E-R方法)
6.數據庫類型:層次模型,網狀模型,關系模型(用關系表示實體及其聯系)。
7.人們通過一個中間步驟,先用E-R圖反映實體及其聯系,再從E-R圖出發結合具體數據模型進行轉換,從E-R圖轉換為關系模型的基本原則在設計關系數據庫時是很有用的。
#p#
第三章 關系數據庫理論基礎
1.表示關系定義: 域D1={男,女},表示性別的集合,域中數據個數叫基數。即D1的基數為2.
2.表示關系定義: 笛卡爾積
3.關系對應的二維表中,行對應元組,列對應域。 在FOXPRO中把關系叫做“數據庫文件”或“表”,把屬性叫做“字段”,元組叫做“記錄”。
4.集合運算符:U(并),n(交),——(差),X(笛卡爾積)
關系運算符:投影,選擇,連接
比較運算符:<,>
邏輯運算符:——(非),∧(與),∨(或)。
#p#
第四章 數據庫應用系統的設計
1.數據庫設計的內容:結構特性設計和行為特性設計
2.數據庫邏輯設計的步驟:
(1)收集和分析用戶要求 數據及其流動方向(箭頭),對數據的加工(圓形),文件(卡片),源點和終點(方框) “由外向內,自頂而下”
(2)建立E-R模型
(3)數據庫模式設計
3.數據庫設計方法稱為:視圖設計法
#p#
第五章 FoxPro綜述
數據庫每一記錄最大字段數是255,可以同時打開的數據庫文件數225 ,內存變量(數組)最大數65000。
1.數據類型:(1)字符型(C-254) (2)數據型(N-20) (3)浮點型(F-20) (4)邏輯型(L-1) (5)日期型(D-8) (6)備注型(M-10) (7)通用型(G-10)
2.常量: (1)字符型 (2)數據型 (3)日期型 (4)邏輯型
3.變量:
(1)字段變量: 字符型, 數據型, 浮點型, 邏輯型, 日期型, 備注型, 通用型
(2)內存變量: 字符型, 數據型, 浮點型, 邏輯型,屏幕型(S)
*當字段變量與內存變量同名時,字段變量優先。但可以通過內存變量名前加上前綴M.或M->來區別。
4.運算符及其優先級
類別 | 符號 | 說明 | 優先級 |
算術運算符 | () +、- **或∧ *、/、% +、- |
括號 正、負號 乘冪 乘除、求余 加、減 |
高 底 |
字符串 運算符 |
+ - |
字符串聯接 字符串聯接 |
同類優先級相等 |
關系運算符 | 〈 〉 |
小于 大于 |
同類優先級相等 |
邏輯運算符 | () 。NOT。 。AND。 。OR。 |
括號 邏輯非 邏輯與 邏輯或 |
高 底 |
5.命令格式:〈命令名〉[〈表達式表〉][〈范圍〉][FOR〈條件〉][WHILE〈條件〉][TO FILE〈文件名〉|TO PRINTER|TO ARRAY〈數組表〉|TO〈內存變量〉]ALL[LIKE|EXCEPT〈通配符〉]][IN〈別名〉]
*范圍選擇:RECORD N 對第N條記錄進行操作
NEXT N 對從當前記錄開始的N條記錄進行操作
ALL 對所有的記錄進行操作
REST 對當前記錄開始到文件結束的所有記錄進行操作
FOR〈條件〉:對所有滿足“條件”的記錄進行操作。
WHILE〈條件〉:對直到不滿足條件的記錄為止的所有已滿足條件的記錄進行操作。
6.命令的執行方式;1.立即方式 2.程序方式
7.內存變量的賦值:(1)STORE <表達式> TO <內存變量表>
(2)<內存變量>=<表達式>
(3)SAVE SCREEN TO <屏幕型內存變量>
RESTORE SCREEN FROM <屏幕型內存變量>
8.內存變量的釋放:(1)RELEASE<內存變量表>
(2)RELEASE ALL [LIKE|EXCEPT<通配符>]
(3)CLEAR MEMORY/CLEAR ALL
9.內存變量文件:(1)內存變量文件的建立
SAVE TO <內存變量文件名>[ALL[LIKE|EXCEPT<通配符>]]
(2)內存變量的恢復
RESTORE FROM<內存變量文件名>[ ADDITIVE]
ADDITIVE沒有表示清除當前內存中所有的內存變量,有時表示保留當前內存變量。
(3) 數據類型轉換函數
字符型轉數值型函數VAL(<字符表達式>)
數值型轉字符型函數STR(<數值表達式>)[,<數值表達式2>[.<數值表達式3>]])
字符型轉日期型函數CTOD(<字符型表達式>)
日期型轉字符型函數DTOC(<日期表達式>[,1])(帶“1”表示可以進行索引的日期字符串。)
(4) 測試函數
數據類型測試函數TYPE(<字符表達式>)
測試文件尾函數EOF([<工作區號>|<文件別名>])
測試文件頭函數BOF([<工作區號>|<文件別名>])
測試當前記錄號函數RECNO([<工作區號>|<文件別名>])
測試庫文件記錄數函數RECCOUNT([<工作區號>|<文件別名>])
測試查找記錄函數FOUND([<工作區號>|<文件別名>])
測試屏幕(打印頭)光標坐標函數ROW(PROW)()與COL(PCOL()
#p#
第六章 數據庫的基本操作
1. 庫文件結構建立CREAT[<文件名>|?]其中A-J作為工作區代碼
在把記錄輸入完后,按CTRL+W或CTRL+END存盤。
2. 追加記錄APPEND[BLANK]
3. 記錄顯示LIST/DISPLAY [<范圍>][FIELDS<字段名表>][FOR<條件>][WHILE<條件>][OFF][TO PRINTER/FILE<文件名>]
4. 數據庫文件打開USE[<庫文件名>/?][ALIAS<別名>]
5. 關閉數據庫文件:關閉當前工作區打開的數據庫文件USE
關閉當前打開的所有的庫文件CLOSE DATABASES
6.數據庫文件結構的顯示:LIST/DISPLAY STRUCTURE[TO PRINTER/TO FILE<文件名>]
數據庫文件結構的修改:MODIFY STRUCTURE*不能同時修改字段名和寬度
6. 指針的移動:
絕對移動(1)GO/GOTO [RECORD]<數值表達式>[IN<工作區號>/<文件別名>]
(2)GO/GOTO TOP/BOTTOM[IN<工作區>/<文件名>]
相對移動SKIP[<數值表達式>][IN<工作區號>/<文件別名>]
7. 插入記錄INSERT[BEFORE][BLANK]
8. 刪除記錄DELETE[<范圍>][FOR<條件>][WHILE<條件>]
SET DELETED OFF/ON (取OFF,邏輯刪除無效,反之,則有效)
恢復邏輯刪除RECALL[<范圍>][FOR<條件>][WHILE<條件>]
物理刪除PACK
物理刪除所有記錄ZAP(只有結構無記錄)
9. 記錄的修改:
編輯修改EDIT.CHANG [<范圍>][FIELDS<字段名表>[條件]
瀏覽編輯修改BROWSE
替換修改REPLACE[<范圍>]<字段1>WITH<表達式1>……
10. 數據庫文件的排序與索引
排序:SORT TO <文件名>ON<字段1>[/A][/C][/D][,<字段2>………[FIELDS<字段名表>][FOR……
*關鍵字只能是C,N,D. */A(升序,默認)/D(降序) /C(不區分大/小寫)
*需要臨時文件做周轉
索引:INDEX ON<關鍵字表達式>TO<索引文件名>[FOR……][UNIQUE][ADD…]
*備注字段不能作為關鍵字
*字段索引只能是C,N,D,多字段索引只能是C
*UNIQUE進行唯一索引(在記錄相同,只取第一個)
*未指定ADDITIVE,關閉先打開的索引文件,反之,就不關閉。
索引文件的打開USE<庫文件名>INDEX<索引文件名表>
(允許打開25個) SET INDEX TO <索引文件名表>
索引文件的關閉SET INDEX TO/CLOSE INDEX
指定主索引SET ORDER TO [<數值表達式>/<索引文件名>]
11. 數據查詢:
順序查詢:LOCATE[<范圍>[FOR<條件>][WHILE<條件>]它總是把指針定位到第一個滿足條件的記錄上,想繼續查找,則用CONTINUE
索引查詢:FIND<字符串>/<數值常數>當設置為SET EXACT OFF時,查詢時不需要精確比較,反之,則需要精確比較。
SEEK<表達式>它可以查詢包括字符型,數值型,日期型和邏輯型在內的各種數據類型,也可以是內存變量或者是表達式……
12. 數據統計:
計數命令COUNT[<范圍>][FOR<條件>][WHILE<條件>][TO<內存變量名>]
求和命令SUM[<范圍>][<數值表達式>][FOR<條件>][WHILE<條件>][TO<內存變量名>/TO ARRAY<數組>]
求平均值命令AVERAGE[<范圍>][<數值表達式>][FOR<條件>][WHILE<條件>][TO<內存變量名>/TO ARRAY<數組>]
分類匯總命令TOTAL ON <關鍵表達式> TO <分類庫文件名>[<范圍>][FIELDS<字段名表>][FOR<條件>][WHILE<條件>]要求首先對庫文件進行排序或索引
13. 數據庫文件的復制
(1) 庫文件的復制COPY TO <庫文件名>[<范圍>][FIELDS<字段名表>][FOR<條件>][WHILE<條件>]將當前庫文件中的數據(包括結構)一起復制到指定的庫文件中。
(2) 庫文件結構的復制COPY STRUCTURE TO <新庫文件名>[FIELDS<字段名表>]
(3) 庫文件與文本數據文件的轉換復制
庫文件復制成文本數據文件COPY TO <數據文件名>SDF.DELIMITED[WITH<定界符>/BLABK][<范圍>][FIELDS<字段名表>][FOR<條件>][WHILE<條件>]
文本數據文件中的數據復制到庫文件APPEND FROM<數據文件名> SDF.DELIMITED[WITH<定界符>/BLABK] [FOR<條件>][FIELDS<字段名表>]
(4) 任何類型文件的復制COPY FILE <源文件名> TO <目標文件名>不能復制已經打開的庫文件,且<源文件名>,<目標文件名>必須包括主文件名和擴展名。
14. 多重數據庫文件的操作
(1) 最多達225個工作區,且前十個工作區1~10還規定了別名A~J.
(2) 工作區選擇命令SELECT<工作區號>/<別名>,從當前工作區訪問其它工作區打開庫文件中的某個字段時,要表示為別名。字段名或者別名->字段名
(3) 庫文件之間的關聯SET RELATION TO [<關鍵字表達式>/<數值表達式>INTO<工作區號>/<別名>[ADDITIVE]其中若選<數值表達式>,而被關聯庫沒有建立索引,則作為記錄號進行關聯。
指定[ADDITIVE]保留以前關聯。SET RELATION TO將刪除當前工作區與所有其他工作區連接
(4) 庫文件的連接JOIN WITH<別名> TO <新庫文件名>[FIELDS<字段名表>][FOR<條件>]
(5) 庫文件的更新UPDATE ON <關鍵字段>FROM<別名>REPLACE<字段名1>WITH<表達式1>……[RANDOM]其中
<關鍵字段>是2個庫都有的且都按此建立索引,并且打開,若提供更新的庫文件未建立索引,則需使用RANDOM。
#p#
第七章 FoxPro程序設計
1. 命令文件的建立、修改和運行
(1) 命令文件的建立與修改MODIFY COMMAND[<命令文件名>/?][IN WINDOW<窗口名>/SCREEN]
(2) 命令文件的執行DO<命令文件名>
其中SET DEVELOPMENT ON/OFF ,處于ON狀態是默認,執行新的版本,處于OFF狀態,則執行舊版本。
(3)命令文件的注釋NOTE<注釋> *<注釋> &&<注釋>
2. 順序結構程序設計
(1)CLEAR是清屏命令,SET TALK ON為默認,每執行一條命令就給出回應,RETURN是一條返回命令。
(2)非格式化輸入命令
ACCEPT [<字符表達式>] TO <內存變量> 接受從鍵盤輸入的字符型數據,輸入的字符串不必用引號括起來。 <字符表達式>只是提示作用。
INPUT[<字符表達式>] TO <內存變量>接受從鍵盤輸入的C,N,D,L等,若是字符串則必須用引號括起來。
WAIT [<字符表達式>] TO <內存變量>等待從鍵盤輸入一個字符, <字符表達式>只能是提示作用。
SET CONSOLE ON(默認,所有非格式化輸入數據都顯示)/OFF(相反)
(3)格式化輸入輸出命令
格式化輸出命令@<行,列> SAY <表達式>[PICTURE<描述符串>][FONT<字體>[,<字號>]] SET DEVICE TO SCREEN 屏幕輸出
SET DEVICE TO PRINT 打印機輸出
格式化輸入輸出命令@<行,列>[SAY<表達式1>]GET<內存變量>|<字段>[PICTURE<描述符串>][RANGE<表達式2>[,<表達式3>]]與READ合用,才能修改變量,一個READ可以修改前面多個@…GET的變量值,通常SAY只是提示作用。
定義文本編輯區
@<行,列>EDIT<內存變量>SIZE<數值表達式1>,<數值表達式2>[FONT<字體>[,<字號>]][SCROLL]通過READ編輯,主要是對備注字段起作用。
清屏命令
CLEAR清除整個屏幕
@<行1,列1)[CLEAR|CLEAR TO <行2,列2>]清除屏幕局部區
3.分支語句IF <條件>
<命令序列1>
[ELSE
<命令序列2>]
ENDIF
多分支選擇語句DO CASE
CASE<條件1>
<命令序列1>
CASE<條件2>
<命令序列2>
;
CASE<條件N>
<命令序列N>
[OTHERWISE
<命令序列N+1>]
ENDCASE
4.循環結構程序設計
DO WHILE <條件>
<命令序列1>
[LOOP]
<命令序列2>
[EXIT]
ENDDO
FOR <循環變量> = <初值> TO <終止> [SETEP<步長>]
<命令序列>
[LOOP]
[EXIT]
ENDFOR
SCAN [<范圍>][FOR<條件>][WHILE<條件>]
<命令序列>
[LOOP]
[EXIT]
ENDSCAN
5.過程及自定義函數
(1)過程PROCEDURE< 過程名>
[PARAMETERS<形參表>]
<過程體>
RETURN[TO MASTER]
其中[TO MASTER]在嵌套中使用,含有[PARAMETERS<形參表>]為有參過程。
(2)過程文件建立PROCEDURE<過程名1>
<過程體1>
RETURN
…………
過程文件的打開和關閉SET PROCEDURE TO [<過程文件名>]
CLOSE PROCEDURE
(3)過程的調用DO <過程名> [WITH<實參表>]
(4)變量的作用域
全局變量PUBLIC<內存變量表>
局部變量:未經PUBLIC定義的
PRIVATE <內存變量表>
PRIVATE ALL [LIKE<通配符變量名>|EXCEPT<通配符變量名>]隱藏指定的內存變量,避免同名變量
(5)定義自定義函數FUNCTION<函數名>
[PARAMETERS<形參表>]
<函數體>
RETURN<表達式>
自定義函數的調用:函數名([<實參表>])
參數傳遞方式 SET UDFPARMS TO [VALUE|REFERENCE]若選用VALUE為值傳遞(默認),不會改變變量的值,若REFERENCE,則為引用方式。
【編輯推薦】