zoukankan      html  css  js  c++  java
  • sql语句关系代数练习

    sql语句关系代数练习

    对于表结构:

    product(maker,model,type)

    maker:表示生产厂商

    model:生产的产品型号

    type:产品类型,有pc laptop printer三种

    pc(model,speed,ram,hd,price)

    表示型号,速度,内存大小,硬盘大小,价格

    laptop(model,speed,ram,hd,screen,price)

    表示型号,速度,内存大小,硬盘大小,屏幕大小和价格

    printer(model,color,type,price)

    model:打印机型号;

    color:是否彩色, T 彩色,F 黑白

    type:类型,ink-jet 表示喷墨, laser 表示激光;

    price:单价

    这是一套难度大得不溜秋的题嘤嘤嘤,本人水平有限,对语句的理解还不够深,语句不一定都是最优解,有的题目有多种解,如有疑问错误欢迎指出~

    查询生产pc也生产laptop的厂商

    select product.maker
    from product 
    join laptop
    on product.model = laptop.model
    intersect
    select product.maker
    from product 
    join pc
    on product.model = pc.model
    

    查询生产型号为2001的厂商信息及该型号所属产品的种类

    select maker,type from product where model='2001'
    

    查询厂商A 生产的PC中price大于900的产品型号

    select product.model
    from product
    inner join pc
    on product.model=pc.model
    where pc.price>900 and product.maker='A'
    

    查询厂商B生产的所有产品的型号和价格

    select product.maker,printer.price
    from product
    inner join printer
    on product.model = printer.model
    where printer.type = 'ink-jet'
    

    分类统计厂商(maker)A生产的各种产品的数量

    select type,count(model) from product where maker='A' group by type
    

    查询所有彩色激光打印机的生产商及型号

    select a.maker,a.model
    from product a
    inner join printer b
    on a.model = b.model
    where b.color = 'T' and b.type = 'laser'
    

    找出生产产品型号最多的厂商

    select top 1 maker from product group by maker order by count(*) desc
    

    查询出哪个生产厂商的笔记本电脑的硬盘容量至少100G

    select a.maker
    from product a
    inner join laptop b
    on a.model = b.model
    group by a.maker
    having min(b.hd)>=100
    

    找出那些既出售笔记本电脑又出售PC的厂商

    select product.maker
    from product
    inner join pc
    on product.model = pc.model
    group by product.maker
    intersect
    select product.maker
    from product
    inner join laptop
    on product.model = laptop.model
    

    查询具有同样处理速度和同样内存大小的PC对

    显示满足条件的pc对的型号,同样的pc对只出现1次,如001 与 002 符合条件, 则仅出现001 002,不出现002 001

    select a.model,b.model
    from pc a,pc b
    where a.speed=b.speed and a.ram=b.ram and a.model<>b.model and a.model<b.model
    

    查询至少生产三种不同处理速度电脑(含pc和laptop)的厂商

    select maker from
    (
    	select maker, product.model, speed from 
    	product join pc on product.model = pc.model 
    	union
    	select maker, product.model, speed from 
    	product join laptop on product.model = laptop.model
    ) as a
    group by maker
    having count(distinct speed) >= 3;
    

    统计出pc,laptop,printer三种产品的不同型号数量,并按数量从大到小排序

    select type, count(model) as c from
    (
    	select type, product.model as model from 
    	product join pc on product.model = pc.model 
    	union
    	select type, product.model as model
    	from product join laptop on product.model = laptop.model
    	union 
    	select product.type, product.model as model
    	from product join printer on product.model = printer.model
    ) as a
    group by type
    order by c desc;
    

    有客户有1500元钱,买laptop或pc,要求硬盘容量不小于80,请给出可能的产品型号,生产厂商

    select product.maker,product.model from product
    inner join laptop on product.model = laptop.model where laptop.hd >=80 and laptop.price <=1500
    union
    select product.maker,product.model from product
    inner join pc on product.model = pc.model where pc.hd >=80 and pc.price <=1500
    

    找出至少生产5种不同型号产品的厂商

    select maker from product
    group by maker
    having count(*)>=5
    

    完成功能使得:厂商A的产品升级,所有pc速度提高100,硬盘容量增加50,价格上调300

    Update pc SET pc.speed = pc.speed +100,pc.hd=pc.hd+50,pc.price=pc.price+300
    FROM product INNER JOIN pc ON product.model=pc.model
    where product.maker='A'
    

    完成功能:厂商E新增一种pc产品,型号1090,速度200,内存128,硬盘160,价格800

    insert into pc values ("1090",200,128,160,800);
    
    insert into product values ("E","1090","pc");
    

    完成功能:厂商C生产的laptop,型号2013停产,需要从相关关系种去除

    delete a
    from product a
    inner join laptop b
    on a.model = b.model
    where a.maker='C' and a.model = '2013'
    

    完成功能:厂商A生产的产品1001型号变更为1091,其余信息不变

    Update b SET b.model = '1091'
    FROM product a INNER JOIN pc b
    ON a.model=b.model
    where a.maker='A' and b.model = '1001';
    
    Update a SET a.model = '1091'
    FROM product a 
    where a.model = '1001';
    

    厂商H破产,所有其生产的产品需移除

    delete b from product a inner join pc b
    on a.model = b.model
    where a.maker = 'H';
    delete b from product a inner join laptop b
    on a.model = b.model
    where a.maker = 'H';
    delete b from product a inner join printer b
    on a.model = b.model
    where a.maker = 'H';
    
    delete a from product a
    where a.maker ='H';
    
  • 相关阅读:
    深度学习原理与框架-Tensorflow卷积神经网络-神经网络mnist分类
    深度学习原理与框架-Tensorflow基本操作-mnist数据集的逻辑回归 1.tf.matmul(点乘操作) 2.tf.equal(对应位置是否相等) 3.tf.cast(将布尔类型转换为数值类型) 4.tf.argmax(返回最大值的索引) 5.tf.nn.softmax(计算softmax概率值) 6.tf.train.GradientDescentOptimizer(损失值梯度下降器)
    深度学习原理与框架-Tensorflow基本操作-实现线性拟合
    深度学习原理与框架-Tensorflow基本操作-变量常用操作 1.tf.random_normal(生成正态分布随机数) 2.tf.random_shuffle(进行洗牌操作) 3. tf.assign(赋值操作) 4.tf.convert_to_tensor(转换为tensor类型) 5.tf.add(相加操作) tf.divide(相乘操作) 6.tf.placeholder(输入数据占位
    深度学习原理与框架-Tensorflow基本操作-Tensorflow中的变量
    深度学习原理与框架-RNN网络框架-LSTM框架 1.控制门单元 2.遗忘门单元 3.记忆门单元 4.控制门单元更新 5.输出门单元 6.LSTM网络结构
    深度学习原理与框架-RNN网络架构-RNN网络 1.RNN的前向传播 2.RNN的反向传播
    深度学习原理与框架-卷积网络细节-三代物体检测算法 1.R-CNN 2.Fast R-CNN 3.Faster R-CNN
    线上服务内存OOM问题定位
    linux下追查线上问题常用命令
  • 原文地址:https://www.cnblogs.com/lightice/p/12713661.html
Copyright © 2011-2022 走看看