学号:20164477 姓名:陈家凤
实验五
SQL语言
一、目的与要求
1. 掌握SQL语言的查询功能; 2. 掌握SQL语言的数据操作功能;
3. 掌握对象资源管理器建立查询、索引和视图的方法;
二、实验准备
1. 了解SQL语言的查改增删四大操作的语法; 2. 了解查询、索引和视图的概念; 3. 了解各类常用函数的含义。
三、实验内容
(一)SQL查询功能
使用提供的studentdb数据库文件,先附加到目录树中,再完成下列题目,SQL命令请保存到脚本文件中。 1.基本查询
(1) 查询所有姓王的学生的姓名、学号和性别
Select St_Name,St_Sex,St_ID From st_info
Where St_Name like'王%'
图5-1
(2) 查询全体学生的情况,查询结构按班级降序排列,同一班级再按学号升序,并将结果存入新表new中
select *into new from st_info
order by Cl_Name desc,st_ID asc
1 / 13
图5-2
(3) 对S_C_info表中选修了“体育”课的学生的平均成绩生成汇总行和明细行。(提示:用compute汇总计算)
因2014版本已不支持compute关键字,所以选择用其他方式。 Select c_no,score From s_c_info
Where c_no=29000011 group by c_no,score
图5-3
2.嵌套查询
(1) 查询其他班级中比“材料科学0601班”的学生年龄都大的学生姓名和年龄
select st_name,born_date from st_info
where cl_name!='材料科学0601班'and born_date<(select min(born_date) from st_info where cl_name='材料科学0601班')
2 / 13
图5-4
(2) 用exists查询选修了“9710041”课程的学生姓名 select st_name from st_info
where exists(select*from s_c_info where c_no=9710041 and st_id=st_info.st_id)
图5-5
(3) 用in查询找出没有选修“9710041”课程的学生的姓名和所在班级。 select st_name,cl_name from st_info
where st_id not in(select st_id from s_c_info where c_no='9710041')
3 / 13