码农知识堂 - 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

  • 相关阅读:
    tomcat 数据库卡死 处理
    二维数组与稀疏数组的转换
    oracle数据库导出数据为csv包含clob数据
    进程管理 进程的监控与管理 ps/pstree/top/lsof
    mp4视频太大怎么压缩变小?
    鱼眼相机内参模型fisheye详解
    【数据挖掘】数据预处理
    [ERROR] mariadbd: The table 'INNODB_BUFFER_PAGE' is full
    GIS工具maptalks开发手册(四)02——渲染地图信息框之添加绘制工具 & 获取面的坐标数据信息框进行展示 & 渲染图片的两种方式
    Go语言GC机制超详细
  • 原文地址:https://blog.csdn.net/weixin_44893902/article/details/127549553
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号