实验:数据库单表查询
一、实验目的
1. 掌握SELECT语句的基本语法和查询条件表示方法; 2. 掌握查询条件表达式和使用方法; 3. 掌握GROUP BY 子句的作用和使用方法; 4. 掌握HAVING子句的作用和使用方法; 5. 掌握ORDER BY子句的作用和使用方法。 二、实验环境
已安装SQL Server 2005 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时
2学时 四、实验要求
1. 了解数据库查询;
2. 了解数据库查询的实现方式; 3. 完成实验报告; 五、实验内容及步骤
以《实验:管理SQL Server表数据》数据库中数据为基础,请使用T-SQL 语句实现以下操作:
1. 列出所有不姓刘的所有学生;
USE student GO
SELECT * FROM student WHERE Sname NOT LIKE '刘%' GO
2. 列出姓?沈?且全名为3个汉字的学生;(表中没有符合的,故用刘代替)
USE student GO
SELECT * FROM student WHERE Sname LIKE '刘_[^ ]' GO
3. 显示在1985年以后出生的学生的基本信息;
USE student GO
SELECT * FROM student
WHERE YEAR(GETDATE())-1985>Sage GO
4. 按照?性别、学号、姓名、年龄、院系?的顺序列出学生信息,其中性别按
以下规定显示:性别为男显示为男 生,性别为女显示为女 生,其他显示为?条件不明?;
USE student GO
SELECT Ssex=
CASE Ssex
WHEN '男' THEN '男生' WHEN '女' THEN '女生'
ELSE '情况不明' END,
Sno, Sname, Sage, Sdept FROM student GO
5. 查询出课程名含有?数据?字串的所有课程基本信息;
USE student GO
SELECT * FROM course WHERE Cname LIKE '%数据%' GO
6. 显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性
别、年龄及院系;
USE student GO
SELECT Sno,Sname,Ssex,Sage,Sdept FROM student
WHERE Sno LIKE '_______[1-4,9]%' OR Sno LIKE '________[1-4,9]' GO
7. 列出选修了‘1’课程的学生,按成绩的降序排列;
USE student GO
SELECT student.Sno,Sname,Ssex,Sage,Sdept,Grade FROM student,sc WHERE Cno=1 AND student.Sno=sc.Sno ORDER BY Grade DESC GO
8. 列出同时选修?1?号课程和?2?号课程的所有学生的学号;
USE student GO
SELECT a.Sno FROM sc a,sc b
WHERE a.Cno=1 AND b.Cno=2 AND a.Sno=b.Sno GO