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)公司的项目比较老,采用硬编码模式,…

10-3 5-3 查询生产最高速度的计算机(PC或便携式电脑)厂商 (20 分)

一:上码 -- 查询生产最高速度的计算机(PC或便携式电脑)厂商,查询结果按照厂商升序排列-- 分析:1.从pc表和product表当中当中找到速度最快的 表1 -- 2.从laptop表和product表当中找到速度最快的 表2 -- 3.将表1和表2联合起来找速…

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

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

10-4 5-4 查询至少生产三种不同速度PC的厂商 (20 分)

一:上码 -- 查询至少生产三种不同速度PC的厂商-- 分析:1.联合pc和product表,字段为厂商和速度 表1 -- 2.按厂商名字进行分组统计厂商的个数,筛选条件为个数大于3的 表2 -- 3.将表2 做为子表筛选出 maker-- 1. -- selec…

【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)…

10-5 5-5 查询只卖三种不同型号PC的厂商 (20 分)

一:上码 -- 查询只卖三种不同型号PC的厂商-- 分析:1.首先 pc和product表联合 字段为厂商 -- 2.统计这些厂商的个数过滤掉型号小于3的厂商 表1 -- 3.然后laptop和product联合 表2,printer和product联合 字段均为厂商 表3 -- …

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桌面环境,支持多壁纸、…

夏门大学的计算机专业排第几,2019厦门大学专业排名

厦门大学由著名爱国华侨领袖陈嘉庚先生于1921年创办,是中国近代教育史上第一所华侨创办的大学,也是国家“211工程”和“985工程”重点建设的高水平大学。为了让大家更好的了解这所大学的专业排名,下面是学习啦小编给大家带来的厦门大学专业排…

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

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

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

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

什么事计算机事实性知识,《人工智能》复习要点

名词解释5X6分/简答题5X10分/论述题1X20分一、选择题1.下列哪个不是人工智能的研究领域( D )A.机器证明B.模式识别C.人工生命D.编译原理2.人工智能是一门( C )A.数学和生理学B.心理学和生理学C.语言学D.综合性的交叉学科和边缘学科3.神经网络研究属于下列( B )学派A.符号主义B.…

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

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

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

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

高考英语口试计算机系,大学英语口语考试都考什么,高考英语口试考什么?

四六级英语考试口语考试的的每场考试都由两名主考官主持、三名考生参加,时间为20分钟。考试由三部分组成:第一部分主要是“热身练习”,先由考生作自我介绍,目的是使考生进入一个良好的应考状态,以充分发挥出自己的英语…