数据库综合练习

2023-11-19

下图分别是练习中的教师表,学生表,成绩表,科目表

 

 

 

 

练习如下

1、查询“c001”课程比“c002”课程成绩高的所有学生的学号;

方法一:使用自连接
select c.sno 学号
from sc c
inner join sc t on c.sno=t.sno and c.cno='c001' and t.cno='c002'
where c.score>t.score

方法二:使用相关自查询
select s.sno from sc s
where s.sno in (
select c.sno from sc c
where s.score>c.score and s.cno='c001' and t.cno='c002'
)

2、查询平均成绩大于60 分的同学的学号和平均成绩

select c.sno,avg(score) 平均成绩
from sc c
group by c.sno
having avg(score)>60

3、查询所有同学的学号、姓名、选课数、总成绩;

select t.sno 学号,t.sname 姓名,count(s.cno) 选课数,sum(s.score) 总成绩
from student t
left join sc s on t.sno=s.sno
group by t.sno,t.sname

4、查询姓的老师的个数;

select count(tname) 数量
from teacher t
where t.tname like '%'

5、查询没学过谌燕老师课的同学的学号、姓名;

方法一:
5.1查询出老师的编号
select t.tno from teacher t
where t.tname='谌燕'

5.2查询出老师的所有课程
select s.cno
from course s
inner join teacher t on t.tno=s.tno
where t.tname='谌燕'
5.3查询出学过谌燕老师课的同学的学号
select c.sno
from sc c
where c.cno in (
 select s.cno
from course s
inner join teacher t on t.tno=s.tno
where t.tname='谌燕'
)
group by c.sno
5.4查询出没学过谌燕老师课的同学的学号、姓名
select d.sno,d.sname
from student d
where d.sno not in (
 select c.sno
from sc c
where c.cno in (
 select s.cno
from course s  
inner join teacher t on t.tno=s.tno
where t.tname='谌燕'
)
)

方法二:
 select d.sno,d.sname
from student d
where d.sno not in (
select distinct s.sno from student s
left join sc c on c.sno=s.sno
left join course o on c.cno=o.cno
left join teacher t on t.tno = o.tno
where t.tname = '谌燕'
)

6、查询学过“c001”并且也学过编号“c002”课程的同学的学号、姓名;

方法一:通过子查询+自连接
---.1查询学过“c001”并且也学过编号“c002”课程的同学的学号
select c.sno
from sc c
inner join sc t on c.sno=t.sno
where (c.cno='c001' and t.cno='c002') or (c.cno='c002' and t.cno='c001')
group by c.sno
---.2、查询学过“c001”并且也学过编号“c002”课程的同学的学号、姓名;
select d.sno,d.sname
from student d
where d.sno  in (select c.sno
from sc c
inner join sc t on c.sno=t.sno
where (c.cno='c001' and t.cno='c002') or (c.cno='c002' and t.cno='c001')
group by c.sno)

方法二:通过相关子查询
select t.sno,t

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库综合练习 的相关文章

  • SQL - != 'NULL' 的解释

    我的SSMS代码如下 Select top 50 From FilteredContact Where statuscode 1 and emailaddress1 NULL and telephone1 NULL and address1
  • SQL Server 上的语法错误

    这可能是一个愚蠢的语法错误 但我只是继续阅读我的程序 但我无法弄清楚我的错误在哪里 消息 156 第 15 级 状态 1 第 41 行关键字附近的语法不正确 为了 这是我的代码 alter procedure LockReservation
  • 索引数量越少意味着插入、更新和删除速度更快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • POINT 列上的 MySQL INSERT/UPDATE

    我正在尝试用我国家的地理位置填充我的数据库 我的一张表有 4 个字段 ID PK 纬度 经度和地理点 EDIT SCDBs Punto Geografico SET lat 18 469692 SET lon 63 93212 SET g
  • 如何在mysql中选择具有相同值集的列?

    我的桌子是 patients pid name city disease did dname has disease did pid 我想列出具有相同疾病组的患者 pid 和 did 分别是患者和疾病表中的主键 并且是 has diseas
  • 删除连接到另一表 SQL 的一个表中的记录

    我有两个表 一个包含 212 000 条记录 已弃用的记录 另一个包含 10 500 000 条记录 我想在 id 和 version number 字段上连接两个表 因为两个表都有这些字段 我希望从连接表中删除匹配的记录 来自连接表 即从
  • java ResultSet,使用MAX sql函数

    你好 这就是我想要的 我连接到数据库并检索 UniqueId 列的最大元素 并将其分配给名为 maxID 的整数变量 这是我的方法 int maxID 0 Statement s2 con createStatement s2 execut
  • 在 PL/SQL 中将绑定变量与动态 SELECT INTO 子句结合使用

    我有一个关于 PL SQL 中的动态 SQL 语句中可以使用绑定变量的问题 例如 我知道这是有效的 CREATE OR REPLACE FUNCTION get num of employees p loc VARCHAR2 p job V
  • sql查询获取从一月到当月的所有数据,即使没有记录

    我不擅长 sql 所以任何帮助世界都很棒 我有一个 SQL 查询 可以获取从一月到当月注册的记录 我的代码示例 SELECT DatePart YEAR p createStamp as TheYear DatePart MONTH p c
  • Reporting Services 在哪里存储其日志文件

    最相关的谷歌结果似乎表明 为了访问日志 我们必须将您自己的日志表部署到数据库并制作报告服务写入它 http technet microsoft com en us library ms157403 aspx 简而言之 Reporting S
  • MySQL中如何声明变量?

    如何在mysql中声明一个变量 以便我的第二个查询可以使用它 我想写一些类似的东西 SET start 1 SET finish 10 SELECT FROM places WHERE place BETWEEN start AND fin
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • 如何通过 SQL 表关联 SQL 中的实体

    我是数据库设计的初学者 我需要为项目创建数据库 我可以用面向对象的术语解释我想要做什么 值得庆幸的是 数据库专家会很友善地向我解释如何在数据库方面处理这个问题 我想创建一个与位置实体 州 城市 有关系的用户 ID 名称 实体 所以在编程语言
  • SQL 连接两个没有关系的表

    我有具有相同结构的不同表 我想通过其中一列将它们连接起来 问题是他们不共享该专栏中的信息 Table 1 Type A Name Value Table 2 Type B Name Value 结果表 在单列中 nameFromA name
  • 数字表与递归 CTE 生成一系列数字

    为什么使用数字表比使用递归 CTE 动态生成它们要快得多 在我的机器上 给定一张桌子numbers单列n 主键 包含从1到100000的数字 查询如下 select n from numbers 大约需要 400 毫秒才能完成 使用递归 C
  • 我不断收到错误“关系 [TABLE] 不存在”

    我一直在尝试查询数据库中的两个表 在服务器资源管理器中 我可以看到两个表 甚至可以看到其中的列 我们将它们称为 Schema table1 和 Schema table2 其中 Schema 的第一个字母大写 我尝试运行以下查询 selec
  • 如何使用 BigQuery 有效地选择另一个表中匹配子字符串的记录?

    我有一个包含数百万个字符串的表 我想将其与包含大约两万个字符串的表进行匹配 如下所示 standardSQL SELECT record FROM record JOIN fragment ON record name LIKE CONCA
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作

随机推荐

  • WIN10系统MYSQL的下载与安装详细教程

    前两天ubuntu下安装mysql遇到了一些依赖问题 结果解决了半天 没解决好 还把我的系统搞坏了 小白破坏力好强 到现在我的ubuntu也没装好 电脑驱动的问题 联想小新310一装ubuntu 进去就卡 原来禁用原先的显卡驱动 可是 第二
  • win10 Enable developer Mode

    经过漫长的安装过程 win10终于装上了vs2015 rc 写个小程序试试 结果提示 根据提示打开 设置 更新 for developer 据说应该有这么个界面 但是这个界面根本出不来 直接闪退的说 翻 MSDN 终于翻出了解决方法 htt
  • ChatGPT启示录: 智能、推理的本质是什么?神经网络既是推理机,也是知识规则库?

    多种因素让人类对自身的智力产生了一种自信 毕竟这个世界上其他生物没有我们大脑发达 智力似乎是上天给人类的独有礼物 作为孩子的父母 老师说孩子不努力似乎是可以接受的 但是说自己娃娃笨是极其羞辱的 类似的 让很多人不能接受的是 机器人可以算得比
  • 学习笔记(三):Java中的List集合——ArrayList、LinkedList、Vector、Stack、CopyOnWriteArrayList

    目录 引言 一 List简介 二 常用List实现类 一 ArrayList 二 LinkedList 三 LinkedList和ArrayList的比较 三 其他List实现类 一 Vector 二 Stack 三 CopyOnWrite
  • Java安装、Java环境配置,以及我的第一个Java程序(win11)

    Java环境配置 下载OpenJDK Windows11 1 进入Oracle Java Downloads 2 下载 ZIP文件 3 解压到适合的位置 注意 路径最好是英文字母 配置环境变量 1 Win I打开系统设置 2 下拉到最底下选
  • vuejs 制作摄像头_VueJs的网络摄像头组件

    vuejs 制作摄像头 网络摄像头 vue web cam Webcam component for VueJs VueJs的网络摄像头组件 安装 Installation npm install vue web cam save yarn
  • 【Python】python logging模块打印log到指定文件

    可能我们经常会使用print来输出信息到窗口 但当我们有很多个py文件需要运行 项目比 较庞大的到时候 print简直就是太low了点了 那么我们可以使用强大的logging模块 把 输出到指定的本地pc某个路径的文件中 一 logging
  • 把字符串转换成整数(字符串)

    题目描述 将一个字符串转换成一个整数 要求不能使用字符串转换整数的库函数 数值为0或者字符串不是一个合法的数值则返回0 输入描述 输入一个字符串 包括数字字母符号 可以为空 输出描述 如果是合法的数值表达则返回该数字 否则返回0 思路一 p
  • 什么是体素(Voxel)

    复制粘贴的知乎 题图中是3D数据的不同表示类型 a 点云 Point clouds b 体素网格 Voxel grids 多边形网格 Polygon meshes d 多视图表示 Multi view representations 其中
  • 超参数选择:网格搜索GridSearchCV

    Grid Search 网格搜索 在所有候选的参数选择中 通过循环遍历 对每一种可能的参数在训练集上训练一个模型 在测试集上表现最好的参数就是最优的参数 模型最终的表现好坏与初始数据训练集和测试集的划分有很大的关系 测试集数据没有被训练 可
  • javaweb 解出与svn 服务器的绑定。

    情况描述 今天在上传项目时 误传项目的上传路径 解决办法 先移除在VisualSVN Server服务器上的相关目录 在客户端移除项目与VisualSVN Server的绑定关系 示例截图 第一步 断开与svn 服务器连接 第二步 清除sv
  • python中 for i in range(10)_Python for i in range ()用法详解

    for i in range 作用 range 是一个函数 for i in range 就是给i赋值 比如 for i in range 1 3 就是把1 2依次赋值给i range 函数的使用是这样的 range start stop
  • 树莓派学习(三):安装pytorch并验证

    树莓派学习 三 安装pytorch并验证标题 步骤一 创建一个虚拟环境 步骤二 安装pythorch 步骤三 测试 彩蛋 步骤一 创建一个虚拟环境 conda create name pytorchcpu python 3 9 10 如果需
  • java中null和isEmpty的区别

    isEmpty 分配了内存空间 值为空 是绝对的空 里面的值为空 分配了内存空间 值为空字符串 是相对的空 里面的值为空 null 未分配内存空间 没有值 是一种无值 值不存在 结论 null只能分辨出值是否分配内存空间 isEmpty不能
  • 7.1 大学排行榜分析(project)

    大学排名没有绝对的公正与权威 文件 alumni txt soft txt 中为按照不同评价体系给出的国内大学前100名排行 对比两个排行榜单前m的学校的上榜情况 分析不同排行榜排名的差异 输入输出 第一行输入1 第二行输入m 输出在alu
  • Linux下安装Redis

    redis安装和配置 1 安装 下载安装包 上次课前资料提供的安装包 或者 官网下载 建议上传到我们的home下 home leyou 解压 tar xvf redis 4 0 9 tar gz 编译安装 mv redis 4 0 9 re
  • VMware虚拟机安装CentOS7 Linux教程一篇笔记搞定(超详细)

    VMware虚拟机CentOS7教程篇 自己在网上找了好多资源 结果发现都不全面 教完安装CentOS7系统之后就没有下文了 网络配置 虚拟机网络ip修改地址等等都没有 想想自己还是出一篇比较详细的CentOS7安装教程吧 创作不易 感觉对
  • 关于一个大一学生的俄罗斯方块项目分享C#开发,附源码(一)

    本人为一双非大一计科新生 这是我第一篇文章 能力一般 水平有限 能在各位大佬面前弄斧 不胜荣幸 事情是这样的 我寒假买了一个3ds掌机 玩了里面很多游戏 其中最令我着迷的就是俄罗斯方块 说实话以前也玩过 但不知怎么就上瘾了 沉迷于刷分 什么
  • ChatGPT的出现会不会导致底层程序员失业?

    最近这段时间想必和我一样 都被ChatGPT刷屏了 对于这个问题 我尝试问了一下ChatGPT 它是这样说的 没错 上面的内容是ChatGPT自己 给出的回答 答案当然是 不会 程序员的核心不在于实现一个功能甚至不在于写出代码 而在于编码思
  • 数据库综合练习

    下图分别是练习中的教师表 学生表 成绩表 科目表 练习如下 1 查询 c001 课程比 c002 课程成绩高的所有学生的学号 方法一 使用自连接select c sno 学号from sc cinner join sc t on c sno