数据库技术与应用实验报告参考.docx
- 文档编号:14971880
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:10
- 大小:17.57KB
数据库技术与应用实验报告参考.docx
《数据库技术与应用实验报告参考.docx》由会员分享,可在线阅读,更多相关《数据库技术与应用实验报告参考.docx(10页珍藏版)》请在冰点文库上搜索。
数据库技术与应用实验报告参考
[数据库技术与应用]实验报告参考
2019级硕士研究生
《数据库技术与应用》
实验报告
姓名:
王xxxx
学号:
s2019000
专业:
xxxx工程
任课老师:
孙静宇
完成时间:
2019.05.xx
太原理工大学研究生院
实验一:
创建和删除数据库
一、实验目的
学习建立数据库、删除数据库的SQL语句的使用;学会排错技术。
了解有关概念(如数据文件、日志文件等相关概念)
二、实验内容
建立数据库、删除数据库的SQL语句的使用
三、实验要求
成功建立数据库,供后面实验使用,并学会删除数据库。
所用的执行语句如下:
1、创建数据库:
USEmaster
CREATEDATABASEDB99070135
ON
(NAME=DB99070135_DATA,/*数据文件*/
FILENAME='E:
\9901student\DB99070135.mdf',
SIZE=1,
MAXSIZE=3,
FILEGROWTH=1)
LOGON
(NAME=DB99070135_LOG,/*日志文件*/
FILENAME='E:
\9901student\DB99070135.ldf',
SIZE=1,
MAXSIZE=3,
FILEGROWTH=1)
2、删除数据库:
USEmaster
DROPDATABASEDB99070135
四、实验装置
在客户机上登陆至服务器server-1,用户名使用9901。
五、实验步骤
创建一个数据库,其数据文件和日志文件的初始大小都为1M,最大都允许增加到3M,每次增量都为1M。
数据文件和日志文件存放在指定目录之下。
六、实验数据及处理
实验过程中出现的问题和系统信息:
实验过程中准确登陆,但是开始时使用FILENAME=‘D:
\9901student\DB99070135.ldf’,由于服务器的D盘没有足够的空间,运行时有磁盘空间不足的提示,后来改变路经解决此问题,运行结果为:
1、创建数据库
CREATEDATABASE进程正在磁盘'DB99070135_DATA'上分配1.00MB的空间。
CREATEDATABASE进程正在磁盘'DB99070135_LOG'上分配1.00MB的空间。
2、删除数据库
正在删除数据库文件'E:
\9901student\DB99070135.ldf'。
正在删除数据库文件'E:
\9901student\DB99070135.mdf'。
七、思考题:
日志文件的作用是什么?
在建库时要同时建立日志文件,日志文件的主要作用是记录下每一步操作,便于查看各个动作,在有错误操作时可以方便地更改。
实验二:
创建和删除基本表
一、实验目的
学习建立基本表、修改表结构、删除基本表的SQL语句的使用
了解有关概念(如主码、外码、完整性约束)
二、实验内容
建立基本表、修改表结构、删除表的SQL语句的使用
三、实验要求
成功建立一组基本表(含主码、外码、完整性约束的定义),供后面实验使用,并学会修改表结构、删除表。
所用的执行语句如下:
USEDB99070135
CREATETABLEMovieStar(
nameCHAR(30)PRIMARYKEY,
addressVARCHAR(100),
genderCHAR
(1),
birthdayDATETIMEDEFAULT0000
)
CREATETABLEMovieExec(
nameCHAR(30),
cert#INTPRIMARYKEY,
addressVARCHAR(100),
netWorthINT
)
CREATETABLEStudio(
nameCHAR(30)PRIMARYKEY,
addressVARCHAR(100),
presc#INTREFERENCESMovieExec(cert#)
)
CREATETABLEMovie(
titleVARCHAR(100),
yearINTCHECK(year>=1895),
lengthINTCHECK(length>=60ANDlength
IncolorINT,
studioNameCHAR(30)REFERENCESStudio(name),
producerC#INTREFERENCESMovieExec(cert#)NOTNULL,
PRIMARYKEY(title,year)
)
CREATETABLEStarsIN(
MovietitleVARCHAR(100)NOTNULL,
MovieyearINT/*CHECK(year>=1895)*/NOTNULL,
StarNameCHAR(30)REFERENCESMovieStar(name),
PRIMARYKEY(Movietitle,Movieyear,StarName),
FOREIGNKEY(Movietitle,Movieyear)
REFERENCESMovie(title,year)
)
ALTERTABLEStudio
ALTERCOLUMNaddressCHAR(50)
ALTERTABLEStudio
ADDexecnameCHAR(30)
DROPTABLEStarsIN
DROPTABLEMovie
DROPTABLEstudio
DROPTABLEMovieExec
DROPTABLEMovieStar
四、实验步骤
选择课题,画出E-R图,并设计出数据库模式,然后使用CREATETABLE语句创建基本表,并练习ALTERTABLE语句的使用。
各表中要求设计适当的约束(主码、外码、check约束等)。
五、实验数据及处理
实验中出现的问题和系统信息
1、服务器:
消息8141,级别16,状态1,行28
列CHECK约束(属于列'Movieyear')引用了另一列,表'StarsIN'。
服务器:
消息1759,级别16,状态1,行28
在约束或计算列的定义中指定了无效的列'year'。
服务器:
消息1750,级别16,状态1,行28
未能创建约束。
请参阅前面的错误信息。
2、服务器:
消息1770,级别16,状态1,行14
外键'FK__Studio__presc#__3C69FB99'引用了位于被引用表'MovieExec'中的无效列'cret#'。
服务器:
消息1750,级别16,状态1,行14
未能创建约束。
请参阅前面的错误信息。
原因是列名写错了,应为cert#。
3、第一次执行命令
ALTERTABLEStudio
ALTERCOLUMNaddressCHAR(50)
显示影响行数为零的提示,之后运行会显示命令已完成。
4、执行命令
ALTERTABLEStudio
ADDexecnameCHAR(30)
显示命令已成功完成。
5、执行命令
DROPTABLEMovieStar
DROPTABLEMovieExec
DROPTABLEstudio
DROPTABLEMovie
DROPTABLEStarsIN
有如下信息:
服务器:
消息3726,级别16,状态1,行1
未能除去对象'MovieStar',因为该对象正由一个FOREIGNKEY约束引用。
服务器:
消息3726,级别16,状态1,行2
未能除去对象'MovieExec',因为该对象正由一个FOREIGNKEY约束引用。
服务器:
消息3726,级别16,状态1,行3
未能除去对象'studio',因为该对象正由一个FOREIGNKEY约束引用。
服务器:
消息3726,级别16,状态1,行4
未能除去对象'Movie',因为该对象正由一个FOREIGNKEY约束引用。
6、更改执行顺序为
DROPTABLEStarsIN
DROPTABLEMovie
DROPTABLEstudio
DROPTABLEMovieExec
DROPTABLEMovieStar
可解决此问题,结果为Thecommand(s)completedsuccessfully.
六、思考题:
什么是外码?
它的作用是什么?
外码即外键码,若关系R的一个属性(或属性组)X,不是R的主键码,而是(/对应)另一个关系S的主键码,则称X为关系R的外键码。
他参照第二个关系(可以是同一个关系)的某个(些)属性。
他有两方面的含义:
1,必须说明第二个关系的被参照属性为该关系的主键码;2,出现在第一个关系的外键码属性中的任何值也必须在第二个关系的相应属性中,也就是存在连接这两个属性或属性集的参照完整性。
从其定义可以看出外码的最重要的作用是保证这两个属性或属性集的参照完整性。
实验三:
数据的增删改
一、实验目的
学习基本表数据增删改的SQL语句的使用,为以后的实验准备数据。
二、实验内容
在实验二的基础上,向各表中添加数据,并做适当的修改与更新,以供查询使用。
数据自己设定。
三、实验要求
添加足够数据供后面实验使用。
所用的执行的语句如下:
INSERTINTOMovieStar(name,address,gender,birthday)
VALUES('FEIWENLI','WASHINGTONSTREET45','F','19300405')INSERTINTOMovieStar(name,address,gender,birthday)
VALUES('蒋雯莉','北京朝阳','F','19450405')
INSERTINTOMovieStar(name,address,gender,birthday)
VALUES('王刚','香港九龙','M','19421024')
INSERTINTOMovieStar(name,address,gender,birthday)
VALUES('高曙光','上海'中山,'M','19500815')
DELETEMovieStar
FROMMovieStar
WHEREname='蒋雯莉'
四、实验步骤
选择实验数据,依次插入表内,之后用DELETE语句删除表内记录,用DROPTABLE删除表结构,之后重新执行建表和插入语句,使表内保存足够的记录。
五、实验数据及处理
实验中出现的问题和系统信息
1、运行第一句的结果:
(1row(s)affected)成功插入几行会有几行这样的结果出现。
2、运行DELETEMovieStar
FROMMovieStar
WHEREname='蒋雯莉'
(1row(s)affected)成功插入几行会有几行这样的结果出现。
六、思考题:
DELETE语句与DROPTABLE语句有何不同?
DROPTABLE删除的是表的定义,即完成该操作后表不复存在,并将表的属性及其内容以及其他的附加属性;而DELETE删除的是表中的记录,该操作不改变表的属性,操作完成后表仍然存在。
实验四:
数据的检索
一、实验目的
学习SELECT语句的使用。
二、实验内容
在实验三的基础上,熟悉使用SELECT语句,检索所需信息。
三、实验要求
设计并实现符合以下要求的SELECT语句:
单表的简单查询(含:
groupby……having和orderby子句)
涉及多表的连接查询:
子查询
带聚合运算的查询
所用的执行语句如下:
SELECTMovieStar.*
FROMMovieStar
四、实验步骤
单表的简单查询(含:
groupby……having和orderby子句),之后是涉及多表的子查询,带聚合运算的查询,执行语句并记录结果。
五、实验数据及处理
实验过程中出现的问题和系统信息
nameaddressgenderbirthday
--------------------------------------------------------------------------------------------------------------------FEIWENLIWASHINGTONSTREET45F1930-04-0500:
00:
00.000
高曙光上海中山M1950-08-1500:
00:
00.000
蒋雯莉北京朝阳F1945-04-0500:
00:
00.000
王刚香港九龙M1942-10-2400:
00:
00.000
六、思考题:
使用聚合运算符应注意什么?
聚合运算是应用于表的指定列,要用于任何可比类型(例如算术值或者字符串)的聚集。
使用聚组函数时,可用GROUPBY子句对查询结果进行分组计算,用HAVING子句选择满足条件的组,分组的原则:
指定列相等的分为一组,只有在GROUPBY子句中出现的属性,才能以非聚组的形式出现。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库技术 应用 实验 报告 参考