1. /*第二章 作业*/
  2. create table S
  3. (
  4. sno char(2) NOT NULL UNIQUE,
  5. sname char(3),
  6. city char(2)
  7. );
  8. alter table S add constraint s_k primary key(sno);
  9.  
  10. create table P
  11. (
  12. pno char(2) NOT NULL,
  13. pname char(3),
  14. color char(1),
  15. weight int
  16. );
  17. alter table P add constraint p_k primary key(pno);
  18.  
  19. create table J
  20. (
  21. jno char(2) NOT NULL,
  22. jname char(3),
  23. city char(2)
  24. );
  25. alter table J add constraint j_k primary key(jno);
  26.  
  27. create table SPJ
  28. (
  29. sno char(2) NOT NULL,
  30. pno char(2) NOT NULL,
  31. jno char(2) NOT NULL,
  32. qty int
  33. );
  34. alter table SPJ add constraint spj_k primary key(sno,pno,jno);
  35. alter table SPJ add constraint spj_fk foreign key(sno) references s(sno);
  36. alter table SPJ add constraint spj_fk2 foreign key(pno) references p(pno);
  37. alter table SPJ add constraint spj_fk3 foreign key(jno) references J(jno);
  38.  
  39. alter table s alter column sname char(6);
  40. alter table s alter column city char(4);
  41.  
  42. insert into s values('S1', '精 益', '天津');
  43. insert into s values('S2', '万 胜', '北京');
  44. insert into s values('S3', '东 方', '北京');
  45. insert into s values('S4', '丰泰隆', '上海');
  46. insert into s values('S5', '康 健', '南京');
  47.  
  48. alter table p alter column pname char(6);
  49. alter table p alter column color char(2);
  50.  
  51. insert into p values('P1', '螺 母', '红', 12);
  52. insert into p values('P2', '螺 栓', '绿', 17);
  53. insert into p values('P3', '螺丝刀', '蓝', 14);
  54. insert into p values('P4', '螺丝刀', '红', 14);
  55. insert into p values('P5', '凸 轮', '蓝', 40);
  56. insert into p values('P6', '齿 轮', '红', 30);
  57.  
  58. alter table j alter column jname char(8);
  59. alter table j alter column city char(4);
  60. insert into j values('J1', '三 建', '北京');
  61. insert into j values('J2', '一 汽', '长春');
  62. insert into j values('J3', '弹 簧 厂', '天津');
  63. insert into j values('J4', '造 船 厂', '天津');
  64. insert into j values('J5', '机 车 厂', '唐山');
  65. insert into j values('J6', '无线电厂', '常州');
  66. insert into j values('J7', '半导体厂', '南京');
  67.  
  68. insert into spj values('S1', 'P1', 'J1', 200);
  69. insert into spj values('S1', 'P1', 'J3', 100);
  70. insert into spj values('S1', 'P1', 'J4', 700);
  71. insert into spj values('S1', 'P2', 'J2', 100);
  72. insert into spj values('S2', 'P3', 'J1', 400);
  73. insert into spj values('S2', 'P3', 'J2', 200);
  74.  
  75. insert into spj values('S2', 'P3', 'J4', 500);
  76. insert into spj values('S2', 'P3', 'J5', 400);
  77. insert into spj values('S2', 'P5', 'J1', 400);
  78. insert into spj values('S2', 'P5', 'J2', 100);
  79. insert into spj values('S3', 'P1', 'J1', 200);
  80. insert into spj values('S3', 'P3', 'J1', 200);
  81. insert into spj values('S4', 'P5', 'J1', 100);
  82. insert into spj values('S4', 'P6', 'J3', 300);
  83. insert into spj values('S4', 'P6', 'J4', 200);
  84. insert into spj values('S5', 'P2', 'J4', 100);
  85. insert into spj values('S5', 'P3', 'J1', 200);
  86. insert into spj values('S5', 'P6', 'J2', 200);
  87. insert into spj values('S5', 'P6', 'J4', 500);
  88.  
  89. /*(4)求没有使用天津供应商生产的红色零件的工程号*/
  90. select distinct jno
  91. from spj
  92. where jno not in
  93. ( select jno
  94. from spj
  95. where sno in
  96. (select sno
  97. from s
  98. where city='天津'
  99. and pno in
  100. ( select pno
  101. from p
  102. where color='红'))
  103. );
  104.  
  105. /*(5)求至少用了S1供应商所供应的全部零件的工程号JNO */
  106. select distinct jno
  107. from spj x
  108. where not exists
  109. (
  110. select distinct pno
  111. from spj y
  112. where y.sno='S1' and
  113. not exists
  114. (
  115. select *
  116. from spj z
  117. where z.jno = x.jno and
  118. z.pno = y.pno));
  119. /*首先查询SPJ表得到一个工程号的集合对于集合中的每一条记录做如下查询:取出一个工程号,比如J1 如果不存在这样的记录 查询SPJ表得到这样一个集合 -- 由供应商S1供应的零件号,这里是P1, P2 1 取出一个零件号,比如pno = 'P1' 查询spj表,对于jno='J1' 并且 pno='P1' 2 取出下一个零件号,pno = 'P2' 查询spj表,对于jno='J1' 并且 pno='P2'
  120. 如果J1使用了由S1供应的零件则最后一个存在量词始终返回false 那么第一个存在量词也就始终返回false,两个存在量词都返回 false就表示该工程至少使用了S1供应商所供应的全部零件。
  121. 对于一个工程,不存在这种情况,S1供应了一个零件,而该工程没有使用
  122. */
  123. /*(1) 统计每种零件的供应总量*/
  124. select pno, sum(qty)
  125. from spj
  126. group by pno
  127. /*(2) 求零件供应总量在1000以上的供应商名字*/
  128. select s.sname
  129. from s
  130. where s.sno in
  131. (
  132. select spj.sno
  133. from spj
  134. group by spj.sno having sum(qty)>1000
  135. );
  136. insert into s values('S6', '华天', '深圳');
  137. alter table p alter column color char(6);
  138. update p
  139. set color='粉红'
  140. where color='红';
  141. /*(5) 将S1供应给J1的零件P1改为由P2供给*/
  142. update spj
  143. set pno='P2'
  144. where sno='S1' and jno='J1' and pno='P1';
  145. delete
  146. from spj
  147. where pno in
  148. (
  149. select pno
  150. from p
  151. where color='蓝'
  152. );

  

SQL 第二章 作业的更多相关文章

  1. OOP 第二章作业总结

    实现策略 这里结合一下我画的第三次作业的时序图(可能有画的不好的地方)来叙述一下我的实现逻辑.最开始主线程负责创建必要的线程(输入.调度线程)与请求队列类实例:输入线程负责与人进行交互,将获取到的请求 ...

  2. 第二章作业-第3题(markdown格式)-万世想

    第3题题目是: 完成小组的"四则运算"项目的需求文档(使用Markdown写文档),尝试同组成员在各自PC上修改同一文档后,如何使用Git命令完成GitHub上的文档的更新,而不产 ...

  3. C++第二章作业

    1.(1)if...else 用法 #include <iostream> #include <cstring> using namespace std; int main() ...

  4. 第二周作业-影评、靶机和攻击机的安装与配置、kali的配置、DNS解析

    教材作业 第一章作业一 <黑客军团>第2季第1集影评 本文只分析与黑客攻击有关的情节,不谈其他. 开头,男主通过ssh以root身份远程连接到了一台服务器,并在其上执行了名为fuxsocy ...

  5. 第二篇 SQL Server代理作业步骤和子系统

    本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...

  6. 《SQL CookBook 》笔记-第二章-查询结果排序

    目录 第二章 查询结果排序 2.1 以指定顺序返回查询结果 2.2 依据子串排序 2.3 排序时对 Null 值的处理 2.4 依据条件逻辑动态调整排序项 第二章 shanzm 第二章 查询结果排序 ...

  7. 【译】第二篇 SQL Server代理作业步骤和子系统

    本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...

  8. 第二章 约束和排序数据(SQL基础)

    第二章 约束和排序数据 1. 在 emp 表中选择工资介于 1500 到 2500 的员工的信息:                注意:使用 between 下边界 and 上边界时,条件包括边界值: ...

  9. sql系列(基础)-第二章 限制和排序数据

    更好的看↑代码点击VIEW PLAN 第二章 约束和排序数据 1. 在 emp 表中选择工资介于 1500 到 2500 的员工的信息: 注意:使用 between 下边界 and 上边界时.条件包括 ...

随机推荐

  1. [o] duplicate column name: _id 问题解决

    Android下使用SQLite数据库,报错:duplicate column name: _id 数据库文件下有两列数据的名称一样,原因是定义数据类型时有重复,如,我的定义: //复制上一行增加TY ...

  2. 十一、C# 泛型

    为了促进代码重用,尤其是算法的重用,C#支持一个名为泛型的特性. 泛型与模块类相似. 泛型使算法和模式只需要实现一交.而不必为每个类型都实现一次.在实例化的时候,传入相应的数据类型便可. 注:可空值类 ...

  3. vlc_input buffer管理 & 时钟同步(转)

    vlc_input buffer管理 & 时钟同步 一.背景1.当播放网络视频流时(比如udp视频流),发送方(编码)和接收方(解码)是并行操作的,如果发送太慢(或因为网络原因出现延迟)的话, ...

  4. java编码转化方案-备用

    import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class changeCharSet { /** 7位AS ...

  5. 连接池dbcp pool

    -package cn.gdpe.pool; import java.io.InputStream;import java.sql.Connection;import java.sql.Prepare ...

  6. Android 学习手札(一) 应用程序架构

    1.资源列表 Android支持的资源列表 目   录 资源类型 描述 res/anim  XML  该目录用于存放帧(frame).动画或补间(tweened)动画文件 res/drawable   ...

  7. xv6中存储cpu和进程信息的技巧

    xv6是一个支持多处理器的Unix-like操作系统, 近日阅读源码时发现xv6在记录当前CPU和进程状态时非常tricky 首先,上代码: extern struct cpu cpus[NCPU]; ...

  8. VB.NET中LINQ TO List泛型查询语句(分组,聚合函数)

    Public Class LinqToList 'LINQ在C#中使用比较方便,但是在VB中使用比较麻烦,复杂,和C#用法并不太一样 Dim listNew As List(Of Product) = ...

  9. Chrome 中的彩蛋——T-Rex

    今天,从网页上看到chrome的T-Rex的彩蛋,眨眼间完了10分钟.分享出来,只是好玩. 当 Chrome 无法连接到互联网时,或者上着网突然掉线,刷新页面时报错,我们都会看到T-Rex的身影,没错 ...

  10. php之图片处理类缩略图加水印

    用到两个image系统函数 imagecopymerge — 拷贝并合并图像的一部分 imagecopyresampled — 重采样拷贝部分图像并调整大小 /* 如何知道图片的大小和类型 无法确认调 ...