当前位置: 首页 > news >正文

【数据库】关系代数和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) &#xff08;1&#xff09;试用关系代数表达式和SQL语句表示&#xff1a;检索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 创建模拟器详细图文操作&#xff0c;包含了每一步的详细操作&#xff0c;便于理解和掌握对模拟的创建。 日期&#xff1a;2024年12月9日 作者&#xff1a;任聪聪 运行效果&#xff1a; 说明&#xff1a;创建运行后&#xff0c;点击右侧如下图…...

网络安全法-附则

第七章 附 则 第七十六条 本法下列用语的含义&#xff1a; &#xff08;一&#xff09;网络&#xff0c;是指由计算机或者其他信息终端及相关设备组成的按照一定的规则和程序对信息进行收集、存储、传输、交换、处理的系统。 &#xff08;二&#xff09;网络安全&#xff…...

CSS核心(上)

CSS 介绍 层叠样式表&#xff08;英语&#xff1a;Cascading Style Sheets, 缩写:CSS; 又叫串样式列表&#xff0c;级联样式表&#xff0c;串接样式表&#xff0c;阶层式样式表&#xff09;是一种用来为结构化文档&#xff08;HTML或XML应用&#xff09;添加样式&#xff08;…...

深度学习常用损失函数介绍

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

HarmonyOS-中级(四)

文章目录 Native适配开发三方库的基本使用 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;HarmonyOS专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年12月09日11点12分 Native适配开发 Node-API HarmonyOS Node-API 是 HarmonyOS 提供的…...

React v19稳定版发布12.5

&#x1f916; 作者简介&#xff1a;水煮白菜王 &#xff0c;一位资深前端劝退师 &#x1f47b; &#x1f440; 文章专栏&#xff1a; 前端专栏 &#xff0c;记录一下平时在博客写作中&#xff0c;总结出的一些开发技巧✍。 感谢支持&#x1f495;&#x1f495;&#x1f495; 目…...

【毕业设计选题】深度学习类毕业设计选题参考 开题指导

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

NanoLog起步笔记-4-Server端的两个线程

nonolog起步笔记-4-Server端的两个线程 Server端的两个线程两个线程的角色与各自的职责RuntimeLogger::compressionThreadMain线程 详细学习一下相关的代码第三个线程第一次出现原位置swip buffer Server端的两个线程 如前所述&#xff0c;nanolog的server端&#xff0c;相对而…...

linux zookeeper安装并服务化

1.版本信息 系统&#xff1a;centos7.6 java版本&#xff1a;java 8(已经安装好) zookeeper版本&#xff1a;3.6.3 2.zookeeper安装并测试 1.上传文件至指定目录并解压 切换至cd downloads 目录下&#xff0c; rz上传文件 解压&#xff1a;tar -zxvf apache-zookeeper-3.…...

很简单,但是很实用。把docker run改写成docker compose。

很简单,但是很实用。把docker run改写成docker compose。 在Docker的世界里,docker run命令是启动容器最直接的方式之一。然而,当项目复杂度增加,涉及多个服务时,管理这些容器和服务之间的依赖关系就会变得繁琐。这时,使用Docker Compose来定义和运行多容器Docker应用就…...

DAMODEL丹摩|丹摩平台:AI时代的开发者福音

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

全面解析租赁小程序的功能与优势

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

VRRP的知识点总结及实验

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

商业银行基于容器云的分布式数据库架构设计与创新实践

导读 本文介绍了某商业银行基于 TiDB 和 Kubernetes(简称 K8s) 构建的云化分布式数据库平台&#xff0c;重点解决了传统私有部署模式下的高成本、低资源利用率及运维复杂等问题。 通过引入 TiDB Operator 自动化管理与容器化技术&#xff0c;银行能够实现多个业务系统的高可用…...

2025计算机毕设选题推荐【30条选题】【基础功能+创新点设计】

✅博主介绍&#xff1a;CSDN毕设辅导博主、CSDN认证 Java领域优质创作者 ✅技术范围&#xff1a;主要包括Java、Vue、Python、爬虫、小程序、安卓app、大数据、机器学习等设计与开发。 ✅主要内容&#xff1a;免费功能设计、开题报告、任务书、功能实现、代码编写、论文编写和…...

SpringBoot+OSS文件(图片))上传

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

docker镜像构建企业级示例

华子目录 示例&#xff08;在centos容器中源码编译nginx&#xff08;单介构建&#xff09;&#xff09;包准备为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、【…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...