【数据库】关系代数和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'@'%';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IS-IS二

目录 ISIS建立邻接关系的基本条件&#xff1a; 1、接口链路类型一致 2、广播型链路上&#xff0c;接口类型一致 3、Hello包级别和类型一致 4、L1区域的ID要一致&#xff0c;L2的邻居区域ID不做要求 5、L1-2在区域ID相同下&#xff0c;即建立L1也建立L2区域ID不同只能建立…

echarts全屏,vue

echarts实现全屏并且不失真&#xff0c;全屏图片需要自己换 html&#xff1a; <!-- 图表全屏盒子 --> <div style"position: relative;" ref"charts_orders"><!-- 图表 --><div class"chart_box" v-show"sho…

杂谈随笔-关于unity开发游戏

最近有在做unity的游戏开发&#xff0c;都是自学&#xff0c;甚至没有完整的课程体系…… 在犹豫要不要出系列教程&#xff0c;帮助新手快速入门的同时算是巩固一下基础知识。 那这篇文章先谈谈我对于引擎开发游戏的一些小观点&#xff0c;算是做了这么十几个星期的微不足道的…

️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南20241206

&#x1f6e0;️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南 &#x1f4dd; 引言 随着大语言模型&#xff08;LLM&#xff09;和人工智能的飞速发展&#xff0c;越来越多的开发者尝试在本地环境中部署大模型进行实验。然而&#xff0c;由于资源需求高、网络限制多…

[光源控制] UI调节光源亮度参数失效

📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览: 一. 前言二. 串口调试助手辅助排查接线问题二. …

设计模式の单例工厂原型模式

文章目录 前言一、单例模式1.1、饿汉式静态常量单例1.2、饿汉式静态代码块单例1.3、懒汉式单例&#xff08;线程不安全&#xff09;1.4、懒汉式单例&#xff08;线程安全&#xff0c;同步代码块&#xff09;1.5、懒汉式单例&#xff08;线程不安全&#xff0c;同步代码块&#…

net.sf.jsqlparser.statement.select.SelectItem

今天一启动项目&#xff0c;出现了这个错误&#xff0c;仔细想了想&#xff0c;应该是昨天合并代码&#xff0c;导致的mybatis-plus版本冲突&#xff0c;以及分页PageHelper版本不兼容 可以看见这个我是最下边的Caused by 报错信息&#xff0c;这个地方提示我 net .sf.jsqlpar…

第427场周赛: 转换数组、用点构造面积最大的矩形 Ⅰ、长度可被 K 整除的子数组的最大元素和、用点构造面积最大的矩形 Ⅱ

Q1、转换数组 1、题目描述 给你一个整数数组 nums&#xff0c;它表示一个循环数组。请你遵循以下规则创建一个大小 相同 的新数组 result &#xff1a; 对于每个下标 i&#xff08;其中 0 < i < nums.length&#xff09;&#xff0c;独立执行以下操作&#xff1a; 如…

18 设计模式之迭代器模式(书籍遍历案例)

一、什么是迭代器模式 迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;允许客户端通过统一的接口顺序访问一个集合对象中的元素&#xff0c;而无需暴露集合对象的内部实现。这个模式主要用于访问聚合对象&#xff08;如集合、数组等&…

CV工程师专用键盘开源项目硬件分析

1、前言 作为一个电子发烧友&#xff0c;你是否有遇到过这样的问题呢。当我们去查看函数定义的时候&#xff0c;需要敲击鼠标右键之后选择go to definition。更高级一些&#xff0c;我们使用键盘的快捷键来查看定义&#xff0c;这时候可以想象一下&#xff0c;你左手按下ALT&a…

CSS 属性的可继承

一、可继承的属性 1. 文本相关属性 color&#xff1a;文本的颜色。 font-family&#xff1a;字体系列。 font-size&#xff1a;文本的大小。 font-style&#xff1a;文本的样式。 line-height&#xff1a;行与行之间的垂直间距。 2. 列表相关属性 list-style-type&#xff1a;…

Rust学习笔记_18——HashSet

Rust学习笔记_15——Union Rust学习笔记_16——Vector Rust学习笔记_17——HashMap HashSet 文章目录 HashSet1. 创建2. 插入3. 检查元素是否存在4. 遍历5. 移除6. 工作原理7. 示例 Rust 中的 HashSet 是一种集合数据结构&#xff0c;它允许你存储不重复的元素&#xff0c;并且…

uniapp远程摄像头流界面上显示

用到的插件&#xff1a;dplayer、hls dplayer官网&#xff1a;dplayer dplayer官网npm安装的是最新版本&#xff08;1.27.1&#xff09;&#xff0c;真机运行异常了&#xff0c;可以安装历史版本 dplayer历史版本 远程摄像头视频流格式&#xff1a;m3u8 可以用来测试的视频流&a…

001-mysql安装

[rootcentos701 ~]# hostname -I 10.0.0.200 172.17.0.1 [rootcentos701 ~]# hostname centos701 [rootcentos701 ~]# rpm -qa | grep mariadb [rootcentos701 ~]# rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64 [rootcentos701 ~]# useradd mysql -s /sbin/nologin #创建…

ubuntu20.04设置远程桌面

安装xrdp sudo apt install xrdp 2、 检查xrdp状态 sudo systemctl status xrdp3、&#xff08;若为Ubuntu 20&#xff09;添加xrdp至ssl-cert sudo adduser xrdp ssl-cert 4、重启服务 sudo systemctl restart xrdp最后可以远程了&#xff0c;注意一个账号只能一个登录

SpringBoot3配置文件

一、统一配置管理概述: SpringBoot工程下&#xff0c;进行统一的配置管理&#xff0c;你想设置的任何参数(端口号、项目根路径、数据库连接信息等等)都集中到一个固定位置和命名的配置文件(application.properties或application.yml)中 配置文件应该放置在Spring Boot工程的s…

三、【docker】docker和docker-compose的常用命令

文章目录 一、docker常用命令1、镜像管理2、容器管理3、容器监控和调试4、网络管理5、数据卷管理6、系统维护7、实用组合命令8、常用技巧二、docker-compose常用命令1、基本命令2、构建相关3、运行维护4、常用组合命令5、实用参数 一、docker常用命令 1、镜像管理 # 查看本地…

【机器学习】任务十一:Keras 模块的使用

1.Keras简介 1.1 什么是Keras&#xff1f; Keras 是一个开源的深度学习框架&#xff0c;用 Python 编写&#xff0c;构建于 TensorFlow 之上。它以简单、快速和易于使用为主要设计目标&#xff0c;适合初学者和研究者。 Keras 提供了高层次的 API&#xff0c;帮助用户快速构…

【新品发布】ESP32-P4开发板 —— 启明智显匠心之作,为物联网及HMI产品注入强劲动力

核心亮点&#xff1a; ESP32-P4开发板&#xff0c;是启明智显精心打造的一款高性能物联网开发板。它专为物联网项目及HMI&#xff08;人机界面&#xff09;产品而设计&#xff0c;旨在为您提供卓越的性能和稳定可靠的运行体验。 强大硬件配置&#xff1a; 双核400MHz RISC-V处…

在Ubuntu22.04.5上安装Docker-CE

文章目录 1. 查看Ubuntu版本2. 安装Docker-CE2.1 安装必要的系统工具2.2 信任Docker的GPG公钥2.3 写入软件源信息2.4 安装Docker相关组件2.5 安装指定版本Docker-CE2.5.1 查找Docker-CE的版本2.5.2 安装指定版本Docker-CE 3. 启动与使用Docker3.1 启动Docker服务3.2 查看Docker…