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

    SQL语句练习-仓库 最后编辑:2021-04-07
    增值服务: 自动发货 使用说明 安装指导 环境配置二次开发BUG修复

    创建表

    • 仓库表
    CREATE TABLE Warehouses
    (
        Code     INTEGER PRIMARY KEY NOT NULL,
        Location TEXT                NOT NULL, -- 仓库地址
        Capacity INTEGER             NOT NULL  -- 容纳箱子的数量
    );
    • 箱子表
    CREATE TABLE Boxes
    (
        Code      TEXT PRIMARY KEY NOT NULL,
        Contents  TEXT             NOT NULL, -- 内容
        Value     REAL             NOT NULL, -- 价值
        Warehouse INTEGER          NOT NULL, -- 属于那个仓库
        CONSTRAINT fk_Warehouses_Code FOREIGN KEY (Warehouse) REFERENCES Warehouses (Code)
    );

    预置数据

    • 仓库信息
    INSERT INTO Warehouses
    VALUES (1, 'Chicago', 3),
           (2, 'Chicago', 4),
           (3, 'New York', 7),
           (4, 'Los Angeles', 2),
           (5, 'San Francisco', 8);
    • 箱子信息
    INSERT INTO Boxes
    VALUES ('0MN7', 'Rocks', 180, 3),
           ('4H8P', 'Rocks', 250, 1),
           ('4RT3', 'Scissors', 190, 4),
           ('7G3H', 'Rocks', 200, 1),
           ('8JN6', 'Papers', 75, 1),
           ('8Y6U', 'Papers', 50, 3),
           ('9J6F', 'Papers', 175, 2),
           ('LL08', 'Rocks', 140, 4),
           ('P0H6', 'Scissors', 125, 1),
           ('P2T6', 'Scissors', 150, 2),
           ('TU55', 'Papers', 90, 5);

    题目

    1. 选择所有仓库
    2. 选择值大于$ 150的所有箱子
    3. 在所有箱子中选择所有不同的内容
    4. 选择所有箱子的平均值
    5. 选择仓库代码和每个仓库中箱子的平均值
    6. 与上一练习相同,但只选择那些平均值大于150的仓库
    7. 选择每个箱子的代码以及箱子所在城市的名称
    8. 选择仓库代码以及每个仓库中的箱子数量。可选,考虑到一些仓库是空的(即,箱子数应该显示为零,而不是从结果中省略仓库)
    9. 选择饱和的所有仓库的代码(如果仓库中的箱子数大于仓库的容量,则仓库已饱和)
    10. 选择位于芝加哥的所有箱子的代码
    11. New York新建一个仓库,可容纳3个箱子
    12. 创建一个新箱子,代码为H5RT,包含价值为200Papers,位于仓库2
    13. 将所有箱子的价值减少15%
    14. 对价值大于所有箱子平均值的箱子应用20%的减值
    15. 移除价值低于100的所有箱子
    16. 从饱和仓库中取出所有箱子

    答案

    1. 选择所有仓库
    select *
    from warehouses;
    1. 选择值大于$ 150的所有箱子
    SELECT *
    FROM Boxes
    WHERE Value > 150;
    1. 在所有箱子中选择所有不同的内容
    SELECT DISTINCT Contents
    FROM Boxes;
    1. 选择所有箱子的平均值
    SELECT AVG(Value)
    FROM Boxes;
    1. 选择仓库代码和每个仓库中箱子的平均值
    SELECT Warehouse, AVG(Value)
    FROM Boxes
    GROUP BY Warehouse;
    1. 与上一练习相同,但只选择那些平均值大于150的仓库
    SELECT Warehouse, AVG(Value)
    FROM Boxes
    GROUP BY Warehouse
    HAVING AVG(Value) > 150;
    1. 选择每个箱子的代码以及箱子所在城市的名称
    SELECT Boxes.Code, Location
    FROM Warehouses
             INNER JOIN Boxes
                        ON Warehouses.Code = Boxes.Warehouse;
    1. 选择仓库代码以及每个仓库中的箱子数量。可选,考虑到一些仓库是空的(即,箱子数应该显示为零,而不是从结果中省略仓库)
    /* Not taking into account empty warehouses */
    SELECT Warehouse, COUNT(*)
    FROM Boxes
    GROUP BY Warehouse;
    
    /* Taking into account empty warehouses */
    SELECT Warehouses.Code, COUNT(Boxes.Code)
    FROM Warehouses
             LEFT JOIN Boxes
                       ON Warehouses.Code = Boxes.Warehouse
    GROUP BY Warehouses.Code;
    1. 选择饱和的所有仓库的代码(如果仓库中的箱子数大于仓库的容量,则仓库已饱和)
    SELECT Code
    FROM Warehouses
    WHERE Capacity <
          (
              SELECT COUNT(*)
              FROM Boxes
              WHERE Warehouse = Warehouses.Code
          );
    
    /* Alternate method not involving nested statements */
    SELECT Warehouses.Code
    FROM Warehouses
             JOIN Boxes ON Warehouses.Code = Boxes.Warehouse
    GROUP BY Warehouses.Code
    HAVING Count(Boxes.Code) > Warehouses.Capacity;
    1. 选择位于芝加哥的所有箱子的代码
    /* Without subqueries */
    SELECT Boxes.Code
    FROM Warehouses
             RIGHT JOIN Boxes
                        ON Warehouses.Code = Boxes.Warehouse
    WHERE Location = 'Chicago';
    
    /* With a subquery */
    SELECT Code
    FROM Boxes
    WHERE Warehouse IN
          (
              SELECT Code
              FROM Warehouses
              WHERE Location = 'Chicago'
          );
    1. New York新建一个仓库,可容纳3个箱子
    INSERT
    INTO Warehouses
    VALUES (6, 'New York', 3);
    1. 创建一个新箱子,代码为H5RT,包含价值为200Papers,位于仓库2
    INSERT INTO Boxes
    VALUES ('H5RT', 'Papers', 200, 2);
    1. 将所有箱子的价值减少15%
    UPDATE Boxes
    SET Value = Value * 0.85;
    1. 对价值大于所有箱子平均值的箱子应用20%的减值
    UPDATE Boxes
    SET Value = Value * 0.80
    WHERE Value > (SELECT AVG(Value) FROM (SELECT * FROM Boxes) AS X);
    1. 移除价值低于100的所有箱子
    DELETE
    FROM Boxes
    WHERE Value < 100;
    1. 从饱和仓库中取出所有箱子
    DELETE
    FROM Boxes
    WHERE Warehouse IN
          (
              SELECT Code
              FROM Warehouses
              WHERE Capacity <
                    (
                        SELECT COUNT(*)
                        FROM Boxes
                        WHERE Warehouse = Warehouses.Code
                    )
          );

    猜你在找

    相关说明:

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

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

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

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

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

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

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


    源站网 » SQL语句练习-仓库

    常见问题FAQ

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

    发表评论

    售后服务:

    • 售后服务范围 1、本站提供有偿售后服务
      2、源码安装、模板安装(一般 ¥300-10000)服务答疑仅限SVIP用户
      3、单价超过400元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥300-10000)
      4、网站中毒处理(需额外付费,1500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-20:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: [email protected]),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

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

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

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