![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
第三章節(jié) 數(shù)據(jù)庫與表的創(chuàng)建和使用考點 |
||||||||
第三章節(jié) 數(shù)據(jù)庫與表的創(chuàng)建和使用 (本章在筆試中所占分數(shù)為8分左右,上機考核固定12分) 考點1:數(shù)據(jù)庫包含5個項目:表、本地視圖、遠程視圖、連接和存儲過程 考點2:數(shù)據(jù)庫表與數(shù)據(jù)庫之間的相關性是通過數(shù)據(jù)庫表文件與數(shù)據(jù)庫文件的雙向鏈接實現(xiàn) 考點3:視圖兼有表與查詢的特點,視圖分為本地視圖與遠程視圖 考點4:存儲過程是在數(shù)據(jù)庫數(shù)據(jù)上執(zhí)行特定操作并儲存在數(shù)據(jù)庫文件中的程序代碼 考點5:數(shù)據(jù)字典是指存儲在數(shù)據(jù)庫中用于描述所管理的表和對象的數(shù)據(jù),即關于數(shù)據(jù)的數(shù)據(jù),這些數(shù)據(jù)稱為元數(shù)據(jù) 考點6:每創(chuàng)建一個數(shù)據(jù)庫,都有三個文件生成數(shù)據(jù)庫文件(.dbc),數(shù)據(jù)庫備注文件(.dct),數(shù)據(jù)庫索引文件(.dcx) 考點7:創(chuàng)建數(shù)據(jù)庫:Create DataBase, 打開數(shù)據(jù)庫的命令:Open DataBase 數(shù)據(jù)庫名稱 Validate 關閉數(shù)據(jù)庫:Close DataBase 刪除數(shù)據(jù)庫后,數(shù)據(jù)庫中的所有表自動轉變?yōu)樽杂杀?/SPAN> 考點8:鏈接被破壞后,利用Validate DataBase Recover To File命令檢查數(shù)據(jù)庫的有效性和更新鏈接 考點9:表文件的后綴名:.dbf,每張表最多有255個字段,表文件名不能用A—J的單個字母做文件名 考點10:表字段數(shù)據(jù)類型符號: C(字符型,1個字節(jié))、Y(貨幣型, 8個字節(jié) )、 N(數(shù)值型,8個字節(jié))、F(浮點型,8個字節(jié))、 D(日期型, 8個字節(jié))、T(日期時間型,8字節(jié))、L(邏輯型,1字節(jié))、M(備注型,4字節(jié))、G(通用型,4字節(jié)) 考點11:表創(chuàng)建后,系統(tǒng)以擴展名.dbf保存表文件,如果表中有通用型或備注型字段,則自動產(chǎn)生與表名相同且擴展名為.fpt的備注文件 考點12:如果表在當前工作區(qū)已經(jīng)打開,可以使用Modify Structure來修改表結構 考點13:各種數(shù)據(jù)類型的默認值:數(shù)值型: 0 邏輯型:.F. 日期型:空的日期 考點14:表的觸發(fā)器包括:插入觸發(fā)器、更新觸發(fā)器、刪除觸發(fā)器 創(chuàng)建觸發(fā)器的命令:Create Trigger On 表名 For Delete|Insert|Update As 類型 如:在KC表創(chuàng)建一個刪除觸發(fā)器放置刪除操作: Create Trigger On Kc For Delete As .F. 考點15:工作區(qū) VFP啟動后,系統(tǒng)默認當前工作區(qū)為1,前10個工作區(qū)用字母A—J表示 一個工作區(qū)中只能打開一張表,系統(tǒng)正在使用的工作區(qū)稱為當前工作區(qū),即默認的工作區(qū) Select(0)選擇當前工作區(qū),Select 0表示選擇最小未被使用的工作區(qū) 考點16:打開表 Use 表名 打開一個表后,再次打開的命令: use 表名 again in 0,關鍵字:again 打開一個表后,定義別名的命令: use 表名 alias jiaoshi in 4, 關鍵字:alias 考點17:關閉表 關閉所有的表:Close tables all 關閉當前表:use 關閉某個工作區(qū)表: use in 工作區(qū)號 考點18:表的獨占與共享 Use xs Shared &&共享方式打開xs表 Use xs Exclusive &&以獨占方式打開xs表 考點19:使用Insert Into命令追加記錄 Insert Into 表名(字段名1,字段名2) Values(值1,值2) 使用Append命令追加一條空記錄到表中, Append From批量錄入記錄 考點20:瀏覽窗口 瀏覽當前表:Browse 記錄的篩選:Set Filter To 限制對字段的訪問:Set Field To 考點21:對表記錄操作函數(shù) (1)Eof()用來判斷記錄指針是否指向到表中最后一條記錄的后邊,在后邊表示.T.,否則為.F. (2)Bof()表示記錄指針指向到記錄的最上面一條記錄的上邊時表示.T.,否則為.F. (3)RecNo():記錄指針的位置,也就是第幾條記錄 (4)GOTO命令:讓記錄指針移動到記錄的位置 GoTo Top:移動到最上面一條記錄 Goto Bottom :移動到最下面一條記錄 (5)Skip命令:邏輯移動指針, skip 1從當前記錄指針向下移動一條,skip -1從當前記錄指針向上移動一條 (6)Locate命令:條件定位,Continue命令 考點22:更新命令: 1.Update 表名 set 字段名1=值,字段名2=值 Where 例:用Update-Sql命令修改ts表中作者字段(zz,c)的值時,若要在所有記錄的作者后面加漢字”等”,可以使用命令: Update ts set zz=alltrim(zz)+”等” 2.Replace語句: Replace 字段 with 數(shù)值 use ts replace zz with zz+”等” 兩者區(qū)別:Replace只能對當前打開的表更新數(shù)據(jù),Update可以直接對表更新 考點23:刪除語句 (1) 給記錄加上刪除標記 Delete From 表名 Where (2) 恢復刪除記錄 ReCall &&恢復當前記錄 Recall All For xb=”男” &&恢復所有性別為男的記錄 Recall All &&恢復所有記錄 (3)徹底刪除數(shù)據(jù): Pack命令的作用是將有刪除標記的記錄刪除 Zap命令的作用是刪除所有數(shù)據(jù),不管是否有刪除標記 設置對帶有刪除標記的記錄的訪問: Set Deleted on:忽略標有刪除標記的記錄 Set Deleted off:允許訪問有刪除標記的記錄 考點24:數(shù)據(jù)的復制: Copy to xs01 &&拷貝當前表到xs01表中 Copy to xs01 sdf &&拷貝當前表到xs01文本文件中,關鍵字:sdf Copy to xs01 xls &&拷貝當前表到xs01 Excel文件中, 關鍵字:xls 考點25:索引 (1) 不能基于備注型字段與通用型字段建立索引 (2)索引文件類型包括結構復合索引文件、非結構復合索引文件、獨立索引文件,索引的類型包括:候選索引,主索引,普通索引,唯一索引 (3)設置主控索引的方法: 打開表的同時指定主控索引: use xs order xh &&主控索引為xh 打開表后再設置主控索引 Use xs Set order to xh &&主控索引為xh 例如:課程表(kc)中含有字段學分xf N(3,1),課程代號 kcdh C(10),要求先按xf字段排序,xf相同時再按課程代號排序的表達式為: Str(xf)+kcdh &&因為xf是數(shù)值型,所以要轉換成字符型 考點26: 用Create Table創(chuàng)建表 例如:創(chuàng)建一張表stu,包含字段:xm 字符型(10) 不為空,csrq 日期型,ck 貨幣型,js 備注型,sfdy 邏輯型,sxcj 數(shù)值型(3,0) Create Table stu(xm c(10) not null, csrq D, ck Y , js M, sfdy L, sxcj N(3,0)) 考點27: 表結構的修改 增加一個字段命令:Alter Table 表名 add column 列名 增加一個主索引:Alter Table js Add Primary Key jybh Tag jybh 設置字段的有效性:Alter Table Js Alter Column Set Check gzrq<csrq Error ‘出生日期必須大于工作日期’ 設置字段的默認值:Alter Table Js Alter Column xb Set Default ‘男’ 刪除一個字段命令:alter table 表名 drop column 列名 刪除一個字段的索引命令:alter table 表名 drop check 索引名 考點28:數(shù)據(jù)庫表的參照完整性規(guī)則包括:更新規(guī)則、刪除規(guī)則和插入規(guī)則,更新規(guī)則與刪除規(guī)則都包括級聯(lián)、限制和忽略,而插入規(guī)則只有兩種:限制和忽略 考點29:VFP有三類完整性:實體完整性,參照完整性,用戶自定義完整性 實體完整性包括:字段的有效性規(guī)則、記錄有效性規(guī)則,主索引 參照完整性包括:表的觸發(fā)器 考點30:通過字段級、記錄級和表間三級完整約束,有效的實現(xiàn)了數(shù)據(jù)的完整性和一致性 考點31:DBGetPROP()函數(shù) 考點32:其他常用表函數(shù) Select(0):返回當前工作區(qū)號 Select(1):返回當前未被使用的最大工作區(qū)號 注意跟select 0 ,select 1的區(qū)分 Select 0表示選擇最小未被使用的最小工作區(qū) Select 1表示選擇第1個工作區(qū) Fcount():當前表中字段個數(shù) 典型試題: 一:選擇題 1.表(table)是存儲數(shù)據(jù)的容器.在下列有關VFP表的敘述中,錯誤的是 () A.系統(tǒng)默認的表文件擴展名為.dbf B.利用表設計器創(chuàng)建表結構時,系統(tǒng)默認的字符型字段寬度為10 C.自由表的索引功能與數(shù)據(jù)庫表有區(qū)別 D.表文件名在命名時只要遵循操作系統(tǒng)的規(guī)定 ,VFP本身無任何新的限定 2. 設某數(shù)據(jù)庫中的學生表(XS.DBF)已在2號工作區(qū)中打開,且當前工作區(qū)為1號工作區(qū),則下列命令中不能將該XS表關閉的是 ( ) A.CLOSE TABLE B.CLOSE DATABASE ALL C.USE IN 2 D.USE 3.XS(學生)表中有XM(姓名,字符型)和XB(性別,字符型)等字段.如果要將所有男生記錄的姓名字段值清空,則可以使用命令 _______ . A.UPDATE XS SET xm=’’ WHERE "xb"=男 B.UPDATE XS SET xm=SPACE(0) WHERE xb="男" C.UPDATE XS SET xm=SPACE(0) FOR xb="男" D.UPDATE XS SET xm=““ FOR "xb"=男 4.首先執(zhí)行CLOSE TABLES ALL命令,然后執(zhí)行__________命令,可邏輯刪除JS(教師)表中年齡超過60歲的所有記錄(注:csrq為日期型字段,含義為出生日期). A.DELETE FOR YEAR(DATE()-YEAR(csrq))>60 B.DELETE FROM js WHERE YEAR(DATE())-YEAR(csrq)>60 C.DELETE FROM js FOR YEAR(DATE()-YEAR(csrq))>60 D.DELETE FROM js WHILE YEAR(DATE())-YEAR(csrq)>60 5.在下列有關 VFP 表索引的敘述中,錯誤的是( ) A通過創(chuàng)建表的索引,不僅可以對記錄數(shù)據(jù)進行排序,而且可以實現(xiàn)記錄的篩選 B.對于數(shù)據(jù)庫表來說,可以創(chuàng)建 VFP 系統(tǒng)支持的所有類型的索引 C.在表打開時,系統(tǒng)會自動地將默認的第一個索引作為主控索引 D.表的唯一索引并不能控制字段數(shù)據(jù)輸入時的重復 6.函數(shù)SELECT(0)的返回值是 ( ) A.當前工作區(qū)號 B.當前工作區(qū)的下一個工作區(qū)號 C.當前未被使用的最小工作區(qū)號 D.當前未被使用的最大工作區(qū)號 7.在有關表的操作中,有些命令只能對當前工作區(qū)中的表進行操作,而有些命令可以對非當前工作區(qū)中的表進行操作,在下列命令中,只能對當前工作區(qū)中的表進行操作的是_______ A.Replace B.GOTO C.Skip D.Delete 8.數(shù)據(jù)庫( database )是許多相關的數(shù)據(jù)庫表及其關系等對象的集合.在下列有關 VFP 數(shù)據(jù)庫的敘述中,錯誤的是( ) A.可用命令新建數(shù)據(jù)庫 B.從項目管理器中可以看出,數(shù)據(jù)庫包含表、視圖、查詢、連接和存儲過程 C.創(chuàng)建數(shù)據(jù)庫表之間的永久性關系,一般是在數(shù)據(jù)庫設計器中進行 D.數(shù)據(jù)庫表之間創(chuàng)建"一對多"永久性關系時,主表必須用主索引或候選索引 9.數(shù)據(jù)庫表可以設置字段有效性規(guī)則,字段有效性規(guī)則屬于() A.實體完整性范疇 B.參照完整性范疇 C.數(shù)據(jù)一致性范疇 D.域完整性范疇 10.數(shù)據(jù)庫表的主索引(及候選索引)的設置可以實現(xiàn)( ) A.域完整性 B.實體完整性 C.參照完整性 D.用戶自定義完整性 二:填空題 1.使用USE命令可以打開或關閉表.如果XS表已在第1號工作區(qū)中打開,則要在第10號工作區(qū)中再次打開XS表,可使用命令 USE xs __ IN 10 2.設在1號工作區(qū)中打開XS表,若要求在2號工作區(qū)中再次打開xs表且別名設置為XUESHENG,則可使用命令:USE XS _________ xuesheng IN 2 AGAIN 3.用INSERT-SQL命令在XS(學生)表中添加如下表格所示的記錄,可使用命令:
INSERT INTO xs(xh,jl,csrq) ( ) (“E 4.使用SET ( ) ON|OFF命令,可以指定visual FoxPro系統(tǒng)是否處理已做了刪除標記的表記錄. 5.利用COPY命令可以將當前工作區(qū)中的表復制成Microsoft Excel 文件.若當前工作區(qū)中已打開XS表,則用命令COPY TO xyz __________,可以將XS表復制成Excel 文件 xyz.xls. 6.對于自由表來說,不可以創(chuàng)建的索引類型是( ) . A.主索引 B.候選索引 C.唯一索引 D.普通索引 7.某公司實現(xiàn)人性化管理,在每個員工生日的當日會贈送禮物.若其人事檔案表中包含一個出生日期字段(字段名為 csrq ,類型為日期型),則根據(jù)"月日"(不包含”年份”)創(chuàng)建索引時,其索引表達式可以為___________(DTOC(csrq,1),4) 8.Visual FoxPro系統(tǒng)支持3種不同的索引文件,即( )索引文件、非結構復合索引文件和獨立索引文件. 9.某表含有兩個字段:XX(字符型)和YY(日期型).若要創(chuàng)建一個索引,要求先根據(jù)XX字段排序,xx字段相同時再根據(jù)YY字段排序,則索引表達式可以設置為xx+( ) . 10.執(zhí)行以下程序,3個SELECT()函數(shù)的輸出值分別是 _________ . 【程序清單】 CLOSE TABLES ALL SELECT 3 USE js SELECT xh,xm,csrq FROM XS INTO CURSOR t3 ? SELECT("XS") ??SELECT("t3") ??SELECT(0) 11.教師(js)表中含有100條記錄,運行下面程序后,屏幕上顯示的記錄有____條 Set talk off &&關閉顯示 Clear &&清空主窗口 Use js &&打開js表,這時指針指向第一條記錄 Scan &&判斷是否到js表最后,即是否eof為.t. ? Recno(),gh,xm &&輸出記錄號的值,gh的值,xm的值 Skip &&向下移動一條記錄 Endscan &&向下移動一條記錄 Use &&關閉顯示 12.兩個日期型字段,參加工作日期(cjgzrq)和出生日期(csrq),現(xiàn)要創(chuàng)建一個索引,要求首先按照參加工作日期排序,工作日期相同時根據(jù)出生日期排序,則索引表達式為_____________ 13.如果依次執(zhí)行下列命令,則xs表在兩個工作區(qū)中同時打開,其別名分別為_____ Close tables all Use xs Select 20 Use xs again 14.在 VFP 中創(chuàng)建一個新的數(shù)據(jù)庫后,系統(tǒng)會生成3個文件,其文件擴展名分別為( )(數(shù)據(jù)庫文件), .dct (數(shù)據(jù)庫備注文件)和 .dcx (數(shù)據(jù)庫索引文件). 15.數(shù)據(jù)庫表的觸發(fā)器(Trigger)是在對表的記錄進行操作時被觸發(fā)的檢驗規(guī)則.在VFP中,觸發(fā)器分為3種類型,即更新觸發(fā)器、刪除觸發(fā)器和( )觸發(fā)器. 16.如果因誤操作刪除了某個數(shù)據(jù)庫文件,由于數(shù)據(jù)庫表仍然保留對該數(shù)據(jù)庫引用的后鏈,因此這些數(shù)據(jù)庫表也不能被添加到其他的數(shù)據(jù)庫中.這時需要利用 _______命令刪除存儲在數(shù)據(jù)庫表中的后鏈,使之成為自由表.(07秋) 17.在兩個數(shù)據(jù)庫表創(chuàng)建永久性關系后,就可以創(chuàng)建它們之間的參照完整性規(guī)則.在VFP中,參照完整性規(guī)則分為更新規(guī)則、( ) 規(guī)則和插入規(guī)則. 18.在設置表之間的參照完整性規(guī)則時,系統(tǒng)給定的更新和刪除規(guī)則有3個,即級聯(lián),限制和忽略,而插入規(guī)則只有兩個,即( ). 19.利用DBGetProp函數(shù),可以返回數(shù)據(jù)庫的屬性,也可以返回當前數(shù)據(jù)庫中表、表的字段或視圖的有關屬性,例如:要得到js表的記錄級有效性規(guī)則DBGetProp(“js”,__________,”RuleExpression”) 20.利用DBGETPROP()函數(shù),可以獲取當前數(shù)據(jù)庫的屬性設置信息,或當前數(shù)據(jù)庫中的表、表字段或視圖的屬性設置信息.例如,要獲取當前數(shù)據(jù)庫SJK中XS表的xb字段的默認值,可以使用函數(shù) DBGetProp(“js.xb”,”Field”,__________) 典型試題答案 一:選擇題 1.D 說明:表文件名除了遵守操作系統(tǒng)的規(guī)定,還不能用A--J中的單個字母作文件名 2.D 說明:Use關閉當前工作區(qū)中的表 3.B 4.B說明:A錯在如果用Delete For則表必須處于打開狀態(tài),且為當前工作區(qū),C與D都沒有遵守格式 5.C說明:表打開時,不會將任何一個索引作為主控索引 6.A 7.A 8.B 說明:數(shù)據(jù)庫包含表,本地視圖,遠程視圖,連接和存儲過程,不包括查詢 9.A 10.B 二:填空題 1.again 2.alias 3.values 4.deleted 5.xls 6.A 7.Right 8.結構 9.Dtoc(yy) 10.1 2 2 說明:close tables all表示將所有的表關閉,執(zhí)行select 3表示選擇第3個工作區(qū)成為當前工作區(qū),執(zhí)行use js將在第3個工作區(qū)把js表打開,執(zhí)行Select xh,xm,csrq From xs后將xs表在最小未被使用的工作區(qū)打開,并將該工作區(qū)作為當前工作區(qū),所以在第1個工作區(qū)中打開,并且第1個工作區(qū)是當前工作區(qū),執(zhí)行into cursor t3后t3將在最小未被使用的工作區(qū)打開,并將該工作區(qū)作為當前工作區(qū),即第2個工作區(qū)打開,select("xs")判斷xs所在的工作區(qū),所以是2,select("t3")所以是3,select(0)表示當前工作區(qū)即2 11.50 說明:在對表js的循環(huán)中,skip會向下移動一條記錄,而在scan循環(huán)中,遇到endscan指針也會向下移動一條記錄,所以輸出Recno()的時候會輸出1,3,5,7,9……這樣一個規(guī)律 12.Dtoc(cjgzrq,1)+Dtoc(csrq,1) 說明:兩個日期型連在一起時,要用Dtoc作一個轉換,且注意DTOC中要加1,表示去除日期之間的間隔符'/' 13.xs W20 說明:在VFP中打開一張表時如果沒有用alias指定別名,則默認別名同表名相同,如果再次打開該表,則如果在1--10工作區(qū)中,則對應別名為A--J,如果超過10則表明為W11--W32767之間 14..dbc 15.插入 16.Free Table 17.刪除 18.限制和忽略 19.Table 說明:因為js是表名,所以填寫Table,如果js是字段名稱,那么就應該填寫Field 20.DefaultValue |
||||||||