【数据库】关系代数和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不同只能建立…

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

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

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

文章目录 前言一、单例模式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; 如…

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

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

SpringBoot3配置文件

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

【机器学习】任务十一: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…

SSM01-MyBatis框架(一文学会MyBatis)

Mybatis框架 一、Mybatis框架简介 1.1 传统JDBC的缺陷 &#xff08;1&#xff09;数据库连接创建、释放频繁会造成系统资源浪费 【MyBatis通过在核心配置文件中配置数据路连接池解决此问题】 &#xff08;2&#xff09; SQL语句在代码中硬编码(PreparedStatement向占位符传…

uniapp中导入uview或者uview plus

关于SCSS uview-plus依赖SCSS&#xff0c;您必须要安装此插件&#xff0c;否则无法正常运行。 如果您的项目是由HBuilder X创建的&#xff0c;相信已经安装scss插件&#xff0c;如果没有&#xff0c;请在HX菜单的 工具->插件安装中找到"scss/sass编译"插件进行安…

深度解析 Ansible:核心组件、配置、Playbook 全流程与 YAML 奥秘(上)

文章目录 一、ansible的主要组成部分二、安装三、相关文件四、ansible配置文件五、ansible 系列 一、ansible的主要组成部分 ansible playbook&#xff1a;任务剧本&#xff08;任务集&#xff09;&#xff0c;编排定义ansible任务集的配置文件&#xff0c;由ansible顺序依次执…

【CC2530开发基础篇】光敏和热敏传感器

一、前言 1.1 开发背景 本实验通过CC2530单片机接入光敏传感器和热敏传感器&#xff0c;进行数据采集与检测&#xff0c;并将检测结果通过串口终端输出。光敏传感器和热敏传感器是常见的环境感知设备&#xff0c;分别用于测量光强和温度。在实际应用中&#xff0c;这些传感器…

第6章:布局 --[CSS零基础入门]

CSS 布局是网页设计中至关重要的一个方面&#xff0c;它决定了页面上元素的排列和展示方式。以下是几种常见的 CSS 布局方法和技术&#xff1a; 1. 浮动布局&#xff08;Float Layout&#xff09; 浮动布局&#xff08;Float Layout&#xff09;曾经是网页设计中创建多列布局…

设计模式:20、状态模式(状态对象)

目录 0、定义 1、状态模式的三种角色 2、状态模式的UML类图 3、示例代码 0、定义 允许一个对象在其内部状态改变时改变它的行为&#xff0c;对象看起来似乎修改了它的类。 1、状态模式的三种角色 环境&#xff08;Context&#xff09;&#xff1a;环境是一个类&#xff0…

【论文笔记】VisionZip: Longer is Better but Not Necessary in Vision Language Models

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: VisionZip: Longer is Bet…

flex: 1 display:flex 导致的宽度失效问题

flex: 1 & display:flex 导致的宽度失效问题 问题复现 有这样的一个业务场景&#xff0c;详情项每行三项分别占33%宽度&#xff0c;每项有label字数不固定所以宽度不固定&#xff0c;还有content 占满标签剩余宽度&#xff0c;文字过多显示省略号&#xff0c; 鼠标划入展示…

visual studio2019开发过程中遇到的问题和有帮助的插件

文章目录 1. 注释中有中文导致报错2. 打开一个vs2013或者vs2010等老的项目兼容性3. LNK2019 unresolved external symbol main referenced in function __tmainCRTStartup4. image watch插件/扩展使用 1. 注释中有中文导致报错 C4819 The file contains a character that cann…

存内架构IR-DROP问题详解-电容电导补偿

一、总述 电容、电导补偿作为大规模数字电路的关键设计理念&#xff0c;是 CIM 架构优化的核心技术。在 CIM 中&#xff0c;平衡电容或电导并实现计算的精准映射&#xff0c;对能效提升和计算精度保障具有关键作用。本文基于近期文献探讨电容、电导补偿在 CIM 中的具体补偿策…