查询基础:练习题

本文内容

2.1 编写一条 SQL 语句,从 Product(商品)表中选取出“登记日期(regist_date)在 2009 年 4 月 28 日之后”的商品。查询结果要包含 product_nameregist_date 两列。

1
2
3
SELECT product_name, regist_date
  FROM Product
 WHERE regist_date >= '2009-04-28';

执行结果

 product_name | regist_date
--------------+------------
 T恤衫        | 2009-09-20
 打孔器       | 2009-09-11
 菜刀         | 2009-09-20
 叉子         | 2009-09-20
 圆珠笔       | 2009-11-11

2.2 请说出对 Product 表执行如下 3 条 SELECT 语句时的返回结果。

1
2
3
 SELECT *
        FROM Product
       WHERE purchase_price = NULL;
1
2
3
 SELECT *
        FROM Product
       WHERE purchase_price <> NULL;
1
2
3
4
 SELECT *
        FROM Product
       WHERE product_name > NULL;

答:① ~ ③ 中的 SQL 语句都无法选取出任何一条记录。

2.3 代码清单 22(算术运算符和比较运算符)中的 SELECT 语句能够从 Product 表中取出“销售单价(sale_price)比进货单价(purchase_price)高出 500 日元以上”的商品。请写出两条可以得到相同结果的 SELECT 语句。执行结果如下所示。

执行结果

 product_name  | sale_price  | purchase_price
---------------+-------------+----------------
 T恤衫         |        1000 |            500
 运动T恤       |        4000 |           2800
 高压锅        |        6800 |           5000

SELECT 语句 ①

1
2
3
SELECT product_name, sale_price, purchase_price
  FROM Product
 WHERE sale_price >= purchase_price + 500;

SELECT 语句 ②

1
2
3
SELECT product_name, sale_price, purchase_price
  FROM Product
 WHERE sale_price - 500 >= purchase_price;

2.4 请写出一条 SELECT 语句,从 Product 表中选取出满足“销售单价打九折之后利润高于 100 日元的办公用品和厨房用具”条件的记录。查询结果要包括 product_name 列、product_type 列以及销售单价打九折之后的利润(别名设定为 profit)。

提示: 销售单价打九折,可以通过 sale_price 列的值乘以 0.9 获得,利润可以通过该值减去 purchase_price 列的值获得。

1
2
3
4
5
6
SELECT product_name, product_type,
       sale_price * 0.9 - purchase_price AS profit
  FROM Product
 WHERE sale_price * 0.9 - purchase_price > 100
   AND (   product_type = '办公用品'
        OR product_type = '厨房用具');

执行结果

 product_name | product_type | profit
--------------+--------------+-------
 打孔器        | 办公用品     | 130.0
 高压锅        | 厨房用具     | 1120.0

请参阅#

(完)

comments powered by Disqus

本文内容