一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
1、在考生文件夾下建立項目STSC_M。
2、把數(shù)據(jù)庫STSC加入到STSC_M項目中。
3、打開STSC數(shù)據(jù)庫,三個表中必要的索引已經(jīng)建立,為三個表建立永久性聯(lián)系。
4、為COURSE表增加字段:開課學(xué)期 I
本題的主要考核點:
項目的建立、將數(shù)據(jù)庫添加到項目中、為已建立索引的表建立永久性聯(lián)系、字段的添加。
解題思路:
1.建立項目
創(chuàng)建項目可用"文件"菜單中的"新建"命令。
2.將數(shù)據(jù)庫加入到項目中:
在項目管理器的"數(shù)據(jù)"選項卡選擇數(shù)據(jù)庫,單擊"添加",在"打開"對話框中選擇要添加的數(shù)據(jù)庫
3.為表和表建立永久性聯(lián)系,方法是在數(shù)據(jù)庫設(shè)計器中,選中父表中的主索引,按住鼠標拖動至子表相應(yīng)的普通索引上,釋放鼠標,聯(lián)系即已建立。
4.添加字段:
打開表設(shè)計器,將光標移動到后的空字段格中,輸入新的字段名、字段類型及長度。
二、簡單應(yīng)用(2小題,每題20分,計40分)
1、在考生文件夾中有數(shù)據(jù)庫STSC,其中有數(shù)據(jù)庫表STUDENT、SCORE和COURSE。三個表如下所示:
STUDENT(學(xué)號、姓名、性別、院系、出生日期)
SCORE(學(xué)號、課程編號、成績)
COURSE(課程編號、課程名稱、開課院系、開課學(xué)期)在考生文件夾下有一個程序dbtest4.prg,該程序的功能是檢索選課門數(shù)是3門以上的(包括3門)每個學(xué)生的學(xué)號、姓名、平均成績、低分、選課門數(shù)和院系,并按平均成績降序排序,同時將結(jié)果存放到表TEST1中,請修改程序中的錯誤,并調(diào)試該程序,使之正確運行。不得增加或刪減程序行。
2、在考生文件夾中有數(shù)據(jù)庫STSC,其中有數(shù)據(jù)庫表STUDENT、SCORE和COURSE。
三個表如下所示:
STUDENT(學(xué)號,姓名,性別,院系,出生日期)
SCORE(學(xué)號,課程編號,成績)
COURSE(課程編號,課程名稱,開課院系,開課學(xué)期)
使用CREATE QUERY命令建立一個文件名為QUSC.QPR的查詢,要求含有學(xué)號、姓名、成績和課程名稱,按課程名稱升序排序,查詢?nèi)ハ蚴潜?表名QUSC.DBF),然后執(zhí)行該查詢。
第1題:本題是一個程序修改題,題中的第一個錯誤是"SUM(課程編號) >= 3;",因為題面要求是統(tǒng)計選課門數(shù)是3門以上的,所以不應(yīng)用SUM,應(yīng)改為COUNT;第二個錯誤"ORDER BY 平均成績";題面要求按平均成績降序排序,而此命令是按平均成績的升序排列的,所以在其后應(yīng)加DESC;第三個錯誤是"INTO TEST1 SDF",此程序后要求將結(jié)果存放到表TEST1中,正確命令格式應(yīng)為"INTO table test1 "。
第2小題:本題的主要考核點是使用命令建查詢,在命令窗口中輸入CREATE QUERY命令調(diào)出查詢設(shè)計器,添加數(shù)據(jù)庫的三個表,從字段中選擇學(xué)號、姓名、成績和課程名稱字段,單擊排序依據(jù),選擇課程名稱,單擊升序,再單擊查詢菜單下的查詢?nèi)ハ?,選擇表,輸入表名QUSC.DBF。運行查詢,后將查詢保存為QUSC.QPR。
三、綜合應(yīng)用(1小題,計30分)
在考生文件夾下有職員管理數(shù)據(jù)庫staff_10,數(shù)據(jù)庫中有YUANGONG表結(jié)
構(gòu)是職工編碼C(4)、姓名C(10)、夜值班天數(shù)I、晝值班天數(shù)I、加班費N
(10.2)。ZHIBAN表結(jié)構(gòu)是值班時間C(2),每天加班費N(7.2),ZHIBAN表
中只有兩條記錄,分別記載了白天和夜里的每天加班費標準。
請編寫運行符合下列要求的程序:
設(shè)計一個名為staff_m的菜單,菜單中有兩個菜單項"計算"和"退出"。
程序運行時,單擊"計算"菜單項應(yīng)完成下列操作:
(1)計算YUANGONG表的加班費字段值,計算方法是:
加班費=夜值班天數(shù)*夜每天加班費+晝值班天數(shù)*晝每天加班費
(2)根據(jù)上面的結(jié)果,將員工的職工編碼、姓名、加班費存儲到的自由表
staff_d中 ,并按加班費降序排列,如果加班費相等,則按職工編碼的升序排列。
單擊"退出"菜單項,程序終止運行。
本題考查知識點:數(shù)據(jù)表的查詢,記錄的更新,數(shù)據(jù)表的定義等
本題解題思路:
SET TALK OFF &&在程序運行時關(guān)閉命令結(jié)果的顯示
SET SAFETY OFF &&關(guān)閉文件重名的提示
OPEN DATABASE STAFF_10 &&打開數(shù)據(jù)庫文件STAFF_10
SELECT 每天加班費 FROM ZHIBAN WHERE 值班時間="晝" INTO ARRAY zhou
&&由于要得到"晝"和"夜"的每天的加班費,所以要用到SELECT SQL查詢
&&WHERE 條件表達式 可以用來限定結(jié)果集,將條件表達式:值班時間="晝"
&&放在WHERE的后面;也可以將結(jié)果集的列數(shù)進行限制,這里我們只需要得到
&&每天加班費 ,將其放在SELECT的后面;可以將返回的結(jié)果集放入一個數(shù)組變量中
&&用到INTO ARRAY 數(shù)組變量名
SELECT 每天加班費 FROM ZHIBAN WHERE 值班時間="夜" INTO ARRAY ye
&&同上,這樣可以在ye中得到:值班時間="夜"的每天加班費
UPDATE YUANGONG SET 加班費=夜值班天數(shù)*ye+晝值班天數(shù)*zhou
&&UPDATE SQL語句用來修改某一個,某幾個字段的值
&&UPDATE 表名 SET 字段名1=表達式1[,字段名2=表達式2 ...]
&&[WHERE 條件表達式1[AND|OR 條件表達式2…]]
SELECT 職工編碼,姓名,加班費 FROM YUANGONG ORDER BY 加班費 DESC,職工編碼;
INTO TABLE STAFF_D
&&利用SELECT SQL語句中的ORDER BY 子句可以對結(jié)果集進行排序,有多個排序依據(jù)時
&&它們按優(yōu)先級的高低依次排在ORDER BY的后面,默認是以升序進行排序的,如果要以
&&降序進行排序需要顯示指明DESC;利用INTO TABLE 表名 可以將結(jié)果集放入一個永久表中
CLOSE ALL
&&關(guān)閉所有打開的文件
SET SAFETY ON
&&恢復(fù)文件重復(fù)的提示設(shè)置
SET TALK ON
&&恢復(fù)命令結(jié)果顯示設(shè)置