這是MySQL 5實力養成暨評量裡的3-57.『某公司產品資料表(products)欄位結構如附圖:下列SQL敘述哪一項是合法的?』
產品資料表products:
欄位名稱 | pro_id | supp_id | description | price |
資料型態 | int | char(3) | char(30) | float |
說明 | 產品編號 | 供應商代碼 | 產品規格 | 單價 |
答案:
(B) select pro_id,supp_id,price*1.05 from products order by price;
(C) select pro_id,supp_id,price*0.05 as tax from products order by price;
(D) select pro_id,supp_id,price*0.05 as tax from products order by tax;
這一題我們有選A,但答案沒有,我們沒選D,但是答案中有,我們就來分析這兩個選項吧。我們在phpmyadmin下select pro_id,supp_id,price where price<100 order by supp_id desc,pro_id;這個SQL查詢,結果出現:
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘where price<100 order by supp_id desc,pro_id’ at line 1
這樣的錯誤,喔~,原來少了FROM的關鍵字,真是囧…
而D的選項執行時無誤,這個錯誤起源於有時候別名不可以在一些敘述中出現,當然我也有點忘,特別是在複雜的SQL敘述中,不過顯然地在這裡是可以執行的。