实验3 数据查询
1.实验目的
(1)掌握使用Transact-SQL的SELECT语句进行基本查询的方法。
(2)掌握使用SELECT语句进行条件查询的方法。
(3)掌握SELECT语句的GROUP BY、ORDER BY以及UNION子句的作用和使用方法。
(4)掌握嵌套查询的方法。
(5)掌握连接查询的操作方法。
2.实验内容及步骤
请先附加studentsdb数据库,然后完成以下实验。
简单查询:
(1)在studentsdb数据库中,使用下列SQL语句将输出什么?请用文字描述
SELECT COUNT(*) FROM grade
答:
SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())
答:
(2)
①在student_info表中,查询每个学生的学号、姓名、出生日期信息。
答:
②查询学号为‘0001’的学生的姓名和家庭住址。
答:
③出所有男同学的学号和姓名。
答:
(3)
①在grade表中查分数在‘80~90’范围内的学生的学号和分数。
答:
②在grade表中查询课程编号为k003的学生的平均分。
答:
③在grade表中查询学习各门课程的人数。
答:
④将学生按出生日期由大到小排序。
答:
⑤查询所有姓“张”的学生的学号和姓名。
答:
(4)对student_info表,按性别顺序列出学生的学号、姓名、性别、出生日期及家庭住址,性别相同的按学号由小到大排序。
答:
(5)使用GROUP BY查询子句,列出各个学生的平均成绩。
答:
(6)使用UNION运算符将student_info表中姓“张”的学生的学号、姓名与
curriculum表的课程编号、课程名称返回在一个表中,
且列名为u_编号、u_名称,
答:
图1-8 联合查询结果集
嵌套查询:
(7)
①在student_info表中查与“刘卫平”性别相同的所有学生的姓名、出生日期。
--select * from student_info
答:
②使用IN子查询查所修课程编号为k002、k005的学生学号、姓名、性别。
答:
③列出学号为’0001’的学生的分数比’0002’学号的学生的最低分数高的课程编号和分数。
答:
④列出学号为’0001’的学生的分数比学号为’0002’的学生的最高成绩还要高的课程编号和分数。
select语句查询日期
答:
连接查询。
(8)
①查询分数在80~90范围内的学生的学号、姓名、分数。[用WHERE连接查询]
答:
②查询学习“C语言程序设计”课程的学生的学号、姓名、分数。 [用INNER JOIN 连接查询]
答:
③查询所有男同学的选课情况,要求列出学号、姓名、课程名称、分数。
答:
④查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程编号、分数。
答:
⑤查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总成绩为空。[使用左外连接。
答:
⑤为grade表添加数据行:学号为'0004'、课程编号为K006、分数为‘76‘。查询所有课程的选
修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有的课程列值为空。[使用右外连接。]
答:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。