【数据库】关系代数和SQL语句
一
对于教学数据库的三个基本表
学生S(S#,SNAME,AGE,SEX)
学习SC(S#,C#,GRADE)
课程(C#,CNAME,TEACHER)
(1)试用关系代数表达式和SQL语句表示:检索WANG同学不学的课程号
select C# from C where C# not in(select C# from SCwhere S# in(select S# from Swhere SNAME='WANG'));
(2)试用SQL语句完成:在基本表S中检索每一门成绩都大于80分的学生学号、姓名和性别,并把检索到的值送往一个已存在的基本表STUDENT(S#,SNAME,SEX)
insert into STUDENT(S#,SNAME,SEX)select S#,SNAME,SEX from Swhere not exists(select * from SC whereGRADE < 80 and S.S#=SC.S#);
(3)试用SQL语句完成:检索选修课程包含LIU老师所授课的学生学号
select distinct from scwhere C# in(select C# from Cwhere TEACHER = 'LIU');
(4)将关系代数表达式意思表达出来
检索全部学生都选修的课程的课程号与课程名
二
现有数据库关系如下:
学生(学号,姓名,性别,专业)
课程(课程号,课程名,学分)
学习(学号,课程号,分数)
分别用关系代数表达式和SQL语句实现下列1-5题
1.检索所有选修了课程号为“C112”的课程的学生的学号和分数
select 学号,分数 from 学习where 课程号 = 'C112';
2.检索“英语”专业学生所学课程的信息,包括学号、姓名、课程号和分数
多表查询
select 学生.学号,姓名,课程.课程名,分数 from 学习,学生,课程 where 学生.学号=学习.学号 and 学习.课程号=课程.课程号 and 专业='英语';
3.检索“数据库原理”课程高于90分的所有学生的学号、姓名、专业和分数
多表查询
select 学生.学号,姓名,专业,分数 from 学生,学习,学号 where 学生.学号=学习.学号 and 学习.课程号=课程.课程号 and 分数>90 and 课程名='数据库原理';
4.检索没学课程号为C135课程的学生信息,包括学号,姓名和专业
嵌套
select 学号,姓名,专业 from 学生 where 学号 not in (select 学号 from 学习 where 课程号='C 135');
5.检索至少学过课程号为C135和C219的课程的学生的信息,包括学号、姓名和专业
别名
select 学号,姓名,专业 from 学生 where 学号 in (select x1.学号 from 学习 x1,学习x2 where x1.学号=x2.学号 and x1.课程号='C135' and x2.课程号='C219' );
存储过程
3.设有图书关系BOOK(BID,BNAME,QTY),属性依次是书号、书名、库存数量。
规定当一批图书入库时,首先判断是否存在该书,如果存在则更改其库存数量,并通知客户最新的库存数量;否则,插入该书信息(书名暂时为空),并发出“新书入库”的提示信息。
设计一个存储过程来实现此功能,该存储过程有书号(@bid)和入库数量(@s)2个参数。同时,要求设计一个SQL程序验证存储过程的作用
create procedure BOOK_QTY @bid int,@s int asdelete @bs intif exists (select * from BOOK where BID=@bid)beginupdate BOOK set QTY=QTY+@s where BID=@bidselect @bs=QTY from BOOK where BID=@bidprint '库存数量'+str(@s)endelseinsert into BOOK(BID,QTY) values(@bid,@s)print '新书入库'
四
设有4个关系模式:
供应商关系:S(SNO,SNAME,CITY),属性依次是供应商号、供应商名和所在城市;
零件关系:P(PNO,PNAME,COLOR),属性依次是零件号、零件名和颜色;
工程关系:J(JNO,JNAME,CITY),属性依次是工程号、工程名和所在城市;
供应关系:SPJ(SNO,PNO,JNO,QTY),属性依次是供应商号、零件号、工程号和数量。
用SQL语句实现下列操作:
1.查询P1号零件的颜色
select COLOR from P where PNAME='P1';
2.查询S1号供应商为J1号工程提供两件的编号和供应数量,查询结果按零件号降序排列
select PNO,QTY from SPJ where SNO='S1' and JNO='J1' order by PNO desc;
3.查询由S1号供应商提供红色零件的工程号
select JNO from P join SPJ on(SPJ.PNO=P.PNO) where SNO='S1' and COLOR='红';
select JNO from SPJ,P where SNO='S1' and COLOR='红' and SPJ.PNO=P.PNO;
4.查询与其提供零件的供应商所在城市为同一城市的工程号
select J.JNO from J join SPJ on(J.JNO=SPJ.JNO) join S on(S.SNO=SPJ.SNO) where J.CITY=S.CITY;
select J.JNO from S,J,SPJ where S.SNO=SPJ.SNO and J.JNO=SPJ.JNO and S.CITY=J.CITY;
5.统计所在地为杭州的工程数量
select count(JNO) from J where CITY='杭州';
6.统计每个供应商提供的零件总数
select SNO,sum(QTY) from SPJ group by SNO;
7.查询比J1号工程使用的零件数量多的工程号
select JNO from SPJ group by JNO having sum(QTY) > (select sum(QTY) from SPJ where JNO='J1');
8.删除为由S1号供应商提供零件的工程信息
delete from J where JNO in (select JNO from SPJ where SNO='S1');
五
设有3个关系模式:
职工(职工号,姓名,年龄,性别)
公司(公司号,名称,地址)
工作(职工号,公司名,工资)
在定义表结构是,用SQL子句实现下列完整新约束:
(1)职工表中职工号非空且唯一
primary key(职工号)
(2)工作表中职工号的值必须是职工表中的有效职工号
foreign key(职工号) references 职工(职工号)
(3)职工的工资不能低于800元
check(工资>=800)
(4)男职工的年龄在18~55之间
check(性别='男' and 年龄>=18 and 年龄<=55)
对上面的3个关系,写出检索金山公司所有职员的姓名和工资的关系代数表达式
六
create table Customers(CustomerID char(6) not null comment '客户编号' primary key,CName varchar(15) not null comment '客户名称',City varchar(15) comment '客户所在城市'
) comment '客户表';create table Goods(GoodID char(6) not null comment '商品编号' primary key,GName varchar(20) not null comment '商品名称',Price money not null comment '单价',Provider varchar(30) comment '供应商',Stocks int comment '库存量',Status bit comment '商品状态'
) comment '商品表';create table Orders(OrderID char(6) not null comment '订单号' primary key,GoodID char(6) not null comment '商品编号' foreign key(GoodID) references Goods(GoodID),CustomerID char(6) not null comment '客户编号' foreign by(CustomerID) references Customers(CustomerID),Quantity int not null comment '订货数量',OrderSum moeny comment '订货金额',OrderDate datetime comment '订货日期'
) comment '订单表';
(1)查找所在城市为西安的客户的信息;
select * from Customers
where City='西安';
(2)查找商品名称中包含“Computer”的商品的编号、名称及单价;
select GoodID,GName,Price from Goods
where GName like '%Computer%';
(3)查找库存量介于100和500之间的商品的名称、库存量及单价;
select GName,Stocks,Price from Goods
where Stocks between 100 and 500;
(4)查找2011年1月1日至2011年6月30日期间,订货金额大于30000的所有订单的客户姓名、商品名称、单价、订货数量和订货金额;
SELECT c.CName, g.GName, g.Price, o.Quantity, o.OrderSum
FROM Orders o
JOIN Customers c ON o.CustomerID = c.CustomerID
JOIN Goods g ON o.GoodID = g.GoodID
WHERE o.OrderDate BETWEEN '2011-01-01' AND '2011-06-30'
AND o.OrderSum > 30000;
select CName,GName,Price,Quantity,OrserSum
from Customers,Goods,Orders
where OrderDate between '2011-01-01' and '2011-06-30' and OrderSum > 30000 and Customers.CustomerID=Orders.CustomerID and Goods.GoodID=Orders.GoodID;
(5)将所有库存量大于500的商品的单价下调25%;
update Goods
set Price=Price*0.75
where Stocks > 500;
(6)请将(“100661”,“hpLaserJet1020”,1800,“普惠公司”,10,0)插入到商品表中;
insert into Goods values('100661','hpLaserJet1020',1800,'惠普公司',10,0);
(7)授权用户user1对Orders表进行插入和删除操作
grant insert,delete on Market.Orders to 'user1'@'%';
相关文章:

【数据库】关系代数和SQL语句
一 对于教学数据库的三个基本表 学生S(S#,SNAME,AGE,SEX) 学习SC(S#,C#,GRADE) 课程(C#,CNAME,TEACHER) (1)试用关系代数表达式和SQL语句表示:检索WANG同学不学的课程号 select C# from C where C# not in(select C# from SCwhere S# in…...

amazon亚马逊滑动识别验证码
注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 本文识别已同步上线至OCR识别网站: http://yxlocr.nat300.top/ocr/other/15 亚马逊的滑动还原验证码数据集如下: 和某顶象的差不多,图片分割高度是中间固定的,…...

Android Studio 创建虚拟设备的详细图文操作教程
本篇文章主要讲解 Android Studio 创建模拟器详细图文操作,包含了每一步的详细操作,便于理解和掌握对模拟的创建。 日期:2024年12月9日 作者:任聪聪 运行效果: 说明:创建运行后,点击右侧如下图…...
网络安全法-附则
第七章 附 则 第七十六条 本法下列用语的含义: (一)网络,是指由计算机或者其他信息终端及相关设备组成的按照一定的规则和程序对信息进行收集、存储、传输、交换、处理的系统。 (二)网络安全ÿ…...
CSS核心(上)
CSS 介绍 层叠样式表(英语:Cascading Style Sheets, 缩写:CSS; 又叫串样式列表,级联样式表,串接样式表,阶层式样式表)是一种用来为结构化文档(HTML或XML应用)添加样式(…...

深度学习常用损失函数介绍
均方差损失(Mean Square Error,MSE) 均方误差损失又称为二次损失、L2损失,常用于回归预测任务中。均方误差函数通过计算预测值和实际值之间距离(即误差)的平方来衡量模型优劣。即预测值和真实值越接近&…...

HarmonyOS-中级(四)
文章目录 Native适配开发三方库的基本使用 🏡作者主页:点击! 🤖HarmonyOS专栏:点击! ⏰️创作时间:2024年12月09日11点12分 Native适配开发 Node-API HarmonyOS Node-API 是 HarmonyOS 提供的…...

React v19稳定版发布12.5
🤖 作者简介:水煮白菜王 ,一位资深前端劝退师 👻 👀 文章专栏: 前端专栏 ,记录一下平时在博客写作中,总结出的一些开发技巧✍。 感谢支持💕💕💕 目…...

【毕业设计选题】深度学习类毕业设计选题参考 开题指导
目录 前言 毕设选题 开题指导建议 更多精选选题 选题帮助 最后 前言 大家好,这里是海浪学长毕设专题! 大四是整个大学期间最忙碌的时光,一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整…...

NanoLog起步笔记-4-Server端的两个线程
nonolog起步笔记-4-Server端的两个线程 Server端的两个线程两个线程的角色与各自的职责RuntimeLogger::compressionThreadMain线程 详细学习一下相关的代码第三个线程第一次出现原位置swip buffer Server端的两个线程 如前所述,nanolog的server端,相对而…...
linux zookeeper安装并服务化
1.版本信息 系统:centos7.6 java版本:java 8(已经安装好) zookeeper版本:3.6.3 2.zookeeper安装并测试 1.上传文件至指定目录并解压 切换至cd downloads 目录下, rz上传文件 解压:tar -zxvf apache-zookeeper-3.…...
很简单,但是很实用。把docker run改写成docker compose。
很简单,但是很实用。把docker run改写成docker compose。 在Docker的世界里,docker run命令是启动容器最直接的方式之一。然而,当项目复杂度增加,涉及多个服务时,管理这些容器和服务之间的依赖关系就会变得繁琐。这时,使用Docker Compose来定义和运行多容器Docker应用就…...

DAMODEL丹摩|丹摩平台:AI时代的开发者福音
本文仅对丹摩平台进行介绍,非广告。 文章目录 1. 丹摩平台简介2. 平台特性2. 1 超友好的用户体验2. 2 资源丰富的GPU覆盖2. 3 强大的性能2. 4 超实惠的价格2. 5 不同目的推荐的配置2. 6 启动环境 3. 快速上手丹摩平台3. 1 创建项目与资源实例3. 2 储存选项3. 3 数据…...

全面解析租赁小程序的功能与优势
内容概要 租赁小程序正在逐渐改变人与物之间的互动方式。通过这些小程序,用户不仅可以轻松找到所需的租赁商品,还能够享受无缝的操作体验。为了给大家一个清晰的了解,下面我们将重点介绍几个核心功能。 建议:在选择租赁小程序时&…...

VRRP的知识点总结及实验
1、VRRP VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)既能够实现网关的备份,又能解决多个网关之间互相冲突的问题,从而提高网络可靠性。 2、VRRP技术概述: 通过把几台路由设备联合组成一台虚拟的“路由设备”…...

商业银行基于容器云的分布式数据库架构设计与创新实践
导读 本文介绍了某商业银行基于 TiDB 和 Kubernetes(简称 K8s) 构建的云化分布式数据库平台,重点解决了传统私有部署模式下的高成本、低资源利用率及运维复杂等问题。 通过引入 TiDB Operator 自动化管理与容器化技术,银行能够实现多个业务系统的高可用…...
2025计算机毕设选题推荐【30条选题】【基础功能+创新点设计】
✅博主介绍:CSDN毕设辅导博主、CSDN认证 Java领域优质创作者 ✅技术范围:主要包括Java、Vue、Python、爬虫、小程序、安卓app、大数据、机器学习等设计与开发。 ✅主要内容:免费功能设计、开题报告、任务书、功能实现、代码编写、论文编写和…...

SpringBoot+OSS文件(图片))上传
SpringBoot整合OSS实现文件上传 以前,文件上传到本地(服务器,磁盘),文件多,大,会影响服务器性能 如何解决? 使用文件服务器单独存储这些文件,例如商业版–>七牛云存储,阿里云OSS,腾讯云cos等等 也可以自己搭建文件服务器(FastDFS,minio) 0 过程中需要实名认证 … 1 开…...

docker镜像构建企业级示例
华子目录 示例(在centos容器中源码编译nginx(单介构建))包准备为centos容器提供网络源添加企业7的ISO文件 提交为新的centos镜像编写dockerfile文件构建镜像如何优化自己构建的镜像大小多介构建 ldd命令基本用法示例 镜像优化方案…...
【源码】Sharding-JDBC源码分析之SQL中读写分离动态策略、数据库发现规则及DatabaseDiscoverySQLRouter路由的原理
Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...

通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...

HTML版英语学习系统
HTML版英语学习系统 这是一个完全免费、无需安装、功能完整的英语学习工具,使用HTML CSS JavaScript实现。 功能 文本朗读练习 - 输入英文文章,系统朗读帮助练习听力和发音,适合跟读练习,模仿学习;实时词典查询 - 双…...
十二、【ESP32全栈开发指南: IDF开发环境下cJSON使用】
一、JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有以下核心特性: 完全独立于编程语言的文本格式易于人阅读和编写易于机器解析和生成基于ECMAScript标准子集 1.1 JSON语法规则 {"name"…...

dvwa11——XSS(Reflected)
LOW 分析源码:无过滤 和上一关一样,这一关在输入框内输入,成功回显 <script>alert(relee);</script> MEDIUM 分析源码,是把<script>替换成了空格,但没有禁用大写 改大写即可,注意函数…...

Go 语言中的内置运算符
1. 算术运算符 注意: (自增)和--(自减)在 Go 语言中是单独的语句,并不是运算符。 package mainimport "fmt"func main() {fmt.Println("103", 103) // 13fmt.Println("10-3…...
C++ 使用 ffmpeg 解码 rtsp 流并获取每帧的YUV数据
一、简介 FFmpeg 是一个开源的多媒体处理框架,非常适用于处理音视频的录制、转换、流化和播放。 二、代码 示例代码使用工作线程读取rtsp视频流,自动重连,支持手动退出,解码并将二进制文件保存下来。 注意: 代…...