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)
)

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...