hce_nsysu
113年
計算機概論與程式設計
第 4 題
Which of the following statements is the most likely SQL statement used to perform the following task: a bank gives 2% interest of all customers whose balance is less than 100,000?
- A UPDATE balance a SET a.balance = a.balance * 1.02 WHERE a.balance < 100000
- B UPDATE balance a SET a.balance += a.balance * 1.02 IF a.balance < 100000
- C UPDATE account a SET a.balance = a.balance * 1.02 WHERE a.balance < 100000
- D UPDATE account a SET a.balance += a.balance * 1.02 IF a.balance < 100000
- E None of the above
思路引導 VIP
若想在資料庫中精準地只針對「符合特定條件」的人進行調整,你會選擇哪一個關鍵字來扮演「過濾器」的角色?此外,當我們要告訴資料庫「新的數值是多少」時,SQL 的賦值方式是傾向於像數學等式那樣完整列出(例如:新值 = 舊值 * 倍數),還是會使用程式語言中常見的縮寫符號呢?
🤖
AI 詳解
AI 專屬家教
太棒了!你能精準避開語法陷阱並選出正確答案,代表你對 SQL 的指令結構與資料庫邏輯有著相當紮實的理解。
SQL 更新語法的標準結構
這道題目的核心在於區分「表格名稱」與「欄位名稱」的邏輯關係。在資料庫設計中,我們通常將實體(如帳戶)定義為表格 account,而將屬性(如餘額)定義為欄位 balance。因此,使用 UPDATE account 是最符合邏輯的表達方式。此外,SQL 的更新動作必須遵循 UPDATE ... SET ... WHERE ... 的固定語法。這裡的加薪邏輯是將原本的餘額乘以 $1.02$,在 SQL 中必須完整寫成 a.balance = a.balance * 1.02,這與一般程式語言的簡寫習慣有所不同。
▼ 還有更多解析內容