码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【数据库系统概论】作业3 第三章 习题4|5|9


    文章目录

      • 4、用SOL语句建立第2章习题6中的4个表,针对建立的4个表用SQL完成第2章习题6中的查询。
        • (1)求供应工程J1零件的供应商号码SNO;
        • (2)求供应工程J1零件P1的供应商号码SNO;
        • (3)求供应工程J1零件为红色的供应商号码SNO;
        • (4)求没有使用天津供应商生产的红色零件的工程号JNO;
        • (5)求至少用了供应商S1所供应的全部零件的工程号JNO。
      • 5、针对习题4中的4个表试用SQL完成以下各项操作:
        • (1)找出所有供应商的姓名和所在城市;
        • (2)找出所有零件的名称、颜色、重量;
        • (3)找出使用供应商S1所供应零件的工程号码;
        • (4)找出工程项目J2使用的各种零件的名称及其数量;
        • (5)找出上海厂商供应的所有零件号码;
        • (6)找出使用上海产的零件的工程名称;
        • (7)找出没有使用天津产的零件的工程号码;
        • (8)把全部红色零件的颜色改成蓝色;
        • (9)由 S5供给J4的零件P6改为由S3供应,请作必要的修改;
        • (10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;
        • (11)请将(S2,J6,P4,200)插入供应情况关系。
      • 9、请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:
        • (1)找出三建工程项目使用的各种零件代码及其数量。
        • (2)找出供应商S1的供应情况。

    4、用SOL语句建立第2章习题6中的4个表,针对建立的4个表用SQL完成第2章习题6中的查询。

    S表

    SNOSNAMESTATUSCITY
    S1精益20天津
    S2盛锡10北京
    S3东方红30北京
    S4丰泰盛20天津
    S5为民30上海

    P表

    PNOPNAMECOLORWEIGHT
    P1螺母红12
    P2螺栓绿17
    P3螺丝刀蓝14
    P4螺丝刀红14
    P5凸轮蓝40
    P6齿轮红30

    J表

    JNOJNAMECITY
    J1三建北京
    J2一汽长春
    J3弹簧厂天津
    J4造船厂天津
    J5机车厂唐山
    J6无线电厂常州
    J7半导体厂南京

    SPJ表

    SNOPNOJNOQTY
    S1P1J1200
    S1P1J3100
    S1PlJ4700
    S1P2J2100
    S2P3J1400
    S2P3J2200
    S2P3J4500
    S2P3J5400
    S2P5J1400
    S2P5J2100
    S3PlJI200
    S3P3J1200
    S4P5J1100
    S4P6J3300
    S4P6J4200
    S5P2J4100
    S5P3J1200
    S5P6J2200
    S5P6J4500
    CREATE TABLE S(
      SNO CHAR(3) PRIMARY KEY,
      SNAME CHAR(10),
      STATUS CHAR(2),
      CITY CHAR(10)
    );
    
    CREATE TABLE P(
      PNO CHAR(3),
      PNAME CHAR(10),
      COLOR CHAR(4),
      WEIGHT INT,
      PRIMARY KEY(PNO)
    );
    
    CREATE TABLE J(
      JNO CHAR(3),
      JNAME CHAR(10),
      CITY CHAR(10),
      PRIMARY KEY(JNO)
    );
    
    CREATE TABLE SPJ(
      SNO CHAR(3),
      PNO CHAR(3),
      JNO CHAR(3),
      QTY INT,
      PRIMARY KEY(SNO,PNO,JNO),
      FOREIGN KEY(SNO) REFERENCES S(SNO),
      FOREIGN KEY(PNO) REFERENCES P(PNO),
      FOREIGN KEY(JNO) REFERENCES J(JNO)
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    INSERT INTO S(SNO,SNAME,STATUS,CITY) VALUES('S1','精益','20','天津');
    INSERT INTO S VALUES('S2','盛锡','10','北京');
    INSERT INTO S VALUES('S3','东方红','30','北京');
    INSERT INTO S VALUES('S4','丰泰盛','20','天津');
    INSERT INTO S VALUES('S5','为民','30','上海');
    
    INSERT INTO P VALUES('P1','螺母','红',12);
    INSERT INTO P VALUES('P2','螺栓','绿',17);
    INSERT INTO P VALUES('P3','螺丝刀','蓝',14);
    INSERT INTO P VALUES('P4','螺丝刀','红',14);
    INSERT INTO P VALUES('P5','凸轮','蓝',40);
    INSERT INTO P VALUES('P6','齿轮','红',30);
    
    INSERT INTO J VALUES('J1','三建','北京');
    INSERT INTO J VALUES('J2','一汽','长春');
    INSERT INTO J VALUES('J3','弹簧厂','天津');
    INSERT INTO J VALUES('J4','造船厂','天津');
    INSERT INTO J VALUES('J5','机车厂','唐山');
    INSERT INTO J VALUES('J6','无限电厂','常州');
    INSERT INTO J VALUES('J7','半导体厂','南京');
    
    INSERT INTO SPJ VALUES('S1','P1','J1',200);
    INSERT INTO SPJ VALUES('S1','P1','J3',100);
    INSERT INTO SPJ VALUES('S1','P1','J4',700);
    INSERT INTO SPJ VALUES('S1','P2','J2',100); 
    INSERT INTO SPJ VALUES('S2','P3','J1',400);
    INSERT INTO SPJ VALUES('S2','P3','J2',200);
    INSERT INTO SPJ VALUES('S2','P3','J4',500);
    INSERT INTO SPJ VALUES('S2','P3','J5',400);
    INSERT INTO SPJ VALUES('S2','P5','J1',400);
    INSERT INTO SPJ VALUES('S2','P5','J2',100);
    INSERT INTO SPJ VALUES('S3','P1','J1',200);
    INSERT INTO SPJ VALUES('S3','P3','J1',200);
    INSERT INTO SPJ VALUES('S4','P5','J1',100);
    INSERT INTO SPJ VALUES('S4','P6','J3',300);
    INSERT INTO SPJ VALUES('S4','P6','J4',200);
    INSERT INTO SPJ VALUES('S5','P2','J4',100);
    INSERT INTO SPJ VALUES('S5','P3','J1',200);
    INSERT INTO SPJ VALUES('S5','P6','J2',200);
    INSERT INTO SPJ VALUES('S5','P6','J4',500);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    供应商表S,供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)
    image.png
    零件表P,零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)
    image.png
    工程项目表J,工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)
    image.png
    供应情况表SPJ,供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(OTY)
    image.png

    (1)求供应工程J1零件的供应商号码SNO;

    SELECT DISTINCT SNO FROM SPJ WHERE JNO='J1';
    
    • 1

    image.png

    (2)求供应工程J1零件P1的供应商号码SNO;

    SELECT DISTINCT SNO FROM SPJ WHERE JNO='J1' AND PNO='P1';
    
    • 1

    image.png

    (3)求供应工程J1零件为红色的供应商号码SNO;

    SELECT DISTINCT SNO FROM P,SPJ WHERE P.PNO=SPJ.PNO AND COLOR='红' AND JNO='J1';
    
    • 1

    image.png

    (4)求没有使用天津供应商生产的红色零件的工程号JNO;

    SELECT DISTINCT S.SNO FROM P,S,SPJ WHERE P.PNO=SPJ.PNO AND S.SNO=SPJ.SNO AND S.CITY!='天津';
    
    • 1

    image.png

    (5)求至少用了供应商S1所供应的全部零件的工程号JNO。

    SELECT DISTINCT JNO FROM SPJ SPJZ WHERE NOT EXISTS(SELECT * FROM SPJ WHERE SNO='S1' AND NOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.PNO=SPJZ.PNO AND SPJY.JNO=SPJZ.JNO));
    
    • 1

    image.png

    5、针对习题4中的4个表试用SQL完成以下各项操作:

    (1)找出所有供应商的姓名和所在城市;

    SELECT SNAME,CITY FROM S;
    
    • 1

    image.png

    (2)找出所有零件的名称、颜色、重量;

    SELECT PNAME,COLOR,WEIGHT FROM P;
    
    • 1

    image.png

    (3)找出使用供应商S1所供应零件的工程号码;

    SELECT DISTINCT PNO FROM SPJ WHERE SNO='S1';
    
    • 1

    image.png

    (4)找出工程项目J2使用的各种零件的名称及其数量;

    SELECT PNAME,QTY FROM SPJ,P WHERE SPJ.PNO=P.PNO AND SPJ.JNO='J2';
    
    • 1

    image.png

    (5)找出上海厂商供应的所有零件号码;

    SELECT DISTINCT PNO FROM SPJ,S WHERE SPJ.SNO=S.SNO AND CITY='上海';
    
    • 1

    image.png

    (6)找出使用上海产的零件的工程名称;

    SELECT DISTINCT JNO FROM SPJ,S WHERE SPJ.SNO=S.SNO AND CITY='上海';
    
    • 1

    image.png

    (7)找出没有使用天津产的零件的工程号码;

    SELECT DISTINCT JNO FROM SPJ,S WHERE SPJ.SNO=S.SNO AND CITY!='天津';
    
    • 1

    image.png

    (8)把全部红色零件的颜色改成蓝色;

    UPDATE P SET COLOR='蓝' WHERE COLOR='红';
    
    • 1

    image.pngimage.png

    (9)由 S5供给J4的零件P6改为由S3供应,请作必要的修改;

    UPDATE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6';
    
    • 1

    image.png

    (10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;

    DELETE FROM SPJ WHERE SNO='S2'
    DELETE FROM S WHERE SNO='S2';
    
    • 1
    • 2

    image.png

    (11)请将(S2,J6,P4,200)插入供应情况关系。

    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','J6','P4',200);
    
    • 1

    image.png

    9、请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:

    CREATE VIEW V_SPJ(SNO,PNO,QTY) AS SELECT SNO,PNO,QTY FROM SPJ WHERE JNO=(SELECT JNO FROM J WHERE JNAME='三建');
    
    • 1

    image.png
    image.png

    (1)找出三建工程项目使用的各种零件代码及其数量。

    SELECT PNO,QTY FROM V_SPJ;
    
    • 1

    image.png

    (2)找出供应商S1的供应情况。

    SELECT * FROM V_SPJ WHERE SNO='S1'
    
    • 1

    image.png

  • 相关阅读:
    <二.1> android 直接使用hal库播放pcm demo
    POJ 2739 Sum of Consecutive Prime Numbers 尺取法
    Linux openvino 环境搭建遇见的问题
    Ubuntu中查看电脑有多少个核——lscpu
    用 ChatGPT 做一个 Chrome 扩展 | 京东云技术团队
    仿CSGO盲盒开箱源码 盲盒商城源码 盲盒开箱源码 潮物盲盒商城源码
    Go字符串实战操作大全!
    m基于GA遗传优化的BP神经网络时间序列预测算法matlab仿真
    金融数字化转型这场硬仗,如何才能做到“有底”和“有数”?
    ResFields: 一种即插即用的MLP增容工具
  • 原文地址:https://blog.csdn.net/weixin_44893902/article/details/127549553
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号