数据库原理实验报告.docx

上传人:b****7 文档编号:11430232 上传时间:2023-03-01 格式:DOCX 页数:23 大小:476.04KB
下载 相关 举报
数据库原理实验报告.docx_第1页
第1页 / 共23页
数据库原理实验报告.docx_第2页
第2页 / 共23页
数据库原理实验报告.docx_第3页
第3页 / 共23页
数据库原理实验报告.docx_第4页
第4页 / 共23页
数据库原理实验报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据库原理实验报告.docx

《数据库原理实验报告.docx》由会员分享,可在线阅读,更多相关《数据库原理实验报告.docx(23页珍藏版)》请在冰豆网上搜索。

数据库原理实验报告.docx

数据库原理实验报告

《数据库原理》

 

学号:

____xxxxxxxxx_____

姓名:

_____xxxxxxxxx____

班级:

___xxxxxxxxxxxx___

指导教师:

___xxxxxxx___

 

中国矿业大学计算机科学与技术学院

2013年3月30日

 

实验一运用SQL语言建立数据库

一、实验目的

1、熟悉Access2000的工作环境,学会在图形用户界面(GUI)和SQL视图两种环境下实现数据定义和数据操纵功能。

2、掌握在图形用户界面中建立数据库、定义基本表、索引、修改表结构、编辑表中的数据等操作的方法。

3、掌握在图形用户界面中建立表之间联系的方法。

二、实验要求

1、实验之前认真查阅相关资料,准备好基本表中的数据。

2、认真实验,将讲课中的操作方法逐一应用到新建的数据库中,观察和记录实验结果。

三、实验内容

1、熟悉Access2000的工作环境

(1)进入Access2000,了解Access图形用户界面中的对象(包括基本表、查询、窗体、报表、数据访问页、宏和模块)的含义。

(2)掌握建立对象的基本方法(包括“使用设计器创建”和“使用向导创建”)。

通过Access2007在如图此处可以创建对象:

 

2、定义和修改基本表

(1)定义基本表、索引、约束(主码约束、外码约束、用户完整性约束)。

(2)修改表结构:

插入新的字段、删除字段、修改字段名称和类型、修改索引、重新排列字段顺序。

(3)           编辑表中的数据:

改变字段的排列顺序、隐藏和显示列、冻结列、改变字段的宽度和记录的高度、改变记录的显示字体、在表中排序。

方法:

通过在设计查询中的SQL视图来填写代码的形式定义基本表、索引以及约束,同时运用填写代码的形式去修改基本表,然后再进行填写实验数据,最终得以完成实验。

3、建立表之间的联系

(1)在图形用户界面中建立多表之间的联系。

(2)通过定义主码和外码自动实现表之间的联系。

(3)编辑联系的属性。

打开Access2007,然后在Access2007中创建空白数据库,进入数据创建界面,点击创建,选择设计查询,选择SQL视图,用在其中填写代码的形式来定义基本表,包括:

学生表、课程表、教师表和学习表。

创建学生表(代码):

CREATETABLE学生

学号CHAR(10),

姓名CHAR(20),

性别CHAR

(2),

年龄INT,

院系CHAR(20),

PRIMARYKEY(学号)

创建课程表(代码):

CREATETABLE课程

课程号CHAR(10),

课程名CHAR(20),

PRIMARYKEY(课程号)

 

创建教师表(代码):

CREATETABLE教师

教师号CHAR(10),

教师名CHAR(20),

性别CHAR

(2),

PRIMARYKEY(教师号)

创建学习表(代码):

CREATETABLE学习

学号CHAR(10),

课程号CHAR(10),

教师号CHAR(10),

成绩INT,

PRIMARYKEY(学号,课程号),

FOREIGNKEY(学号)REFERENCES学生(学号),

FOREIGNKEY(课程号)REFERENCES课程(课程号)

通过以上步骤,完成对基本表的创建,并填入数据(如上图所示),然后对数据进行查询

1、查询学生院系为计算机的学生:

 

2、查询课程

 

3、查询性别为女的教师

 

4、查询成绩小于90的学生的学号

 

所建数据库各表之间的关系为:

 

四、实验体会:

 

实验二运用SQL语言实现数据库的查询功能

一、实验目的

1、掌握SQL的数据定义功能,实现对基本表、约束和索引的定义和修改。

2、掌握SQL的数据操纵功能,实现对表中数据的添加、删除和修改。

3、重点掌握SQL的数据查询功能,利用简单查询、复杂查询和嵌套查询完成预先给出的查询要求。

二、实验要求

1、实验之前认真查阅相关资料,准备好实验方案。

2、认真实验,对实验过程、结果进行分析,注意验证实验效果。

三、实验内容

1、建立和完善如下关系(其中带有下划线的为主码):

学院(学院代码,学院名称)

学生(学号,姓名,性别,学院代码)学院代码为外码;

教师(教师号,教师姓名,学院代码)学院代码为外码;

课程(课程号,课程名,学时);

学习(学号,课程号,成绩)学号为外码,课程号为外码;

开课(教师号,课程号)教师号为外码,课程号为外码

实验步骤:

(1)创建学院表

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

CREATETABLE学院

学院代码CHAR(8)NOTNULLUNIQUE,

学院名称CHAR(20),

PRIMARYKEY(学院代码)

);

运行结果:

 

(2)创建学生表

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

CREATETABLE学生

学号CHAR(8),

姓名CHAR(20),

性别CHAR

(2),

学院代码CHAR(8),

PRIMARYKEY(学号),

FOREIGNKEY(学院代码)REFERENCES学院(学院代码)

);

运行结果:

 

(3)创建教师表

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

CREATETABLE教师

教师号CHAR(8),

教师姓名CHAR(10),

学院代码CHAR(8),

PRIMARYKEY(教师号),

FOREIGNKEY(学院代码)REFERENCES学院(学院代码)

);

运行结果:

 

(4)创建课程表

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

CREATETABLE课程

课程号CHAR(8)NOTNULLUNIQUE,

课程名CHAR(20),

学时SMALLINT,

PRIMARYKEY(课程号)

);

运行结果:

 

(5)创建学习表

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

CREATETABLE学习

学号CHAR(8),

课程号CHAR(8),

成绩SMALLINT,

PRIMARYKEY(学号,课程号),

FOREIGNKEY(学号)REFERENCES学生(学号),

FOREIGNKEY(课程号)REFERENCES课程(课程号)

);

运行结果:

 

(6)创建开课表

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

CREATETABLE开课

教师号CHAR(8),

课程号CHAR(8),

PRIMARYKEY(教师号,课程号),

FOREIGNKEY(教师号)REFERENCES教师(教师号),

FOREIGNKEY(课程号)REFERENCES课程(课程号)

);

运行结果:

 

各表之间的关系:

 

2.使用SQL语句完成如下查询操作

(1)查询选修了“李梦”老师上课的学生,成绩在90分以上的姓名、课程名称和成绩;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT姓名,课程名,成绩

FROM学生,课程,学习,教师,开课

WHERE教师姓名='李梦'

And成绩>90

And学生.学号=学习.学号

And学习.课程号=课程.课程号

And教师.教师号=开课.教师号

And开课.课程号=课程.课程号;

查询结果:

 

(2)查询选修了“张航”所授全部课程的学生姓名和学院名称;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT姓名,学院名称

FROM学生,学院

WHERE学生.学院代码=学院.学院代码

ANDNOTEXISTS

(SELECT课程号

FROM开课

WHERE教师号='T09'

ANDNOTEXISTS

(SELECT*

FROM学习

WHERE学号=学生.学号

AND课程号=开课.课程号)

);

查询结果:

 

(3)查询没有选修“概率论”的学生学号和姓名;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT学号,姓名

FROM学生

WHERENOTEXISTS

(SELECT*

FROM学习,课程

WHERE课程名='概率论'

AND学生.学号=学习.学号

AND课程.课程号=学习.课程号);

查询结果:

 

(4)查询至少选修了两门课程的学生学号;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT学号

FROM学习

GROUPBY学号

HAVINGCOUNT(课程号)>=2;

查询结果:

→→→→→

(5)查询“英语”不及格学生姓名和考试成绩;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT姓名,成绩

FROM课程,学习,学生

WHERE课程.课程名='英语'

And成绩<60

And学习.学号=学生.学号

And学习.课程号=课程.课程号;

查询结果:

 

(6)查询至少选修了与“杨帆”选修的课程相同的学生学号;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECTDISTINCT学号

FROM学习ASA

WHERENOTEXISTS

(SELECT*

FROM学习ASB

WHEREB.学号='010114'

ANDNOTEXISTS

(SELECT*

FROM学习ASC

WHEREA.学号=C.学号

ANDB.课程号=C.课程号)

);

查询结果:

 

(7)查询至少选修了“数据结构”和“C++”的学生姓名和学院名称;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT姓名,学院名称

FROM学生,学习,学院

WHERE学生.学院代码=学院.学院代码

AND学习.学号=学生.学号

AND课程号='C04'

AND学生.学号IN

(SELECT学号

FROM学习

WHERE课程号='C05');

查询结果:

 

(8)查询“陆瑶”同学没有选修的课程号和课程名;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT课程号,课程名

FROM课程

WHERE课程号NOTIN

(SELECT课程号

FROM学习,学生

WHERE学生.学号=学习.学号

AND姓名='陆瑶');

查询结果:

 

(9)查询没有被任何学生选修的课程的课程号;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT课程号

FROM课程

WHERE课程号NOTIN

(SELECT课程号

FROM学习);

查询结果:

 

(10)查询选修了全部课程的学生姓名;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT姓名

FROM学生,学习

WHERE学生.学号=学习.学号

GROUPBY姓名

HAVINGCOUNT(课程号)=

(SELECTCOUNT(*)

FROM课程);

查询结果:

(11)查询各学院每门课程的平均分,并按照成绩从高到低的顺序排列;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT课程名,AVG(成绩)AS平均分

FROM学习,课程

WHERE课程.课程号=学习.课程号

GROUPBY课程名

ORDERBYAVG(成绩)DESC;

查询结果:

 

(12)查询选修数据库原理课程的学生姓名和所在院系,结果按各院系排列,同时成绩从高到低排列;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT姓名,学院名称,成绩

FROM学生,学习,学院,课程

WHERE学生.学号=学习.学号

AND学生.学院代码=学院.学院代码

AND课程.课程号=学习.课程号

AND课程名='数据库原理'

ORDERBY学院名称,成绩DESC;

查询结果:

 

(13)查询学时在30-45之间(含30和45)的课程的课程号和课程名称及授课教师;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT课程.课程号,课程名,教师姓名

FROM教师,课程,开课

WHERE教师.教师号=开课.教师号

AND课程.课程号=开课.课程号

AND学时BETWEEN30AND45;

查询结果:

 

(14)检索选修数据库原理课程的最高分学生的姓名;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT姓名

FROM学生,学习,课程

WHERE学生.学号=学习.学号

AND学习.课程号=课程.课程号

AND成绩=

(SELECTMAX(成绩)

FROM学习

WHERE学习.课程号=课程.课程号

AND课程名='数据库原理');

查询结果:

(15)查询选课人数超过3人的课程的课程号及课程名;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

SELECT课程.课程号,课程名

FROM课程,学习

WHERE学习.课程号=课程.课程号

GROUPBY课程.课程号,课程名

HAVINGCOUNT(学号)>3;

查询结果:

 

(16)查询选修了C02号或C06号课程或二者都选修了的学生学号、课程号和成绩;

查询→在设计视图中创建查询→选择SQL视图,输入如下SQL语句:

(SELECT学号,课程号,成绩

FROM学习

WHERE课程号='C02')

UNION

(SELECT学号,课程号,成绩

FROM学习

WHERE课程号='C06');

查询结果:

 

四、实验体会

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1