/*第二章 作业*/
create table S
(
sno char(2) NOT NULL UNIQUE,
sname char(3),
city char(2)
);
alter table S add constraint s_k primary key(sno); create table P
(
pno char(2) NOT NULL,
pname char(3),
color char(1),
weight int
);
alter table P add constraint p_k primary key(pno); create table J
(
jno char(2) NOT NULL,
jname char(3),
city char(2)
);
alter table J add constraint j_k primary key(jno); create table SPJ
(
sno char(2) NOT NULL,
pno char(2) NOT NULL,
jno char(2) NOT NULL,
qty int
);
alter table SPJ add constraint spj_k primary key(sno,pno,jno);
alter table SPJ add constraint spj_fk foreign key(sno) references s(sno);
alter table SPJ add constraint spj_fk2 foreign key(pno) references p(pno);
alter table SPJ add constraint spj_fk3 foreign key(jno) references J(jno); alter table s alter column sname char(6);
alter table s alter column city char(4); insert into s values('S1', '精 益', '天津');
insert into s values('S2', '万 胜', '北京');
insert into s values('S3', '东 方', '北京');
insert into s values('S4', '丰泰隆', '上海');
insert into s values('S5', '康 健', '南京'); alter table p alter column pname char(6);
alter table p alter column color char(2); 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); alter table j alter column jname char(8);
alter table j alter column city char(4);
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); /*(4)求没有使用天津供应商生产的红色零件的工程号*/
select distinct jno
from spj
where jno not in
( select jno
from spj
where sno in
(select sno
from s
where city='天津'
and pno in
( select pno
from p
where color='红'))
); /*(5)求至少用了S1供应商所供应的全部零件的工程号JNO */
select distinct jno
from spj x
where not exists
(
select distinct pno
from spj y
where y.sno='S1' and
not exists
(
select *
from spj z
where z.jno = x.jno and
z.pno = y.pno));
/*首先查询SPJ表得到一个工程号的集合对于集合中的每一条记录做如下查询:取出一个工程号,比如J1 如果不存在这样的记录 查询SPJ表得到这样一个集合 -- 由供应商S1供应的零件号,这里是P1, P2 1 取出一个零件号,比如pno = 'P1' 查询spj表,对于jno='J1' 并且 pno='P1' 2 取出下一个零件号,pno = 'P2' 查询spj表,对于jno='J1' 并且 pno='P2'
如果J1使用了由S1供应的零件则最后一个存在量词始终返回false 那么第一个存在量词也就始终返回false,两个存在量词都返回 false就表示该工程至少使用了S1供应商所供应的全部零件。
对于一个工程,不存在这种情况,S1供应了一个零件,而该工程没有使用
*/
/*(1) 统计每种零件的供应总量*/
select pno, sum(qty)
from spj
group by pno
/*(2) 求零件供应总量在1000以上的供应商名字*/
select s.sname
from s
where s.sno in
(
select spj.sno
from spj
group by spj.sno having sum(qty)>1000
);
insert into s values('S6', '华天', '深圳');
alter table p alter column color char(6);
update p
set color='粉红'
where color='红';
/*(5) 将S1供应给J1的零件P1改为由P2供给*/
update spj
set pno='P2'
where sno='S1' and jno='J1' and pno='P1';
delete
from spj
where pno in
(
select pno
from p
where color='蓝'
);

  

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. U3D 内置对象

    在U3D里面提供了一个Time对象: void OnGUI(){ Debug.Log("########################"); GUILayout.Label (& ...

  2. IIS 64位上發佈32位asp.net設置

    錯誤:無法載入檔案或組件 'Maticsoft.Web' 或其相依性的其中之一. 試圖載入格式錯誤的程式. 解決:新增應用程序池——高級設置——啟用32位應用程式——True

  3. 【转】 UITableViewCell的标记、移动、删除、插入

    原文: http://blog.csdn.net/duxinfeng2010/article/details/7725897 这篇文章是建立在 代码实现 UITableView与UITableView ...

  4. 将日期和时间作为 struct tm型的值直接向二进制文件进行读写

    #include <stdio.h> #include <time.h> char data_file[]="D:\\%\\datetime.dat"; v ...

  5. SGU 164.Airline(结论题)

    时间限制:0.25s 空间限制:4M 题意: 在n(1<=n<=200)个点的无向完全图中,有m种不同的边.现在从中选择不超过(m+1)/2种边,使得任意两点可以通过不超过3条边互相到达. ...

  6. Ubuntu14.04+CUDA6.5环境下神经网络工具包Deepnet配置

    deepnet是多伦多大学计算机系机器学习组开发的一个神经网络工具包,可以进行以下计算: 1.  Feed-forward Neural Nets 2.  Restricted Boltzmann M ...

  7. C /CLI思辨录[阅读记录]

    C /CLI思辨录之拷贝构造函数(避免多个实例在相同的堆对象的错误处理) http://west263.com/info/html/chengxusheji/C-C--/20080224/9247.h ...

  8. php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)

    网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特 色),学php的人都知道文件上传怎么做,但很多人在编程中 ...

  9. C# 窗体间传值方法大汇总(转)

    第一种方法:创建一个类,里面声明用于存储接收的字段.传的时候存储于字段中,要用的时候,直接类名.字段名 进行调用.(这种方法传递是双向的) 第二种方法:1.在Form1里定义 public strin ...

  10. C# 程序性能提升篇-2、类型(字段类型、class和struct)的错误定义所影响性能浅析

    前景提要: 编写程序时,也许你不经意间,就不知不觉的定义了错误的类型,从而发生了额外的性能消耗,从而降低了效率,不要说就发生那么一次两次,如果说是程序中发生了循环.网络程序(不断请求处理的)等这些时候 ...