SQL基本表的 查找 练习篇

本文通过一系列的SQL查询实例,涵盖了数据库的基本操作,如增、删、改、查,以及模糊查找、特殊值查找、带有聚集函数的查找和集合查找。详细展示了如何进行单表查询、模糊匹配、查找缺失数据、使用聚集函数和集合操作。实例涵盖了学生信息和选课记录,帮助读者深入理解SQL查询语法。
摘要由CSDN通过智能技术生成

   先导篇一:数据库的数据库的建立、增、删、改、查_做自己的靠山的博客-CSDN博客

   先导篇二:SQL基本表的建立、插入、删除与修改练习篇_做自己的靠山的博客-CSDN博客

 

 

目录

一、单表查询

(1)题目要求

(2)代码展示

(3)运行结果

 二、模糊查找

(1)题目要求

(2)代码展示

(3)运行结果

 三、特殊值查找

(1)题目要求

(2)代码展示

(3)运行结果

四、带有聚集函数的查找

(1)题目要求

(2)代码展示

(3)运行结果

五、集合查找

(1)题目要求

(2)代码展示

(3)运行结果


一、单表查询

(1)题目要求

 1、查询全体学生的详细记录。

 2、查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。

 3、查询选修了课程的学生学号。

 4、查询数学系全体学生的学号(Sno)和姓名 (Sname)。

 5、查询所有年龄在19~22岁(包括19岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。

 6、查询年龄不在19-22岁之间的学生姓名(Sname)及年龄(Sage)。

 7、查询自动化系和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。

(2)代码展示

select *
from Students

select Sname,Sno,Sdept
from Students

select distinct sno
from Reports

select Sno,Sname
from Students
where Sdept='数学'

select Sname,Sage
from Students
where Sage between 19 and 22

select Sname,Sage
from Students
where Sage >22 or Sage<19

select Sno,Sname,Ssex
from Students
where Sdept='计算机' or Sdept = '自动化'

(3)运行结果

 二、模糊查找

(1)题目要求

1、查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。

2、查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)。

3、查询以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况。

(2)代码展示

select Sno,Sname,Ssex
from Students
where Sname like '刘%'

select Cno,Credit
from Course
where Cname like 'DB\_%' escape'\'

select *
from Course
where Cname like 'DB\_%设_'escape'\'

(3)运行结果

 三、特殊值查找

(1)题目要求

假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。试查询缺少成绩的学生的学号(Sno)和相应的课程号(Cno)。

(2)代码展示

select Sno,Cno
from Reports
where Grade is null

(3)运行结果

四、带有聚集函数的查找

(1)题目要求

      查找结果排序

查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列同一系中的学生按年龄(Sage)降序排列。

1、求学生的总人数

2、求选修了课程的学生人数

3、求课程和选修了该课程的学生人数

4、求选修超过2门课的学生学号

 

(2)代码展示

select *
from Students
order by Sdept asc ,Sage desc

select COUNT(*) as '学生人数'
from Students

select COUNT(distinct sno) as '选课的人数'
from Reports

select Cno, '课程人数'=COUNT(Cno)
from Reports
group by Cno

select Sno, COUNT(Sno) as '选课门数'
from Reports
group by Sno
having COUNT(Sno)>2

(3)运行结果

五、集合查找

(1)题目要求

1、查询计算机科学系的学生与年龄不大于19岁的学生的交集

2、查询计算机科学系的学生与年龄不大于19岁的学生的并集

3、查询计算机科学系的学生与年龄不大于19岁的学生的差集

4、查询选修课程‘C01’的学生集合与选修课程‘C02’的学生集合的交集

5、查询选修课程‘C01’的学生集合与选修课程‘C02’的学生集合的并集

6、查询选修课程‘C01’的学生集合与选修课程‘C02’的学生集合的差集

(2)代码展示


select *
from Students
where Sdept='计算机'
intersect
select *
from Students
where Sage<19

select *
from Students
where Sdept='计算机'
union
select *
from Students
where Sage<19

select *
from Students
where Sdept='计算机'
except
select *
from Students
where Sage<19

select Students.Sno
from Students join Reports
on Students.Sno=Reports.Sno
where Cno='C01'
intersect
select Students.Sno
from Students join Reports
on Students.Sno=Reports.Sno
where Cno='C02'

select Students.Sno,Sname,Ssex,Sage,Cno,Sdept
from Students join Reports
on Students.Sno=Reports.Sno
where Cno='C01'
union
select Students.Sno,Sname,Ssex,Sage,Cno,Sdept
from Students join Reports
on Students.Sno=Reports.Sno
where Cno='C02'

select Students.Sno,Sname,Ssex,Sage,Cno,Sdept
from Students join Reports
on Students.Sno=Reports.Sno
where Cno='C01'
except
select Students.Sno,Sname,Ssex,Sage,Cno,Sdept
from Students join Reports
on Students.Sno=Reports.Sno
where Cno='C02'

(3)运行结果

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值