当前位置:文档之家› 数据库实验报告(7个实验完整附截图)

数据库实验报告(7个实验完整附截图)

福建农林大学计算机与信息学院实验报告课程名称:数据库原理及应用姓名:系:计算机科学与技术专业:计算机科学与技术年级:2012 级学号:指导教师:***2014 年5月18 日实验项目列表实验一:数据库的定义实验一、实验目的:1、理解MySQL Server 6.0 服务器的安装过程和方法;2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL 语句和进行结果分析。

二、实验环境:硬件:PC机软件:Windows操作系统、MySQL Server 6.0 和Navicat for MySQL 9.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、运行Navicat for MySQL,然后进行数据库连接,进入到GUI界面;2、利用图形界面建立基础表:student 表的信息:course表的信息:sc表的信息:字段名类型长度约束条件Sno varchar9非空、主键、与student表中Sno外键关联,级联删除Cno varchar 4Grade smallint6非空、主键、与course表中Cno外键关联(1)连接数据库,在 localhost 中点击鼠标右键(如图1所示),点击“新建数据库”,在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。

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

3、利用命令方式建表:(1)、单击“查询”,然后点击“新建查询”,在弹出的新建查询窗口中输入“CREATE DATABASE zhou”命令,建立一个名为zhou 的数据库;(2)、通过“use zhou”命令进入到zhou 数据库中;(3)、在查询编辑器窗口中分别输入命令:建立student 表:CREATE TABLE student(Sno varchar(10) PRIMARY KEY,Sname varchar(20) UNIQUE,Ssex varchar(2),Sage SMALLINT,Sdept varchar(20))建立course 表:CREATE TABLE course(Cno varchar(4) PRIMARY KEY,Cname varchar(40),Cpno varchar(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES course(Cno) )建立sc表:CREATE TABLE sc(Sno varchar(10),Cno varchar(4),Grade SMALLINT,PRIMARY KEY (Sno,Cno),FOREIGN KEY (Sno) REFERENCES student(Sno) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (Cno) REFERENCES course(Cno) ON DELETE NO ACTION ON UPDATE CASCADE)(4)、向student 表中添加“Sentrance”列:ALTER TABLE student ADD Sentrance DATE(5)、将student 表中“Sentrance”的类型改为varcharALTER TABLE student MODIFY COLUMN Sentrance varchar(4);(6)、删除student 表中的“Sentrance”列:ALTER TABLE student DROP Sentrance;五、实验结果1、student 表:2、course表:3、sc表:4、向student表中添加Sentrance列:5、student表的基本信息:6、将Sentrance的数据类型改为varchar:六、总结:通过这次实验,要求掌握了数据库的定义以及基本表的建立,熟悉MySQL图形界面和SQL命令去创建、修改、删除基本表及设定表级完整性约束,巩固了SQL的一些常用的命令语句,为接下来的实验奠定基础。

实验二:数据库的建立和维护实验一、实验目的和要求熟练掌握使用SQL、Transact-SQL和SQL Server 企业管理器向数据库输入数据、修改数据和删除数据的操作。

二、实验内容和原理1、基本操作实验(1)通过MySQL的GUI工具Navicat,在学生-课程数据库的student、course 和sc 3个表中各输入若干条记录。

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

(2)通过MySQL 的GUI 工具Navicat 实现对学生-课程数据库的student、course和sc 3个表中数据的插入、删除和修改操作。

2、提高操作实验通过查询编辑器用SQL命令实现对学生-课程库的数据增加、数据删除和数据修改操作。

三、实验环境硬件:PC机软件:Windows操作系统、MySQL Server 6.0 和Navicat for MySQL 9.0四、算法描述及实验步骤1、基本操作实验(1)运行“Navicat”,双击“student”表,将学生的信息输入对应位置(如图1所示);双击“course”表,将课程信息输入对应位置(如图 2 所示);双击“sc”表,将选课信息输入对应位置(如图3所示);(2)需要数据插入时,就在最后一条记录后输入一条记录。

当鼠标点击其他行时,输入的记录会自动保存在表中。

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

(4)需要删除记录时,先用鼠标单击要删除行的左边灰色方块,使该记录cj9成为当前行,然后按<Delete>键。

为了防止误操作,MySQL会弹出一个警告框,要求用户确认删除操作,单击“确认”按钮即可删除记录。

也可通过先选中一行或多行记录,然后再按<Delete>键的方法一次删除多条记录。

2、提高操作实验在查询编辑器中输入以下代码,实现相应的功能。

(1)将(学号:3126010050;姓名:周孙彬;性别;男;所在系:CS;年龄:20)的学生信息插入到student 表中,实现的代码如下:INSERT INTO student(Sno,Sname,Ssex,Sdept,Sage)V ALUES('3126010050','周孙彬','男','CS',20);(2)将student 表中学号为3126010050的学生的所在系改为MA,实现代码如下:UPDATE studentSET Sdept='MA'WHERE Sno='3126010050'(3)删除姓名为“周孙彬”的学生记录,实现代码如下:DELETEFROM studentWHERE Sname='周孙彬'五、调试过程提示操作失败,应将SET Sdept=MA和WHERE Sno=2008001 改为:SET Sdept='MA' 和WHERE Sno='2008001',然后再运行,提示修改成功,如下图:六、实验结果1、向student 表插入数据:2、修改数据:3、删除数据:七、总结通过这次实验,掌握了数据库的建立和维护的基本知识以及约束条件的作用,掌握使用MySQL 图形界面和SQL命令对建立的基本表进行添加数据、修改数据、删除数据的操作,同时也巩固了SQL命令中的添加、修改、删除语句,为以后做数据库的维护奠定基础。

实验三:数据库的查询实验一、实验目的和要求1、掌握select语句的基本语法;2、掌握子查询、连接查询的表示;3、掌握select语句的GROUP BY、ORDER BY、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、GROUP BY、ORDER BY 和LIMIT子句的使用:(1)查找student 中男生和女生的人数;(2)查找选修了 2 号课程的学生的学号及其成绩,查询结果按成绩降序排列;(3)返回student 表中的前3为同学的信息。

三、实验环境硬件:PC机软件:Windows操作系统、MySQL Server 6.0 和Navicat for MySQL 9.0 cj13四、算法描述及实验步骤1、select语句的基本使用:(1)查询student 表中每个学生的所有数据:SELECT * FROM student .(2)查询年龄在17~19岁之间的学生的姓名及年龄:SELECT Sname,SageFROM studentWHERE Sage BETWEEN 17 AND 19(3)统计学生总人数:SELECT COUNT(*) FROM student(4)查询信息系(MA)学生的姓名和性别:SELECT Sname,SsexFROM studentWHERE Sdept IN('MA')(5)查询所有姓“王”的学生的信息。

SELECT *FROM studentWHERE Sname LIKE '王%'2、子查询的使用:(1)查询与“周孙彬”在同一个系的学生的姓名和所在系:SELECT Sname,SdeptFROM studentWHERE Sdept IN(SELECT SdeptFROM studentWHERE Sname='周孙彬')(2)查询其他系中比IS系所有学生年龄都小的学生的姓名和年龄。

相关主题