数据库实验3

news/2024/11/7 18:49:42/
-- 实验3
# 1. 嵌套查询
#
# (1)在stuinfo表中查找与“刘东阳”性别相同的所有学生的姓名、出生日期。
select 姓名, 出生日期
from stuinfo
where 性别 = (select 性别from stuinfowhere 姓名 = '刘东阳');
# (2)使用IN查找所修课程编号为002、005的学生学号、姓名、性别。
select 学号, 姓名, 性别
from stuinfo
where 学号 in (select 学号from gradewhere 课程编号 = '002'or 课程编号 = '005');
# (3)在grade表中查找分数比学号为2020002的学生的某个分数高的学生信息。
select 分数
from grade
where 分数 > (select min(分数)from gradewhere 学号 = '2020002');
# (4)在grade表中查找分数比学号为2020002的学生的最高成绩还要高的学生信息。
select*
from stuinfo sjoin grade g
where 分数 > (select max(分数)from gradewhere 学号 = '2020002')and s.学号 = g.学号;# (5)把stuinfo表中姓“刘”的学生的学号、姓名与姓“张”的学生的学号、姓名合并一个表中。
create table zl as (select 姓名, 学号from stuinfowhere 姓名 like '刘%'or 姓名 like '张%');
# (6)查询分数在80-90范围内的学生的学号、姓名、分数。
select s.学号, 姓名, 分数
from stuinfo sjoin grade g
where g.分数 between 80 and 90;
# (7)使用INNER JOIN查询学习了“数据库原理及应用”课程的学生学号、姓名、课程名称和分数。
select s.学号, 姓名, c.课程名称, g.分数
from stuinfo sinner join grade ginner join course con s.学号 = g.学号 and c.课程编号 = g.课程编号 and c.课程名称 = '数据库原理及应用';
# (8)查询每个学生所选课程的最高成绩,要求列出学号、姓名、最高成绩。
select s.学号, 姓名, 分数
from stuinfo s,grade g
where s.学号 = g.学号and 分数 in (select max(分数)from gradegroup by grade.学号);# (9)使用左外连接查询每个学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总成绩为空。
select s.学号, 姓名, 分数
from stuinfo sleft join grade gon g.学号 = s.学号;
# (10)为grade表添加数据行:学号为2020004、课程编号为006、分数为76。
insert into grade
values ('2020004', '006', 76);
# (11)用EXISTS查询跟刘东阳不在同一个系的同学的姓名和系部信息。
-- 题目错误
# (12)查询选修了001和002号课程的学生姓名和年龄。
SELECT s.姓名, YEAR(CURDATE()) - YEAR(s.出生日期) AS 年龄
FROM stuinfo sJOIN grade g ON s.学号 = g.学号
WHERE g.课程编号 IN ('001', '002');
# (13)查询比计算机系任何一个学生年龄都小的学生姓名、年龄。
select 姓名, YEAR(CURDATE()) - YEAR(s.出生日期) AS 年龄
from stuinfo s
where 出生日期 = (select max(出生日期)from stuinfo);
# (14)查询年龄比所有女生年龄大的男生的学号、年龄。
select 学号, YEAR(CURDATE()) - YEAR(s.出生日期) as 年龄
from stuinfo s
where 出生日期 > (select min(stuinfo.出生日期)from stuinfowhere stuinfo.姓名='女');
# (15)查询比数学系任何一个学生年龄都大的学生姓名、年龄。
-- 不存在该字段
# (16)查询刘晨没选的所有课程的课程号。
select 课程编号
from grade
where grade.课程编号 not in(select 课程编号from grade,stuinfowhere stuinfo.学号=grade.学号and stuinfo.姓名='刘晨');
# (17)使用右外连接查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,course表中没有的课程查询表中的列值为空。
select c.课程编号,c.课程名称,count(g.学号)as 选修人数
from  course c right join grade g
on g.课程编号=c.课程编号
group by c.课程编号,c.课程名称;


http://www.ppmy.cn/news/1195643.html

相关文章

react使用react-sortable-hoc实现拖拽

react-sortable-hoc拖拽 安装 npm install react-sortable-hoc --save 代码如下(示例): import React, { useImperativeHandle, forwardRef, memo, useState } from react;import { DrawerForm } from ant-design/pro-form;import { messag…

【TS篇三】类、函数、for-of循环、类型推断

文章目录 一、类1.1 基本示例1.2 继承1.3 实例成员访问修饰符1.3.1 public 开放的1.3.2 private 私有的1.3.3 protected 受保护的1.3.4 readonly 只读的1.3.5 在参数中使用修饰符 1.4 属性的存(get)取(set)器1.5 静态成员 二、函数…

rhcsa-vim

命令行的三种模式 将ets下的passwd文件复制到普通用户下面 编辑模式的快捷方式 a--光标后插入 A--行尾插入 o--光标所在上一行插入 O--光标所在上一行插入 i--光标前插入 I--行首插入 s--删除光标所在位然后进行插入模式 S--删除光标所在行然后进行插入 命令模式的快捷…

成人听力筛查的现状

作者:兰明,医学硕士,听力学博士,听觉健康门诊主任。 你有听力障碍吗?你的家人有听力障碍吗?如果有人提出这样的问题,你的回答多数都是“真不知道”。为什么? 因为我们缺乏成人…

代码之言:程序员的注释之道

目录 前言程序员不写注释的立场如何写出漂亮的注释结语 前言 在编程世界中,注释是一种看似微不足道但实际上至关重要的元素。它们是代码的伴随者,为代码库的使用者和维护者提供了重要的上下文和指导。然而,有一群程序员坚持不写注释&#xf…

SpringBoot集成Dubbo

在SpringMVC中Dubbo的使用https://tiantian.blog.csdn.net/article/details/134194696?spm1001.2014.3001.5502 阿里巴巴提供了Dubbo集成SpringBoot开源项目。(这个.....) 地址GitHub https://github.com/apache/dubbo-spring-boot-project 查看入门教程 反正是pilipala一大…

docker 安装 mysql (单体架构)

文章归档:https://www.yuque.com/u27599042/coding_star/nckzqa73g47hgz3x 查询 MySQL 镜像 docker search mysql拉取 MySQL 镜像 docker pull mysql在宿主机创建映射目录 mkdir -p \ /home/docker/mysql/log \ /home/docker/mysql/data \ /home/docker/mysql/co…

mit6.s081 笔记

1、系统调用 系统调用具体过程。 在任何地方,当我们需要使用系统调用时,只需要include “user/user.h”,就可以通过里面的函数声明来调系统调用,其函数的具体实现由 user/usys.pl 脚本帮我们生成对应的汇编代码(具体代…