《数据库原理及应用》实验报告121.docx

上传人:b****6 文档编号:7039394 上传时间:2023-01-16 格式:DOCX 页数:28 大小:60.31KB
下载 相关 举报
《数据库原理及应用》实验报告121.docx_第1页
第1页 / 共28页
《数据库原理及应用》实验报告121.docx_第2页
第2页 / 共28页
《数据库原理及应用》实验报告121.docx_第3页
第3页 / 共28页
《数据库原理及应用》实验报告121.docx_第4页
第4页 / 共28页
《数据库原理及应用》实验报告121.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

《数据库原理及应用》实验报告121.docx

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

《数据库原理及应用》实验报告121.docx

《数据库原理及应用》实验报告121

 

数据库原理及应用

实验报告

 

实验课程:

数据库原理及应用

学号:

学生姓名:

班级:

 

 

2014年月日

实验一创建和维护数据库

一、实验目的

(1)掌握在Windows平台下安装与配置MySQL5.5的方法。

(2)掌握启动服务并登录MySQL5.5数据库的方法和步骤。

(3)了解手工配置MySQL5.5的方法。

(4)掌握MySQL数据库的相关概念。

(5)掌握使用Navicat工具和SQL语句创建数据库的方法。

(6)掌握使用Navicat工具和SQL语句删除数据库的方法。

二、实验要求

(1)学生提前准备好实验报告,预习并熟悉实验步骤;

(2)遵守实验室纪律,在规定的时间内完成要求的内容;

(3)1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤

(1)在Windows平台下安装与配置MySQL5.5.36版。

(2)在服务对话框中,手动启动或者关闭MySQL服务。

(3)使用Net命令启动或关闭MySQL服务。

(4)分别用Navicat工具和命令行方式登录MySQL。

(5)在my.ini文件中将数据库的存储位置改为D:

\MYSQL\DATA。

(6)创建数据库。

①使用Navicat创建学生信息管理数据库gradem。

②使用SQL语句创建数据库MyDB。

(7)查看数据库属性。

①在Navicat中查看创建后的gradem数据库和MyDB数据库的状态,查看数据库所在的文件夹。

②利用SHOWDATABASES命令显示当前的所有数据库。

(8)删除数据库。

①使用Navicat图形工具删除gradem数据库。

②使用SQL语句删除MyDB数据库。

③利用SHOWDATABASES命令显示当前的所有数据库。

(9)使用配置向导修改当前密码,并使用新密码重新登录。

(10)配置Path变量,确保MySQL的相关路径包含在Path变量中。

四、思考题

MySQL的数据库文件有几种?

扩展名分别是什么?

 

五、实验总结

1、收获

 

2、存在的问题

实验二管理表

一、实验目的

(1)掌握表的基础知识。

(2)掌握使用Navicat管理工具和SQL语句创建表的方法。

(3)掌握表的修改、查看、删除等基本操作方法。

二、实验要求

(1)学生提前准备好实验报告,预习并熟悉实验步骤;

(2)遵守实验室纪律,在规定的时间内完成要求的内容;

(3)1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤

(1)在gradem数据库中创建表4.18~表4.22所示结构的表。

表4.18student表的表结构

字段名称

数据类型

长度

小数位数

是否允许NULL值

说明

sno

char

10

主码

sname

varchar

8

ssex

char

2

sbirthday

datetime

saddress

varchar

50

sdept

char

16

speciality

varchar

20

表4.19course表(课程名称表)的表结构

字段名称

数据类型

长度

小数位数

是否允许NULL值

说明

cno

char

5

主码

cname

varchar

20

表4.20sc表(成绩表)的表结构

字段名称

数据类型

长度

小数位数

是否允许NULL值

说明

sno

char

10

组合主码、外码

cno

char

5

组合主码、外码

degree

decimal

4

1

1~100

表4.21teacher表(教师表)的表结构

字段名称

数据类型

长度

小数位数

是否允许NULL值

说明

tno

char

3

主码

tname

varchar

8

tsex

char

2

tbirthday

date

tdept

char

16

表4.22teaching表(授课表)的表结构

字段名称

数据类型

长度

小数位数

是否允许NULL值

说明

cno

char

5

组合主码、外码

tno

char

3

组合主码、外码

cterm

tinyint

1

0

1~10

(2)向表4.18至表4.22输入数据记录,见表4.23~表4.27。

表4.23学生关系表student

sno

sname

ssex

sbirthday

saddress

sdept

speciality

20050101

李勇

1987-01-12

山东济南

计算机工程系

计算机应用

20050201

刘晨

1988-06-04

山东青岛

信息工程系

电子商务

20050301

王敏

1989-12-23

江苏苏州

数学系

数学

20050202

张立

1988-08-25

河北唐山

信息工程系

电子商务

表4.24课程关系表course

cno

cname

cno

cname

C01

数据库

C03

信息系统

C02

数学

C04

操作系统

表4.25成绩表sc

sno

cno

degree

20050101

C01

92

20050101

C02

85

20050101

C03

88

20050201

C02

90

20050201

C03

80

表4.26教师表teacher

tno

tname

tsex

tbirthday

tdept

101

李新

1977-01-12

计算机工程系

102

钱军

1968-06-04

计算机工程系

201

王小花

1979-12-23

信息工程系

202

张小青

1968-08-25

信息工程系

表4.27授课表teaching

cno

tno

cterm

C01

101

2

C02

102

1

C03

201

3

C04

202

4

(3)修改表结构。

①向student表中增加“入学时间”列,其数据类型为日期时间型。

②将student表中的sdept字段长度改为20。

③将student表中的speciality字段删除。

④删除student表。

(4)利用SQL命令(createtable、altertable、droptable)完成对表的操作

①利用createtalbe命令完成student表和course表的定义。

 

②利用droptable命令实现(3)中的④。

 

四、思考题

(1)MySQL中的数据文件有几种?

扩展名分别是什么?

 

(2)在定义基本表语句时,NOTNULL参数的作用是什么?

 

(3)主码可以建立在“值可以为NULL”的列上吗?

 

五、实验总结:

1、收获

 

2、存在的问题

实验三简单查询——单表无条件和有条件查询

一、实验目的

(1)掌握SELECT语句的基本用法。

(2)使用WHERE子句进行有条件的查询。

(3)掌握使用IN和NOTIN,BETWEEN…AND和NOTBETWEEN…AND来缩小查询范围的方法。

(4)利用LIKE子句实现字符串匹配查询。

二、实验要求

1、学生提前准备好实验报告,预习并熟悉实验步骤;

2、遵守实验室纪律,在规定的时间内完成要求的内容;

3、1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤

在上次实验建立的Gradem或Gradem1数据库中完成下面查询:

(1)查询所有学生的基本信息、所有课程的基本信息和所有学生的成绩信息(用三条SQL语句)。

 

(2)查询所有学生的学号、姓名、性别和出生日期。

(3)查询所有课程的课程名称。

(4)查询前10门课程的课号及课程名称。

(5)查询所有学生的姓名及年龄。

(6)查询所有年龄大于18岁的女生的学号和姓名。

(7)查询所有男生的信息。

(8)查询所有任课教师的姓名(Tname)和所在系别(Tdept)。

(9)查询“电子商务”专业的学生姓名、性别和出生日期。

(10)查询Student表中的所有系名。

(11)查询“C01”课程的开课学期。

(12)查询成绩在80~90分之间的学生学号及课号。

(13)查询在1970年1月1日之前出生的男教师信息。

(14)输出有成绩的学生学号。

(15)查询所有姓“刘”的学生信息。

(16)查询生源地不是山东省的学生信息。

(17)查询成绩为79分、89分或99分的记录。

(18)查询名字中第二个字是“小”字的男生的学生姓名和地址。

(19)查询名称以“计算机_”开头的课程名称。

(20)查询计算机工程系和软件工程系的学生信息。

 

四、思考题

1、LIKE的通配符有哪些?

分别代表什么含义?

 

2、知道学生的出生日期,如何求出其年龄?

 

3、IS能用“=”来代替吗?

 

4、关键字ALL和DISTINCT有什么不同的含义?

四、实验总结:

1、收获

 

2、存在的问题

实验四简单查询——分组与排序

一、实验目的:

(1)利用GROUPBY子句对查询结果分组。

(2)利用ORDERBY子句对查询结果排序。

(3)掌握聚集函数的使用方法。

二、实验要求

1、学生提前准备好实验报告,预习并熟悉实验步骤;

2、遵守实验室纪律,在规定的时间内完成要求的内容;

3、1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤

在Gradem或Gradem1数据库中完成下面查询:

(1)统计有学生选修的课程的门数。

(2)计算“c01”课程的平均成绩。

(3)查询选修了“c03”课程的学生的学号及其成绩,查询结果按分数降序排列。

 

(4)查询各个课程号及相应的选课人数。

 

(5)统计每门课程的选课人数和最高分。

(6)统计每个学生的选课门数和考试总成绩,并按选课门数降序排列。

(7)查询选修了3门以上课程的学生学号。

(8)查询成绩不及格的学生学号及课号,并按成绩降序排列。

(9)查询至少选修一门课程的学生学号。

 

(10)统计输出各系学生的人数

(11)统计各系学生人数;各系的男、女生人数。

(两条命令)

(12)统计各班人数;各班男、女生人数。

(两条命令)

 

(13)统计各系的老师人数,并按人数升序排序。

(14)统计不及格人数超过10人的课程号。

统计选修人数超过10人的课程号。

(15)查询软件系的男生信息,查询结果按出生日期升序排序,出生日期相同的按地址降序排序。

三、思考题

(1)聚集函数能否直接使用在SELECT子句、HAVING子句、WHERE子句、GROUPBY子句中?

 

(2)WHERE子句与HAVING子句有何不同?

 

四、实验总结:

1、收获

 

2、存在的问题

 

实验五、六、七多表查询

一、实验目的

(1)掌握SELECT语句在多表查询中的应用。

(2)掌握多表连接的几种连接方式及应用。

二、实验要求

1、学生提前准备好实验报告,预习并熟悉实验步骤;

2、遵守实验室纪律,在规定的时间内完成要求的内容;

3、1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤

在Gradem或Gradem1数据库中完成下面查询:

(1)查询计算机工程系女学生的学生学号、姓名及考试成绩。

 

(2)查询“李勇”同学所选课程的成绩。

(不考虑重名)

 

(3)查询“李新”老师所授课程的课程名称。

 

(4)查询女教师所授课程的课程号及课程名称。

 

(5)查询至少选修一门课程的女学生姓名。

 

(6)查询姓“王”的学生所学的课程名称。

 

(7)查询选修“数据库”课程且成绩在80~90分之间的学生学号及成绩。

查询姓名?

 

(8)查询课程成绩及格的男同学的学生信息及课程号与成绩。

(9)查询选修“c04”课程的学生的平均年龄。

(10)查询学习课程名为“数学”的学生学号和姓名。

(11)查询“钱军”教师任课的课程号,选修其课程的学生的学号和成绩。

姓名?

(12)查询在第3学期所开课程的课程名称及成绩。

(13)查询“c02”号课程不及格的学生信息。

(14)查询软件系成绩在90分以上的学生姓名、性别和课程名称。

(15)查询同时选修了“c04”和“c02”课程的学生姓名和成绩。

 

三、思考题

(1)指定一个较短的别名有什么好处?

 

(2)内连接与外连接有什么区别?

(3)“=”与IN在什么情况下作用相同?

 

四、实验总结:

1、收获

 

2、存在的问题

 

实验八、九嵌套查询

一、实验目的

(1)掌握嵌套查询的使用方法。

(2)掌握相关子查询与嵌套子查询的区别。

(3)掌握带IN谓词的子查询的使用方法。

(4)掌握带比较运算符的子查询的使用方法。

二、实验要求

1、学生提前准备好实验报告,预习并熟悉实验步骤;

2、遵守实验室纪律,在规定的时间内完成要求的内容;

3、1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤

在Grademanager数据库中完成下面查询:

(1)查询计算机系(CS)女学生的学生学号、姓名及考试成绩。

(2)查询“李勇”同学所选课程的成绩。

(3)查询“李新”老师所授课程的课程名称。

 

(4)查询女教师所授课程的课程号及课程名称。

(5)查询姓“王”的学生所学的课程名称。

(6)查询选修“数据库”课程且成绩在80~90分之间的学生学号及成绩。

(7)查询选修“C04”课程的学生的平均年龄。

(8)查询学习课程名为“数学”的学生学号和姓名。

(9)查询“钱军”教师任课的课程号,选修其课程的学生的学号和成绩。

(10)查询在第3学期所开课程的课程名称及成绩。

(11)查询与“李勇”同一个系的同学姓名。

(12)查询学号比“刘晨”同学大,而出生日期比他小的学生姓名。

 

(13)查询出生日期大于所有女同学出生日期的男同学的姓名及系别。

(14)查询成绩比该课程平均成绩高的学生的学号及成绩。

 

(15)查询不讲授“C01”课的教师姓名。

(16)查询没有选修“C02”课程的学生学号及姓名。

(17)查询选修了“数据库”课程的学生学号、姓名及系别。

(18)查询“C02”号课程不及格的学生信息。

三、思考题

(1)子查询一般分为几种?

 

(2)相关子查询的执行过程是什么?

 

四、实验总结:

1、收获

 

2、存在的问题

 

实验十数据更新

一、实验目的:

(1)掌握利用INSERT命令实现对表数据的插入操作。

(2)掌握利用UPDATE命令实现对表数据的修改操作。

(3)掌握利用DELETE命令实现对表数据的删除操作。

二、实验要求

1、学生提前准备好实验报告,预习并熟悉实验步骤;

2、遵守实验室纪律,在规定的时间内完成要求的内容;

3、1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤

在Gradem或Gradem1数据库中完成下面操作:

注意:

利用SELECTINTO…命令备份Student、SC、Course这3个表,备份表名自定。

 

(1)向Student表中插入记录("20050203","张静","1981-3-21","女","CS","电子商务")。

(2)插入学号为“20050302”、姓名为“李四”的学生信息。

(3)把计算机系的学生记录保存到表TS中(TS表已存在,表结构与Student表相同)。

 

(4)将学号为“20050202”的学生姓名改为“张华”,系别改为“CS”,专业改为“多媒体技术”。

(5)将“李勇”同学的专业改为“计算机信息管理”。

(6)将“20050201”学生选修“C03”号课程的成绩改为该课的平均成绩。

(7)把成绩低于总平均成绩的女同学的成绩提高5%。

(8)把选修了“数据库”课程而成绩不及格的学生的成绩全改为空值(NULL)。

 

(9)删除学号为“20050302”的学生记录。

(10)删除“计算机系”所有学生的选课记录。

(11)删除SC表中尚无成绩的选课记录。

(12)把“张晨”同学的成绩全部删除。

三、思考题

(1)DROP命令和DELETE命令的本质区别是什么?

 

(2)利用INSERT、UPDATE和DELETE命令可以同时对多个表进行操作吗?

 

四、实验总结:

1、收获

 

2、存在的问题

 

实验十一、十二、十三第四章综合实验

一、实验目的:

(1)进一步掌握SELECT语句的功能及使用方法。

(2)进一步掌握SELECT语句的基本语法和查询条件表示方法;

(3)进一步掌握查询条件种类和表示方法;

(4)进一步掌握连接查询的表示及使用;

(5)进一步掌握嵌套查询的表示及使用;

(6)了解集合查询的表示及使用

(7)进一步掌握利用INSERT命令实现对表数据的插入操作。

(8)进一步掌握利用UPDATE命令实现对表数据的修改操作。

(9)进一步掌握利用DELETE命令实现对表数据的删除操作。

二、实验要求

1、学生提前准备好实验报告,预习并熟悉实验步骤;

2、遵守实验室纪律,在规定的时间内完成要求的内容;

3、1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤

在Grademanager数据库中完成下面操作:

(1)查询以‘DB_’开头,且倒数第3个字符为‘s’的课程的详细情况;

Select*fromcoursewherecnamelike‘db\_%s__’

(2)查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名;

思考能否用嵌套查询?

(3)列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;

(4)查询缺少成绩的所有学生的详细情况;

(5)查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;

(6)查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩;

Selecta.sno,sname,avg(degree)fromstudenta,scbwherea.sno=b.snogroupbya.snohavingavg(degree)>(selectavg(degree)fromstudenta,scbwherea.sno=b.snoandsname=’张力’)

(7)列出只选修一门课程的学生的学号、姓名、院系及成绩;

Selecta.sno,sname,sdept,degreefromstudenta,scbwherea.sno=b.snogroupbya.snohavingcount(*)=1

(8)查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;

Selecta.sno,sname,cnofromstudenta,scb

wherea.sno=b.snoandcnoin(selectcnofromstudenta,scbwherea.sno=b.snoandsname=’张力’)

(9)只选修“数据库”和“数据结构”两门课程的学生的基本信息;

Select*fromstudenta,scb

Wherea.sno=b.snoandb.snoin(selectsnofromsca,coursebwhereo=oandcname='大学英语'

andsnoin(selectsnofromsca,coursebwhereo=oandcname='高等数学'))

Groupbyb.snohavingcount(cno)=2

(10)至少选修“数据库”或“数据结构”课程的学生的基本信息;

(11)列出所有课程被选修的详细情况,包括课程号、课程名、学号及成绩;

 

(12)查询只被一名学生选修的课程的课程号、课程名;

Selectcno,cnamefromcoursewherecnoin(selectcnofromscgroupbycnohavingcount(*)=1)

(13)使用嵌套查询列出选修了“数据结构”课程的学生学号和姓名;

 

(14)使用嵌套查询查询其它系中年龄小于计算机系的某个学生的学生姓名、年龄和系别;

(15)使用ANY、ALL查询,列出其他院系中比CS系所有学生年龄小的学生;

(16)分别使用连接查询和嵌套查询,列出与‘张力’在一个系的学生的信息;

(17)使用集合查询列出CS系的学生以及性别为女的学生名单;

 

四、实验总结:

1、收获

 

2、存在的问题

 

实验十四索引

一、实验目的:

(1)理解索引的概念与类型。

(2)掌握创建、更改、删除索引的方法。

(3)掌握维护索引的方法。

二、实验要求

1、学生提前准备好实验报告,预习并熟悉实验步骤;

2、遵守实验室纪律,在规定的时间内完成要求的内容;

3、1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤

1)使用Navicat图形工具创建、管理索引

(1)在数据库test下创建workinfo表。

创建表的同时在id字段上创建名为index_id的唯一性索引,而且以降序的格式排列。

workinfo表结构内容如下表所示:

字段名

字段描述

数据类型

主键

外键

非空

唯一

自增

id

编号

INT(10)

sname

职位名称

VARCHAR(20)

Type

职位类别

VARCHAR(10)

Address

工作地址

VARCHAR(50)

Wages

工资

INT

Contents

工作内容

INTYTEXT

e

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

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

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

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