SQL基础教程 练习题 Chapter 7


typora-copy-images-to: SQL 练习题

SQL基础教程 练习题 Chapter 7

7.1

  • 请说出下述SELECT 语句的结果。
-- 使用本章中的Product表
SELECT *
FROM Product
UNION
SELECT *
FROM Product
INTERSECT
SELECT *
FROM Product
ORDER BY product_id;

# 由于对同一张表使用了UNION 或者INTERSECT,因此结果并不会
# 发生改变。也就是说,由于UNION 或者INTERSECT 未使用ALL,会排除
# 掉重复的记录,因此对同一张表来说,无论执行多少次操作,原表也不会发
# 生改变

SQL基础教程 练习题 Chapter 7

7.2

  • 7-2 节的代码清单7-11 中列举的外联结的结果中,高压锅和圆珠笔2 条
    记录的商店编号(shop_id)和商店名称(shop_name)都是NULL。请使
    用字符串“不确定”替换其中的NULL。期望结果如下所示:
SELECT COALESCE(SP.shop_id, '不确定') AS shop_id,
COALESCE(SP.shop_name, '不确定') AS shop_name,
P.product_id,
P.product_name,
P.sale_price
FROM ShopProduct SP RIGHT OUTER JOIN Product P
ON SP.product_id = P.product_id
ORDER BY shop_id;

# COALESCE 函数可以将NULL 变换为其它的值,使用频繁
# 特别是在希望改变外部连接结果中的NULL时,是唯一的选择

SQL基础教程 练习题 Chapter 7