文档库

最新最全的文档下载
当前位置:文档库 > 数据库 实验报告

数据库 实验报告

实验报告

一.、实验环境

系统:Microsoft Windows XP

数据库管理系统:SQL Server 2005

二、实验过程

(一)建立数据库

create database Colleage;

(二)我所建的表

1.“专业”表

Create table Profession(

ProName Char(5) primary key,

Leader char(5)

)

2.课程表

create table Course(

Cno char(5) primary key,

Cname char(20),

Ctime smallint,

Cgrade smallint

)

3.成绩表

create table Grade(

Sno char(7),

Cno char(5),

primary key(Sno,Cno),

Foreign key (Sno) references Student(Sno),

foreign key (Cno) references Course(Cno),

UsualGrade char(3),

MidGrade char(3),

LastGrade char(3)

)

(三)输入数据

(四)查询

1、查询在78年12月31日之后出生的学生的学号和姓名(Sbirthday 为datetime类型)

select Sno 学号, Sname 姓名from Student where Sbirthday>'1978-12-31 00:00:00'

或者 select Sno 学号,Sname 姓名from Student where Sbirthday> cast('1978-12-31'as datetime)

数据库 实验报告

2、查询入学成绩大于500分的女同学和入学成绩大于600分的男同学的姓名

select Sname from Student where Sgrade>'500'and Ssex='女' or Sgrade>'600'and Ssex='男'

数据库 实验报告

3、查询家在江岸小区住的学生的姓名和家庭住址

select Sname 姓名,StudentInfor.Shomeaddress 家庭住址from

Student,StudentInfor

where Student.Sno=StudentInfor.Sno and Shomeaddress like'江岸小区%'

数据库 实验报告

4、查询没有选修姜晓红老师所授课程的学生的学号

select distinct Sno from Student where Sno not in(

select Sno 学号

from Grade,Instructor

where Tno=(select Tno from Teacher where Tname='姜晓红')

and http://www.wendangku.net/doc/1ba67f730722192e4436f603.htmlo=http://www.wendangku.net/doc/1ba67f730722192e4436f603.htmlo

)

或者

select distinct Sno from student

where

student.sno not in

(select sno from grade,teacher,instructor

where teacher.Tno = instructor.tno

and http://www.wendangku.net/doc/1ba67f730722192e4436f603.htmlo = http://www.wendangku.net/doc/1ba67f730722192e4436f603.htmlo

and teacher.Tname='姜晓红')

数据库 实验报告

5、查询各学生所选课的期末平均成绩,学生学号,姓名

数据库 实验报告

6、查询赵东所选修的课程的课程名及其学号、姓名

select Student.Sname,Student.Sno,http://www.wendangku.net/doc/1ba67f730722192e4436f603.htmlame

from Student,Grade,Course

where Student.Sno=Grade.Sno and http://www.wendangku.net/doc/1ba67f730722192e4436f603.htmlo=http://www.wendangku.net/doc/1ba67f730722192e4436f603.htmlo and Student.Sname='赵东'

7、查询由教授所任课的课程名

数据库 实验报告

8、统计没有贷款的学生的人数(Sloans 为bit 类型)

select count(*)from Student where Student.Sloans='false'

或者

select count(*)from Student where Student.Sloans=1

数据库 实验报告

9、查询每个科目平时、期中及期末三个成绩的平均成绩在80分以上的学生的学号

数据库 实验报告

10、查询和毛杰同学所学专业一样的人的学号和姓名

数据库 实验报告

11、查询期末成绩大于任何一个老师所教学生的期末成绩的学生姓名、选修课程号、成

数据库 实验报告

12、来了一位新同学,学号为9607001,省份证号为530120169021100

数据库 实验报告

13、将期末成绩在所有人的期末平均成绩以上的同学加10分

数据库 实验报告

14、查询至少选修了付林老师所授所有课程的学生学号

select Sno

from Grade

where not exists(

select*from Grade where Tno in

(select Tno from Teacher,Instructor where Tname='付林')

and Teacher.Tno=Instructor.Tno)

and not exists(select*from Grade

15、统计每个老师授课的种数

数据库 实验报告

只统计及格的课程),并按其平均成绩降序排列输出

数据库 实验报告

17、查询没有贷款的学生的学号

数据库 实验报告

18、查询年龄最大的学生的学号和姓名

数据库 实验报告

四、实验总结

刚开始做实验的时候才明白,自己还有很多地方都是一知半解的,比如建表的时候,特别是有外键的时候,经常要翻书,体会到了这方面的不足。遇到最大的困难是查询部分,刚开始做的时候,非常艰难,每个题目都查找书上去找类似的例子,才能做出来,特别是连接查询,都不会怎么连接,之后,我仔细看了一遍书上的例子,争取每个都自己写一遍,慢慢的就发现了规律,大概有三步,一是确定要查什么,二是看要用到哪些表,三是看有什么条件,思路清楚之后,就好办了,几乎所有要查询的题目都一个一个被解决了,只有第14题,要用到除法的查询,还是不懂怎么做。

通过此次实验,不仅大大提高了我对数据库的操作能力,更重要的事,让我深刻体会到了实践的重要性,书本上的例子,只有都去敲一遍,才能真正学会。