第二十套
一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
在考生文件夾下的"訂貨管理"數(shù)據(jù)庫(kù)中完成如下操作:
1. 將order_detail、order_list和customer表添加到數(shù)據(jù)庫(kù)。
2. 為order_list表創(chuàng)建一個(gè)主索引,索引名和索引表達(dá)式均是"訂單號(hào)"
3. 建立表order_list和表order_detail間的永久聯(lián)系(通過(guò)"訂單號(hào)"字段)。
4. 為以上建立的聯(lián)系設(shè)置參照完整性約束:更新規(guī)則為"限制",刪除規(guī)則為"級(jí)聯(lián)",插入規(guī)則為"限制"。
本題主要考核點(diǎn):
將一個(gè)自由表添加到數(shù)據(jù)庫(kù)中、表索引的建立、表之間的永久聯(lián)系的建立、參照完整性約束的編輯等知識(shí)點(diǎn)
本題解題思路:
第一步:打開(kāi)考生文件夾下的"訂貨管理"數(shù)據(jù)庫(kù)
第二步:打開(kāi)數(shù)據(jù)庫(kù)菜單選擇"添加表(A)",在彈出的"打開(kāi)"對(duì)話框中,選定考生文件夾下的order_detail表,再點(diǎn)擊"確定"即可,這樣表order_detail就添加到了"訂貨管理"數(shù)據(jù)庫(kù)中,用同樣的方法,將order_lsit和customer表也添加到"訂貨管理"數(shù)據(jù)庫(kù)中
第三步:在數(shù)據(jù)庫(kù)設(shè)計(jì)器中選中表order_list,在主菜單中選擇"修改(Y)",彈出表設(shè)計(jì)器,選擇表設(shè)計(jì)器"索引"標(biāo)簽,在索引名列中填入"訂單號(hào)",在索引類(lèi)型列中選擇"主索引",在索引表達(dá)式列中填入" 訂單號(hào)",點(diǎn)擊"確定"按鈕,保存表結(jié)構(gòu)
第四步:在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,選中order_list表中的索引"訂單號(hào)"并拖動(dòng)到表order_detail的"訂單號(hào)"的索引上并松開(kāi),這樣兩個(gè)表之間就建立起了永久聯(lián)系。
第五步:在第四步建立好永久聯(lián)系之后,在兩處表的"訂單號(hào)"索引之間有一條線,單擊這條表示兩個(gè)表之間聯(lián)系的線,線會(huì)加粗,此時(shí)在主菜單中選擇"數(shù)據(jù)庫(kù)"中的"編輯參照完整性(I)",系統(tǒng)彈出"參照完整性生成器"對(duì)話框,,在"更新規(guī)則"標(biāo)簽中,選擇"限制"規(guī)則,在"刪除"規(guī)則中選擇"級(jí)聯(lián)",在"插入規(guī)則"中選擇"限制",單擊"確定"保存所編輯的參照完整性。
二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
在考生文件夾下完成如下簡(jiǎn)單應(yīng)用:
1. 列出客戶名為"三益貿(mào)易公司"的訂購(gòu)單明細(xì)(order_detail)記錄將結(jié)果先按"訂單號(hào)"升序排列,同一訂單的再按"單價(jià)"降序排列),并將結(jié)果存儲(chǔ)到results表中(表結(jié)構(gòu)與order_detail表結(jié)構(gòu)相同)。
2. 考生文件夾下有一個(gè)form1表單文件,其中三個(gè)命令按鈕click事件下的語(yǔ)句都是錯(cuò)誤的,請(qǐng)按如下要求進(jìn)行修改(最后保存所做的修改)
(1) 單擊"刷新標(biāo)題"命令按鈕時(shí),使表單的標(biāo)題為"簡(jiǎn)單應(yīng)用";
(2) 單擊"訂單記錄" 命令按鈕時(shí),使表格控件中顯示order_list表中的記錄;
(3) 單擊"關(guān)閉表單" 命令按鈕時(shí),關(guān)閉表單。
注意:每處錯(cuò)誤只能在原語(yǔ)句上進(jìn)行修改,不可以增加語(yǔ)句。
本題主要考核點(diǎn):
SQL中的查詢SELECT查詢、聯(lián)接查詢、查詢的排序、查詢的結(jié)果的去向、子查詢等;控件的屬性、表單的操作等知識(shí)點(diǎn)。
解題思路:
第一小題:由于要查詢客戶名為"三益貿(mào)易公司"的訂購(gòu)單明細(xì),而在訂購(gòu)單明細(xì)表order_detail中卻沒(méi)有客戶名的字段,所以要通過(guò)聯(lián)接查詢來(lái)實(shí)現(xiàn)。因?yàn)橐?lián)接三個(gè)表,所以將三個(gè)依次放在FROM子句的后面,互相之間用逗號(hào)隔開(kāi):FROM ORDER_DETAIL,ORDER_LIST,CUSTOMER;聯(lián)接的條件是CUSTOMER.客戶號(hào)=ORDER_LIST.客戶號(hào) AND ORDER_LIST.訂單號(hào)=ORDER_DETAIL.訂單號(hào)放在WHERE子句的后面,另外還有一個(gè)查詢的條件上:CUTOMER.客戶名="三益貿(mào)易公司"也要放在WHERE的后面并與上面的條件用AND連接起來(lái);查詢的排序是通過(guò)子句ORDER BY來(lái)實(shí)現(xiàn)的,將排序的依據(jù)依次放在ORDER BY子句的后面,用逗號(hào)隔開(kāi):ORDER BY ORDER_DETAIL. 訂單號(hào),單價(jià) DESC;結(jié)果集要放入一個(gè)永久表中要用INTO TABLE子句:INTO TABLE RESULTS。
這樣一個(gè)完整的SQL查詢語(yǔ)句便可以寫(xiě)出來(lái):
SELECT ORDER_DETAIL.*;
FROM ORDER_DETAIL,ORDER_LIST,CUSTOMER;
WHERE CUSTOMER.客戶號(hào)=ORDER_LIST.客戶號(hào) ;
AND ORDER_LIST.訂單號(hào)=ORDER_DETAIL.訂單號(hào);
AND CUSTOMER.客戶名="三益貿(mào)易公司";
ORDER BY ORDER_DETAIL.訂單號(hào),單價(jià) DESC;
INTO TABLE RESULTS
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |