数据库系统原理实验报告三

  • 格式:doc
  • 大小:71.00 KB
  • 文档页数:5

1

贵州大学实验报告

学院: 专业: 班级:

姓名 学号 实验组

实验时间 指导教师 成绩

实验课程名称 数据库系统原理

实验项目名称 数据库操作语言(2)

实验目的 1.掌握SQL中的连接查询和嵌套查询。

2.掌握SQL中的集合查询和基于派生表的查询。

实验仪器 安装金仓数据库或SQL Server2008的计算机

实验内容和步骤

1.执行本次实验预先准备好的sql脚本,准备好实验数据(如已有实验数据,则可忽略此步骤)。

2.①查询每个学生及其选修课程的情况:

SELECT Student.*, SC.*

FROM Student, SC

WHERE Student.Sno = SC.Sno;

上述查询结构中有重复的数据项,如何改进?

②查询选修2号课程且成绩在90分以上的所有学生的学号和姓名:

SELECT Student.Sno, Sname

FROM Student, SC

WHERE Student.Sno=SC.Sno AND

o=' 2 ' AND SC.Grade>90;

③使用外连接改写①中的任务: 2 SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade

FROM Student LEFT JOIN SC ON

(Student.Sno=SC.Sno);

此处关键词OUT需删掉

④查询每个学生的学号、姓名、选修的课程名及成绩:

SELECT Student.Sno, Sname, Cname, Grade

FROM Student, SC, Course /*多表连接*/

WHERE Student.Sno = SC.Sno

AND o = o;

⑤找出每个学生超过他选修课程平均成绩的课程号:

SELECT Sno, Cno

FROM SC x

WHERE Grade >=(SELECT AVG(Grade)

FROM SC y

WHERE y.Sno=x.Sno);

⑥查询非计算机科学系中比计算机科学系所有学生年龄都小的学生姓名及年龄:

SELECT Sname,Sage

FROM Student

WHERE Sage < ALL

(SELECT Sage

FROM Student

WHERE Sdept= ' CS ')

AND Sdept <> ' CS ’;

3.①查询选修了课程1或者选修了课程2的学生:

SELECT Sno

FROM SC

WHERE Cno=' 1 '

UNION

SELECT Sno 3 FROM SC

WHERE Cno= ' 2 ';

②查询计算机科学系的学生与年龄不大于19岁的学生的差集:

SELECT *

FROM Student

WHERE Sdept='CS'

EXCEPT

SELECT *

FROM Student

WHERE Sage <=19;

③查询所有选修了1号课程的学生姓名,可以用如下查询完成:

SELECT Sname

FROM Student,

(SELECT Sno FROM SC WHERE Cno=' 1 ') AS SC1

WHERE Student.Sno=SC1.Sno;

实验分析与研究

实验内容与步骤2

4 ③

实验内容与步骤3

5 ③

实验总结

指导教师意见

签名: 年 月 日

注:各学院可根据教学需要对以上栏木进行增减。表格内容可根据内容扩充。