[考題] 100年升等考 資料庫應用

看板Examination (國家考試)作者 (CandyMan)時間12年前 (2014/05/08 14:21), 編輯推噓1(1017)
留言18則, 2人參與, 最新討論串1/2 (看更多)
一、假設某金融關連式資料庫(Relational Database),有三個 Tables: Customer(SID,CName) Deposit(BankName, SID, Balance) Loan(BankName, SID, Amount) 分別代表: 顧客(身分證字號,姓名) 存款(銀行名稱,客戶身分證字號,存款餘額) 借款(銀行名稱,客戶身分證字號,借款總額) 存款餘額為 0,不會留在存款表格;借款總額為0,亦不會留在借款表格。 請寫出下列SQL: 請列出所有銀行名稱(相同銀行名稱只能列出一筆)。(10分) 堦請列出有在中華銀行的存款,但沒在中華銀行借款的客戶姓名。(10分) 壜請列出一份統計:銀行名稱、其存戶最高存款金額。(10分) 請問一下這題..是需要用到集合論方法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.125.183.246 ※ 文章網址: http://www.ptt.cc/bbs/Examination/M.1399530064.A.888.html

05/08 21:41, , 1F
個人認為第一題可以用UNION其他就正常解 有錯請告知
05/08 21:41, 1F

05/08 21:42, , 2F
交集差集可以用IN NOT IN解
05/08 21:42, 2F

05/08 21:44, , 3F
SELECT DISTINCT 銀行名稱 FROM存款 UNION
05/08 21:44, 3F

05/08 21:44, , 4F
SELECT DISTINCT 銀行名稱FROM 借款 WHERE
05/08 21:44, 4F

05/08 21:45, , 5F
借款.銀行名稱 NOT IN (SELECT銀行名稱FROM存款)
05/08 21:45, 5F

05/08 22:16, , 6F
第2題 一解
05/08 22:16, 6F

05/08 22:16, , 7F
SELECT 姓名 FROM 存款 顧客
05/08 22:16, 7F

05/08 22:17, , 8F
WHERE
05/08 22:17, 8F

05/08 22:17, , 9F
存款.銀行名稱 =中華銀行
05/08 22:17, 9F

05/08 22:17, , 10F
and 存款.銀行名稱 not in (SELECT銀行名稱FROM借款)
05/08 22:17, 10F

05/08 22:18, , 11F
and 顧客.身分證字號=存款.客戶身分證字號
05/08 22:18, 11F

05/08 22:18, , 12F
第二種
05/08 22:18, 12F

05/08 22:19, , 13F
SELECT 姓名 FROM 存款 顧客 借款 WHERE
05/08 22:19, 13F

05/08 22:19, , 14F
存款.銀行名稱 =中華銀行
05/08 22:19, 14F

05/08 22:19, , 15F
and 顧客.身分證字號=存款.客戶身分證字號
05/08 22:19, 15F

05/08 22:20, , 16F
and 存款.銀行名稱=借款.銀行名稱
05/08 22:20, 16F

05/08 22:20, , 17F
and 借款.銀行名稱 !=中華銀行
05/08 22:20, 17F

05/08 22:20, , 18F
第3題 一個 group by+MAX就可解了吧
05/08 22:20, 18F
文章代碼(AID): #1JQo9GY8 (Examination)
文章代碼(AID): #1JQo9GY8 (Examination)