10-2 5-2 查询至少生产两种不同的计算机(PC或便携式电脑)且机器速度至少为133的厂商 (20 分)(思路加详解+测试用例)

一:题目

本题目要求编写SQL语句, 查询至少生产两种不同型号的计算机(PC或便携式电脑)且机器速度至少为133的厂商,输出结果按照制造商升序排列。

提示:

本题有三种情况: (1) 至少生产两种不同PC的厂商 (2) 至少生产两种不同便携式电脑的厂商 (3) 至少生产一种PC且至少生产一种便携式电脑的厂商。

表结构:

CREATE TABLE product
( maker CHAR(20) ,          --制造商model CHAR(20) NOT NULL,  --产品型号type CHAR(20),            --产品类型PRIMARY KEY(model)
);
CREATE TABLE pc
( model CHAR(20) NOT NULL,    --型号speed  DECIMAL(6,2),        --速度ram  INT,                   --内存hd DECIMAL(6,2),            --硬盘容量cd CHAR(4),                 --光驱price INT,                  --价钱PRIMARY KEY(model),FOREIGN KEY(model) REFERENCES product(model)
);
CREATE TABLE laptop
( model CHAR(20) NOT NULL,    --型号speed  DECIMAL(6,2),        --速度 ram  INT,                   --内存hd DECIMAL(6,2),            --硬盘容量screen DECIMAL(6,2),        --屏幕大小price INT,                  --价钱PRIMARY KEY(model),FOREIGN KEY(model) REFERENCES product(model) 
);

在这里插入图片描述

二:测试用例

吐槽一下,pta上关于sql语句没提供测试用例的地方,着实让人讨厌,但是贴心杰,自己写了个测试用例来测试自己的码,现在分享给大家 帮助大家来测试自己的码

CREATE TABLE product
( maker CHAR(20) ,          -- 制造商model CHAR(20) NOT NULL,  -- 产品型号TYPE CHAR(20),            -- 产品类型PRIMARY KEY(model)
);
CREATE TABLE pc
( model CHAR(20) NOT NULL,    -- 型号speed  DECIMAL(6,2),        -- 速度FOREIGN KEY(model) REFERENCES product(model)
);
CREATE TABLE laptop
( model CHAR(20) NOT NULL,    -- 型号speed  DECIMAL(6,2),        -- 速度 FOREIGN KEY(model) REFERENCES product(model) 
);INSERT INTO productVALUES('D','2001','便携式电脑'),('D','2002','便携式电脑'),('E','2004','便携式电脑'),('D','3001','打印机'),('B','3002','打印机'),('A','1001','个人电脑'),('A','1002','个人电脑'),('A','1003','个人电脑'),('D','1008','个人电脑');SELECT * FROM product;	INSERT INTO pcVALUES('1001',133),('1002',120),('1003',166),('1008',180);SELECT * FROM pc;INSERT INTO laptopVALUES('2001',100),('2002',133),('2004',133);SELECT * FROM laptop;

直接复制运行就可以

二:分析

– 查询至少生产两种不同型号的计算机(PC或便携式电脑)且机器速度至少为133的厂商,输出结果按照制造商升序排列。
– (1) 至少生产两种不同PC的厂商
– (2) 至少生产两种不同便携式电脑的厂商
– (3) 至少生产一种PC且至少生产一种便携式电脑的厂商。

– 分析:
1.将pc和product表联合查询设置条件 速度大于 133 查询出来的 结果有多个厂商,表1
2.将表1按maker进行分组,统计每个厂商的个数,筛选出大于等于2的厂商 (可以得到厂商和其个数)表2
3.laptop 和 product 和上述过程一样 表
4.针对体条件三,我们先将pc和product联合查询得到表4,将laptop和product表联合查询 并将表4作为条件 即可满足条件三
5.将表2和表3表4联合起来 并按maker排序

四:上码

-- 查询至少生产两种不同型号的计算机(PC或便携式电脑)且机器速度至少为133的厂商,输出结果按照制造商升序排列。
-- (1) 至少生产两种不同PC的厂商 
-- (2) 至少生产两种不同便携式电脑的厂商 
-- (3) 至少生产一种PC且至少生产一种便携式电脑的厂商。-- 分析:1.将pc和product表联合查询设置条件 速度大于 133  查询出来的 结果有多个厂商,表1
--      2.将表1按maker进行分组,统计每个厂商的个数,筛选出大于等于2的厂商 (可以得到厂商和其个数)表2
--      3.laptop 和 product 和上述过程一样 表3
--      4.针对体条件三,我们先将pc和product联合查询得到表4,将laptop和product表联合查询 并将表4作为条件 即可满足条件三
--      5.将表2和表3表4联合起来 并按maker排序-- 1.
-- select  maker
--         from pc,product
--         where pc.model = product.model
--         and pc.speed >= 133;-- -- 2.
-- select maker, count(maker)
--       from (select  maker
--                     from pc,product
--                     where pc.model = product.model
--                     and pc.speed >= 133) as temp1
--       group by maker  having count(maker) >= 2;            -- -- 3.
-- select  maker
--         from laptop,product
--         where laptop.model = product.model
--         and laptop.speed >= 133;--  select maker, count(maker)
--       from (select  maker
--                     from laptop,product
--                     where laptop.model = product.model
--                     and laptop.speed >= 133) as temp2
--       group by maker  having count(maker) >= 2;  -- 4.  
-- select distinct maker
--        from laptop,product
--        where laptop.model = product.model
--        and  product.maker in (select maker
--                                         from pc,product
--                                         where pc.model = product.model);select distinct maker from(select  makerfrom(select maker, count(maker)from (select  makerfrom pc,productwhere pc.model = product.modeland pc.speed >= 133) as temp1group by maker  having count(maker) >= 2     union     select maker, count(maker)from (select  makerfrom laptop,productwhere laptop.model = product.modeland laptop.speed >= 133) as temp2group by maker  having count(maker) >= 2) as temp3unionselect makerfrom laptop,productwhere laptop.model = product.modeland  product.maker in (select makerfrom pc,productwhere pc.model = product.model)) as temp4order by maker;          

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core学习资源汇总

ASP.NET Core入门学习资源汇总篇幅比較長,分为七个部分。(一)认识.NET Core(二)Vistual Studio安装、调试(三)Asp.Net Core入门指南与学习路线(四)入门级实战项目手册、官…

用计算机探索 按一定规律排列,探索规律练习题1

探索规律练习题1、我们平常用的数是十进制数,如26392103610231019100,表示十进制的数要用10个数码(又叫数字):0,1,2,3,4,5,6,7,8,9。在…

简单快速导出word文档

最近,我写公司项目word导出功能,应该只有2小时的工作量,却被硬生生的拉长2天,项目上线到业务正常运行也被拉长到2个星期。为什么如此浪费时间呢?1)公司的项目比较老,采用硬编码模式,…

如何让多端口网站用一个nginx进行反向代理实际场景分析

前段时间公司要整合服务器资源,刚好趁这次机会将这些乱七八糟的服务器做一次梳理和整合,断断续续一个月迁移完成大概优化掉了1/3的机器,完成之后遇到了一些问题,比如曾今零零散散部署在生产上一些可视化UI:apollo&…

【Azure Show】|第五期(下)当下最火热的Blazor与App Service, 嘉宾闫晓迪Alan Tsai...

欢迎来到Azure Show!Azure Show欢迎来到Azure Show第五期(下),继上集分享彭爱华和阿法兔两位老师的跨界经验之后,本期我们【MVP面对面】栏目邀请到远在新西兰的微软最有价值专家闫晓迪和大家聊聊新西兰的技术生态,当然…

台式计算机听音乐,配置一台4000元的台式电脑,主要用于日常办公及上网查资料,听音乐,看电影及学习....

满意答案asshnjgs2014.04.02采纳率:44% 等级:9已帮助:861人CPU:Intel 赛扬D341 2.93G(散) CPU适用类型:台式CPU CPU内核:Prescott 主频(MHz):2930MHz 插槽类型:Socket 775 制作工艺(微米):0.09 微米 L2缓存(KB):256KB FSB(MHz)…

ASP.NET Core Blazor Webassembly 之 组件

关于组件现在前端几大轮子全面组件化。组件让我们可以对常用的功能进行封装,以便复用。组件这东西对于搞.NET的同学其实并不陌生,以前ASP.NET WebForm的用户控件其实也是一种组件。它封装html代码,封装业务逻辑,对外提供属性事件等…

122. 买卖股票的最佳时机 II008(贪心算法+思路)

一:题目 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易&#xf…

广东省计算机应用考试题,广东省计算机等级考试一级试题

广东省计算机等级考试一级试题一、理论部分 (共20分,每空1分)将正确答案填写在考试文件夹中“第一题答案.XLS”的Sheet1相应的位置上1. 解释程序的功能是 ( )。A解释执行高级语言源程序 B将高级语言源程序翻译成目标程序C解释执行汇编语言源程序 D将汇编语言源程序翻…

麒麟系统兼容安卓生态 弥补生态短板

日前,麒麟软件发布了银河麒麟操作系统最新版本V10。据媒体报道,麒麟软件是国内唯一一个通过CMMI5级质量评估的操作系统企业,在XC市场份额占有率达到70%以上。麒麟V10系统可以兼容安卓生态。集成了自研的UKUI桌面环境,支持多壁纸、…

763. 划分字母区间009(贪心算法+思路+详解+图示)

一:题目: 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 示例: 输入:S "ababcbacadefegdehijhklij" 输出…

初识ABP vNext(4):vue用户登录菜单权限

点击上方蓝字"小黑在哪里"关注我吧登录菜单权限运行测试前言上一篇已经创建好了前后端项目,本篇开始编码部分。开始几乎所有的系统都绕不开登录功能,那么就从登录开始,完成用户登录以及用户菜单权限控制。登录首先用户输入账号密码…

满汉楼(德鲁伊连接池+DBUtils+DAO+Mysql)保姆级别分析+代码实现

一:需求 1.完成一个酒店后台管理系统,当然只是模拟,在控制台就行模拟 2.实现管理人员的登录和酒店成本账单的查看,以及正常的点餐,结账和查看账单等等功能 二:实现的功能展示 1.用户登录(这里…

[Hei-Ocelot-Gateway ].Net Core Api网关Ocelot的开箱即用版本

写在前面很多neter都有在用Ocelot做Api网关,但是Ocelot又不像kong或者其他网关一样,开箱即用。它需要你单独开一个web项目来部署,这样很多同学都在做重复的事了。这里[Hei.Ocelot.ApiGateway] 就把这件事给做了,以后有…

聊聊常见的服务(接口)认证授权

写在前面头发掉得多了,总有机会接触/调到各种各样的接口,各种面向Api编程实际上已经嵌入到我们的习惯中,没办法现在服务端通信还得是http(s),其他协议还未能成为通用的。大厂的开发平台api我先不敢说,各种…

二分查找(划分时左右元素个数不相等)解析+代码

一:问题描述 当我们在用二分法查找元素的时候,我们往往特希望遇到是奇数个元素个数的数组,因为划分完左右两边的个数相等,所以在以前刚学二分法的时候就有这个疑问,当时就是模模糊糊过去了,再遇到其实还是会有疑问。现…

网络计算机室电源线怎么布,网吧综合布线(电源和网络)经验谈

电源系统布线篇网吧目前所提供的服务,像网页浏览、网络游戏、在线电影、远程教育等最基本的服务都与网络有关,网络质量的好坏直接决定了网吧的生存能力。所以,如何规划一个优质的网络环境,是网吧经营者必须要考虑的一个要点&#…

69. Sqrt(x)010(二分法求解+详解注释)

一:题目 ‘给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0…

计算机网络 哪个教材好,学习计算机网络哪本教材最好?

benxiuxian高分答主12-29TA获得超过8057个赞地理期末复习计划临近期末,为帮助学生理顺知识,培养学生灵活运用知识分析问题,解决问题的能力,形成完整的知识体系,特作复习计划如下:一、复习目的:1…

安装VSCode作为常用的文本编辑器

作为程序员,跟文本编辑器打交道那是天天都在做的事情,一个趁手的文本编辑器能大大地提供工作效率,减少996福报。笔者使用过各种文本编辑器,或是xx版,或是免费版,多多少少都有一些不便之处,如今 …