数据库单表查询
一、实验目的
掌握SELECT语句的基本语法和查询条件表示方法;
掌握查询条件表达式和使用方法;
掌握GROUP BY 子句的作用和使用方法;
掌握HAVING子句的作用和使用方法;
掌握ORDER BY子句的作用和使用方法。
二、实验环境
已安装SQL Server 2005 企业版的计算机(13台);
具有局域网环境,有固定IP;
三、实验学时
2学时
四、实验要求
了解数据库查询;
了解数据库查询的实现方式;
完成实验报告;
五、实验内容及步骤
以数据库原理实验6数据库中数据为基础,请使用T-SQL 语句实现以下操作:
列出所有不姓刘的所有学生;(not like)
1
2
3select *
from s
where 姓名 not like '刘%'列出姓“张”且全名为3个汉字的学生;(张__下滑线表示任意一个字符)
1
2
3select *
from s
where 姓名 like '张__'显示在2000年以后出生的学生的基本信息;
1
2
3select *
from s
where 年龄<=(2018-2000)查询出课程名含有“数据”字串的所有课程基本信息
1
2
3select *
from c
where 课程名 like '数据%'列出选修了‘101’课程的学生,按成绩的降序排列;
1
2
3
4select *
from sc
where 课程号='101'
order by 成绩 desc列出课程表中全部信息,按先修课的升序排列;
按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及所在系,在结果集中列标题分别指定为“学号,姓名,性别,出生年份,所在系”;
1
2
3select 学号,姓名,性别,(2018-年龄) as 出生年份,所在系
from s
order by 出生年份 asc按照院系降序显示所有学生的 “所在系,学号、姓名、性别、年龄”等信息,其中所在系按照以下规定显示:院系为CS显示为计算机系,院系为IS显示为信息系,院系为MA显示为数学系,院系为JZ显示为建筑系,其他显示为院系不明;参考例句
1
2
3
4
5
6
7
8select 姓名,所在系,学号,院系英文书写=case
when 所在系='计算机系' then 'CS'
when 所在系='信息系' then 'IS'
when 所在系='艺术系' then 'AS'
when 所在系='会计系' then 'KS'
end
from s
order by 院系英文书写 DESC
显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模”,其中若该院系人数>=5则该字段值为“规模很大”,若该院系人数大于等于4小于5则该字段值为“规模一般”, 若该院系人数大于等于2小于4则该字段值为“规模稍小”,否则显示“规模很小”;(参考例句,同学们,适当增加、删除记录,观察结果)
1 | select 所在系,COUNT(学号) 人数,院系规模=case |
按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩;
显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄”;
显示选修的课程数大于3的各个学生的选修课程数;
按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩;
显示各个所在系男女生人数,其中在结果集中列标题分别指定为“所在系名称、男生人数、女生人数”;
列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;
六、出现问题及解决办法
如:某些查询操作无法执行,如何解决?