最新公告
  • 欢迎您光临源站网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • SQL语句练习-电脑商店

    创建表

    • 商店表
    create table manufacturers
    (
        id   integer primary key,  -- 商店ID
        name varchar(100) not null -- 商店名称
    );
    • 商品表
    create table products
    (
        id            integer primary key,                  --商品ID
        name          varchar(100) not null,                --商品名称
        price         decimal      not null,                --商品价格
        manufacturer integer references manufacturers (id)  --关联商店
    );

    预置数据

    • 商店信息
    insert into manufacturers
    values (1, '索尼'),
           (2, '华硕'),
           (3, '惠普'),
           (4, '英特尔'),
           (5, '富士通'),
           (6, '金士顿');
    • 商品信息
    insert into products
    values (1, '硬盘', 240, 5),
           (2, '内存', 120, 6),
           (3, 'CPU', 150, 4),
           (4, 'U盘', 5, 6),
           (5, '监控', 240, 1),
           (6, 'DVD驱动器', 180, 2),
           (7, 'CD驱动器', 90, 2),
           (8, '打印机', 270, 3),
           (9, '墨粉盒', 66, 3),
           (10, 'DVD刻录机', 180, 2);

    题目

    1. 选择商店中所有产品的名称
    2. 选择商店中所有产品的名称和价格
    3. 选择价格小于或等于200的产品名称
    4. 选择价格在60到120之间的所有产品
    5. 选择名称和价格,但是价格必须乘以100
    6. 计算所有产品的平均价格
    7. 计算制造商ID等于2的所有产品的平均价格
    8. 计算价格大于或等于180的产品数量
    9. 选择价格大于或等于180的所有产品的名称和价格,然后按价格降序排序,然后按名称升序排序
    10. 选择产品中的所有数据,包括每个产品制造商的所有数据
    11. 选择所有产品的产品名称,价格和制造商名称
    12. 选择每个制造商产品的平均价格,仅显示制造商的代码
    13. 选择每个制造商产品的平均价格,显示制造商的名称
    14. 选择产品的平均价格大于或等于150美元的制造商名称
    15. 选择最便宜产品的名称和价格
    16. 选择每个制造商的名称以及最昂贵产品的名称和价格
    17. 添加新产品:音箱, 价格:70, 制造商ID:2
    18. 将产品id为8的名称更新为激光打印机
    19. 对所有产品享受10%的折扣
    20. 对价格大于或等于120美元的所有产品申请10%的折扣

    答案

    1. 选择商店中所有产品的名称
    select name
    from products;
    1. 选择商店中所有产品的名称和价格
    select name, price
    from products;
    1. 选择价格小于或等于200的产品名称
    select name
    from products
    where price <= 200;
    1. 选择价格在60到120之间的所有产品
    /* With AND */
    select *
    from products
    where price >= 60
      and price <= 120;
    
    /* With BETWEEN */
    select *
    from products
    where price between 60 and 120;
    1. 选择名称和价格,但是价格必须乘以100
    select name, price * 100 as price
    from products;
    1. 计算所有产品的平均价格
    select avg(price)
    from products;
    1. 计算制造商ID等于2的所有产品的平均价格
    select avg(price)
    from products
    where manufacturer = 2;
    1. 计算价格大于或等于180的产品数量
    select count(*)
    from products
    where price >= 180;
    1. 选择价格大于或等于180的所有产品的名称和价格,然后按价格降序排序,然后按名称升序排序
    select name, price
    from products
    where price >= 180
    order by price desc, name;
    1. 选择产品中的所有数据,包括每个产品制造商的所有数据
    /* Without INNER JOIN */
    select *
    from products as p,
         manufacturers as m
    where p.manufacturer = m.id;
    
    /* With INNER JOIN */
    select *
    from products as p
             inner join manufacturers m on p.manufacturer = m.id;
    1. 选择所有产品的产品名称,价格和制造商名称
    /* Without INNER JOIN */
    select p.name, p.price, m.name
    from products as p,
         manufacturers as m
    where p.manufacturer = m.id;
    
    /* With INNER JOIN */
    SELECT p.Name, p.Price, m.Name
    FROM products as p
             INNER JOIN manufacturers as m
                        ON p.Manufacturer = m.id;
    1. 选择每个制造商产品的平均价格,仅显示制造商的代码
    select avg(price), manufacturer
    from products
    group by manufacturer;
    1. 选择每个制造商产品的平均价格,显示制造商的名称
    /* Without INNER JOIN */
    select avg(price), m.name
    from products as p,
         manufacturers as m
    where p.manufacturer = m.id
    group by m.name
    
    /* With INNER JOIN */
    select avg(price), m.name
    from products as p
             inner join manufacturers m on p.manufacturer = m.id
    group by m.name
    1. 选择产品的平均价格大于或等于150美元的制造商名称
    /* Without INNER JOIN */
    select avg(Price), m.name
    from products as p,
         manufacturers as m
    where p.manufacturer = m.id
    group by m.name
    having avg(Price) >= 150;
    
    /* With INNER JOIN */
    SELECT AVG(Price), m.Name
    FROM Products as p
             INNER JOIN manufacturers as m
                        ON p.Manufacturer = m.id
    GROUP BY m.Name
    HAVING AVG(Price) >= 150;
    1. 选择最便宜产品的名称和价格
    SELECT name, price
    FROM Products
    ORDER BY price ASC
    LIMIT 1;
    
    /* With a nested SELECT */
    SELECT Name, Price
    FROM Products
    WHERE Price = (SELECT MIN(Price) FROM Products);
    1. 选择每个制造商的名称以及最昂贵产品的名称和价格
    /* With a nested SELECT and without INNER JOIN */
    SELECT A.Name, A.Price, F.Name
    FROM Products A,
         Manufacturers F
    WHERE A.Manufacturer = F.id
      AND A.Price =
          (
              SELECT MAX(A.Price)
              FROM Products A
              WHERE A.manufacturer = F.id
          );
    
    /* With a nested SELECT and an INNER JOIN */
    SELECT A.Name, A.Price, F.Name
    FROM Products A
             INNER JOIN manufacturers F
                        ON A.Manufacturer = F.id
                            AND A.Price =
                                (
                                    SELECT MAX(A.Price)
                                    FROM Products A
                                    WHERE A.Manufacturer = F.id
                                );
    1. 添加新产品:音箱, 价格:70, 制造商ID:2
    insert into products
    values (11, '音箱', 70, 2);
    1. 将产品id为8的名称更新为激光打印机
    update products
    set name='激光打印机'
    where id = 8;
    1. 对所有产品享受10%的折扣
    UPDATE Products
    SET Price = Price - (Price * 0.1);
    1. 对价格大于或等于120美元的所有产品申请10%的折扣
    update products
    set price=price - (price * 0.1)
    where price >= 120;
    相关说明:

    1、VIP会员无限制任意下载,免积分。立即前往开通>>

    2、下载积分可通过日常 签到绑定邮箱 以及 积分兑换 等途径获得!

    3、本站资源大多存储在云盘,如出现链接失效请评论反馈。

    4、所有站内资源仅供学习交流使用。未经原版权作者许可,禁止用于任何商业环境,否则后果自负。为尊重作者版权,请购买正版作品。

    5、站内资源来源于网络公开发表文件或网友分享,如侵犯您的权益,请联系管理员处理。

    6、本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!

    7、源码、模板等资源会随着技术、坏境的升级而存在部分问题,还请慎重选择。


    源站网 » SQL语句练习-电脑商店

    常见问题FAQ

    免费下载资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    源码软件是否含有后门木马?
    请您自己利用专门的查杀木马工具对源码源代码进行检测!

    发表评论

    • 851会员总数(位)
    • 17825资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 403稳定运行(天)

    赞助本站发展 维持服务器消耗

    全站源码免费下载 立刻赞助
    永远免费 永远年轻赞助本站