SQL 语句练习03
创始人
2024-04-23 14:58:49
0

目录

一、建表

二、插入数据

三、查询


一、建表

        这里先建好我们下面查询需要的表,方便后续查询。

  1. 建立如下学生表(命名格式“姓名拼音_三位学号_week5s”, 如LBJ_023_week5s)

create table LYL_116_week5s(SNO varchar(4) primary key,SNAME varchar(5))
  1. 建立如下课程表(命名格式“姓名拼音_三位学号_week5c”, 如LBJ_023_week5c)

create table LYL_116_week5c(CNO varchar(5),CNAME varchar(6),primary key(CNO))
  1. 建立如下学生表(命名格式“姓名拼音_三位学号_week5sc”, 如LBJ_023_week5sc)

create table LYL_116_week5sc(SNO varchar(4),CNO varchar(5),GRADE int,
foreign key(SNO) references LYL_116_week5s(SNO),
foreign key(CNO) references LYL_116_week5c(CNO))

二、插入数据

        这里我们先插入好数据,方便后续进行查询。

insert into LYL_116_week5s values('S1','老大');
insert into LYL_116_week5s values('S2','老二');
insert into LYL_116_week5s values('S3','老三');
insert into LYL_116_week5s values('S4','老四');
insert into LYL_116_week5s values('S5','老五');

insert into LYL_116_week5c values('C1','课一')
insert into LYL_116_week5c values('C2','课二')
insert into LYL_116_week5c values('C3','课三')
insert into LYL_116_week5c values('C4','课四')

 

insert into LYL_116_week5sc values('S1','C1',10)
insert into LYL_116_week5sc values('S1','C2',15)
insert into LYL_116_week5sc values('S1','C3',20)
insert into LYL_116_week5sc values('S1','C4',25)
insert into LYL_116_week5sc values('S2','C1',30)
insert into LYL_116_week5sc values('S2','C2',35)
insert into LYL_116_week5sc values('S2','C3',40)
insert into LYL_116_week5sc values('S3','C1',45)
insert into LYL_116_week5sc values('S3','C2',50)
insert into LYL_116_week5sc values('S4','C1',55)

三、查询

  1. 检索至少选修一门课程的学生学号
select distinct SNO from LYL_116_week5sc
  1. 检索一门课程都没选修的学生学号
select SNO from LYL_116_week5s where SNO 
not in (select SNO from LYL_116_week5sc)
  1. 检索至少选修两门课程的学生学号
select SNO from LYL_116_week5sc 
group by SNO having count(SNO)>=2
  1. 检索恰好选修一门课程的学生学号
select SNO from LYL_116_week5sc 
group by SNO having count(SNO)=1
  1. 检索至少选修三门课程的学生学号
select SNO from LYL_116_week5sc 
group by SNO having count(SNO)>=3
  1. 检索全部课程都选的学生学号
select SNO from LYL_116_week5s s where not exists(select * from LYL_116_week5c c where not exists(select * from LYL_116_week5sc scwhere s.SNO=sc.SNO and c.CNO=sc.CNO)
)
  1. 检索选了S2所选全部课程的学生学号
select distinct SNO from LYL_116_week5sc sc1 
where not exists(select * from LYL_116_week5sc sc2where sc2.SNO='S2'and not exists(select * from LYL_116_week5sc sc3where sc3.SNO = sc1.SNOand sc3.CNO = sc2.CNO)
)

相关内容

热门资讯

不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
安卓文字转语音tts没有声音 安卓文字转语音TTS没有声音的问题在应用中比较常见,通常是由于一些设置或者代码逻辑问题导致的。本文将...
APK正在安装,但应用程序列表... 这个问题可能是由于以下原因导致的:应用程序安装的APK文件可能存在问题。设备上已经存在同名的应用程序...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
报告实验.pdfbase.tt... 这个错误通常是由于找不到字体文件或者文件路径不正确导致的。以下是一些解决方法:确认字体文件是否存在:...