
【4】23.關於資料模型的敘述,下列何者錯誤?   
「資料模型」(Data  Model)是描述資料庫中資料的特性,描述資料與資料間的關係和資料的限制條件(用來檢查
是否儲存正確資料的條件)   
階層式資料庫模型(Hierarchical Database Model)類似網路式資料庫模型,只是使用樹狀結構來組織資料,記錄資
料間是以父子關係來建立連接,子記錄只能擁有一個父記錄 
網路式資料庫模型(Network Database Model)是將資料連接成網路狀圖形,支援多對多關聯性(Relationship),而且
資料間的連接可以有迴圈 
在階層式資料庫模型不可重複相同的記錄型態來建立多對多關聯性(Relationships);在網路式資料庫模型的一個成
員型態記錄不可有多個擁有者型態的記錄 
【4】24.有關外來鍵特性的敘述,下列何者錯誤? 
外來鍵一定參考其他關聯表的主鍵,可以用來建立兩個關聯表間的連接。例如:圖書關聯表的作者編號外來鍵是
作者關聯表的主鍵 
外來鍵在關聯表內不一定是主鍵,例如:在圖書關聯表的作者編號外來鍵並不是主鍵 
外來鍵可以是空值 NULL 
外來鍵無法參考同一個關聯表的主鍵 
【3】25.下列何種指令可做到 TOP 5 相同的功能? 
 SELECT @@ROWCOUNT=5   SET @@ROWCOUNT =5 
 SET ROWCOUNT 5     SET COUNT 5 
【2】26.執行以下程式片段的結果為: 
DECLARE @date1 DATE 
DECLARE @date2 DATE 
set @date1 = '2003-5-8' 
set @date2 = '2018-4-8' 
SELECT datediff(YY,@date1,@date2)   
 14   15   -14   -15 
【3】27.請問 MS SQL SERVER 的Data Engine 使用哪一個傳輸協定以及哪一個埠號? 
 21 / TUP   1024 / TCP   1433 / TCP   8088 / TUP 
【4】28. SQL Server 可以使用鎖定(Locking)方法來處理多交易執行的並行控制,支援多種資料鎖定模式和鎖定層級來
控制交易的進行,下列敘述何者錯誤? 
資料鎖定是當交易 A執行資料讀取(Read)或寫入(Write)的資料庫單元操作前,需要先將資料鎖定(Lock)。若同時
有交易 B存取相同的資料,因為資料已經被鎖定,所以交易 B需要等待,直到交易 A解除資料鎖定(Unlock) 
鎖定層級(Lock Level)也稱為「鎖定顆粒度」(Lock Granularity),這是指鎖定時,鎖定資源的範圍大小。在 SQL Server
可以一筆一筆記錄的鎖定、多筆記錄分頁或範圍的鎖定,到整個資料表或完整資料庫的鎖定 
共用鎖定(Shared Lock)是使用在不變更或更新資料的讀取作業,例如:SELECT 指令。共用鎖定的資料依然允許
其他交易的共用鎖定,但不允許獨佔鎖定 
更新鎖定(Update Lock)是使用在資料修改動作,例如:INSERT、UPDATE 或  DELETE 操作指令。可以確保不對
相同資源同時進行多重更新操作,獨佔鎖定的資料並不允許其他交易的任何鎖定 
【4】29.如【圖 29】為「員工」資料表內容,查詢沒有留下手機的員工資料,其語法應為? 
 SELECT * FROM  員工 
WHERE  手機號碼  IN NULL 
 SELECT * FROM  員工 
WHERE  手機號碼  == NULL 
 SELECT * FROM  員工 
WHERE  手機號碼  = NULL 
 SELECT * FROM  員工 
WHERE  手機號碼  IS NULL 
 
 
 
 
【3】30. INSERT  一筆紀錄時,如果沒有指定資料行的值時,在沒設定任何資料行屬性的情況之下,預設是:   
空白  0   NULL  出現錯誤訊息 
【3】31.學生資料表新增一筆資料,執行結果如【圖 31】所示,其語法應為: 
 INSERT(100921,'李文文','女',84,63,92) INTO  學生 
 INSERT VALUES(100921,'李文文','女',84,63,92) INTO  學生 
 INSERT INTO  學生  VALUES(100921,'李文文','女',84,63,92) 
 INSERT INTO  學生  VALUES IS (100921,'李文文','女',84,63,92) 
【3】32. DECLARE @number INT 
SET @number = 10 
SET @number = @number + 20.5 
SELECT @number 
輸出結果為何? 
 10     20   
 30     40 
【2】33.想要將資料表的內容全部刪除而不想留下任何紀錄,可以使用以下哪個指令?   
 DELETE   TRUNCATE   TRUNCATE ALL   DELETE ALL 
【4】34.若想把 NULL 值置換成 0,可以使用下列何種方法?   
 SET ANSI_NULL ON     NULL(運算式) 
 ANSI_NULLL(運算式,0)    ISNULL(運算式,0) 
【2】35. SELECT SUBSTRING('ABCDEFGH' , 5 , 3)執行結果為何? 
 FGH   EFG  CDEFG   DEFGH 
【4】36.下列何者錯誤? 
 SELECT DATENAME( MONTH, '2018-01-28' )執行結果為一月 
 SELECT DATEPART( MONTH, '2018-01-28' )執行結果為 1 
 SELECT MONTH( '2018-01-28' )  執行結果為 1 
 SELECT EOMONTH( '2018-01-28' ,1)執行結果為 1 
【2】37. SELECT FLOOR(-30.37)的執行結果為: 
 -32   -31   -30   -29 
【3】38.使用多個資料表時,若未特別設定,資料表間的關聯方式是: 
 LEFT JOIN     RIGHT JOIN   
 INNER JOIN     FULL JOIN 
【3】39.主索引鍵有什麼特性? 
設定之後無法關聯     
設定之後才能設定 CHECK 條件約束 
設定之後就不能重複     
設定之後就不能刪除 
【2】40.下列哪一個敘述執行結果會如【圖 40】所示? 
 SELECT  員工編號,  姓名,  性別, ROW_NUMBER() OVER (PARTITION BY  姓名  ORDER BY  員工編號  ASC) 
序號  FROM  員工 
 SELECT  員工編號,  姓名,  性別, ROW_NUMBER() OVER (ORDER BY  員工編號  ASC)  序號 FROM  員工 
 SELECT  員工編號,  姓名,  性別, RANK_NUMBER() OVER (ORDER BY  員工編號  DESC)  序號 FROM  員工 
 SELECT  員工編號,  姓名,  性別, RANK_NUMBER() OVER (ORDER BY  員工編號  ASC)  序號 FROM  員工 
 
貳、非選擇題二大題(每大題 25 分) 
第一題: 
請回答下列有關 JAVA 程式在類別的建構式(Constructor)方法應用: 
(一)何謂建構式和預設建構式?請簡述之。【10 分】 
(二)請寫出以下描述的 JAVA 程式:在 Customer 類別內定義三個建構式分別有 Customer ()建構式、
Customer (weight)建構式、Customer (height, weight)建構式等,其一開始初始化 height 資料成員
的值為 150 和weight 資料成員的值為 40,利用建構式多載傳入不同數目的引數,分別來初始
化height 和weight 資料成員,並印出以下輸出畫面結果。【15 分】 
 
第二題: 
請回答下列有關 COBOL 程式,在索引輸入-輸出檔(Indexed I-O file)的應用: 
(一)請說明: 
(1)索引輸入-輸出檔案提供了哪兩種方式來存取紀錄?【3分】 
(2)何謂 Alternate Record Keys?【3分】 
(3)索引輸入-輸出檔案在操作上的重點?【4分】 
(二)請利用索引輸入-輸出檔案程式來撰寫下列描述:將客戶存摺資料加入檔案內,每一個客戶存摺
資料包含以下各欄:帳號、客戶名稱、客戶地址、客戶利率、目前借款金額、放款帳號、存款
餘額等,另加上 10 筆明細交易資料(包含:交易日期、交易金額、交易代號)。【 15 分】 
註:作答時只需撰寫 DATA DIVISION 以及 PROCEDURE DIVISION 兩部分即可。