数据库实验报告.docx
- 文档编号:4201660
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:32
- 大小:2.54MB
数据库实验报告.docx
《数据库实验报告.docx》由会员分享,可在线阅读,更多相关《数据库实验报告.docx(32页珍藏版)》请在冰豆网上搜索。
数据库实验报告
西安邮电大学
(计算机学院)
课内实验报告
实验:
数据库及数据库中表的建立实验
课程
:
数据库系统原理与应用
班级
:
经济学1601班
学号
:
学生姓名
:
冯丹娜
任课教师
:
樊珊
SQLServer2000管理工具的使用和创建数据库
一、 实验目的
1.熟悉SQLServer2000的环境。
2.掌握企业管理器的基本使用方法,对数据库及其对象有基本了解,了解对SQLServer2000进行配置的方法。
3.掌握查询分析器的基本使用方法以及在查询分析器中执行T-SQL语句的方法。
4.了解SQLServer2000数据库的逻辑结构和物理结构。
5.学会在企业管理器中创建数据库及查看数据库属性。
6.学会使用T-SQL语句创建数据库。
二、实验内容
1.学会使用企业管理器和查询分析器管理工具。
2.使用企业管理器创建数据库。
创建一个教务管理数据库,名称为JWGL,数据文件的初始大小为20MB,文件增长方式为自动增长,文件增长增量设为5MB,文件的增长上限为500MB。
日志文件的初始大小为10MB,文件增长增量设为1MB,文件的增长限制设为100MB。
数据文件的逻辑文件名和物理文件名均采用默认值,分别为JWGL_data和d:
\MicrosoftSQLServer\MSSQL\data\JWGL_data.mdf;事务日志文件的逻辑文件名和物理文件名也采用默认值,分别为JWGL_log和d:
\MicrosoftSQLServer\MSSQL\data\JWGL_log.ldf。
3.在查询分析器中使用T-SQL语句创建数据库。
创建一个名为Market的数据库(注意e盘下应存在sql_data目录)。
CREATEDATABASEMarket
ON
(NAME=Market_Data,
FILENAME='e:
\sql_data\Matket_Data.mdf',
SIZE=10,
MAAXSIZE=50,
FILEGROWTH=10%)
LOGON
(NAME=Market_Log,
FILENAME='e:
\sql_data\Market_Log.ldf',
SIZE=5,
MAXSIZE=15,
FILEGROWTH=10%);
4.使用T_SQL语句或企业管理器创建一个图书借阅管理数据库,数据库名为TSGL,数据文件和日志文件的初始大小、增长方式、文件的增长上限等均可采用默认值。
5.使用T-SQL语句或企业管理器创建第二章习题10的SPJ数据库,可以自行定义文件大小、增长方式。
6.查看物理磁盘目录,理解并分析SQLServer2000数据库的存储结构。
7.使用企业管理器查看数据库属性。
8.使用T-SQL语句或企业管理器对于
(2)~(5)中建立的数据库进行修改和删除操作,并进一步查看物理磁盘目录。
三、实验环境
SQLServer2008版本
四、实验前准备
电脑,课本,笔
五、实验步骤及结果
1.使用企业管理器创建JWGL数据库
2.在查询分析器中使用T-SQL语句创建Market数据库
3.使用企业管理器创建TSGL数据库
4.使用企业管理器创建SPJ数据库
5.使用企业管理器查看数据库属性
6.使用T-SQL语句对于
(2)~(5)中建立的数据库进行修改和删除操作,并进一步查看物理磁盘目录
六、评价分析及心得体会
本次实验过程中,遇到了一些问题,但在老师的帮助指导下能顺利的完成试验任务,让我初步掌握SQLServer的多种实际操作。
通过这次实验,我能较好的掌握了SQLServer软件的基本用法。
学会了多种创建数据库的方法,多种创建表的方法。
并且学会了如何设置主键、约束条件等多种方法,也逐渐了解学习了对于创建数据库时,对数据类型设计的方法。
SQLServer数据库的实验学习使我对数据库的有了新的基于事实的认识进步,让我有机会又学习到了一门新的技能。
定义表和数据库完整性
一、实验目的
(1)了解SQLServer2000的基本数据类型、空值的概念,以及表的结构特点。
(2)学会使用T-SQL语句和企业管理器创建表结构和修改表结构。
(3)学会使用SQLServer2000提供的数据完整性功能,并在创建表时定义表的数据完整性。
通过实验进一步理解数据完整性的概念及分类。
二、实验内容
(1)用企业管理器在教务管理数据库JWGL中创建学生表Student、课程表Course、学生选课表SC、它们的表结构如表B.1所示。
表B.1教务管理数据库的表结构
学生表Student
列名
数据类型
长度
允许空值
默认值
说明
Sno
char
8
×
主键
Sname
varchar
10
×
Sex
char
2
×
男
只能“男”或“女”
Age
tinyint
×
20
只能15~30
Phonenumber
char
12
√
取值唯一
Sdept
varchar
20
×
课程表Course
列名
数据类型
长度
允许空值
默认值
说明
Cno
char
10
×
主键
Cname
varchar
20
×
取值唯一
Total_perior
tinyint
√
64
只能为32~108
Week_perior
tinyint
√
4
只能为2~7
Credit
tinyint
×
4
只能是1~7
Pcno
char
10
√
学生选课表SC
列名
数据类型
长度
允许空值
默认值
说明
Sno
char
8
×
主键,外键
Cno
char
10
×
主键,外键
Grade
tinyint
√
只能为0~100
(2)用T-SQL语句在Market数据库中创建客户基本信息表Customers、货品信息表Goods、订单信息表Orders,它们的定义如下
CREATETABLECustomers(
CustomerIDintIDENTITY(1.1)PRIMARYKEY,
Cnamevarchar(8)NOTNULL,
Addressvarchar(50),
Cityvarchar(10),
Telvarchar(20)unique,
Companyvarchar(50),
Birthdaydatetime,
TypetinyintDEFAULT1);
CREATETABLEGOODS(
GoodIDintconstraintc1primarykey,
Goodsnamevarchar(20)notnull,
Pricemoney,
Descriptionvarchar(200),
Storageint,
Providevarchar(50),
Statustinyintdefault(0))
CREATETABLEOrders(
OrderIDintidentity(1,1)constrainyc2primarykey,
Goodsidintnotnullreferencesgoods(goodsid)ondeletecascade,
Customeridintnotnullforeignkey(customerid)
REFERENCESCustomers(customerid)ondeletenoaction,
Quantityintnotnullconstaraintc3check(quantity>0),
Ordersummoneynotnull,
OrderdatedatetimeDEFAULT(getdate()));
(3)使用T-SQL语句在SPJ数据库中创建第二章习题10中的4张表:
供应商表S、零件表P、工程项目表J和供应情况表SPJ,数据类型和长度自行设计,注意要同时定义主键、外键和其他的数据完整性。
(4)使用T-SQL语句在图书借阅管理数据库TSGL中建立图书、读者和借阅3个表,其结构为
图书(书号,书名,类别,出版社,作者,定价,出版时间)
读者(借书证号,姓名,单位,性别,地址,电话号码)
借阅(书号,借书证号,借阅日期)
要求为属性选择合适的数据类型,定义每个主键、外键,是否允许空值等数据完整性约束。
三、实验环境
SQLServer2008版本
四、实验前准备
仔细预习实验内容,理解实验步骤,学习并熟悉内容。
五、实验步骤及结果截图
(1)使用企业管理器创建表
创建学生表Student
创建课程表Course
创建学生选课表SC
(2)用T-SQL语句在Market数据库中创建客户基本信息表Customers、货品信息表Goods、订单信息表Orders:
(4)使用T-SQL语句在SPJ数据库中创建表:
供应商表S、零件表P、工程项使用T-SQL语句在SPJ数据库中创建第二章习题10中的4张表:
表S、零件表P、工程项目表J和供应情况表SPJ:
(5)使用T-SQL语句在TSGL中建立图书、读者和借阅3个表:
六、评价分析及心得体会
第一次接触SQL这种工具,做实验时,遇到了好多问题,比如不知道如何查看物理磁盘目录、不会在一个表里设置两个主键、约束条件填写不全等等,通过这次试验,我觉得自己所了解的还是太少,如果深入的了解了SQL,那么也就不会出现诸如此类的问题了,而要想深入的了解,就应该勤加练习,只有熟能生巧,才可以解决问题。
表数据的插入、修改和删除
一、 实验目的
掌握使用T-SQL语句和企业管理器对数据表进行插入、修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。
通过本实验,要熟练掌握INSERT、UPDATE、DELETE语句的语法和使用方法。
二、实验内容
1.分别使用T-SQL语句和企业管理器,向数据库JWGL、数据库Market、数据库SPJ、数据库TSGL中的各张表输入一些(如10条)记录。
2.使用T-SQL语句进行插入、修改和删除记录的操作。
(1)插入数据时既要插入一些不违背数据完整性约束的记录,也要插入一些违背数据完整性约束的记录,观察插入后的结果,并利用相关知识解释此现象。
在涉及参照完整性约束的参照表中插入数据时,理解系统是如何保证完整性的。
(2)修改数据时除使用正确数据外,也可以对修改后的新值使用一些违背数据完整性约束的数据,观察系统执行后的结果。
另外进一步观察在涉及参照完整性约束的参照表和被参照表中修改数据时系统的执行情况,如果违背参照完整性那么观察结果。
(3)删除记录时一般不会出现问题,但要是在有参照完整性约束的被参照表中删除数据时也存在破坏完整性的情况。
观察删除记录时系统的执行结果。
三、实验环境
SQLServer2008版本
四、实验前准备
首先,了解对表数据的插入、删除、修改都属于表数据的更新操作。
对表数据的操作可以在对象资源管理器中进行,也可以由T-SQL语句实现。
其次,要掌握T-SQL中用于对表数据进行插入、修改和删除的命令分别是INSERT、UPDATE和DELETE。
五、实验步骤及结果截屏
1.使用T-SQL语句和企业管理器,向数据库JWGL、数据库Market、数据库SPJ、数据库TSGL中的各张表输入记录。
2.使用T-SQL语句进行插入、修改和删除记录
七、评价分析及心得体会
这次试验总体来说有些难度,有很多次新建查询时都没有执行成功,通过种种检查终于改正错误,执行成功。
通过这次试验,掌握了数据的表数据的插入、修改和删除操作。
数据库的简单查询和连接查询
一、 实验目的
数据查询是数据库中最基本的操作,也是使用最频繁的操作,因此必须掌握SQL的查询语句(SELECT语句)的使用方法。
本实验要求掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。
二、实验内容
(1)简单查询操作。
该实验包括投影、选择条件表达、数据排序等。
①在数据库JWGL中的学生表Student、课程表Course、学生选课表SC中完成第3章例3.10~例3.28中例题的查询操作。
②在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中
(1)~(4)的查询。
③在数据库SPJ中的供应商表S、零件表P、工程项目表J、供应情况表SPJ中,用SELECT语句完成第2章习题10中
(1)~
(2)的查询。
④在数据库TSGL的图书、读者和借阅3个表中,用SELECT语句完成以下查询:
查询类别为“计算机”的所有图书信息;查询数据库方面的图书信息;查询2008-05-10到2008-07-10之间的借阅资料。
(2)连接查询操作。
该实验包括等值连接、自然连接、一般连接(内连接)、外连接、左外连接、右外连接和自然连接等。
①在数据库JWGL中的学生表Student、课程表Course、学生选课表SC中完成第3章例3.35~例3.39中例题的查询操作。
②在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中(5)的查询。
③在数据库SPJ的供应商表S、零件表P、工程项目表J、供应情况表SPJ中,用SELECT查询语句完成第2章习题10中(3)的查询。
④在数据库TSGL的图书、读者和借阅3个表中,用SELECT语句完成以下查询:
查询借书者的借书证号、姓名、单位、所借书号、书名和借阅日期。
三、实验环境
SQLServer2008版本
四、实验前准备
电脑,课本,笔
五、实验步骤
1.查询全体学生的学号,姓名和所在系的有关信息。
SELECTSno,Sname,Sdept
FROMStudent;
2.查询全体学生的所有信息
SELECT*
FROMStudent;
3.对于上例中,在SELECT语句中可以指定一个字符常量,在查询结果中的年龄前显示“YearofBirth。
SELECTSname,'YearofBirth',2008-age
FROMStudent;
4.对于例3.12,可以为出生年份指定一个别名Birthday。
SELECTSname,2008-ageBirthday
FromStudent;
5.查询学生的学号,姓名和所在系
SELECTSno,Sname,LOWER(Sdept)
FROMStudent
6.在SC表中查询所有选了课程的学生的学号,并消除重复的学号。
SELECTDISTINCTSno
FROMSC;
7.查询算机系的所有学生的学号和姓名。
SELECTSno,Sname
FROMStudent
WHERESdept=‘CS’;
8.查询考试成绩不及格的学生的学号。
SELECTSno
FROMSC
WHEREGrade<60
9.查询年龄在20~23岁之间的学生的姓名,所在系和性别。
SELECTSname,Sdept,Sex
FROMStudent
WHERESageBETWEEN20AND23
10.查询计算机系、数学系和信息系的学生姓名和年龄。
SELECTSname,Sage
FROMStudent
WHERESdeptIN('CS','MA','IS');
11.查询既不是数学系也不是计算机系的学生姓名和性别。
SELECTSname,sage
FROMStudent
WHERESdeptNOTIN('MA','CS');
12.查询信息系所有学生的情况。
SELECT*
FROMStudent
WHERESdeptLIKE'IS';
13.查询所有姓张的、第3个字为“伟”的学生的姓名,学号和性别
SELECTSname,Sno,Sex
FROMStudent
WHERESnameLIKE'张__伟%';
14.查询DB_Design课程的课程号及学分。
SELECTCno,Credit
FROMCourse
WHERECnameLIKE'DB\design'ESCAPE'\';
15.查询没有考试成绩的学生的学号及相应的课程号。
SELECTSno,Cno
FROMSC
WHEREGradeISNULL;
16.查询计算机系年龄在20岁以下的学生的学号、姓名、性别
SELECTSno,Sname,Sex
FROMStudent
WHERESdept='CS'ANDSage<20;
17.查询选修了1号课程的学生的学号及成绩,查询结果按成绩的降序排序。
SELECTSno,Grade
FROMSC
WHERECno='1'
ORDERBYGradeDESC
18.查询全体学生情况,查询结果按所在系的升序排序,同一系中的学生按年龄降序排序。
SELECT*
FROMStudent
ORDERBYSdept,SageDESC;
19.查询每个学生及其选修课的情况。
SELECTStudent',SC.FROMStudent,sc
WHEREStudentSnoaSCSno:
六、实验结果
七、评价分析及心得体会
此次试验使我更加掌握了SQL的查询语句的使用方法,包括掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。
数据库的复杂查询
一、实验目的
进一步掌握SELECT语句的使用方法,通过实验能够熟练地使用SELECT语句。
本实验要求掌握嵌套查询和统计查询的操作方法。
二、实验内容
(1)在数据库JWGL的学生表Student、课程表Course、学生选课表SC中完成第3章例3.40~例3.47中的查询操作。
(2)在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中(6)~(9)的查询。
(3)在数据库SPJ中的供应商表S、零件表P、工程项目表J、供应情况表SPJ中,用SELECT查询语句完成第2章习题10中(4)~(5)的查询。
(4)在数据库TSGL的图书、读者和借阅3个表中,用SELECT语句完成以下查询。
①查询人民邮电出版社出版的各类图书的平均价格。
SELECT类别,AVG(定价)平均价
FROM图书
WHERE出版社=‘人民邮电出版社’
GROUPBY类别
ORDERBY类别ASC
②使用嵌套查询完成查询借了书的读者信息。
③统计目前借了书的读者人数。
④统计过期未还书的图书册数。
三、实验环境
SQLServer2008版本
四、实验前准备
电脑,课本,笔
五、实验步骤及结果
1.查询选修了1号课程的学生的姓名
2.查询其他系中比计算机系某一学生年龄小的学生姓名和年龄。
3.在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中(6)~(9)的查询。
(1)查找订单编号,商品编号,客户编号,按日期对订单分组,显示订货数量不超的订单信息
(2)查找所有西安客户的订单信息,要求用不相关子查询完成
3.在数据库TSGL的图书、读者和借阅3个表中,用SELECT语句完成查询:
六、评价分析及心得体会
此次实验学会了嵌套查询和统计查询的基本操作方法。
结合老师上课讲的内容,再在计算机上操作一遍,加强掌握了所学的数据库知识,为以后更深入的去学习数据库奠定了基础。
索引和视图
一、实验目的
(1)理解索引和视图的概念
(2)掌握索引的使用方法
(3)掌握视图的定义和使用方法。
二、实验内容
(1)建立索引。
对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。
USEJWGL
IFEXISTS(SELECTnameFROMsysindexesWHEREname='SCind')DROPINDEXSC.SCind;
GO
USEJWGL
CREATEINDEXSC_indONSC(Cno,GradeDESC);
(2)视图的定义和操作。
①在JWGL数据库中,完成第3章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。
②在Market数据库中,完成第3章习题11中
(1)的建立视图的操作,然后在该视图上完成第3章习题11中
(2)的查询操作。
三、实验环境
SQLServer2008版本
四、实验前准备
电脑,课本,笔
五、实验步骤及结果
1.建立一个名为SC_ind的索引
2.在JWGL数据库中完成操作
(1)建立计算机系学生的视图,并要求进行行修改和插入操作时需保证该视图只能对计算机系的学生进行操作
(2)例3.55建立选择了2号课程且成绩在80分以上的学生视图。
(3)建立一个反映学生出生年份的视图。
3.在Market数据库中,完成查询操作。
六、评价分析及心得体会
通过本次实验,我不仅理解了索引和视图的概念,并且掌握了索引的使用方法,最后,掌握视图的定义和使用方法。
虽然实验有所难度,但是我通过自己的努力坚持将实验做完,尽管中间有许多困难和错误,我还是从中收获了许多。
存储过程
一、实验目的
理解存储过程的概念,掌握存储过程的使用方法。
二、实验内容
存储过程是一系列预先编译好的、能实现特定数据操作功能的SOL代码集,它与特定的数据库相关联,存储在服务器上。
创建用户自定义存储过程既可以在查询分析器中用SQL语句完成,也可以用企业管理器完成。
在企业管理器中书写存储过程时,是在“新建存储过程”对话框中的“文本”框中输入创建存储过程的SQL语句。
(1)在数据库JWGL中,完成第4章例1、例3~7中例题的创建存储过程的操作,并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。
(2)在Market数据库中,完成第4章习题5中
(1)~(4)创建存储过程的操作。
并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。
(3)在Market数据库中,进一步完成以下操作。
①创建一个存储过程Goods_Orders1,查看任何指定货品的订单情况,包括订单号、订货客户的姓名以及订货数量等(要使用输入参数)
②执行存储过程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告