第三章作业【数据库原理】

article/2025/11/6 6:23:16

第二章作业【数据库原理】

  • 前言
  • 推荐
  • 第三章作业
    • 第3章第1题简答题
    • 第3章第2题(关系代数->SQL代码)
    • 第3章第3题(创建SPJ数据库中的四张表)
    • 模拟数据
    • 第3章第4题(SPJ数据库上完成查询)
    • 第3章第5题(SPJ数据库上完成各种操作)
    • 恢复数据
    • 第3章第6题简答题
    • 第3章第7题(简答题)
    • 第3章第8题(视图)
  • 最后

前言

以下内容源自数据库原理l
仅供学习交流使用

推荐

第三章作业

第3章第1题简答题

一. 简答题(共1题,100分)
1.(简答题)
试述 SQL 语言的特点。

1) 一体化:SQL提供了一系列完整的数据定义和操纵功能,用SQL可以实现数据库生命周期中的全部活动,包括定义关系模式,
录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求。2) 用SQL语言进行数据操作,只要提出“做什么”,而无需知名”怎么做“,因此无需了解存取路径,存取路径的选择语句SQL的操作过程由系统自动完成3) 面向集合的操作方式:SQL语言才采用集合操作方式,不仅操作对象,查找结果可以是元组的集合,
而且一次插入、删除、更新操作的对象也就可以是元组的集合4) 以同一种语言结构提供多种使用方式: SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,
他能给独立地用户联机交互的使用方式,作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。5) SQL语言可以对两种基本数据结构进行操作,一种是“表”,另一种是“视图(View)”。

第3章第2题(关系代数->SQL代码)

一. 其它(共1题,100分)

  1. (其它)有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:

(1)σA=10(S)

(2)πA,B(S)

(3)S∞T

(4)S ∞S.C=T.C T

(5)S ∞A<E T

(6)πC,D(S)×T

(1) SELECT * FROM S WHERE A=10
(2) SELECT A,B FROM S
(3) SELECT A,B,S.C,D,E,F FROM S,T WHERE S.C=T.C AND S.D=T.D
(4) SELECT * FROM S,T WHERE S.C=T.C
(5) SELECT * FROM S,T WHERE S.A<T.E
(6) SELECT ST.C,ST.D,T.C,T.D,E,F FROM T,(SELECT DISTINCT C,D FROM S) AS ST

第3章第3题(创建SPJ数据库中的四张表)

一. 其它(共1题,100分)
1.(其它)

设有一个SPJ数据库,包括S、P、J、SPJ 4个关系模式。

S(SNO,SNAME,STATUS,CITY)

P(PNO,PNAME,COLOR,WEIGHT)

J(JNO,JNAME,CITY)

SPJ(SNO,PNO,JNO,QTY)

试用SQL语句创建以上四张表。

我的答案:


CREATE TABLE `s` (`SNO` VARCHAR(10) NOT NULL COMMENT '供应商代码',`SNAME` VARCHAR(10) NOT NULL COMMENT '供应商姓名',`STATUS` INT NOT NULL COMMENT '供应商状态',`CITY` VARCHAR(10) DEFAULT NULL COMMENT '供应商所在城市',PRIMARY KEY (`SNO`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb3CREATE TABLE `p` (`PNO` VARCHAR(10) NOT NULL COMMENT '零件代码',`PNAME` VARCHAR(10) NOT NULL COMMENT '零件名',`COLOR` VARCHAR(2) DEFAULT NULL COMMENT '颜色',`WEIGHT` INT NOT NULL COMMENT '重量',PRIMARY KEY (`PNO`),CONSTRAINT `p_chk_1` CHECK ((`WEIGHT` >= 0))
) ENGINE=INNODB DEFAULT CHARSET=utf8mb3CREATE TABLE `j` (`JNO` VARCHAR(10) NOT NULL COMMENT '工程项目代码',`JNAME` VARCHAR(10) NOT NULL COMMENT '工程项目名',`CITY` VARCHAR(10) DEFAULT NULL COMMENT '工程项目所在城市',PRIMARY KEY (`JNO`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb3CREATE TABLE `spj` (`SNO` VARCHAR(10) NOT NULL COMMENT '供应商代码',`PNO` VARCHAR(10) NOT NULL COMMENT '零件代码',`JNO` VARCHAR(10) NOT NULL COMMENT '工程项目代码',`QTY` INT DEFAULT NULL COMMENT '供应数量',PRIMARY KEY (`SNO`,`PNO`,`JNO`),KEY `PNO` (`PNO`),KEY `JNO` (`JNO`),CONSTRAINT `spj_ibfk_1` FOREIGN KEY (`SNO`) REFERENCES `s` (`SNO`),CONSTRAINT `spj_ibfk_2` FOREIGN KEY (`PNO`) REFERENCES `p` (`PNO`),CONSTRAINT `spj_ibfk_3` FOREIGN KEY (`JNO`) REFERENCES `j` (`JNO`),CONSTRAINT `spj_chk_1` CHECK ((`QTY` >= 0))
) ENGINE=INNODB DEFAULT CHARSET=utf8mb3

模拟数据

来自第二章作业【数据库原理】

在这里插入图片描述

# 模拟数据
INSERT INTO S(SNO,SNAME,STATUS,CITY) VALUES('S1','精益',10,'北京');
INSERT INTO S(SNO,SNAME,STATUS,CITY) VALUES('S2','东方红',20,'天津');
INSERT INTO S(SNO,SNAME,STATUS,CITY) VALUES('S3','群众',30,'北京');
INSERT INTO S(SNO,SNAME,STATUS,CITY) VALUES('S4','大众',20,'上海');
INSERT INTO S(SNO,SNAME,STATUS,CITY) VALUES('S5','为民',30,'天津');INSERT INTO P(PNO,PNAME,COLOR,WEIGHT) VALUES('P1','螺母','红',13);
INSERT INTO P(PNO,PNAME,COLOR,WEIGHT) VALUES('P2','螺栓','绿',16);
INSERT INTO P(PNO,PNAME,COLOR,WEIGHT) VALUES('P3','螺丝刀','蓝',15);
INSERT INTO P(PNO,PNAME,COLOR,WEIGHT) VALUES('P4','螺丝刀','红',15);
INSERT INTO P(PNO,PNAME,COLOR,WEIGHT) VALUES('P5','凸轮','蓝',30);
INSERT INTO P(PNO,PNAME,COLOR,WEIGHT) VALUES('P6','齿轮','红',25);INSERT INTO J(JNO,JNAME,CITY) VALUES('J1','三建','北京');
INSERT INTO J(JNO,JNAME,CITY) VALUES('J2','一汽','长春');
INSERT INTO J(JNO,JNAME,CITY) VALUES('J3','弹簧厂','天津');
INSERT INTO J(JNO,JNAME,CITY) VALUES('J4','机车厂','北京');
INSERT INTO J(JNO,JNAME,CITY) VALUES('J5','无线电厂','福州');
INSERT INTO J(JNO,JNAME,CITY) VALUES('J6','半导体厂','上海');
INSERT INTO J(JNO,JNAME,CITY) VALUES('J7','重机厂','太原');INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P1','J1',200);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P1','J2',100);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P1','J4',300);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P2','J3',200);INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J1',300);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J2',500);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J5',700);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P5','J1',300);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2', 'P5', 'J2',400);INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S3', 'P1', 'J1',100);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S3', 'P3', 'J1',200);INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S4', 'P5', 'J1',400);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S4', 'P5', 'J3',400);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S4', 'P6', 'J4',200);INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5', 'P2', 'J3',300);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5', 'P3', 'J1',100);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5', 'P6', 'J2',200);
INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5', 'P6', 'J5',400);

第3章第4题(SPJ数据库上完成查询)

一. 其它(共1题,100分)
1.(其它)

设有一个SPJ数据库,包括S、P、J、SPJ 4个关系模式。

S(SNO,SNAME,STATUS,CITY)

P(PNO,PNAME,COLOR,WEIGHT)

J(JNO,JNAME,CITY)

SPJ(SNO,PNO,JNO,QTY)

试用SQL语句完成下列查询操作:

(1)求供应工程J1零件的供应商编号SNO。

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

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

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

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

#  第3章第4题(SPJ数据库上完成查询)#(1)求供应工程J1零件的供应商编号SNO。
SELECT DISTINCT SNO 
FROM SPJ;
WHERE JNO='J1';# S1      S3      S5      S2      S4   #(2)求供应工程J1零件P1的供应商编号SNO。
SELECT DISTINCT SNO 
FROM SPJ;
WHERE JNO='J1'
AND PNO='P1';
# S1      S3      S5      S2      S4   #(3)求供应工程J1零件为红色的供应商编号SNO。
SELECT DISTINCT SNO
FROM SPJ
INNER JOIN P
ON SPJ.`PNO`=p.`PNO`
WHERE JNO='J1' AND COLOR='红';#S1      S3  #(4)求没有使用天津供应商生产的红色零件的工程号JNO。
SELECT DISTINCT JNO
FROM SPJ
WHERE JNO NOT IN(SELECT DISTINCT JNOFROM SPJINNER JOIN SON SPJ.`SNO`=S.`SNO`INNER JOIN PON SPJ.`PNO`=p.`PNO`WHERE CITY='天津' AND COLOR='红'
);#J1      J4	J3#(5)求至少使用了供应商S1所供应的全部零件的工程号JNO。
SELECT DISTINCT JNO
FROM SPJ
WHERE NOT EXISTS(SELECT * FROM SPJ SPJZWHERE EXISTS(SELECT * FROM SPJ SPJXWHERE SPJX.`PNO`=SPJZ.`PNO` AND SPJX.`SNO`='S1')AND NOT EXISTS(SELECT * FROM SPJ SPJYWHERE SPJY.JNO=SPJ.`JNO` AND SPJY.`PNO`=SPJZ.`PNO`)	)#无

第3章第5题(SPJ数据库上完成各种操作)

一. 其它(共1题,100分)

1.(其它)
设有一个SPJ数据库,包括S、P、J、SPJ 4个关系模式。

S(SNO,SNAME,STATUS,CITY)

P(PNO,PNAME,COLOR,WEIGHT)

J(JNO,JNAME,CITY)

SPJ(SNO,PNO,JNO,QTY)

试用SQL语句完成下列各项查询操作:

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

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

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

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

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

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

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

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

(9)由S5供给J4的零件P6改为由S3供应;

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

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

#  第3章第5题(SPJ数据库上完成各种操作)#(1)找出所有供应商的姓名和所在城市;
SELECT SNAME,CITY
FROM S;#(2)找出所有零件的名称、颜色、重量;
SELECT PNAME,COLOR,WEIGHT
FROM P;#(3)找出使用供应商S1所供零件的工程号码;
SELECT DISTINCT JNO
FROM SPJ
WHERE SNO='S1';
#J1      J2 	J4   	J3         #(4)找出工程项目J2使用的各种零件的名称及其数量;
SELECT DISTINCT PNAME,QTY
FROM SPJ
INNER JOIN P
ON SPJ.`PNO`=p.`PNO`
WHERE JNO='J2';#(5)找出上海厂商供应的所有零件号码;
SELECT DISTINCT PNO
FROM SPJ
INNER JOIN S
ON SPJ.`SNO`=S.`SNO`
WHERE CITY='上海';
# P5	P6 #(6)找出使用上海产的零件的工程号码;
SELECT DISTINCT JNO
FROM SPJ
INNER JOIN S
ON SPJ.`SNO`=S.`SNO`
WHERE CITY='上海';
#J1 	J3	J4#(7)找出没有使用天津产的零件的工程号码;
SELECT DISTINCT JNO
FROM SPJ
WHERE JNO NOT IN(SELECT DISTINCT JNOFROM SPJINNER JOIN SON SPJ.`SNO`=S.`SNO`WHERE CITY='天津');#J4#(8)把全部红色零件的颜色改成蓝色;
UPDATE P
SET COLOR='蓝'
WHERE COLOR='红'#(9)由S5供给J4的零件P6改为由S3供应;
UPDATE SPJ
SET SNO='S3'
WHERE SNO='S5' AND PNO='P6';#(10)从供应商关系S中删除S2的记录,并从供应情况关系SPJ中删除相应的记录;
DELETE FROM SPJ 
WHERE SNO='S2';DELETE FROM S
WHERE SNO='S2';#(11)请将(S2,J6,P4,200)插入供应情况关系。 
# 先确认有没有S2厂商,有外键约束
INSERT INTO SPJ(SNO,JNO,PNO,QTY) VALUES('S2', 'J6', 'P4',200);

恢复数据


#恢复原先数据
#删除表再创建,插入
DROP TABLE spj;
DROP TABLE s;
DROP TABLE p;
DROP TABLE j;

第3章第6题简答题

1.(简答题)什么是基本表?什么是视图?两者的区别和联系是什么?

基本表是本身独立存在的表,在 SQL 中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中
只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图
上再定义视图。

第3章第7题(简答题)

一. 简答题(共1题,100分)
1.(简答题)
哪些视图是可以更新的?哪些视图是不可更新的?各举一例说明。

基本表的行列子集视图一般是可更新的。若视图的属性来自集合函数、表达式,则该视图肯定是不可以更新的。

第3章第8题(视图)

一. 其它(共1题,100分)
1.(其它)
在SPJ数据库中,请为三建工程项目建立一个供应情况的视图,包括供应商代码 (SNO)、零件代码 (PNO)、 供应数量 (QTY)。

针对该视图 VSP 完成下列查询:

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

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

创建视图:
CREATE VIEW VSP 
AS
SELECT SNO,SPJ.PNO,QTY FROM SPJ,J 
WHERE SPJ.JNO=J.JNO AND J.JNAME='三建';1SELECT  DISTINCT  PNO,QTY  FROM  VSP;2SELECT  DISTINCT  * FROM VSP WHERE SNO='S1';

最后

这篇博客能写好的原因是:站在巨人的肩膀上

这篇博客要写好的目的是:做别人的肩膀

开源:为爱发电

学习:为我而行


http://chatgpt.dhexx.cn/article/gUefE32F.shtml

相关文章

设有一个工程供应数据库系统,包括如下四个关系模式:S(Sno,Sname, Status,City) ;P(Pno,Pname,Color ,Weight);J(Jno,Jname, Ci

设有一个工程供应数据库系统&#xff0c;包括如下四个关系模式&#xff1a; S(Sno&#xff0c;Sname&#xff0c; Status&#xff0c;City) &#xff1b; P(Pno&#xff0c;Pname&#xff0c;Color &#xff0c;Weight)&#xff1b; J(Jno&#xff0c;Jname&#xff0c; City) …

高通WLAN框架学习(17)-- NIO和PNO

本章详细介绍了preferred network offload (PNO)扫描概述、流、模式和配置文件。 18.1 PNO扫描概述 WLAN STA在通过AP模组连接AP之前,需要偶尔对环境进行扫描。 在WLAN请求程序中对扫描结果进行解析和处理,以确定是否至少有一个目标(附近)AP在附近。 为了偶尔发出扫描,应用…

Wi-Fi PNO扫描流程(Android P)

简介&#xff1a;当手机灭屏情况下&#xff0c;有保存网络时&#xff0c;若已连接&#xff0c;不扫描&#xff0c;否则&#xff0c;PNO扫描&#xff0c;即只扫描已保存的网络。最小间隔min20s&#xff0c;最大间隔max20s*360s PNO 即Preferred Network Offload&#xff0c;用于…

[RK3288][Android6.0] WiFi之PNO功能了解

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 概念: PNO 即Preferred Network Offload,用于系统在休眠的时候连接WiFi 此功能是在Android3.1加入的 缺陷: 在使用PNO时,有潜在泄露个人隐私的风险。这里没明白,意思是说PNO会发送之前的连接过的网络给AP,然…

二值化的方法

1.二值化 图像二值化的目的是最大限度的将图像中感兴趣部分保留下来&#xff0c;在很多情况下&#xff0c;也是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。在这些庞大的图像二值化分类方法中&#xff0c;基于直方图的全局二值算法占有了绝对的市场份额&…

OpenCV-Python学习(10)—— OpenCV 图像二值化处理(cv.threshold)

1. 学习目标 理解图像的分类&#xff0c;不同类型的图像的区别&#xff1b;对图像进行二值化处理&#xff0c;对【 cv.threshold 】函数的理解。 2. 图像分类 2.1 不同类型图像说明 按照颜色对图像进行分类&#xff0c;可以分为二值图像、灰度图像和彩色图像。 二值图像&…

python 图像二值化处理

python 图像二值化处理 import os from PIL import Image import shutilfile_path ./5-crack919/mask/ save_path ./5-crack919/mask01/ if not os.path.exists(save_path):os.makedirs(save_path) ###二值化 for filename in os.listdir(file_path):print(filename)img …

图像处理之二值化图像

图像二值化就是将图像上的像素点的灰度值设置为0或255&#xff0c;也就是将整个图像呈现出明显的黑白效果。将所有灰度大于或等于阈值的像素被判定为属于特定物体&#xff0c;其灰度值为255表示&#xff0c;否则这些像素点被排除在物体区域以外&#xff0c;灰度值为0&#xff0…

二值化之阈值处理

写于开头的废话&#xff1a;哒哒哒.......这应该是马蹄的声音&#xff01;我在告诉你&#xff0c;我又来了&#xff01;不得不说的还是自己的悲伤&#xff0c;经营了那么久的CSDN居然说关就给我关了&#xff0c;过去的还是没法过去&#xff0c;我始终不能从失去的痛苦之中走出来…

图像处理之二值化

图像处理之二值化 二值化方式 二值化算法 二值化方式 二值化方式分为五种&#xff1a; THRESH_BINARY&#xff1a;将大于某一个阈值的变成最大值&#xff0c;其他为0 THRESH_BINARY_INV&#xff1a;和THRESH_BINARY恰好相反 THRESH_TRUNC&#xff1a; trunc就是截断的意思&…

二值化方法

一、全局阈值法 1.固定阈值方法 该方法是对于输入图像中的所有像素点统一使用同一个固定阈值。其基本思想如下: 其中&#xff0c;T为全局阈值。 缺点:很难为不同的输入图像确定最佳阈值。 2.Otsu算法 Otsu算法又称最大类间方差法 先明确两个概念: (1)均值 (2)方差 图像的阈…

图像处理一之-摄像头二值化处理-(什么是二值化)

图像二值化 binary image 什么是二值化&#xff1a; 二值化是图像分割的一种最简单的方法。二值化可以把灰度图像转换成二值图像。把大于某个临界灰度值(阈值)的像素灰度设为灰度极大值(255)&#xff0c;把小于这个值的像素灰度设为灰度极小值&#xff08;0&#xff09;&#…

C#多线程详解(一) Thread.Join()的详解

什么是进程&#xff1f; 当一个程序开始运行时&#xff0c;它就是一个进程&#xff0c;进程包括运行中的程序和程序所使用到的内存和系统资源。 而一个进程又是由多个线程所组成的。 什么是线程&#xff1f; 线程是程序中的一个执行流&#xff0c;每个线程都有自己的专有寄存器…

1.java的协程_虚拟线程

盼过了春天盼秋天&#xff0c;从2017年到今天五年了&#xff0c;终于盼到loom转正了&#xff0c;当看到jdk19预览api的时候心情那个激动。。。期待已久的协程终于来临&#xff0c;再也不羡慕别人家的go孩子&#xff0c;咱终于可以理直气壮的说一句&#xff1a;咱也有&#xff0…

Kotlin协程到底是怎么切换线程的?你是否知晓?

好文推荐&#xff1a; 作者&#xff1a;RicardoMJiang 前言 之前对协程做了一个简单的介绍&#xff0c;回答了协程到底是什么的问题,感兴趣的同学可以了解下&#xff1a;【带着问题学】协程到底是什么? 通过上文&#xff0c;我们了解了以下内容 1.kotlin协程本质上对线程池的…

进程和线程、协程的区别

一、进程 进程是程序一次动态执行的过程&#xff0c;是程序运行的基本单位。每个进程都有自己的独立内存空间&#xff0c;不同进程通过进程间通信来通信。进程占据独立的内存&#xff0c;所以上下文进程间的切换开销&#xff08;栈、寄存器、页表、文件句柄等&#xff09;比较…

进程、线程与协程的比较

进程、线程和协程是三个在多任务处理中常听到的概念&#xff0c;三者各有区别又相互联系。 一、并行和并发 在介绍进程、线程和协程这三个概念之前&#xff0c;有两个操作系统中的相关概念需要简单解释一下&#xff1a;并行和并发。 并行&#xff1a;指多个任务同时执行。 并…

进程、线程、协程

进程、线程、协程 一、概念与区分 1、进程 进程是程序一次动态执行的过程&#xff0c;是程序运行的基本单位。每个进程都有自己的独立内存空间&#xff0c;不同进程通过进程间通信来通信。进程占据独立的内存&#xff0c;所以上下文进程间的切换开销&#xff08;栈、寄存器、…

终于明白:有了线程,为什么还要有协程?

并发的发展历史 其实&#xff0c;在早期计算机并没有包含操作系统&#xff0c;这个时候&#xff0c;这个计算机只跑一个程序&#xff0c;这个程序独享计算机的所有资源&#xff0c;这个时候不存在什么并发问题&#xff0c;但是对计算机的资源来说&#xff0c;确实是一种浪费。…

Java中的多线程(线程间通信)

/学习笔记/ 线程间通信&#xff1a; 多个线程在处理同一资源&#xff0c;但是任务却不同。 先看一个例子&#xff0c;采用两个线程执行进行输入和输出任务&#xff1a; //资源class Resource{String name;String sex;}//输入class Input implements Runnable{Resource r ;// …