zoukankan      html  css  js  c++  java
  • MySQL(四)--练习题


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

    SELECT product_name, regist_date
      FROM Product
     where regist_data > '2009-04-28';
    

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

    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 = '厨房用具'));
    

    3.2 请编写一条 SELECT 语句,求出销售单价(sale_price 列)合计值是进货单价(purchase_price 列)合计值 1.5 倍的商品种类。

    SELECT product_type, SUM(sale_price), SUM(purchase_price)
      FROM Product
     GROUP BY product_type
    HAVING SUM(sale_price) > SUM(purchase_price) * 1.5;
    

    4.2 有一张包含 3 条记录的 Product 表。

    使用如下的 INSERT 语句复制这 3 行数据,应该就能够将表中的数据增加为 6 行。请说出该语句的执行结果。

    INSERT INTO Product SELECT * FROM Product;
    

    违反了商品编号列的主键约束,即不能存在主键重复的记录,不能更新操作。

    4.3 以练习 4.2 中的 Product 表为基础,再创建另外一张包含利润列的新表 ProductMargin(商品利润)。

    INSERT INTO ProductMargin (product_id, product_name, sale_price, purchase_price, margin)
    SELECT product_id, product_name, sale_price, purchase_price, sale_price - purchase_price
      FROM Product;
    

    4.4 对练习 4.3 中的 ProductMargin 表的数据进行如下更改。

    将运动 T 恤的销售单价从 4000 日元下调至 3000 日元。
    根据上述结果再次计算运动 T 恤的利润。

    UPDATE ProductMargin
       SET sale_price = 3000,
           margin = sale_price - purchase_price
     WHERE product_id = '0003';
    

    5.1 创建出满足下述三个条件的视图(视图名称为ViewPractice5_1)。使用Product(商品)表作为参照表,假设表中包含初始状态的8 行数据。

    条件1: 销售单价大于等于1000 日元。
    条件2: 登记日期是2009 年9 月20 日。
    条件3: 包含商品名称、销售单价和登记日期三列。

    CREATE VIEWS ViewPractice5_1 AS
    SELECT product_name, sale_price, regist_date
    FROM Product
    WHERE sale_price>=1000
    AND regist_date= '2009-09-20';
    

    5.3 请根据如下结果编写 SELECT 语句,其中 sale_price_all 列为全部商品的平均销售单价。

    SELECT product_id,
           product_name,
           product_type,
           sale_price,
           (SELECT AVG(sale_price) FROM Product) AS sale_price_all
      FROM Product;
    

    注意:使用GROUP BY子句时,SELECT子句中不能出现聚合键之外的列名。

    5.4 请根据习题 5.1 中的条件编写一条 SQL 语句,创建一幅包含如下数据的视图(名称为 AvgPriceByType)。

    执行结果

    product_idproduct_nameproduct_typesale_priceavg_sale_price
    0001 T恤衫 衣服 1000 2500.0000000000000000
    0002 打孔器 办公用品 500 300.0000000000000000
    0003 运动T恤 衣服 4000 2500.0000000000000000
    0004 菜刀 厨房用具 3000 2795.0000000000000000
    0005 高压锅 厨房用具 6800 2795.0000000000000000
    0006 叉子 厨房用具 500 2795.0000000000000000
    0007 擦菜板 厨房用具 880 2795.0000000000000000
    0008 圆珠笔 办公用品 100 300.0000000000000000

    提示:其中的关键是 avg_sale_price 列。这里需要计算出的是各商品种类的平均销售单价。

    CREATE VIEWS AS AvgPriceByType
    SELECT product_id, product_name, product_type, sale_price,
           (SELECT AVG(sale_price)
            FROM Product AS P2
            WHERE P1.product_type = P2.product_type
            GROUP BY P2.product_type)  AS avg_sale_price
    FROM Product AS P1
    

    6.2 按照销售单价(sale_price)对 Product(商品)表中的商品进行如下分类。

    低档商品 :销售单价在 1000 日元以下(T 恤衫、办公用品、叉子、擦菜板、圆珠笔)

    中档商品 :销售单价在 1001 日元以上 3000 日元以下(菜刀)

    高档商品 :销售单价在 3001 日元以上(运动 T 恤、高压锅)

    请编写出统计上述商品种类中所包含的商品数量的 SELECT 语句。

    执行结果

    low_pricemid_pricehigh_price
    5 1 2
    SELECT SUM(CASE WHEN sale_price <= 1000
                    THEN 1 ELSE 0 END) AS low_price,
           SUM(CASE WHEN sale_price BETWEEN 1001 AND 3000
                    THEN 1 ELSE 0 END) AS mid_price,
           SUM(CASE WHEN sale_price >= 3001
                    THEN 1 ELSE 0 END) AS high_price
     FROM Product;
    

    7.2 两针表外联结的结果中,高压锅和圆珠笔 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;
    
  • 相关阅读:
    Android开发-API指南-<uses-configuration>
    Android开发-API指南-<supports-screens>
    Android开发-API指南-<supports-gl-texture>
    Android开发-API指南-<service>
    Android开发-API指南-<receiver>
    Android开发-API指南-<provider>
    Android开发-API指南-<permission-tree>
    maven scope 以及依赖传递
    转发和重定向
    Apache
  • 原文地址:https://www.cnblogs.com/lidyan/p/7087111.html
Copyright © 2011-2022 走看看