1、有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:
(1)σA=10(S)\sigma_{A=10}(S)σA=10​(S)

//选择
select *
from S
where A=10;

(2)ΠA,B(S)\Pi_{A, B}(S)ΠA,B​(S)

//投影
select A,B
from S;

(3)S⋈TS \bowtie TS⋈T

//自然连接
select S.*,T.*
from S,T;

(4)S⋈S.C=T.CTS \underset{S . C=T . C}{\bowtie} TSS.C=T.C⋈​T

//等值连接
select S.*,T.*
from S,T
where S.C=T.C;

(5)S⋈A<ETS \underset{A<E}{\bowtie} TSA<E⋈​T

//非等值连接
select S.*,T.*
from S,T
where A<E;

(6)ΠC,D(S)×T\Pi_{C, D}(S) \times TΠC,D​(S)×T

//S在cd上的投影与T的笛卡尔积
//方法一:
select C,D
from S
union
select *
from T;
//方法二:
select S.C,S.D,T.*
from S,T

2、用SQL语句建立以下的4个表;针对建立的4个表用SQL完成第二章习题6中的查询。
S表:

create table S(sno char(10),sname char(10),status smallint,city char(10));
insert into S
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,'上海');

P表:

create table P(pno char(10),pname char(10),color char(10),weight smallint);
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);

J表:

create table J(jno char(10),jname char(10),city char(10));
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','半导体厂','南京');

SPJ:


CREATE TABLE SPJ(SNO CHAR(4),PNO CHAR(4),JNO CHAR(4),QTY SMALLINT);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P1','J1',200);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P1','J3',100);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P1','J4',700);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P2','J2',100);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J1',400);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J2',200);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J4',500);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J5',400);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P5','J1',400);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P5','J2',100);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S3','P1','J1',200);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S3','P3','J1',200);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S4','P5','J1',100);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S4','P6','J3',300);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S4','P6','J4',200);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5','P2','J4',100);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5','P3','J1',200);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5','P6','J2',200);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5','P6','J4',500);

最终结果:

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

select sno
from spj
where jno='j1'

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

select sno
from spj
where jno='j1' and pno='p1';


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

select sno
from spj,p
where jno='j1' and p.pno=spj.pno and color='红';

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

select jno
from j
where not exists(
select *
from spj,s,p
where s.city='天津' and p.color='红'
and spj.jno=j.jno and spj.pno=p.pno);

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

select distinct jno
from spj x
where not exists(select *from spj ywhere y.sno='s1'and not exists(select *from spj zwhere z.pno=y.pno and z.jno= x.jno)
);


3、针对习题4中的4个表使用SQL完成以下各项操作:
(1)找出所有供应商的姓名和所在城市;

select jname,city
from j;

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

select pname,color,weight
from p;

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

select jno
from spj
where sno='s1';

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

select pname,qty
from spj,p
where jno='j2' and spj.pno=p.pno;

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

select distinct pno
from spj,s
where city='上海' and spj.sno=s.sno;


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

select distinct jname
from spj,s,j
where s.sno=spj.sno
and s.city='上海'
and j.jno=spj.jno;


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

select jno
from j
where not exists(select *from spj,swhere spj.jno=j.jnoand spj.sno=s.snoand s.city='天津');


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

update p
set color='蓝'
where color='红';

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

update spj
set sno='s3'
where sno='s5'
and jno='j4'
and pno='p6';

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

delete
from spj
where sno='s2'
delete
from s
where sno='s2';

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

insert into spj
values('s2','p4','j6',200);

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

create view view_s
as
select sno,pno,qty
from spj
where jno=(select jnofrom jwhere jname='三建');

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

select pno,qty
from view_s


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

select *
from view_s
where sno='s1'

【数据库作业10】用SQL语句来表示关系代数中的表达式相关推荐

  1. 数据库完整性及相关SQL语句

    文章目录 数据库完整性SQL语句 实体完整性 定义实体完整性 [例 5.1] 将Student表中的Sno属性定义为码 [例 5.2] 将SC表中的Sno,Cno属性组定义为码 实体完整性检查和违约处 ...

  2. 【转】创建数据库和表的SQL语句

    [转]创建数据库和表的SQL语句 创建数据库的SQL语句: 1 create database stuDB 2 on primary -- 默认就属于primary文件组,可省略3 (4 /*--数据 ...

  3. 在mysql中更新数据sql语句怎么写_在MySQL中,更新数据库表记录的SQL语句,包括______语句...

    在MySQL中,更新数据库表记录的SQL语句,包括______语句 答:insert replace update delete 在域F中,设其特征为2,对于任意a,b∈F,则(a+b)2 等于多少 ...

  4. 数据库实验2——使用SQL语句创建、修改和删除基本表

    文章目录 数据库实验2--使用SQL语句创建和删除基本表 一. 实验目的: 二. 实验准备 三. 实验要求 四.实验步骤 1. 创建基本表 2. 修改表结构 3.删除基本表 五.实验总结 数据库实验2 ...

  5. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份

    一  Oracle数据库查看表空间sql语句 1.oracle查看表空间当前用户 SQL>  select  username,default_tablespace  from user_use ...

  6. 数据库逻辑删除的sql语句_通过数据库的眼睛查询sql的逻辑流程

    数据库逻辑删除的sql语句 Structured Query Language (SQL) is famously known as the romance language of data. Eve ...

  7. winform执行oracle语句,C#中的Winform应用程序连接远程Oracle数据库的配置文件及SQL语句的写法...

    远程连接Oracle数据库的配置文件及sql语句 近期,应朋友的要求,用C#语言开发了一个winform应用程序,要求的是连接到远程的Oracle数据库,用惯了SQL Server的我突然有点懵,然后 ...

  8. Navicat工具获取操作数据库和表的SQL语句

    工具 Navicat Premium 15 MySQL服务器技术 SQL语句MySQL 在使用Navicat Premium 15客户端时,对数据库和表进行操作,会产生SQL语句.有时我们不记得SQL ...

  9. 数据库逻辑删除的sql语句_SQL查询优化的数据库设计和逻辑断言

    数据库逻辑删除的sql语句 Database design and Logical Asseveration play a vital role in database performance and ...

  10. 配置郭神的LitePal(面向对象一样操作sqlite数据库,不再使用SQL语句)

    配置郭神的LitePal(面向对象一样操作sqlite数据库,不再使用SQL语句) 配置过程可见: https://github.com/guolindev/LitePal 但是我要补充一个小问题 然 ...

最新文章

  1. L1-008.求整数段和
  2. [Codeforces702F]T-Shirts——非旋转treap+贪心
  3. 图论 —— 图的连通性 —— 有桥连通图加边变边双连通图
  4. 编写高质量的VB代码
  5. log4j输出多个自定义日志文件
  6. Json.NET特殊处理64位长整型数据
  7. 第四次作业-测试作业
  8. 天锐绿盾加密软件如何制作外发文件
  9. 社会工程学+Web hacked***某游戏公司
  10. mysql utf8占几个字节_utf-8的中文是一个字符占几个字节
  11. mysql插入数据不成功_mysql插入数据失败原因分析
  12. 无器械健身,是否真的比健身房器械训练要好?
  13. Oralce ERP中AP模块Vender银行信息查询语句
  14. LINUX从零开始——ENGINEER(云计算应用管理)——Day3 [逻辑卷管理、RAID磁盘阵列、进程管理]
  15. Android系统设置默认24小时制
  16. Linux内核与编程
  17. 初级——程序如何打包成apk文件
  18. ffmpeg的下载及安装JAVA工具类
  19. 递归算法(JS实现代码)
  20. 计算机结构体系:循环展开题型 (非凭感觉的方法详解)

热门文章

  1. DAVIS: Densely Annotated VIdeo Segmentation
  2. 对女朋友说早安的情话100句,很甜很撩,打动人心
  3. Spring-AOP模块的Advised分析
  4. 虚拟机与本机可以互ping,但是Xshell连不上虚拟机 的解决方法
  5. Cascading介绍
  6. 如何把vs2003转化成vs2005
  7. SpringMVC 之Resolver视图解析器笔记(六)
  8. 在SVG中旋转图形,需要设置各个图形的旋转中心点
  9. 泛函分析之集合的映射和可数集与不可数集
  10. AutoSar FlashDriver