SQLServer练习:查询Education数据库中年龄<20的学生及其年龄

0 下载量 73 浏览量 更新于2024-03-21 收藏 56KB DOC 举报
本SQLSERVER查询练习题目中,涉及了一个名为Education的教学数据库,其中包括了三个关系:学生关系s(student_id,student_name,birthday,sex,major)、学习关系sc(student_id,course_id,score)和课程关系course(course_id,course_name,term,period,credit)。要求通过SQL查询语句解决一系列问题。 首先,在单表查询部分,要求查找所有年龄在20岁以下的学生及其年龄。解决这个问题的SQL语句可能如下所示: ```sql SELECT student_name, YEAR(CURRENT_TIMESTAMP) - YEAR(birthday) AS age FROM s WHERE YEAR(CURRENT_TIMESTAMP) - YEAR(birthday) < 20; ``` 这条SQL语句通过计算当前日期与学生出生日期之间的年份差,从而得到学生的年龄,并筛选出年龄在20岁以下的学生。 接着,在多表查询部分,可能会涉及到需要联合多个表进行查询的情况。例如,查询某学生的姓名、所选课程及对应的成绩: ```sql SELECT s.student_name, c.course_name, sc.score FROM s JOIN sc ON s.student_id = sc.student_id JOIN course c ON sc.course_id = c.course_id WHERE s.student_name = 'XX'; ``` 这条SQL语句通过将学生关系s、学习关系sc和课程关系course联合查询,得到了某名叫XX的学生所选课程及对应成绩的信息。 除此之外,还可能需要用到一些特殊函数或关键字来辅助查询操作。比如,如果要查询某门课程的平均学分,可以使用AVG函数: ```sql SELECT AVG(credit) FROM course WHERE course_name = '某门课程名'; ``` 这条SQL语句通过AVG函数计算了某门课程的平均学分,并提供了一个示例应用。 综上所述,SQL查询在教学数据库Education中的应用非常丰富多样,可以帮助用户灵活高效地获取所需信息。做好查询练习题目有助于提升对SQL语法和数据库操作的理解和熟练程度,为日后处理复杂数据提供坚实基础。