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

上传人:b****3 文档编号:10345018 上传时间:2023-05-25 格式:DOCX 页数:34 大小:25.31KB
下载 相关 举报
《数据库原理及应用实验》.docx_第1页
第1页 / 共34页
《数据库原理及应用实验》.docx_第2页
第2页 / 共34页
《数据库原理及应用实验》.docx_第3页
第3页 / 共34页
《数据库原理及应用实验》.docx_第4页
第4页 / 共34页
《数据库原理及应用实验》.docx_第5页
第5页 / 共34页
《数据库原理及应用实验》.docx_第6页
第6页 / 共34页
《数据库原理及应用实验》.docx_第7页
第7页 / 共34页
《数据库原理及应用实验》.docx_第8页
第8页 / 共34页
《数据库原理及应用实验》.docx_第9页
第9页 / 共34页
《数据库原理及应用实验》.docx_第10页
第10页 / 共34页
《数据库原理及应用实验》.docx_第11页
第11页 / 共34页
《数据库原理及应用实验》.docx_第12页
第12页 / 共34页
《数据库原理及应用实验》.docx_第13页
第13页 / 共34页
《数据库原理及应用实验》.docx_第14页
第14页 / 共34页
《数据库原理及应用实验》.docx_第15页
第15页 / 共34页
《数据库原理及应用实验》.docx_第16页
第16页 / 共34页
《数据库原理及应用实验》.docx_第17页
第17页 / 共34页
《数据库原理及应用实验》.docx_第18页
第18页 / 共34页
《数据库原理及应用实验》.docx_第19页
第19页 / 共34页
《数据库原理及应用实验》.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

 

《数据库原理与应用实验》

实验报告册

 

学年第学期

 

学院:

专业:

年级:

姓名:

学号:

任课教师:

 

MySQL+Navicat安装步骤与下载地址XX地址:

配置与简单使用XX地址:

本文档所书写的代码,为本人纯手工敲打,并且通过软件测试成功,欢迎大家进行学习,如有错误,可联系本人

实验一创建和维护数据库

一、实验目的

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

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

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

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

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

二、实验要求

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

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

三、实验内容及步骤

(1)在Windows平台下安装与配置MySQL版。

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

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

 

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

 

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

\MYSQL\DATA。

 

(6)创建数据库。

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

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

 

(7)删除数据库。

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

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

 

四、思考题

常见的数据库产品有哪些

 

五、实验总结

1、收获

 

2、存在的问题

实验二管理表

一、实验目的

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

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

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

二、实验要求

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

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

三、实验内容及步骤

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

表student表的表结构

字段名称

数据类型

长度

小数位数

是否允许NULL值

说明

sno

char

10

主码

sname

varchar

8

ssex

char

2

sbirthday

datetime

saddress

varchar

50

sdept

char

16

speciality

varchar

20

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

字段名称

数据类型

长度

小数位数

是否允许NULL值

说明

cno

char

5

主码

cname

varchar

20

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

字段名称

数据类型

长度

小数位数

是否允许NULL值

说明

sno

char

10

组合主码、外码

cno

char

5

组合主码、外码

degree

decimal

4

1

1~100

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

字段名称

数据类型

长度

小数位数

是否允许NULL值

说明

tno

char

3

主码

tname

varchar

8

tsex

char

2

tbirthday

date

tdept

char

16

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

字段名称

数据类型

长度

小数位数

是否允许NULL值

说明

cno

char

5

组合主码、外码

tno

char

3

组合主码、外码

cterm

tinyint

1

0

1~10

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

表学生关系表student

sno

sname

ssex

sbirthday

saddress

sdept

speciality

李勇

1987-01-12

山东济南

计算机工程系

计算机应用

刘晨

1988-06-04

山东青岛

信息工程系

电子商务

王敏

1989-12-23

江苏苏州

数学系

数学

张立

1988-08-25

河北唐山

信息工程系

电子商务

表课程关系表course

cno

cname

cno

cname

C01

数据库

C03

信息系统

C02

数学

C04

操作系统

表成绩表sc

sno

cno

degree

C01

92

C02

85

C03

88

C02

90

C03

80

表教师表teacher

tno

tname

tsex

tbirthday

tdept

101

李新

1977-01-12

计算机工程系

102

钱军

1968-06-04

计算机工程系

201

王小花

1979-12-23

信息工程系

202

张小青

1968-08-25

信息工程系

表授课表teaching

cno

tno

cterm

C01

101

2

C02

102

1

C03

201

3

C04

202

4

(3)在navicat下修改表结构。

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

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

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

④删除student表。

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

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

 

②利用altertable、droptable命令实现(3)中的所有任务。

 

四、思考题

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

 

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

 

五、实验总结:

1、收获

 

2、存在的问题

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

一、实验目的

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

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

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

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

二、实验要求

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

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

三、实验内容及步骤

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

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

SELECT*

FROMstudent;

SELECT*

FROMcourse;

SELECT*

FROMsc;

 

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

SELECTsno,sname,ssex,sbirthday

FROMstudent;

 

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

SELECTcname

FROMcourse

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

SELECTcno,cname

FROMcourse

WHEREcno<=10

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

SELECTsname,year(now())-year(sbirthday)

FROMstudent;

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

SELECTsno,sname

FROMstudent

WHEREssex='女'andyear(now())-year(sbirthday)>18

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

SELECT*

FROMstudent,teacher

WHEREssex='男'andtsex='男'

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

SELECTtname,tdept

FROMteacher

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

SELECTsname,ssex,sbirthday

FROMstudent

WHEREsdept='电子商务'

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

SELECTsdept

FROMstudent

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

SELECTcterm

FROMteaching

WHEREcno='c01'

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

SELECTsno,cno

FROMsc

WHEREdegreeBETWEEN80and90

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

SELECT*

FROMteacher

WHEREtbirthday<'1970-01-01'andtsex=’男’;

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

SELECTsno

FROMsc

WHEREdegreeisNOTNULL;

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

SELECT*

FROMstudent

WHEREsnameLIKE'刘%'

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

SELECT*

FROMstudent

WHEREsaddressNOTLIKE'山东%'

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

SELECT*

FROMsc

WHEREdegree='79'ordegree='89'ordegree='99'

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

SELECTsname,saddress

FROMstudent

WHEREssex='男'andsnameLIKE'_小'

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

SELECTcname

FROMcourse

WHEREcnameLIKE'计算机_'

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

SELECT*

FROMstudent

WHEREsdept='计算机工程系'ORsdept='软件工程系'

 

四、思考题

1、LIKE的通配符有哪些分别代表什么含义

通配符含义

%有零个或更多个字符组成的任意字符串

_任意单个字符

[]用于指定范围,例如[A~F],表示A~F范围内的任何单个字符

[^]表示指定范围之外的,例如[^A~F],表示A~F范围以外的任何单个字符。

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

SELECTyear(now())-year(sbirthday)

FROMstudent;

 

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

不能

is是用来判断null的,比如remarkisnull或者remarkisnotnull

=是用来直接比较值的。

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

ALL表示所有的字段,有重复的2条,2条都显示,

DISTINCT表示如果有重复的,只取一条。

五、实验总结:

1、收获

经过这节数据库课程的学习,我基本上掌握了创建数据库以及对数据库的操作的基础知识。

学习了SQL数据库中的增、删、改、查等功能,数据库这门课涉及到以前的知识不多,是一门从头学起的课程,即使基础不是很好,只要认真听讲、复习功课,还是一门比较容易掌握的课。

2、存在的问题

不够熟悉对数据库系统的操作,不会运用快捷键,需要更多的练习和操作。

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

一、实验目的:

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

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

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

二、实验要求

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

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

三、实验内容及步骤

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

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

SELECTCOUNT(DISTINCTcno)

FROMcourse

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

SELECTAVG(degree)

FROMsc

WHEREcno='c01';

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

SELECTsno,degree

FROMsc

WHEREcno='c03'

ORDERBYdegreeDESC;

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

SELECTcno,COUNT(sno)

FROMsc

GROUPBYcno

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

SELECTCOUNT(sno),MAX(degree)

FROMsc

GROUPBYcno

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

SELECTCOUNT(sno),sum(degree)

FROMsc

GROUPBYsno

ORDERBYCOUNT(sno)DESC;

 

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

SELECTsno

FROMsc

GROUPBYsno

HAVINGCOUNT(cno)>3

 

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

SELECTsno,cno

FROMsc

WHEREdegree<60

ORDERBYdegreeDESC

 

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

SELECTsno

FROMsc

GROUPBYsno

HAVINGCOUNT(cno)>1

 

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

SELECTsdept,COUNT(*)

FROMstudent

GROUPBYsdept

 

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

(两条命令)

Selectsdept,ssex,count(*)

Fromstudent

Groupbysdept,ssex

(12)统计籍贯的男、女生人数。

(两条命令)

Selectsaddress,ssex,count(*)

Fromstudent

Groupbysaddress,ssex

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

SELECTtdept,COUNT(*)

FROMteacher

GROUPBYtdept

ORDERBYCOUNT(*)DESC

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

SELECTcno

FROMsc

GROUPBYcno

HAVINGCOUNT(degree<60)>10

 

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

SELECTcno

FROMsc

GROUPBYcno

HAVINGCOUNT(*)>10

 

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

SELECT*

FROMstudent

WHEREssex='男'andsdept='信息工程系'

ORDERBYsbirthday,saddressDESC

 

四、思考题

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

 

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

 

五、实验总结:

1、收获

 

2、存在的问题

实验五多表查询

一、实验目的

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

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

二、实验要求

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

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

三、实验内容及步骤:

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

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

SELECT,sname,

FROMstudent,sc

WHERE=and='计算机工程系'and='女';

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

(不考虑重名)

SELECT

FROMstudent,sc

WHERE=and='李勇'

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

SELECT

FROMteacher,teaching,course

WHERE=and=and='李新'

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

SELECT,

FROMteacher,teaching,course

WHERE=and=and='女'

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

SELECT

FROMstudent,sc

WHERE=AND='女'

GROUPBY

HAVINGCOUNT>1

 

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

SELECT

FROMstudent,sc,course

WHERE=AND=ANDsname='王%'

 

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

SELECT,

FROMstudent,sc,course

WHERE=AND=ANDcname='数据库'

ANDdegreeBETWEEN80AND90

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

SELECTstudent.*,,

FROMstudent,sc,course

WHERE=AND=

ANDdegree>60ANDssex='男'

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

SELECTAVG(year(NOW())-YEAR(sbirthday))

FROMstudent,sc,course

WHERE=AND=AND='c04'

 

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

SELECT,sname

FROMstudent,sc,course

WHERE=AND=ANDcname='数学'

 

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

SELECT,,sname,

FROMteacher,teaching,course,student,sc

WHERE=and=and=

and=and='钱军'

 

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

SELECT,

FROMcourse,sc,teaching

WHERE=and=

andcterm='3'

 

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

SELECTstudent.*

FROMstudent,sc

WHERE=andcno='c02'anddegree<60anddegreeISNULL

 

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

SELECT,ssex,

FROMstudent,sc,course

WHERE=and=andsdept='软件系'ANDdegree>90

 

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

SELECT,

FROMstudent,sc,course

WHERE=and=and='c04'AND='c02'

 

四、思考题

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

更容易辨识

方便查看

 

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

内连接:

只有两个表相匹配的行才能在结果集中出现

外连接:

包括

左外连接(左边的表不加限制)

右外连接(右边的表不加限制)

全外连接(左右两表都不加限制)

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

选值只有一个

 

五、实验总结

1、收获

经过近一个小时的调试,编写,最终得出结论,并进行书写。

使我加深了对mysql进一步学习和认识,更加熟练了对软件的使用,收获颇丰。

2、存在的问题

对于语句的使用略显生疏,需要进一步的练习,加深认识。

实验六嵌套查询

一、实验目的

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

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

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

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

二、实验要求

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

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

三、实验内容及步骤

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

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

SELECT,,

FROMstudent,sc

WHERE=ANDsdept='计算机系';

 

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

SELECT

FROMsc,student

WHERE=ANDsname='李勇';

 

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

SELECT

FROMcourse,teacher,teaching

WHERE=AND=ANDtname='李新';

 

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

SELECT,

FROMteaching,teacher,course

WHERE=AND=ANDtsex='女';

 

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

SELECT

FROMcourse,student,sc

WHERE=AND=ANDsnameLIKE'王%';

 

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

SELECT,

FROMco

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

当前位置:首页 > 解决方案 > 学习计划

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

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