第一套
一、基本操作題(共4小題,第1和2題是7分、第3和4題是8分)
注意:基本操作題為4道SQL題,請(qǐng)將每道題的SQL命令粘貼到SQL1.txt文件,
每條命令占一行,第1道題的命令是第1行,第2道題的命令是第2行,以此類推;
如果某道題沒有做相應(yīng)行為空。
在考生文件夾下完成下列操作:
1. 利用SQL SELECT命令將表stock_sl.dbf復(fù)制到stock_bk.dbf。
2. 利用SQL INSERT命令插入記錄("600028",4.36, 4.60, 5500)到stock_bk.dbf表。
3. 利用SQL UPDATE命令將stock_bk.dbf表中"股票代碼"為600007的股票"現(xiàn)價(jià)"改為8.88。
4. 利用SQL DELETE命令刪除stock_bk.dbf表中"股票代碼"為600000的股票。
本題的主要考核點(diǎn):
SQL語句的使用。
1、SELE * FROM stock_sl INTO DBF stock_bk
2、INSE INTO stock_bk (股票代碼,買入價(jià),現(xiàn)價(jià),持有數(shù)量)VALU("600028", 4.36, 4.60, 5500)
3、UPDA stock_bk SET 現(xiàn)價(jià)=8.88 WHER 股票代碼="600007"
4、DELE FROM stock_bk WHER 股票代碼="600000"
二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
1、在考生文件夾下建立數(shù)據(jù)庫sc2,將考生文件夾下的自由表score2添加進(jìn)
sc2中。根據(jù)score2表建立一個(gè)視圖score_view,視圖中包含的字段與
score2表相同,但視圖中只能查詢到積分小于等于1500的信息。然后利用
新建立的視圖查詢視圖中的全部信息,并將結(jié)果按積分升序存入表v2。
2、建立一個(gè)菜單filemenu,包括兩個(gè)菜單項(xiàng)"文件"和"幫助", "文件"將激活
子菜單,該子菜單包括"打開"、"存為"和 "關(guān)閉"三個(gè)菜單項(xiàng);"關(guān)閉"子菜
單項(xiàng)用SET SYSMENU TO DEFAULT命令返回到系統(tǒng)菜單,其他菜單項(xiàng)的功能
不做要求。
第1題,本題的主要考核點(diǎn)是視圖的建立。
在"項(xiàng)目管理器"中選擇一個(gè)數(shù)據(jù)庫,選擇"本地視圖",然后選擇"新建"按鈕,打開"視圖設(shè)計(jì)器"。選擇所有字段,在"篩選"欄內(nèi)輸入條件"積分<=1500",關(guān)閉并保存。在數(shù)據(jù)庫設(shè)計(jì)器中打開視圖,用sort on 積分 to v2 命令存入新表。
第2題,本題的主要考核點(diǎn)是菜單的建立。新建菜單可按下列步驟:選擇"文件"菜單中的"新建"命令,在"新建"對(duì)話框中選擇"菜單",單擊"新建文件"按鈕。在"新建菜單"對(duì)話框中選擇"菜單"按鈕,調(diào)出"菜單設(shè)計(jì)器"。也可用CREATE MENU命令直接調(diào)出菜單設(shè)計(jì)器。在菜單名稱中填入"文件"、"幫助","文件"結(jié)果為子菜單,單擊編輯;在子菜單的菜單名稱中輸入"打開"、"存為"、 "關(guān)閉","關(guān)閉"結(jié)果為命令"SET SYSMENU TO DEFAULT"。
三、綜合應(yīng)用(1小題,計(jì)30分)
在考生文件夾下有學(xué)生成績(jī)數(shù)據(jù)庫XUESHENG3,包括如下所示三個(gè)表文件以及相
關(guān)的索引文件:
1、XS.DBF(學(xué)生文件: 學(xué)號(hào) C8,姓名 C8,性別 C2,班級(jí) C5;另有索引文件
XS.IDX,索引鍵:學(xué)號(hào))
2、CJ.DBF(成績(jī)文件: 學(xué)號(hào) C8,課程名 C20,成績(jī) N5.1;另有索引文件
CJ.IDX,索引鍵:學(xué)號(hào))
3、CJB.DBF(成績(jī)表文件:學(xué)號(hào) C8,姓名 C8,班級(jí) C5,課程名 C12,成績(jī)
N5.1)
設(shè)計(jì)一個(gè)名為XS3的菜單,菜單中有兩個(gè)菜單項(xiàng)"計(jì)算"和"退出"。
程序運(yùn)行時(shí), 單擊"計(jì)算"菜單項(xiàng)應(yīng)完成下列操作:
將所有選修了"計(jì)算機(jī)基礎(chǔ)"的學(xué)生的"計(jì)算機(jī)基礎(chǔ)"成績(jī),按成績(jī)由高到低的順
序填列到成績(jī)表文件CJB.DBF中(事前須將文件中原有數(shù)據(jù)清空)。
單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
(注:相關(guān)數(shù)據(jù)表文件存在于考生文件夾下)
本題的主要考核點(diǎn):
結(jié)構(gòu)化查詢語言(SQL)中的聯(lián)接查詢、查詢的排序、查詢的去向等知識(shí)
解題思路:
在本題中要想得到所有選修了"計(jì)算機(jī)基礎(chǔ)"的學(xué)生的"計(jì)算機(jī)基礎(chǔ)" 成績(jī)及學(xué)生的姓名等信息,就需要用到聯(lián)接查詢。因?yàn)閷W(xué)生的姓名、班級(jí)在表XS.DBF中,而學(xué)生的成績(jī)?cè)诒鞢J.DBF中。而這兩個(gè)表要聯(lián)接起來可以通過"學(xué)號(hào)"字段。
有以下兩種聯(lián)接查詢的形式:SELECT XS.學(xué)號(hào),姓名,班級(jí),課程名,成績(jī) FROM XS,CJ WHERE XS.學(xué)號(hào)=CJ.學(xué)號(hào) AND 課程名="計(jì)算機(jī)基礎(chǔ)" 或者 SELECT XS.學(xué)號(hào),姓名,班級(jí),課程名,成績(jī) FROM XS LEFT JION CJ ON XS.學(xué)號(hào)=CJ.學(xué)號(hào) WHERE 課程名="計(jì)算機(jī)基礎(chǔ)"
通過以上的聯(lián)接查詢便得到了所有選修"計(jì)算機(jī)基礎(chǔ)"的學(xué)生的"計(jì)算機(jī)基礎(chǔ)"的成績(jī)及學(xué)生的姓名等信息。而題中所要求按成績(jī)的降序排序,所以應(yīng)該在以上SQL語句的基礎(chǔ)上加入:ORDER BY 成績(jī) DESC
將查詢所得到的結(jié)果放于一個(gè)數(shù)組變量AFieldsValue中,要用到INTO ARRAY AFieldsValue.至此一個(gè)完整的SQL聯(lián)接查詢語句便形成了:SELECT XS.學(xué)號(hào),姓名,班級(jí),課程名,成績(jī) FROM XS,CJ WHERE XS.學(xué)號(hào)=CJ.學(xué)號(hào) AND 課程名="計(jì)算機(jī)基礎(chǔ)" ORDER BY 成績(jī) DESC INTO ARRAY AFieldsValue
清空CJB.DBF
將tableName中的資料添加到已被清空的CJB.DBF中INSERT INTO CJB FROM ARRAY AFieldsValue
第二套
一、基本操作題(共4小題,第1和2題是7分、第3和4題是8分)
在考生文件夾下完成下列操作(在"成績(jī)管理"數(shù)據(jù)庫中完成):
1. 為"學(xué)生"表在"學(xué)號(hào)"字段上建立升序主索引, 索引名為學(xué)號(hào);
2. 為"學(xué)生"表的"性別"字段定義有效性規(guī)則, 規(guī)則表達(dá)式為 性別$"男女"出錯(cuò)提示信息是: "性別必須是男或女"。
3. 在"學(xué)生"表的"性別"和"年齡"字段之間插入一個(gè)"出生日期"字段,數(shù)據(jù)類型
為"日期型"(修改表結(jié)構(gòu));
4. 用SQL的UPDATE命令將學(xué)生"王三風(fēng)"的出生日期修改為1983年5月1日,并將該
語句粘貼在SQL2.TXT文件中(第一行、只占一行)
本題的主要考核點(diǎn):
主索引的建立、字段有效規(guī)則的建立,表結(jié)構(gòu)的更改,SQL語言的使用。
解題思路:
1.在表設(shè)計(jì)器中的索引頁面建立索引。
2、建立有效性規(guī)則在表設(shè)計(jì)器中的字段選項(xiàng)卡。在"規(guī)則"欄中輸入"性別$"男女"","提示信息"欄輸入"性別必須是男或女"(不要雙引號(hào))。
3.增加字段的方法:
打開表設(shè)計(jì)器,將光標(biāo)移動(dòng)到"年齡"字段格中,點(diǎn)擊"插入",在"新字段"格中輸入新的字段名、字段類型及長(zhǎng)度。
4.SQL語句的用法
UPDA 學(xué)生 SET 出生日期={^1983/05/01} WHER 姓名="王三風(fēng)"
二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
1、根據(jù)考生文件夾下的txl表和jsh表建立一個(gè)查詢query2,查詢出單位是
"南京大學(xué)" 的所有教師的姓名、職稱、電話,要求查詢?nèi)ハ蚴潜恚砻?BR> 是query2.dbf,并執(zhí)行該查詢。
2、建立表單enterf,表單中有兩個(gè)命令按鈕,按鈕的名稱分別為cmdin和
cmdout,標(biāo)題分別為"進(jìn)入"和"退出"。
第1題,本題的主要考核點(diǎn)是建立查詢。
建立查詢可以使用"文件"菜單完成,選擇文件--新建--查詢--新建文件,將txl和jsh添加入查詢中,從字段中選擇姓名、職稱和電話字段,單擊查詢菜單下的查詢?nèi)ハ?,選擇表,輸入表名query2.DBF。后運(yùn)行該查詢。
第2題,本題的主要考核點(diǎn)是表單的建立。
可以用三種方法調(diào)用表單設(shè)計(jì)器:在項(xiàng)目管理器環(huán)境下調(diào)用;單擊"文件"菜單中的"新建",打開"新建"對(duì)話框,選擇"表單";在命令窗口輸入CREATE FORM命令。
打開表單設(shè)計(jì)器后,在表單控件工具欄上單擊"命令按鈕",在表單上放置兩個(gè)按鈕。分別修改其屬性Name為cmdin和cmdout,Caption屬性為"進(jìn)入"和"退出"。
三、綜合應(yīng)用(1小題,計(jì)30分)
在考生文件夾下有倉庫數(shù)據(jù)庫CK3,包括如下所示兩個(gè)表文件:
CK(倉庫號(hào)C(4),城市C(8),面積N(4))
ZG(倉庫號(hào)C(4),職工號(hào)C(4),工資N(4))
設(shè)計(jì)一個(gè)名為ZG3的菜單,菜單中有兩個(gè)菜單項(xiàng)"統(tǒng)計(jì)"和"退出"。
程序運(yùn)行時(shí),單擊"統(tǒng)計(jì)"菜單項(xiàng)應(yīng)完成下列操作:檢索出所有職工的
工資都大于 1220元的職工所管理的倉庫信息,將結(jié)果保存在wh1數(shù)據(jù)表(WH1為
自由表)文件中,該文件的結(jié)構(gòu)和CK數(shù)據(jù)表文件的結(jié)構(gòu)一致,并按面積升序排
序。
單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
(注:相關(guān)數(shù)據(jù)表文件存在于考生文件夾下)
本題主要考核點(diǎn):
菜單的建立、結(jié)構(gòu)化查詢語言(SQL)中的嵌套查詢、查詢結(jié)果的去向等知識(shí)。
解題思路:
利用菜單設(shè)計(jì)器定義兩個(gè)菜單項(xiàng),在菜單名稱為"統(tǒng)計(jì)"的菜單項(xiàng)的結(jié)果列中選擇"過程",并通過單擊"編輯"按鈕打開一個(gè)窗中來添加"統(tǒng)計(jì)"菜單項(xiàng)要執(zhí)行的命令。在菜單名稱為"退出"的菜單項(xiàng)的結(jié)果列中選擇"命令",并在后面的"選項(xiàng)"列中輸入以下退出菜單的命令:SET SYSMENU TO DEFAULT
"統(tǒng)計(jì)"菜單項(xiàng)要執(zhí)行的程序:
首先中打開數(shù)據(jù)庫文件 OPEN DATABASE CK3.DBC
下面我們分析所要用到的查詢語句的實(shí)現(xiàn),題面要求"檢索出所有職工的工資都大于1220的職工所管理的倉庫信息",所以得到滿足以上條件的倉庫號(hào)成為解答本題的關(guān)鍵。"所有職工的工資都大于1220的職工所管理的倉庫"這個(gè)條件可以將其分解為同時(shí)滿足以下兩個(gè)條件的結(jié)果" 倉庫號(hào)不存在于職工的工資小于等于1220的職工所管理的倉庫號(hào)中"并且"倉庫號(hào)存在于表ZG中",而以上兩個(gè)條件我們可以利用SQL輕松寫出來。所以后形成的查詢語句以下:SELECT * FROM CK WHERE 倉庫號(hào) NOT IN (SELECT 倉庫號(hào) FROM ZG WHERE 工資<=1220) AND 倉庫號(hào) IN (SELECT 倉庫號(hào) FROM ZG) INTO TABLE wh1.dbf.后面的INTO TABLE wh1.dbf決定了查詢的結(jié)果是生成一個(gè)wh1.dbf文件。
本題還考對(duì)查詢的排序和查詢的去向進(jìn)行了考核.可以用ORDER BY order_Item [ASC|DESC]來讓查詢的結(jié)果按某一列或某幾列的升序(ASC)或降序(DESC)進(jìn)行排列。而查詢的去向可以通過INTO TABLE strTableName 而直接生成一個(gè)文件名為strTableName的.DBF表。
一、基本操作題(共4小題,第1和2題是7分、第3和4題是8分)
注意:基本操作題為4道SQL題,請(qǐng)將每道題的SQL命令粘貼到SQL1.txt文件,
每條命令占一行,第1道題的命令是第1行,第2道題的命令是第2行,以此類推;
如果某道題沒有做相應(yīng)行為空。
在考生文件夾下完成下列操作:
1. 利用SQL SELECT命令將表stock_sl.dbf復(fù)制到stock_bk.dbf。
2. 利用SQL INSERT命令插入記錄("600028",4.36, 4.60, 5500)到stock_bk.dbf表。
3. 利用SQL UPDATE命令將stock_bk.dbf表中"股票代碼"為600007的股票"現(xiàn)價(jià)"改為8.88。
4. 利用SQL DELETE命令刪除stock_bk.dbf表中"股票代碼"為600000的股票。
本題的主要考核點(diǎn):
SQL語句的使用。
1、SELE * FROM stock_sl INTO DBF stock_bk
2、INSE INTO stock_bk (股票代碼,買入價(jià),現(xiàn)價(jià),持有數(shù)量)VALU("600028", 4.36, 4.60, 5500)
3、UPDA stock_bk SET 現(xiàn)價(jià)=8.88 WHER 股票代碼="600007"
4、DELE FROM stock_bk WHER 股票代碼="600000"
二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
1、在考生文件夾下建立數(shù)據(jù)庫sc2,將考生文件夾下的自由表score2添加進(jìn)
sc2中。根據(jù)score2表建立一個(gè)視圖score_view,視圖中包含的字段與
score2表相同,但視圖中只能查詢到積分小于等于1500的信息。然后利用
新建立的視圖查詢視圖中的全部信息,并將結(jié)果按積分升序存入表v2。
2、建立一個(gè)菜單filemenu,包括兩個(gè)菜單項(xiàng)"文件"和"幫助", "文件"將激活
子菜單,該子菜單包括"打開"、"存為"和 "關(guān)閉"三個(gè)菜單項(xiàng);"關(guān)閉"子菜
單項(xiàng)用SET SYSMENU TO DEFAULT命令返回到系統(tǒng)菜單,其他菜單項(xiàng)的功能
不做要求。
第1題,本題的主要考核點(diǎn)是視圖的建立。
在"項(xiàng)目管理器"中選擇一個(gè)數(shù)據(jù)庫,選擇"本地視圖",然后選擇"新建"按鈕,打開"視圖設(shè)計(jì)器"。選擇所有字段,在"篩選"欄內(nèi)輸入條件"積分<=1500",關(guān)閉并保存。在數(shù)據(jù)庫設(shè)計(jì)器中打開視圖,用sort on 積分 to v2 命令存入新表。
第2題,本題的主要考核點(diǎn)是菜單的建立。新建菜單可按下列步驟:選擇"文件"菜單中的"新建"命令,在"新建"對(duì)話框中選擇"菜單",單擊"新建文件"按鈕。在"新建菜單"對(duì)話框中選擇"菜單"按鈕,調(diào)出"菜單設(shè)計(jì)器"。也可用CREATE MENU命令直接調(diào)出菜單設(shè)計(jì)器。在菜單名稱中填入"文件"、"幫助","文件"結(jié)果為子菜單,單擊編輯;在子菜單的菜單名稱中輸入"打開"、"存為"、 "關(guān)閉","關(guān)閉"結(jié)果為命令"SET SYSMENU TO DEFAULT"。
三、綜合應(yīng)用(1小題,計(jì)30分)
在考生文件夾下有學(xué)生成績(jī)數(shù)據(jù)庫XUESHENG3,包括如下所示三個(gè)表文件以及相
關(guān)的索引文件:
1、XS.DBF(學(xué)生文件: 學(xué)號(hào) C8,姓名 C8,性別 C2,班級(jí) C5;另有索引文件
XS.IDX,索引鍵:學(xué)號(hào))
2、CJ.DBF(成績(jī)文件: 學(xué)號(hào) C8,課程名 C20,成績(jī) N5.1;另有索引文件
CJ.IDX,索引鍵:學(xué)號(hào))
3、CJB.DBF(成績(jī)表文件:學(xué)號(hào) C8,姓名 C8,班級(jí) C5,課程名 C12,成績(jī)
N5.1)
設(shè)計(jì)一個(gè)名為XS3的菜單,菜單中有兩個(gè)菜單項(xiàng)"計(jì)算"和"退出"。
程序運(yùn)行時(shí), 單擊"計(jì)算"菜單項(xiàng)應(yīng)完成下列操作:
將所有選修了"計(jì)算機(jī)基礎(chǔ)"的學(xué)生的"計(jì)算機(jī)基礎(chǔ)"成績(jī),按成績(jī)由高到低的順
序填列到成績(jī)表文件CJB.DBF中(事前須將文件中原有數(shù)據(jù)清空)。
單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
(注:相關(guān)數(shù)據(jù)表文件存在于考生文件夾下)
本題的主要考核點(diǎn):
結(jié)構(gòu)化查詢語言(SQL)中的聯(lián)接查詢、查詢的排序、查詢的去向等知識(shí)
解題思路:
在本題中要想得到所有選修了"計(jì)算機(jī)基礎(chǔ)"的學(xué)生的"計(jì)算機(jī)基礎(chǔ)" 成績(jī)及學(xué)生的姓名等信息,就需要用到聯(lián)接查詢。因?yàn)閷W(xué)生的姓名、班級(jí)在表XS.DBF中,而學(xué)生的成績(jī)?cè)诒鞢J.DBF中。而這兩個(gè)表要聯(lián)接起來可以通過"學(xué)號(hào)"字段。
有以下兩種聯(lián)接查詢的形式:SELECT XS.學(xué)號(hào),姓名,班級(jí),課程名,成績(jī) FROM XS,CJ WHERE XS.學(xué)號(hào)=CJ.學(xué)號(hào) AND 課程名="計(jì)算機(jī)基礎(chǔ)" 或者 SELECT XS.學(xué)號(hào),姓名,班級(jí),課程名,成績(jī) FROM XS LEFT JION CJ ON XS.學(xué)號(hào)=CJ.學(xué)號(hào) WHERE 課程名="計(jì)算機(jī)基礎(chǔ)"
通過以上的聯(lián)接查詢便得到了所有選修"計(jì)算機(jī)基礎(chǔ)"的學(xué)生的"計(jì)算機(jī)基礎(chǔ)"的成績(jī)及學(xué)生的姓名等信息。而題中所要求按成績(jī)的降序排序,所以應(yīng)該在以上SQL語句的基礎(chǔ)上加入:ORDER BY 成績(jī) DESC
將查詢所得到的結(jié)果放于一個(gè)數(shù)組變量AFieldsValue中,要用到INTO ARRAY AFieldsValue.至此一個(gè)完整的SQL聯(lián)接查詢語句便形成了:SELECT XS.學(xué)號(hào),姓名,班級(jí),課程名,成績(jī) FROM XS,CJ WHERE XS.學(xué)號(hào)=CJ.學(xué)號(hào) AND 課程名="計(jì)算機(jī)基礎(chǔ)" ORDER BY 成績(jī) DESC INTO ARRAY AFieldsValue
清空CJB.DBF
將tableName中的資料添加到已被清空的CJB.DBF中INSERT INTO CJB FROM ARRAY AFieldsValue
第二套
一、基本操作題(共4小題,第1和2題是7分、第3和4題是8分)
在考生文件夾下完成下列操作(在"成績(jī)管理"數(shù)據(jù)庫中完成):
1. 為"學(xué)生"表在"學(xué)號(hào)"字段上建立升序主索引, 索引名為學(xué)號(hào);
2. 為"學(xué)生"表的"性別"字段定義有效性規(guī)則, 規(guī)則表達(dá)式為 性別$"男女"出錯(cuò)提示信息是: "性別必須是男或女"。
3. 在"學(xué)生"表的"性別"和"年齡"字段之間插入一個(gè)"出生日期"字段,數(shù)據(jù)類型
為"日期型"(修改表結(jié)構(gòu));
4. 用SQL的UPDATE命令將學(xué)生"王三風(fēng)"的出生日期修改為1983年5月1日,并將該
語句粘貼在SQL2.TXT文件中(第一行、只占一行)
本題的主要考核點(diǎn):
主索引的建立、字段有效規(guī)則的建立,表結(jié)構(gòu)的更改,SQL語言的使用。
解題思路:
1.在表設(shè)計(jì)器中的索引頁面建立索引。
2、建立有效性規(guī)則在表設(shè)計(jì)器中的字段選項(xiàng)卡。在"規(guī)則"欄中輸入"性別$"男女"","提示信息"欄輸入"性別必須是男或女"(不要雙引號(hào))。
3.增加字段的方法:
打開表設(shè)計(jì)器,將光標(biāo)移動(dòng)到"年齡"字段格中,點(diǎn)擊"插入",在"新字段"格中輸入新的字段名、字段類型及長(zhǎng)度。
4.SQL語句的用法
UPDA 學(xué)生 SET 出生日期={^1983/05/01} WHER 姓名="王三風(fēng)"
二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
1、根據(jù)考生文件夾下的txl表和jsh表建立一個(gè)查詢query2,查詢出單位是
"南京大學(xué)" 的所有教師的姓名、職稱、電話,要求查詢?nèi)ハ蚴潜恚砻?BR> 是query2.dbf,并執(zhí)行該查詢。
2、建立表單enterf,表單中有兩個(gè)命令按鈕,按鈕的名稱分別為cmdin和
cmdout,標(biāo)題分別為"進(jìn)入"和"退出"。
第1題,本題的主要考核點(diǎn)是建立查詢。
建立查詢可以使用"文件"菜單完成,選擇文件--新建--查詢--新建文件,將txl和jsh添加入查詢中,從字段中選擇姓名、職稱和電話字段,單擊查詢菜單下的查詢?nèi)ハ?,選擇表,輸入表名query2.DBF。后運(yùn)行該查詢。
第2題,本題的主要考核點(diǎn)是表單的建立。
可以用三種方法調(diào)用表單設(shè)計(jì)器:在項(xiàng)目管理器環(huán)境下調(diào)用;單擊"文件"菜單中的"新建",打開"新建"對(duì)話框,選擇"表單";在命令窗口輸入CREATE FORM命令。
打開表單設(shè)計(jì)器后,在表單控件工具欄上單擊"命令按鈕",在表單上放置兩個(gè)按鈕。分別修改其屬性Name為cmdin和cmdout,Caption屬性為"進(jìn)入"和"退出"。
三、綜合應(yīng)用(1小題,計(jì)30分)
在考生文件夾下有倉庫數(shù)據(jù)庫CK3,包括如下所示兩個(gè)表文件:
CK(倉庫號(hào)C(4),城市C(8),面積N(4))
ZG(倉庫號(hào)C(4),職工號(hào)C(4),工資N(4))
設(shè)計(jì)一個(gè)名為ZG3的菜單,菜單中有兩個(gè)菜單項(xiàng)"統(tǒng)計(jì)"和"退出"。
程序運(yùn)行時(shí),單擊"統(tǒng)計(jì)"菜單項(xiàng)應(yīng)完成下列操作:檢索出所有職工的
工資都大于 1220元的職工所管理的倉庫信息,將結(jié)果保存在wh1數(shù)據(jù)表(WH1為
自由表)文件中,該文件的結(jié)構(gòu)和CK數(shù)據(jù)表文件的結(jié)構(gòu)一致,并按面積升序排
序。
單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
(注:相關(guān)數(shù)據(jù)表文件存在于考生文件夾下)
本題主要考核點(diǎn):
菜單的建立、結(jié)構(gòu)化查詢語言(SQL)中的嵌套查詢、查詢結(jié)果的去向等知識(shí)。
解題思路:
利用菜單設(shè)計(jì)器定義兩個(gè)菜單項(xiàng),在菜單名稱為"統(tǒng)計(jì)"的菜單項(xiàng)的結(jié)果列中選擇"過程",并通過單擊"編輯"按鈕打開一個(gè)窗中來添加"統(tǒng)計(jì)"菜單項(xiàng)要執(zhí)行的命令。在菜單名稱為"退出"的菜單項(xiàng)的結(jié)果列中選擇"命令",并在后面的"選項(xiàng)"列中輸入以下退出菜單的命令:SET SYSMENU TO DEFAULT
"統(tǒng)計(jì)"菜單項(xiàng)要執(zhí)行的程序:
首先中打開數(shù)據(jù)庫文件 OPEN DATABASE CK3.DBC
下面我們分析所要用到的查詢語句的實(shí)現(xiàn),題面要求"檢索出所有職工的工資都大于1220的職工所管理的倉庫信息",所以得到滿足以上條件的倉庫號(hào)成為解答本題的關(guān)鍵。"所有職工的工資都大于1220的職工所管理的倉庫"這個(gè)條件可以將其分解為同時(shí)滿足以下兩個(gè)條件的結(jié)果" 倉庫號(hào)不存在于職工的工資小于等于1220的職工所管理的倉庫號(hào)中"并且"倉庫號(hào)存在于表ZG中",而以上兩個(gè)條件我們可以利用SQL輕松寫出來。所以后形成的查詢語句以下:SELECT * FROM CK WHERE 倉庫號(hào) NOT IN (SELECT 倉庫號(hào) FROM ZG WHERE 工資<=1220) AND 倉庫號(hào) IN (SELECT 倉庫號(hào) FROM ZG) INTO TABLE wh1.dbf.后面的INTO TABLE wh1.dbf決定了查詢的結(jié)果是生成一個(gè)wh1.dbf文件。
本題還考對(duì)查詢的排序和查詢的去向進(jìn)行了考核.可以用ORDER BY order_Item [ASC|DESC]來讓查詢的結(jié)果按某一列或某幾列的升序(ASC)或降序(DESC)進(jìn)行排列。而查詢的去向可以通過INTO TABLE strTableName 而直接生成一個(gè)文件名為strTableName的.DBF表。