数据库实验报告 福建农林大学金山学院.docx

上传人:b****2 文档编号:1810430 上传时间:2023-05-01 格式:DOCX 页数:36 大小:1.10MB
下载 相关 举报
数据库实验报告 福建农林大学金山学院.docx_第1页
第1页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第2页
第2页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第3页
第3页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第4页
第4页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第5页
第5页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第6页
第6页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第7页
第7页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第8页
第8页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第9页
第9页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第10页
第10页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第11页
第11页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第12页
第12页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第13页
第13页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第14页
第14页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第15页
第15页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第16页
第16页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第17页
第17页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第18页
第18页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第19页
第19页 / 共36页
数据库实验报告 福建农林大学金山学院.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库实验报告 福建农林大学金山学院.docx

《数据库实验报告 福建农林大学金山学院.docx》由会员分享,可在线阅读,更多相关《数据库实验报告 福建农林大学金山学院.docx(36页珍藏版)》请在冰点文库上搜索。

数据库实验报告 福建农林大学金山学院.docx

数据库实验报告福建农林大学金山学院

(程序设计类课程)

实验报告

 

课程名称:

数据库系统概论

姓名:

陈华实

系:

信息与机电工程系

专业:

计算机科学与技术

年级:

2009

学号:

092231044

指导教师:

陈长江

职称:

讲师

 

2010~2011学年第二学期

 

实验项目列表

序号

试验项目名称

指导教师

1

实验一数据库的定义实验(验证性)

2

实验二数据库的建立和维护实验(验

证性)

3

实验三数据库的查询实验(验证性)

4

实验四数据库的视图操作实验(验证

性)

5

实验五触发器、存储过程操作实验

(综合性)

 

福建农林大学金山学院实验报告

专业:

计算机科学与技术年级:

2009

姓名:

陈华实学号:

092231044实验室号__608计算机号J608S044实验时间:

2011.11.23指导教师签字:

成绩:

实验一:

数据库的定义实验

一、实验目的:

1、理解MySQLServer6.0服务器的安装过程和方法;

2、要求学生熟练掌握和使用SQL、T-SQL、SQLServerEnterpriserManager

Server创建数据库、表、索引和修改表结构,并学会使用SQLServerQuery

Analyzer,接收T-SQL语句和进行结果分析。

二、实验环境:

硬件:

PC机

软件:

Windows操作系统、MySQLServer6.0和NavicatforMySQL9.0

三、实验内容和原理:

1、安装MySQL以及相应的GUI工具

2、用SQL命令,建立学生-课程数据库基本表:

学生Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系

Sdept);

课程Course(课程号Cno,课程名Cname,先行课Cpno,学分Ccredit);

选课SC(学号Sno,课程号Cno,成绩Grade);

要求:

1)用SQL命令建库、建表和建立表间联系。

2)选择合适的数据类型。

3)定义必要的索引、列级约束和表级约束.

四、实验步骤:

1、运行NavicatforMySQL,然后进行数据库连接,进入到GUI界面;

2、利用图形界面建立基础表:

student表的的信息:

字段名

类型

长度

约束条件

Sno

char

9

非空、主键

Sname

char

20

Ssex

char

2

Sage

smallint

6

Sdept

char

20

字段名

类型

长度

约束条件

Cno

char

4

非空、主键

Cname

char

40

Cpno

char

4

Ccredit

smallint

6

course表的信息:

字段名

类型

长度

约束条件

Sno

char

9

非空、主键、与student表中Sno外键关联,级联删除

Sname

char

4

非空、主键、与course表中Cno外键关联

Grade

smallint

6

sc表的信息:

 

(1)、连接数据库,在localhost中点击鼠标右键(如图1所示),点击“新建数据库”,

在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。

图1.新建数据库图2.

(2)、进入新建的数据库,在表的位置单击鼠标右击(如图3所示),点击“新建表”,分别在“栏位”中输入上表所示的字段名、类型及长度中的数据(如图4、5、6所示),在“外键”中输入对应表的约束条件(如图)。

图3新建表图4student表

图5course表

图6sc表

图7course的约束条件

图8sc的约束条件

3、利用命令方式建表:

(1)、单击“查询”,然后点击“新建查询”,在弹出的新建查询窗口中输“CREATEDATABASEzhz”命令,建立一个名为zhz的数据库;

(2)、通过“usezhz”命令进入到zhz数据库中;

(3)、在查询编辑器窗口中分别输入命令:

建立student表:

CREATETABLEstudent

(SnoCHAR(9)PRIMARYKEY,

SnameCHAR(20)UNIQUE,

SsexCHAR

(2),

SageSMALLINT,

SdeptCHAR(20)

6

建立course表:

CREATETABLEcourse

(CnoCHAR(4)PRIMARYKEY,

CnameCHAR(40),

CpnoCHAR(4),

CcreditSMALLINT,

FOREIGNKEY(Cpno)REFERENCEScourse(Cno)

建立sc表:

CREATETABLEsc

(SnoCHAR(9),

CnoCHAR(4),

GradeSMALLINT,

PRIMARYKEY(Sno,Cno),

FOREIGNKEY(Sno)REFERENCESstudent(Sno)

ONDELETECASCADEONUPDATECASCADE,

FOREIGNKEY(Cno)REFERENCEScourse(Cno)

ONDELETENOACTIONONUPDATECASCADE

(4)、向student表中添加“Sentrance”列:

ALTERTABLEstudentADDSentranceDATE

(5)、将student表中“Sentrance”的类型改为char

ALTERTABLEstudentMODIFYCOLUMNSentranceCHAR(4);

(6)、删除student表中的“Sentrance”列:

ALTERTABLEstudentDROPSentrance;

五、实验结果

1、student表:

2、course表:

3、sc表:

4、向student表中添加Sentrance列:

5、student表的基本信息:

6、将Sentrance的数据类型改为char:

六、总结:

通过这次实验,要求掌握了数据库的定义以及基本表的建立,熟悉MySQL图形界面和SQL命令去创建、修改、删除基本表及设定表级完整性约束,巩固了SQL的一些常用的命令语句,为接下来的实验奠定基础。

福建农林大学金山学院实验报告

专业:

计算机科学与技术年级:

2009

姓名:

陈华实学号:

092231044实验室号__608计算机号J608S044实验时间:

指导教师签字:

成绩:

实验二:

数据库的建立和维护实验

一、实验目的和要求

熟练掌握使用SQL、Transact-SQL和SQLServer企业管理器向数据库输入

数据、修改数据和删除数据的操作。

二、实验内容和原理

1、基本操作实验

(1)通过MySQL的GUI工具Navicat,在学生-课程数据库的student、course

和sc3个表中各输入若干条记录。

要求记录不仅满足数据约束要求,还要有表间

关联的记录。

(2)通过MySQL的GUI工具Navicat实现对学生-课程数据库的student、

course和sc3个表中数据的插入、删除和修改操作。

2、提高操作实验

通过查询编辑器用SQL命令实现对学生-课程库的数据增加、数据删除和数

据修改操作。

三、实验环境

硬件:

PC机

软件:

Windows操作系统、MySQLServer6.0和NavicatforMySQL9.0

四、算法描述及实验步骤

1、基本操作实验

(1)运行“Navicat”,双击“student”表,将学生的信息输入对应位置(如

图1所示);双击“course”表,将课程信息输入对应位置(如图2所示);双击

“sc”表,将选课信息输入对应位置(如图3所示);

(2)需要数据插入时,就在最后一条记录后输入一条记录。

当鼠标点击其

他行时,输入的记录会自动保存在表中。

(3)需要修改记录时,直接对表中已有记录的数据进行改动,用新值替换

原有的值。

(4)需要删除记录时,先用鼠标单击要删除行的左边灰色方块,使该记录

成为当前行,然后按键。

为了防止误操作,MySQL会弹出一个警告框,

要求用户确认删除操作,单击“确认”按钮即可删除记录。

也可通过先选中一行

Student表的数据

course表的数据

SC表的数据警告图标

2、提高操作实验

在查询编辑器中输入以下代码,实现相应的功能。

(1)将(学号:

2008004;姓名:

李四;性别;男;所在系:

IS;年龄:

20)的学生

信息插入到student表中,实现的代码如下:

INSERTINTOstudent(Sno,Sname,Ssex,Sdept,Sage)

VALUES('2008004','李四','男','IS',20);

(2)将student表中学号为2008001的学生的所在系改为MA,实现代码如

下:

UPDATEstudent

SETSdept='MA'

WHERESno='2008001'

(3)删除姓名为“张力”的学生记录,实现代码如下:

DELETE

FROMstudent

WHERESname='张立'

五、调试过程

学号有重复,将原表中的2008004改2008005在试,成功。

六、实验结果

1、向student表插入数据:

2、修改数据:

3、删除数据:

七、总结

通过这次实验,掌握了数据库的建立和维护的基本知识以及约束条件的作

用,掌握使用MySQL图形界面和SQL命令对建立的基本表进行添加数据、修

改数据、删除数据的操作,同时也巩固了SQL命令中的添加、修改、删除语句,

为以后做数据库的维护奠定基础。

 

福建农林大学金山学院实验报告

专业:

计算机科学与技术年级:

2009

姓名:

陈华实学号:

092231044实验室号__608计算机号J608S044实验时间:

指导教师签字:

成绩:

实验三:

数据库的查询实验

一、实验目的和要求

1、掌握select语句的基本语法;

2、掌握子查询、连接查询的表示;

3、掌握select语句的GROUPBY、ORDERBY、LIMIT的作用和使用方法。

二、实验内容和原理

1、select语句的基本使用:

(1)查询student表中每个学生的所有数据;

(2)查询course和sc表的所有记录;

(3)查询年龄在17~19岁之间的学生的姓名及年龄;

(4)统计学生总人数;

(5)查询信息系(IS)学生的姓名和性别;

(6)查询所有姓“王”的学生的信息。

2、子查询的使用:

(1)查询与“李勇”在同一个系的学生

(2)查询其他系中比CS系所有学生年龄都小的学生的姓名和年龄。

3、连接查询的使用:

(1)查询选修了3号课程且成绩在85分以上的学生的学号、姓名。

(2)查询所有学生的选课情况。

4、GROUPBY、ORDERBY和LIMIT子句的使用:

(1)查找student中男生和女生的人数;

(2)查找选修了2号课程的学生的学号及其成绩,查询结果按成绩降序排

列;

(3)返回student表中的前3为同学的信息。

三、实验环境

硬件:

PC机

软件:

Windows操作系统、MySQLServer6.0和NavicatforMySQL9.0

13

四、算法描述及实验步骤

1、select语句的基本使用:

(1)查询student表中每个学生的所有数据:

SELECT*FROMstudent

(2)查询年龄在17~19岁之间的学生的姓名及年龄:

SELECTSname,Sage

FROMstudent

WHERESageBETWEEN17AND19

(3)统计学生总人数:

SELECTCOUNT(*)FROMstudent

(4)查询信息系(MA)学生的姓名和性别:

SELECTSname,Ssex

FROMstudent

WHERESdeptIN('MA')

(5)查询所有姓“王”的学生的信息。

SELECT*

FROMstudent

WHERESnameLIKE'王%'

2、子查询的使用:

(1)查询与“李勇”在同一个系的学生的姓名和所在系:

SELECTSname,Sdept

FROMstudent

WHERESdeptIN

(SELECTSdept

FROMstudent

WHERESname='李勇')

(2)查询其他系中比IS系所有学生年龄都小的学生的姓名和年龄。

SELECTSname,Sage

FROMstudent

WHERESage

(SELECTSage

FROMstudent

WHERESdept='IS')

3、连接查询的使用:

(1)查询选修了3号课程且成绩在85分以上的学生的学号、姓名:

SELECTSno,Sname

FROMstudent

WHERESnoIN

(SELECTSno

FROMsc

WHERECno='3')

(2)查询有选课的学生的基本情况。

SELECTstudent.Sno,student.Sname,course.Cno,course.Cname

FROMstudent,sc,course

WHEREstudent.Sno=sc.SnoANDsc.Cno=course.Cno

4、GROUPBY、ORDERBY和LIMIT子句的使用:

(1)查找student中男生和女生的人数:

SELECTSsex,COUNT(Ssex)

FROMstudent

GROUPBYSsex

(2)查找选修了2号课程的学生的学号及其成绩,查询结果按成绩降序排

列:

SELECTSno,Grade

FROMsc

WHERECno='2'

ORDERBYGradeDESC

(3)返回student表中的前3为同学的信息。

SELECT*

FROMstudent

LIMIT3

五、实验结果

(1)select语句的基本使用:

(2)

(3)

(4)

(5)

2、子查询的使用:

(1)

(2)

 

3、连接查询的使用:

(1)

(2)

4、GROUPBY、ORDERBY和LIMIT子句的使用:

(1)

(2)

(3)

六、总结

通过这次实验,掌握了select语句的基本使用方法,对数据库中的数据进行查询方法有了进一步的了解,巩固了子查询和连接查询的使用以及GROUPBY、

ORDERBY和LIMIT子句的使用,为以后做数据库数据的查询奠定基础。

福建农林大学金山学院实验报告

专业:

计算机科学与技术年级:

2009

姓名:

陈华实学号:

092231044实验室号__608计算机号J608S044实验时间:

指导教师签字:

成绩:

实验四:

数据库的视图操作实验

一、实验目的和要求

1、熟悉视图的概念和作用;

2、掌握视图的创建方法;

3、掌握如何查询和修改视图。

二、实验内容和原理

1、创建视图:

(1)创建zhz数据库上的视图student_view,视图包含学号、姓名、系;

(2)创建zhz数据库上的视图sc_view,视图包含sc表的全部列。

2、查询视图:

(1)从视图sc_view中查看选修了3号课程的学生的学号;

(2)从视图student_view中查询姓名为“王敏”的学生所在的系。

3、更新视图:

(1)向视图sc_view中插入一行数据:

2008005,5,87;

(2)将视图student_view中学号=2008002的学生的系改为MA;

(3)删除视图student_view中学号=2008007的学生的信息。

4、删除视图:

(1)删除视图sc_view;

5、在界面工具中操作视图

三、实验环境

硬件:

PC机

软件:

Windows操作系统、MySQLServer6.0和NavicatforMySQL9.0

四、算法描述及实验步骤

1、创建视图:

(1)创建zhz数据库上的视图student_view,视图包含学号、姓名、系:

18

CREATEVIEWstudent_view

AS

SELECTSno,Sname,Sdept

FROMstudent

(2)创建zhz数据库上的视图sc_view,视图包含sc表的全部列:

CREATEVIEWsc_view

AS

SELECT*

FROMsc

2、查询视图:

(1)从视图sc_view中查看选修了3号课程的学生的学号:

SELECTSno

FROMsc_view

WHERECno='3'

(2)从视图student_view中查询姓名为“王敏”的学生所在的系:

SELECTSname,Sdept

FROMstudent_view

WHERESname='王敏'

3、更新视图:

(1)向视图sc_view中插入一行数据:

2008005,5,87;

INSERTINTOsc_view

VALUES('2008005','5','87')

(2)将视图student_view中学号=2008002的学生的系改为MA;

UPDATEstudent_view

SETSdept='MA'

WHERESno='2008002'

(3)删除视图student_view中学号=2008007的学生的信息;

DELETE

FROMstudent_view

WHERESno='2008007'

4、删除视图:

(1)删除视图sc_view;

DROPVIEWsc_view

5、在界面工具中操作视图

(1)创建视图:

选择zhz数据库,单击“视图”图标,单击“新建视图”,单击“视图创建工具”,双击“student”表,选择“Sno,Sname,Sdept”,然后单击“保存”,输入视图名“student_view”,单击“确定”按钮。

(2)查询视图:

双击视图名,可直接查看视图中的数据

(3)删除视图:

在视图窗体中,选择要删除的视图,点击鼠标右键,选择

“删除视图”,然后单击“删除”:

五、实验结果

 

(1)

(2)

2、查询视图:

(1)

(2)

3、更新视图:

(1)

(2)

(3)

 

5、在界面工具中操作视图

六、总结

通过这次实验,掌握了视图的创建、查询、修改以及删除等基本操作;了解

了视图与基本表的区别,视图是一个虚表,数据库中只存放视图的定义,而不存

放视图对应的数据,这些数据仍存放在原来的基本表中;巩固了视图的基本概念

及其作用。

 

福建农林大学金山学院实验报告

专业:

计算机科学与技术年级:

2009

姓名:

陈华实学号:

092231044实验室号__608计算机号J608S044实验时间:

指导教师签字:

成绩:

实验五:

触发器、存储过程操作实验

一、实验目的和要求

1、掌握存储过程创建和调用的方法;

2、掌握MySQL中程序片段的组成;

3、掌握触发器的使用方法。

二、实验内容和原理

1、存储过程:

(1)创建存储过程,使用student表中的学生人数来初始化一个局部变量,

并调用这个存储过程;

(2)创建存储过程,比较两学生的年龄,若前者比后者大就输出0,否则输

出1。

2、触发器:

(1)创建触发器,在student表中删除学生信息的同时将sc表中该学生的

选课信息删除,以确保数据的完整性;

(2)假设course1表和course表的结构和内容都相同,在course上创建

一个触发器,如果添加一门新的选修课程,该课程也会被添加到course1表中。

(3)定义一个BEFORE行级触发器,为teacher表定义完整性规则,“向

teacher插入教授的信息时,工资不得低于4000元,如果低于4000元,则自动

将其更改为4000元”。

(4)删除teacher表上的触发器teacher_Income。

三、实验环境

硬件:

PC机

软件:

Windows操作系统、MySQLServer6.0和NavicatforMySQL9.0

四、算法描述及实验步骤

1、存储过程:

(1)创建存储过程,使用student表中的学生人数来初始化一个局部变量,

23

并调用这个存储过程:

delimiter$$

CREATEPROCEDURETEST(OUTnumber1INTEGER)

BEGIN

DECLAREnumber2INTEGER;

SETnumber2=(SELECTCOUNT(*)FROMstudent);

SETnumber1=number2;

END$$

delimiter

调用该存储过程:

CALLTEST(@number)

查看结果:

SELECT@number

(2)创建存储过程,比较两学生的年龄,若前者比后者大就输出0,否则输

出1:

delimiter$$

CREATEPROCEDURE

COMPA(INSno1CHAR(9),INSno2CHAR(9),OUTBJINTEGER)

BEGIN

DECLARESR1,SR2FLOAT(10);

SELECTSageINTOSR1FROMstudentWHERESno=Sno1;

SELECTSageINTOSR2FROMstudentWHERESno=Sno2;

IFSno1>Sno2THEN

SETBJ=0;

ELSE

SETBJ=1;

ENDIF;

END$$

delimiter

调用该存储过程:

CALLCOMPA('2008002','2008003',@BJ);

查看结果:

SELECT@BJ

2、触发器:

(1)创建触发器,在student表中删除学生信息的同时将sc表中该学生的

选课信息删除,以确保数据的完整性:

CREATETRIGGERDELETE_SMAFTERDELETE

ONstudentFOREACHROW

DELETE

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2