
110年公務人員高等考試三級考試試題
※注意:禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
本科目除專門名詞或數理公式外,應使用本國文字作答。
代號:
頁次:
-
一、假設在某關聯式資料庫(Relational database)中,資料庫管理者(Database
Administrator, DBA)執行如下之 SQL 指令以定義 CUSTOMER 和
PURCHASE 兩個表格:
create table CUSTOMER
(cid char(2), name varchar(10), city varchar(10), primary key(cid));
create table PURCHASE
(cid char(2), mid char(2), amount integer,
primary key (cid, mid), foreign key(cid) references CUSTOMER);
若使用者依序執行下列六個 SQL 指令,
指令一:insert into CUSTOMER values (‘C1’, ‘John’, ‘Taipei’);
指令二:insert into PURCHASE values (‘C1’, ‘M1’, 10);
指令三:insertintoCUSTOMERvalues(‘C1’,‘Mary’,‘Taichung’);
指令四:insert into PURCHASE values (‘C1’, ‘M2’, 1);
指令五:update CUSTOMER set cid = ‘C2’where cid = ‘C1’;
指令六:delete from PURCHASE where cid = ‘C1’;
請針對指令三至指令六此四個指令,分別說明其執行之後所產生的效
果,並加以解釋之。舉例來說,若某指令可順利執行,請說明是那些表
格受到影響,並詳述更新後的表格內容。反之,則請說明是表格定義中
的那項限制,導致該指令無法順利更新表格內容。(20 分)
二、假設關聯式資料庫中定義三個表格,其中 CUSTOMER 表格記錄顧客基
本資料,包含顧客編號(Cid)、姓名(Name)和所居住的城市(City);
MERCHANDISE 表格記錄貨品基本資料,包含貨品編號(Mid)和價格
(Price);PURCHASE 表格則為購買資料,記錄了某位顧客(Cid)於某
日(Date)購買某個貨品(Mid)的數量(Amount)。在這些表格的欄位
中,除了價格和數量二者為數值型態的屬性,其餘皆為字串型態。此三
個表格的綱要簡列如下,且每個表格的主鍵以底線標註:
CUSTOMER(Cid, Name, City)
MERCHANDISE(Mid, Price)
PURCHASE(Cid, Mid, Date, Amount)
請根據以下兩個資訊需求分別寫出對應的 SQL 查詢指令,注意每個小題
皆各自對應到單一的 SQL 查詢句,但是可以使用子查詢句(Subquery)
或類似功能的寫法。
請問所有住在臺北市的顧客,總共花了多少錢在購買物品上?(10 分)
試找出那些顧客購買貨品編號“M1”的總數量,超過編號“C2”顧客購買
貨品編號“M1”的總數量,並輸出那些顧客的編號。(10 分)