這題是典型的 SQL JOIN + 條件查詢 + 建立 VIEW + 理論問答題。
以下給出一份完整、可直接書寫於申論題卷的 25 分標準答案?
---
? 一、資料表結構(題意整理)
Engineer(工程師)
欄位 型態 鍵
編號 INT Primary Key
姓名 VARCHAR
電話 VARCHAR
專長 VARCHAR
Assistant(助理)
欄位 型態 鍵
編號 INT Primary Key
姓名 VARCHAR
薪水 INT
工程師編號 INT Foreign Key (→ Engineer.編號)
---
? 二、查詢條件
1. 工程師編號 ≤ 50
2. 助理薪水 > 30000
3. 查出「工程師姓名、專長」
4. 之後還要建立 view,挑出「專長 = 'hack'」的工程師及其助理
---
? 三、查詢 SQL 指令
SELECT E.姓名 AS 工程師姓名,
E.專長 AS 工程師專長
FROM Engineer E
JOIN Assistant A
ON E.編號 = A.工程師編號
WHERE E.編號 <= 50
AND A.薪水 > 30000;
---
? 四、建立 View(專長為 hack)
CREATE VIEW HackTeam AS
SELECT E.姓名 AS 工程師姓名,
E.電話 AS 工程師電話,
A.姓名 AS 助理姓名,
A.薪水 AS 助理薪水
FROM Engineer E
JOIN Assistant A
ON E.編號 = A.工程師編號
WHERE E.專長 = 'hack';
---
? 五、查詢 View
SELECT * FROM HackTeam;
即可列出所有「專長為 hack」之工程師及其助理姓名與薪水。
---
? 六、View(檢視表)的說明與優點
定義:
View 是一個虛擬資料表(Virtual Table),本身不儲存資料,只儲存查詢語法,
使用時可像一般資料表一樣進行查詢。
---
優點:
1. 安全性(Security):
使用者可僅存取 View 中指定欄位,避免直接操作原始表。
2. 簡化複雜查詢(Simplicity):
頻繁使用的 JOIN、條件查詢可定義成 View,重用時直接呼叫。
3. 一致性(Consistency):
View 統一查詢邏輯,減少重複編寫造成的錯誤。
4. 抽象化(Abstraction):
隱藏底層資料結構改動,應用程式仍可透過相同 View 存取資料。
---
✅ 總結答案概要:
問題 答案摘要
查詢條件 工程師編號 ≤ 50 且助理薪水 > 30000
查詢語法 SELECT E.姓名, E.專長 ... JOIN ...
建立 View CREATE VIEW HackTeam AS ... WHERE E.專長='hack'
View 定義 虛擬資料表
View 優點 安全、簡化查詢、維持一致、抽象化
---
是否要我幫你把這題轉成「SQL + 理論混合版答題稿」(例如可以直接照抄在試卷上、不用改格式的20行版本)?