1. 程式人生 > 實用技巧 >Task02:基礎查詢與排序

Task02:基礎查詢與排序

練習題-第一部分
2.1
編寫一條SQL語句,從 product(商品)表中選取出“登記日期( regist 在2009年4月28日之後”的商品,查詢結果要包含 product_name 和 regist_date 兩列。

select product_name, regist_date from product where regist_date > "2009-04-28";

2.2
請說出對product 表執行如下3條SELECT語句時的返回結果。

SELECT *
FROM product
WHERE purchase_price = NULL;

SELECT *
FROM product
WHERE purchase_price <> NULL;

SELECT *
FROM product
WHERE product_name > NULL;

什麼都不返回

2.3
程式碼清單2-22(2-2節)中的SELECT語句能夠從product表中取出“銷售單價(saleprice)比進貨單價(purchase price)高出500日元以上”的商品。請寫出兩條可以得到相同結果的SELECT語句。執行結果如下所示。

product_name | sale_price | purchase_price
-------------+------------+------------
T恤衫 | 1000 | 500
運動T恤 | 4000 | 2800
高壓鍋 | 6800 | 5000

 select product_name, sale_price, purchase_price
 from product
 where sale_price > purchase_price+500
 or sale_price = purchase_price+500;

2.4
請寫出一條SELECT語句,從product表中選取出滿足“銷售單價打九折之後利潤高於100日元的辦公用品和廚房用具”條件的記錄。查詢結果要包括product_name列、product_type列以及銷售單價打九折之後的利潤(別名設定為profit)。

提示:銷售單價打九折,可以通過saleprice列的值乘以0.9獲得,利潤可以通過該值減去purchase_price列的值獲得。

 select product_name, product_type, sale_price*0.9-purchase_price as profit   from product   where sale_price*0.9-purchase_price > 100;

練習題-第二部分
2.5
請指出下述SELECT語句中所有的語法錯誤。

SELECT product_id, SUM(product_name)
--本SELECT語句中存在錯誤。
FROM product
GROUP BY product_type
WHERE regist_date > '2009-09-01';

group  by應該放在 where 後面

2.6
請編寫一條SELECT語句,求出銷售單價(sale_price 列)合計值大於進貨單價(purchase_price 列)合計值1.5倍的商品種類。執行結果如下所示。

product_type | sum | sum
-------------+------+------
衣服 | 5000 | 3300
辦公用品 | 600 | 320

select product_type, sum(sale_price) as sum_sale, sum(purchase_price) as sum_purchase   from product  group by product_type  having sum(sale_price) > 1.5 * sum(purchase_price);

2.7
此前我們曾經使用SELECT語句選取出了product(商品)表中的全部記錄。當時我們使用了ORDERBY子句來指定排列順序,但現在已經無法記起當時如何指定的了。請根據下列執行結果,思考ORDERBY子句的內容。