数据库的单表查询和连接查询
一、目的:
- 掌握无条件查询的使用方法。
- 掌握条件查询的使用方法。
- 掌握库函数及汇总查询的使用方法。
- 掌握分组查询的使用方法。
- 掌握查询的排序方法。
- 掌握连接查询的使用方法。
二、环境概述:
- SQL Server 2019
- SQL Server Management Studio 管理工具
三、数据库的查询:
1. 根据创建的学生作业管理数据库以及其中的学生表、课程表和学生作业表,进行以下的查询操作。
(1) 查询各位学生的学号、班级和姓名。
use 学生作业管理
go
select 学号,姓名,专业班级 from 学生表
(2) 查询课程的全部信息。
select * from 课程表
(3) 查询数据库中有哪些专业班级。
select 专业班级 from 学生表 group by 专业班级
(4) 查询学时数大于60的课程信息。
select * from 课程表 where 学时数 > 60
(5) 查询在1986年出生的学生的学号、姓名和出生日期。
select 学号,姓名,出生日期 from 学生表 where datename(year,出生日期) = ’1986'
(6) 查询三次作业的成绩都在80分以上的学号、课程号。
select 学号,课程号 from 学生作业表 where
(作业1成绩 > 80 and 作业2成绩 > 80 and 作业3成绩 > 80)
(7) 查询姓张的学生的学号、姓名和专业班级。
select 学号,姓名,专业班级 from 学生表 where 姓名 like ’张%’
(8) 查询05级的男生信息。
select * from 学生表 where (专业班级 like '%05’ and 性别 = ’男’)
(9) 查询没有作业成绩的学号和课程号。
select 学号,课程号 from 学生作业表 where
(作业1成绩 is null or 作业2成绩 is null or 作业3成绩 is null)
(10) 查询学号为0538的学生的作业1总分。
select 学号, sum(作业1成绩) as 作业1总分 from 学生作业表
where(学号='0538’) group by 学号
(11) 查询选修了K001课程的学生人数。
select count(课程号) as 选课人数 from 学生作业表 where 课程号 = 'KO01'
(12) 查询数据库中共有多少个班级。
select count(distinct专业班级) as 班级数 from 学生表
(13) 查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。
select 学生作业表.学号,avg(作业1成绩) as avg1,avg(作业2成绩)as avg2,avg(作业3成绩) as avg3,
count(学生作业表.课程号) as cnt from 课程表 inner join 学生作业表
on 课程表.课程号 = 学生作业表.课程号
group by 学生作业表.学号
having count(学生作业表.课程号) >= 3
(14) 查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)。
select学生表.学号,学生表.姓名,课程表.课程名
from 课程表 inner join学生作业表 on 课程表.课程号=学生作业表.课程号
inner join 学生表 on 学生作业表.学号=学生表.学号
where 姓名=’于兰兰'
select 学生表.学号, 学生表.姓名, 课程表.课程名 from 课程表,学生作业表,学生表
where 课程表.课程号 = 学生作业表.课程号
and 学生作业表.学号 =学生表.学号 and 姓名 = '于兰兰’