一、实验目的
1.掌握Management Studio的使用。
2.掌握SQL中Select命令的使用。
3. 熟悉基本的SELECT查询语句及其相关子句。
二、实验内容及要求
用SQL语句完成下列查询。此次实验开始使用的SCHOOL数据库如附录所示。
本实验需要先将老师提供的school以 还原/附加/代码创建并导入数据 的方式加载到自己的SQL SERVER中。
1. 查询学生的姓名、性别、班级编号,并把结果存储在一张新表中。(提示:用Select……Into……)
--查询学生的姓名、性别、班级编号,并把结果存储在一张新表中。(提示:用Select……Into……)
SELECT Stu_name,Stu_sex, Class_id
INTO newStudent
FROM Student
2.查询男生的资料。
--查询男生的资料
SELECT *
FROM Student
WHERE Stu_sex = '男'
3.查询计算机系的班级信息。
--查询计算机系的班级信息。
SELECT *
FROM Class
WHERE Depar_id = '01'
4.查询年龄小于30岁的女同学的学号和姓名。(获取系统当前时间函数:getdate(),获取时间的年份函数:year,获取月份函数:month,获取“日”函数:day)
--查询年龄小于30岁的女同学的学号和姓名。(获取系统当前时间函数:getdate(),获取时间的年份函数:year,获取月份函数:month,获取“日”函数:day)
SELECT Stu_id ,Stu_name,age
FROM Student
WHERE Stu_sex = '女' AND (datepart(year,getdate())-datepart(year,Birthday)) < 30
5.查询艾老师所教的课程号(like和匹配符)。
--查询艾老师所教的课程号(like和匹配符)。
SELECT Course_id,Course_name
FROM Course
WHERE Course_id IN (
SELECT Teac_ID
FROM Teacher
WHERE Teac_name LIKE '%艾%'
6.在学生基本信息表Student中检索学生的姓名和出生年份,输出的列名为STUDENT_NAME和BIRTH_YEAR。(别名)
--在学生基本信息表Student中检索学生的姓名和出生年份,输出的列名为STUDENT_NAME和BIRTH_YEAR。(别名)
SELECT Stu_name AS STUDENT_NAME, Birthday AS BIRTH_YEAR
FROM Student
7.求选修课程“0511”且排名为前10%学生的学号及其成绩。(Top 10 percent, order by)
--求选修课程“0511”且排名为前10%学生的学号及其成绩。(Top 10 percent, order by)
SELECT Stu_id, Grade
FROM (
SELECT Stu_id, Grade, NTILE(10) OVER (ORDER BY Grade DESC) as Percentile
FROM StudentGrade
WHERE Course_id = '0511'
) as Subquery
WHERE Percentile = 1
8.查询 “张三”的学号。
--查询 “张三”的学号。(由于所提供的数据并无张三,将查询对象选为“陆蝶”
SELECT Stu_id
FROM Student
WHERE Stu_name = '陆蝶'
9.查询课程“0101”的成绩在80与90之间的同学的学号。
--查询课程“0101”的成绩在80与90之间的同学的学号。
SELECT Stu_id
FROM StudentGrade
WHERE Course_id = '0101' AND Grade BETWEEN 80 AND 90