第三章節 數據庫與表的創建和使用考點 |
||||||||
第三章節 數據庫與表的創建和使用 (本章在筆試中所占分數為8分左右,上機考核固定12分) 考點1:數據庫包含5個項目:表、本地視圖、遠程視圖、連接和存儲過程 考點2:數據庫表與數據庫之間的相關性是通過數據庫表文件與數據庫文件的雙向鏈接實現 考點3:視圖兼有表與查詢的特點,視圖分為本地視圖與遠程視圖 考點4:存儲過程是在數據庫數據上執行特定操作并儲存在數據庫文件中的程序代碼 考點5:數據字典是指存儲在數據庫中用于描述所管理的表和對象的數據,即關于數據的數據,這些數據稱為元數據 考點6:每創建一個數據庫,都有三個文件生成數據庫文件(.dbc),數據庫備注文件(.dct),數據庫索引文件(.dcx) 考點7:創建數據庫:Create DataBase, 打開數據庫的命令:Open DataBase 數據庫名稱 Validate 關閉數據庫:Close DataBase 刪除數據庫后,數據庫中的所有表自動轉變為自由表 考點8:鏈接被破壞后,利用Validate DataBase Recover To File命令檢查數據庫的有效性和更新鏈接 考點9:表文件的后綴名:.dbf,每張表最多有255個字段,表文件名不能用A—J的單個字母做文件名 考點10:表字段數據類型符號: C(字符型,1個字節)、Y(貨幣型, 8個字節 )、 N(數值型,8個字節)、F(浮點型,8個字節)、 D(日期型, 8個字節)、T(日期時間型,8字節)、L(邏輯型,1字節)、M(備注型,4字節)、G(通用型,4字節) 考點11:表創建后,系統以擴展名.dbf保存表文件,如果表中有通用型或備注型字段,則自動產生與表名相同且擴展名為.fpt的備注文件 考點12:如果表在當前工作區已經打開,可以使用Modify Structure來修改表結構 考點13:各種數據類型的默認值:數值型: 0 邏輯型:.F. 日期型:空的日期 考點14:表的觸發器包括:插入觸發器、更新觸發器、刪除觸發器 創建觸發器的命令:Create Trigger On 表名 For Delete|Insert|Update As 類型 如:在KC表創建一個刪除觸發器放置刪除操作: Create Trigger On Kc For Delete As .F. 考點15:工作區 VFP啟動后,系統默認當前工作區為1,前10個工作區用字母A—J表示 一個工作區中只能打開一張表,系統正在使用的工作區稱為當前工作區,即默認的工作區 Select(0)選擇當前工作區,Select 0表示選擇最小未被使用的工作區 考點16:打開表 Use 表名 打開一個表后,再次打開的命令: use 表名 again in 0,關鍵字:again 打開一個表后,定義別名的命令: use 表名 alias jiaoshi in 4, 關鍵字:alias 考點17:關閉表 關閉所有的表:Close tables all 關閉當前表:use 關閉某個工作區表: use in 工作區號 考點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:對表記錄操作函數 (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 數值 use ts replace zz with zz+”等” 兩者區別:Replace只能對當前打開的表更新數據,Update可以直接對表更新 考點23:刪除語句 (1) 給記錄加上刪除標記 Delete From 表名 Where (2) 恢復刪除記錄 ReCall &&恢復當前記錄 Recall All For xb=”男” &&恢復所有性別為男的記錄 Recall All &&恢復所有記錄 (3)徹底刪除數據: Pack命令的作用是將有刪除標記的記錄刪除 Zap命令的作用是刪除所有數據,不管是否有刪除標記 設置對帶有刪除標記的記錄的訪問: Set Deleted on:忽略標有刪除標記的記錄 Set Deleted off:允許訪問有刪除標記的記錄 考點24:數據的復制: 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是數值型,所以要轉換成字符型 考點26: 用Create Table創建表 例如:創建一張表stu,包含字段:xm 字符型(10) 不為空,csrq 日期型,ck 貨幣型,js 備注型,sfdy 邏輯型,sxcj 數值型(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:數據庫表的參照完整性規則包括:更新規則、刪除規則和插入規則,更新規則與刪除規則都包括級聯、限制和忽略,而插入規則只有兩種:限制和忽略 考點29:VFP有三類完整性:實體完整性,參照完整性,用戶自定義完整性 實體完整性包括:字段的有效性規則、記錄有效性規則,主索引 參照完整性包括:表的觸發器 考點30:通過字段級、記錄級和表間三級完整約束,有效的實現了數據的完整性和一致性 考點31:DBGetPROP()函數 考點32:其他常用表函數 Select(0):返回當前工作區號 Select(1):返回當前未被使用的最大工作區號 注意跟select 0 ,select 1的區分 Select 0表示選擇最小未被使用的最小工作區 Select 1表示選擇第1個工作區 Fcount():當前表中字段個數 典型試題: 一:選擇題 1.表(table)是存儲數據的容器.在下列有關VFP表的敘述中,錯誤的是 () A.系統默認的表文件擴展名為.dbf B.利用表設計器創建表結構時,系統默認的字符型字段寬度為10 C.自由表的索引功能與數據庫表有區別 D.表文件名在命名時只要遵循操作系統的規定 ,VFP本身無任何新的限定 2. 設某數據庫中的學生表(XS.DBF)已在2號工作區中打開,且當前工作區為1號工作區,則下列命令中不能將該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.首先執行CLOSE TABLES ALL命令,然后執行__________命令,可邏輯刪除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通過創建表的索引,不僅可以對記錄數據進行排序,而且可以實現記錄的篩選 B.對于數據庫表來說,可以創建 VFP 系統支持的所有類型的索引 C.在表打開時,系統會自動地將默認的第一個索引作為主控索引 D.表的唯一索引并不能控制字段數據輸入時的重復 6.函數SELECT(0)的返回值是 ( ) A.當前工作區號 B.當前工作區的下一個工作區號 C.當前未被使用的最小工作區號 D.當前未被使用的最大工作區號 7.在有關表的操作中,有些命令只能對當前工作區中的表進行操作,而有些命令可以對非當前工作區中的表進行操作,在下列命令中,只能對當前工作區中的表進行操作的是_______ A.Replace B.GOTO C.Skip D.Delete 8.數據庫( database )是許多相關的數據庫表及其關系等對象的集合.在下列有關 VFP 數據庫的敘述中,錯誤的是( ) A.可用命令新建數據庫 B.從項目管理器中可以看出,數據庫包含表、視圖、查詢、連接和存儲過程 C.創建數據庫表之間的永久性關系,一般是在數據庫設計器中進行 D.數據庫表之間創建"一對多"永久性關系時,主表必須用主索引或候選索引 9.數據庫表可以設置字段有效性規則,字段有效性規則屬于() A.實體完整性范疇 B.參照完整性范疇 C.數據一致性范疇 D.域完整性范疇 10.數據庫表的主索引(及候選索引)的設置可以實現( ) A.域完整性 B.實體完整性 C.參照完整性 D.用戶自定義完整性 二:填空題 1.使用USE命令可以打開或關閉表.如果XS表已在第1號工作區中打開,則要在第10號工作區中再次打開XS表,可使用命令 USE xs __ IN 10 2.設在1號工作區中打開XS表,若要求在2號工作區中再次打開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系統是否處理已做了刪除標記的表記錄. 5.利用COPY命令可以將當前工作區中的表復制成Microsoft Excel 文件.若當前工作區中已打開XS表,則用命令COPY TO xyz __________,可以將XS表復制成Excel 文件 xyz.xls. 6.對于自由表來說,不可以創建的索引類型是( ) . A.主索引 B.候選索引 C.唯一索引 D.普通索引 7.某公司實現人性化管理,在每個員工生日的當日會贈送禮物.若其人事檔案表中包含一個出生日期字段(字段名為 csrq ,類型為日期型),則根據"月日"(不包含”年份”)創建索引時,其索引表達式可以為___________(DTOC(csrq,1),4) 8.Visual FoxPro系統支持3種不同的索引文件,即( )索引文件、非結構復合索引文件和獨立索引文件. 9.某表含有兩個字段:XX(字符型)和YY(日期型).若要創建一個索引,要求先根據XX字段排序,xx字段相同時再根據YY字段排序,則索引表達式可以設置為xx+( ) . 10.執行以下程序,3個SELECT()函數的輸出值分別是 _________ . 【程序清單】 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),現要創建一個索引,要求首先按照參加工作日期排序,工作日期相同時根據出生日期排序,則索引表達式為_____________ 13.如果依次執行下列命令,則xs表在兩個工作區中同時打開,其別名分別為_____ Close tables all Use xs Select 20 Use xs again 14.在 VFP 中創建一個新的數據庫后,系統會生成3個文件,其文件擴展名分別為( )(數據庫文件), .dct (數據庫備注文件)和 .dcx (數據庫索引文件). 15.數據庫表的觸發器(Trigger)是在對表的記錄進行操作時被觸發的檢驗規則.在VFP中,觸發器分為3種類型,即更新觸發器、刪除觸發器和( )觸發器. 16.如果因誤操作刪除了某個數據庫文件,由于數據庫表仍然保留對該數據庫引用的后鏈,因此這些數據庫表也不能被添加到其他的數據庫中.這時需要利用 _______命令刪除存儲在數據庫表中的后鏈,使之成為自由表.(07秋) 17.在兩個數據庫表創建永久性關系后,就可以創建它們之間的參照完整性規則.在VFP中,參照完整性規則分為更新規則、( ) 規則和插入規則. 18.在設置表之間的參照完整性規則時,系統給定的更新和刪除規則有3個,即級聯,限制和忽略,而插入規則只有兩個,即( ). 19.利用DBGetProp函數,可以返回數據庫的屬性,也可以返回當前數據庫中表、表的字段或視圖的有關屬性,例如:要得到js表的記錄級有效性規則DBGetProp(“js”,__________,”RuleExpression”) 20.利用DBGETPROP()函數,可以獲取當前數據庫的屬性設置信息,或當前數據庫中的表、表字段或視圖的屬性設置信息.例如,要獲取當前數據庫SJK中XS表的xb字段的默認值,可以使用函數 DBGetProp(“js.xb”,”Field”,__________) 典型試題答案 一:選擇題 1.D 說明:表文件名除了遵守操作系統的規定,還不能用A--J中的單個字母作文件名 2.D 說明:Use關閉當前工作區中的表 3.B 4.B說明:A錯在如果用Delete For則表必須處于打開狀態,且為當前工作區,C與D都沒有遵守格式 5.C說明:表打開時,不會將任何一個索引作為主控索引 6.A 7.A 8.B 說明:數據庫包含表,本地視圖,遠程視圖,連接和存儲過程,不包括查詢 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表示將所有的表關閉,執行select 3表示選擇第3個工作區成為當前工作區,執行use js將在第3個工作區把js表打開,執行Select xh,xm,csrq From xs后將xs表在最小未被使用的工作區打開,并將該工作區作為當前工作區,所以在第1個工作區中打開,并且第1個工作區是當前工作區,執行into cursor t3后t3將在最小未被使用的工作區打開,并將該工作區作為當前工作區,即第2個工作區打開,select("xs")判斷xs所在的工作區,所以是2,select("t3")所以是3,select(0)表示當前工作區即2 11.50 說明:在對表js的循環中,skip會向下移動一條記錄,而在scan循環中,遇到endscan指針也會向下移動一條記錄,所以輸出Recno()的時候會輸出1,3,5,7,9……這樣一個規律 12.Dtoc(cjgzrq,1)+Dtoc(csrq,1) 說明:兩個日期型連在一起時,要用Dtoc作一個轉換,且注意DTOC中要加1,表示去除日期之間的間隔符'/' 13.xs W20 說明:在VFP中打開一張表時如果沒有用alias指定別名,則默認別名同表名相同,如果再次打開該表,則如果在1--10工作區中,則對應別名為A--J,如果超過10則表明為W11--W32767之間 14..dbc 15.插入 16.Free Table 17.刪除 18.限制和忽略 19.Table 說明:因為js是表名,所以填寫Table,如果js是字段名稱,那么就應該填寫Field 20.DefaultValue |
||||||||