实验二:2.数据库单表查询
一、实验目的
- 掌握SELECT语句的基本语法和查询条件表示方法;
- 掌握查询条件表达式和使用方法;
- 掌握GROUP BY 子句的作用和使用方法;
- 掌握HAVING子句的作用和使用方法;
- 掌握ORDER BY子句的作用和使用方法。
二、实验学时
2学时
三、实验要求 - 熟练数据库查询语句;
- 掌握数据库查询的实现方式;
- 完成实验报告;
四、实验内容
以数据库原理实验4数据库中数据为基础,请使用T-SQL 语句实现以下操作: - 列出所有不姓刘的所有学生的基本信息;
select *
from student
where Sname not like ‘刘%’ - 列出姓“王”且全名为3个汉字的学生的基本信息;
select *
from student
where Sname like ‘王__’ and len(Sname)=3 - 显示在1985年以后出生的学生的基本信息;
select *
from student
where (2019-Sage)>=1985 - 按照“性别、学号、姓名、年龄、院系”的顺序列出学生信息;
select Ssex,Sno,Sname,Sage,Sdept
from student - 显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系;
select *
from student
where Sno like ‘%[12349]’ or Sno like ‘_______[12349]%’ - 列出选修了‘1’课程的学生的学号和成绩,按成绩的降序排列;
select Sno,Grade
from sc
where Cno=1
order by Grade desc - 按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩;
select *
from sc
where Grade between 70 and 80
order by Cno,Grade desc - 按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩;
select count(Sno)总人数,max(Grade)最高成绩,min(Grade)最低成绩,avg(Grade)平均成绩
from sc
order by Cno desc - 显示选修的课程数大于3的各个学生的选修课程数;
select Sno , count(Cno)
from sc
group by Sno
having count(cno) > 3; - 列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;
select Sno,avg(Grade) 平均成绩
from sc
where Sno in (
select Sno
from sc
where Grade<60
group by Sno
having count(Sno)>=2 )
group by Sno;
注:需要在实验报告册中写出每道题的T-SQL语句。
五、实验步骤
命令方式:在【SQL Server Management Studio】窗口左上方选择【新建查询】按钮,启动SQL编辑器窗口,在光标处输入T-SQL语句,单击【执行】按钮。例如第一题可输入:
select * from student where sname not like ‘刘%’