【数据库】关系代数和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 SC
        where S# in
            (select S# from S
                where SNAME='WANG'));

(2)试用SQL语句完成:在基本表S中检索每一门成绩都大于80分的学生学号、姓名和性别,并把检索到的值送往一个已存在的基本表STUDENT(S#,SNAME,SEX)

insert into STUDENT(S#,SNAME,SEX)
    select S#,SNAME,SEX from S
        where not exists
            (select * from SC where
                GRADE < 80 and S.S#=SC.S#);

(3)试用SQL语句完成:检索选修课程包含LIU老师所授课的学生学号

select distinct from sc
    where C# in
        (select C# from C
            where 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
as
    delete @bs int
    if exists (select * from BOOK where BID=@bid)
    begin
        update BOOK set QTY=QTY+@s where BID=@bid
        select @bs=QTY from BOOK where BID=@bid
        print '库存数量'+str(@s)
    end
    else
        insert 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'@'%';

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【git】--- 通过 git 和 gitolite 管理单仓库的 SDK

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【git】--- 通过 git 和 gitolite 管理单仓库的 SDK 开发环境一、安装配置 gitolite二…

HDFS高可用模式安装部署

实验步骤 将ZooKeeper集群模式启动获取安装包 安装包在本地&#xff1a;通过XFTP等工具将安装包上传到虚拟机中安装包在网络&#xff1a; 虚拟机可以访问互联网虚拟机无法访问互联网解压缩安装包将解压出来安装目录重命名配置环境变量刷新环境变量&#xff0c;使新增的环境变量…

mysql程序介绍,选项介绍(常用选项,指定选项的方式,特性),命令介绍(查看,部分命令),从sql文件执行sql语句的两种方法

目录 mysql程序 介绍 选项 介绍 常用选项 指定选项的方式 ​编辑配置文件 环境变量 选项特性 指定选项 选项名 选项值 命令 介绍 查看客户端命令 tee/notee prompt source system help contents 从.sql文件执行sql语句 介绍 方式 source 从外部直接导入…

PDF处理的创新工具:福昕低代码平台尝鲜实现PDF2word功能

在当今数字化时代&#xff0c;PDF文件的处理和管理变得越来越重要。福昕低代码平台是新发布的一款创新的工具&#xff0c;旨在简化PDF处理和管理的流程。通过这个平台&#xff0c;用户可以通过简单的拖拽界面上的按钮&#xff0c;轻松完成对Cloud API的调用工作流&#xff0c;而…

【C++】C++11(统一列表初始化、声明、右值引用)

&#x1f308;个人主页&#xff1a;秦jh_-CSDN博客&#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 ​ 目录 C11简介 统一的列表初始化 &#xff5b;&#xff5d;初始化 std::initializer_list 声明 …

对比九种MySQL高可用方案

文章目录 一、读写分离如何在业务中落地什么时候需要读写分离MySQL 主从复制技术--binlog日志主从复制过程存在主从复制延时问题主从同步延迟的解决方案主从复制如何避免丢数据总结二、对比九种MySQL高可用方案组复制、半同步复制、异步复制主从复制方案选型-异步复制主从复制方…

再用RNN神经网络架构设计生成式语言模型

上一篇&#xff1a;《用谷歌经典ML方法方法来设计生成式人工智能语言模型》 序言&#xff1a;市场上所谓的开源大语言模型并不完全开源&#xff0c;通常只提供权重和少量工具&#xff0c;而架构、训练数据集、训练方法及代码等关键内容并未公开。因此&#xff0c;要真正掌握人…

httprunner实践样例

目录 1. 安装 HTTPRunner 2. 基本概念和目录结构 3. 编写一个 HTTPRunner 测试用例&#xff08;YAML 示例&#xff09; 4. 运行测试用例 5. 使用 Python 编写测试用例 6. 运行 Python 测试用例 7. 集成测试报告 8. 高级用法&#xff1a;集成环境变量、外部数据 9. 集成…

没有在 SCM 配置或者插件中的 Git 存储库配置错误

问题&#xff1a; jenkins 配置新项目后首次运行报错如下&#xff0c;同时git代码分支无法选择。 已返回默认值 没有在 SCM 配置或者插件中的 Git 存储库配置错误 选项"使用仓库"设置为:"http://xxxx.git 请检查配置 原因&#xff1a; 配置pipeline 脚本时指…

HBU深度学习实验15-循环神经网络(2)

LSTM的记忆能力实验 飞桨AI Studio星河社区-人工智能学习与实训社区 (baidu.com) 长短期记忆网络&#xff08;Long Short-Term Memory Network&#xff0c;LSTM&#xff09;是一种可以有效缓解长程依赖问题的循环神经网络&#xff0e;LSTM 的特点是引入了一个新的内部状态&am…

算法日记 46 day 图论(并查集)

题目&#xff1a;冗余连接 108. 冗余连接 (kamacoder.com) 题目描述 有一个图&#xff0c;它是一棵树&#xff0c;他是拥有 n 个节点&#xff08;节点编号1到n&#xff09;和 n - 1 条边的连通无环无向图&#xff08;其实就是一个线形图&#xff09;&#xff0c;如图&#xff…

二叉树优选算法(一)

一、根据二叉树创建字符串 题目介绍&#xff1a; 给你二叉树的根节点 root &#xff0c;请你采用前序遍历的方式&#xff0c;将二叉树转化为一个由括号和整数组成的字符串&#xff0c;返回构造出的字符串。 空节点使用一对空括号对 "()" 表示&#xff0c;转化后需…

RabbitMq死信队列延迟交换机

架构图 配置 package com.example.demo.config;import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class DeadLetterConfig {public String …

JavaWeb学习--cookie和session,实现登录的记住我和验证码功能

目录 &#xff08;一&#xff09;Cookie概述 1.什么叫Cookie 2.Cookie规范 3.Cookie的覆盖 4.cookie的最大存活时间 ​​​​​​&#xff08;Cookie的生命&#xff09; &#xff08;二&#xff09; Cookie的API 1.创建Cookie&#xff1a;new 构造方法 2.保存到客户端浏…

开启第二阶段---蓝桥杯

一、12.10--数据类型的范围及转化 今天是刚开始&#xff0c;一天一道题 对于这道题我想要记录的是Java中的整数默认是 int 类型&#xff0c;如果数值超出了 int 的范围&#xff0c;就会发生溢出错误。为了避免这个问题&#xff0c;可以将数字表示为 long 类型&#xff0c;方法…

黑马头条学习笔记

Day01-环境搭建 项目概述 课程大纲 业务说明 技术栈 Spring-Cloud-Gateway : 微服务之前架设的网关服务&#xff0c;实现服务注册中的API请求路由&#xff0c;以及控制流速控制和熔断处理都是常用的架构手段&#xff0c;而这些功能Gateway天然支持 运用Spring Boot快速开发…

详解RabbitMQ在Ubuntu上的安装

​​​​​​​ 目录 Ubuntu 环境安装 安装Erlang 查看Erlang版本 退出命令 ​编辑安装RabbitMQ 确认安装结果 安装RabbitMQ管理界面 启动服务 查看服务状态 通过IP:port访问 添加管理员用户 给用户添加权限 再次访问 Ubuntu 环境安装 安装Erlang RabbitMq需要…

SpringBoot【二】yaml、properties两配置文件介绍及使用

一、前言 续上一篇咱们已经搭建好了一个springboot框架雏形。但是很多初学的小伙伴私信bug菌说&#xff0c;在开发项目中&#xff0c;为啥.yaml的配置文件也能配置&#xff0c;SpringBoot 是提供了两种2 种全局的配置文件嘛&#xff0c;这两种配置有何区别&#xff0c;能否给大…

Excel的文件导入遇到大文件时

Excel的文件导入向导如何把已导入数据排除 入起始行&#xff0c;选择从哪一行开始导入。 比如&#xff0c;前两行已经导入了&#xff0c;第二次导入的时候排除前两行&#xff0c;从第三行开始&#xff0c;就将导入起始行设置为3即可&#xff0c;且不勾选含标题行。 但遇到大文…

Windows平台Unity3D下RTMP播放器低延迟设计探讨

技术背景 好多开发者希望我们分享下大牛直播SDK是如何在Unity下实现低延迟的RTMP播放的&#xff0c;以下是一些降低 Unity 中 RTMP 播放器延迟的方法&#xff1a; 一、选择合适的播放插件或工具 评估和选用专业的流媒体插件 市场上有一些专门为 Unity 设计的流媒体插件&…