实验5实验报告

.

学号: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

图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班')

可编辑

.

图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')

图5-6

(4) 查询选修了学号为“2001050105”的学生所选全部课程的学生姓名。 select st_name

from st_info where st_id in

(select distinct st_id from s_c_info where not exists (select* from s_c_info

where st_id='2001050105'and not exists

(select* from s_c_info where st_info.st_id=s_c_info.st_id and c_no=any(select c_no from s_c_info where st_id='2001050105'))))

可编辑

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4