SQL 语句练习03
SQL 语句 练习 03
2023-06-13 09:15:55 时间
目录
一、建表
这里先建好我们下面查询需要的表,方便后续查询。
- 建立如下学生表(命名格式“姓名拼音_三位学号_week5s”, 如LBJ_023_week5s)
create table LYL_116_week5s(SNO varchar(4) primary key,SNAME varchar(5))
- 建立如下课程表(命名格式“姓名拼音_三位学号_week5c”, 如LBJ_023_week5c)
create table LYL_116_week5c(CNO varchar(5),CNAME varchar(6),primary key(CNO))
- 建立如下学生表(命名格式“姓名拼音_三位学号_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)
三、查询
- 检索至少选修一门课程的学生学号
select distinct SNO from LYL_116_week5sc
- 检索一门课程都没选修的学生学号
select SNO from LYL_116_week5s where SNO
not in (select SNO from LYL_116_week5sc)
- 检索至少选修两门课程的学生学号
select SNO from LYL_116_week5sc
group by SNO having count(SNO)>=2
- 检索恰好选修一门课程的学生学号
select SNO from LYL_116_week5sc
group by SNO having count(SNO)=1
- 检索至少选修三门课程的学生学号
select SNO from LYL_116_week5sc
group by SNO having count(SNO)>=3
- 检索全部课程都选的学生学号
select SNO from LYL_116_week5s s where not exists(
select * from LYL_116_week5c c where not exists(
select * from LYL_116_week5sc sc
where s.SNO=sc.SNO and c.CNO=sc.CNO)
)
- 检索选了S2所选全部课程的学生学号
select distinct SNO from LYL_116_week5sc sc1
where not exists(
select * from LYL_116_week5sc sc2
where sc2.SNO='S2'
and not exists(
select * from LYL_116_week5sc sc3
where sc3.SNO = sc1.SNO
and sc3.CNO = sc2.CNO
)
)
相关文章
- SQL语句LIKE CONCAT模糊查询
- mybatis mysql 分页sql语句_使用mybatis分页查询并统计总数「建议收藏」
- if sql语句_SQL IF语句介绍和概述
- ClickHouse 源码解析(一):SQL 的一生(上)
- SQL语句中创建表的语句_用sql创建表
- 什么是pl/sql语句_过程化SQL有三种循环结构
- 2023-01-03:超过5名学生的课。编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序。请问sql语句如
- SQL开发知识:MySQL高级进阶sql语句总结大全
- postgresql SQL语句变量的使用说明
- MySQL操作:执行SQL语句(mysql执行sql语句)
- 数据库操作在Linux系统中操作SQL数据库(linux下sql)
- 利用Oracle执行多条SQL语句(oracle执行多条语句)
- 语句执行记录MySQL 查看SQL语句执行记录(mysql查看sql)
- Oracle表格导出:使用SQL语句快速实现(oracle导出表sql)
- MySQL如何输出SQL语句?25字教程速成!(mysql输出sql)
- MySQL学习:拼接SQL语句的技巧(mysql拼接sql)
- 备份Mysql 批量SQL语句备份方式(mysql批量sql)
- 合并从MySQL中组合多条SQL语句(mysql多条sql)
- MySQL转义字符函数:使得SQL语句中的特殊字符安全地被表示,防止SQL注入。(mysql转义字符函数)
- sql探索SQL Server:前六条SQL语句(sqlserver前六条)
- MSSQL中最佳的SQL语句编写技巧(sql mssql 语句)
- MSSQL恢复数据:从SQL文件进行还原(mssql还原sql文件)
- 用Oracle掌握常用SQL语句(oracle常用sql语句)
- Oracle大小写对SQL语句至关重要(oracle关键字大小写)
- Oracle 高效拼接SQL,节省时间提高效率(Oracle写拼接sql)
- 使用SQL语句查询Redis数据库的操作方法(sql语句查询redis)
- 在SQL中使用Redis实现数据存储(sql 操作redis)
- MySQL计算两字段绝对值,SQL语句操作简单易学(mysql两字段绝对值)
- 写 SQL 语句在 MySQL 中创建和管理用户表(mysql下用户表怎么编)
- 放入程序在Oracle中实现SQL语句转存程序的简易方法(oracle中怎样把语句)
- Oracle中SQL的分类与应用(oracle中sql分类)
- Oracle SQL中最多的数量统计实例(oracle sql数量)
- 查询快速精准查询Oracle SQL语句(oracle sql快捷)