SQL实验报告.docx
- 文档编号:29212365
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:18
- 大小:43.10KB
SQL实验报告.docx
《SQL实验报告.docx》由会员分享,可在线阅读,更多相关《SQL实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
SQL实验报告
XX大学
计算机操作系统实验报告
学号
2011/6/6
目录
以产品销售系统为例做以下实验:
1、用E-R图设计数据库
2、数据库表结构设计
3、数据查询
4、数据库的安全性和完整性
5、数据库的存储与恢复
实验1:
用E-R图设计数据库
一、目的与要求
①熟悉E-R模型的基本概念和图形的表示方法。
②掌握将现实世界的事物转化成E-R图的基本技巧。
③熟悉关系数据模型的基本概念。
④掌握将E-R图转化成关系表的基本技巧。
二、实验内容
①根据要求确定实体、属性和联系。
②实体、属性和联系转化为E-R图。
③将E-R图转化为表。
三、实验步骤
1、设计能够表示出产品与销售商关系的数据库。
①确定产品实体和销售商实体的属性。
②确定产品和销售商之间的联系,给联系命名并指出联系的类型。
③确定联系本身的属性。
④画出产品与销售商关系的E-R图。
⑤将E-R图转化为表,写出表的关系模式。
2、产品销售系统分析:
①实体属性如下:
产品:
产品编号,产品名称,价格,库存量
销售商:
销售商编号,销售商名称,地区,负责人,电话,备注
②各实体间的联系如下:
销售商销售商品的n:
m“销售”联系。
③关系模型:
产品(产品编号,产品名称,价格,库存量)
销售商(销售商编号,销售商名称,地区,负责人,电话,备注)
④对应的E-R模型如下:
四、实验总结
产品销售系统相对于其他的系统比如说教务系统、图书管理系统等来说,相对的要简单许多而且思路也比较清晰,但是由于之前没有接触过类似的实验,所以在作E-R图时和设计实验步骤时出了点小问题,但是经过仔细思考和查阅相关资料之后还是解决了。
实验可能还不够完善,中间会有些缺陷和不足,还请老师能够指出我的不足之处。
实验2:
数据库表结构设计
一、实验目的
1掌握创建表的两种方法
2有效掌握表和表中数据的各种方法
二、实验内容
1使用企业管理器创建“产品信息表”,简要写出操作步骤。
2使用CREATETABLE语句创建“销售商信息表”,写出程序代码。
3使用CREATETABLE语句创建“销售表”,写出程序代码。
三、实验步骤
在实验1的基础上,对产品销售系统作相关的表结构设计
1、在“产品销售”数据库中创建“产品信息表”,表结构如下:
列名
数据类型
长度
是否允许为空
说明
产品编号
字符型(char)
6
不允许为空
产品编号,主键
产品名称
字符型(char)
30
不允许为空
产品名称
价格
浮点型(flaot)
8
允许为空
价格
库存量
整型(int)
4
允许为空
库存量
1打开企业管理器,展开SQLServer组,展开建立表所在的“产品销售”数据库。
2选中表节点,单击鼠标右键,在弹出的菜单中选中“新建表”命令。
打开表设计器窗口。
3在表设计器窗口建立表结构。
4按照“产品信息表”的结构,在相应的列中输入表结构中的信息。
5将“产品编号”设为主键。
6填完所有列后,单击“保存”,在随后跳出的对话窗口中输入“产品信息表”。
单击“确认”按钮,完成表的创建。
2、在“产品销售”数据库中创建“销售商信息表”
列名
数据类型
长度
是否允许为空
说明
销售商编号
字符型(char)
6
不允许为空
销售商编号,主键
销售商名称
字符型(char)
30
不允许为空
销售商名称
地区
字符型(char)
10
允许为空
地区
负责人
字符型(char)
10
允许为空
负责人
电话
字符型(char)
12
允许为空
电话
备注
文本(text)
16
允许为空
备注
用CREATETABLE语句,在查询分析器中创建“销售商信息表”的程序:
USE产品信息表
GO
CREATETABLE销售商信息表
(
销售商编号CHAR(6)PRIMARYKEY,——设置主键
销售商名称CHAR(30)NOTNULL,——非空属性
地区CHAR(10),
负责人CHAR(10),
电话(12),
备注TEXT
)
GO
3、在“产品销售”数据库中创建“销售表”
列名
数据类型
长度
是否允许为空
说明
产品编号
字符型(char)
6
不允许为空
产品编号,主属性,外键
主键
销售商编号
字符型(char)
6
不允许为空
销售商编号,主属性,外键
销售时间
日期时间型(datetime)
8
不允许为空
销售时间,主属性
销售数量
整型(int)
4
不允许为空
销售数量
销售金额
货币类型(money)
8
不允许为空
销售金额
用CREATETABLE语句,在查询分析器中创建产品销售系统的“销售表”
USE产品销售
GO
CREATETABLE销售表
(
产品编号CHAR(6)NOTNULL
CONSTRAINTFK_销售_产品信息FOREIGNKEY(产品编号)REFERENCES产品信息(产品编号),——定义外键
销售商编号CHAR(6)NOTNULL
CONSTRAINTFK_销售_销售商信息FOREIGNKEY(销售商编号)REFERENCES销售商信息(销售商编号),——定义外键
销售时间DATETIMENOTNULL,
销售数量INTNOTNULL,
销售金额MONEYNOTNULL,
CONSTRAINTFK_销售PRIMARYKEYCLUSTERED——设置主键
(
产品编号,
销售商编号,
销售时间
)
)
GO
四、实验结果
1、产品信息表
产品编号
产品名称
价格
库存量
000001
长虹彩电
3000
13
000002
小天鹅洗衣机
1200
25
000003
容声冰箱
1800
17
000004
樱花电热水器
2000
36
000005
太阳能热水器
2200
18
000006
海尔1匹空调
1800
35
2、销售商信息表
销售商编号
销售商名称
地区
负责人
电话
电子信箱
备注
1
100001
国美电器
北京
张广平
84627472
NULL
NULL
2
100002
苏宁家电
江苏常州
张宏
88779462
NULL
NULL
3
100003
万宝电器
河南
王新城
27462783
NULL
NULL
五、实验总结
在表结构的设计这一实验中,对于我来说最困难的就是用CREATETABLE的代码来创建表,由于对代码运用的不熟练再加上记得不牢固,写起来比较吃力,但是在经过多次尝试和修改之后还是运行成功了,在这期间,我认识到,只要静下心来认真思考,总会有解决的办法的。
实验3:
数据查询
一、实验目的
1掌握SELECT语句的语法格式。
2了解SELECT语句的执行顺序。
3能够灵活运用SELECT语句进行数据查询。
二、实验内容
在“产品销售”数据库中,用SELECT语句完成下面的数据查询:
1在“产品销售”数据库中查询“产品信息表”中的全部记录。
2在“产品销售”数据库中查询“产品信息表”中所有产品的“产品名称”和“价格”。
3在“产品销售”数据库中查询“产品信息表”的“产品名称”、“价格”、“库存量”,其中显示的字段名分别是“产品名称”、“销售价格”、“产品库存量”。
4查询“产品销售”数据库中的“产品信息表”,列出每种产品的价值。
产品价值是产品价格和库存量的乘积。
5在实验⑤的基础上进行改进,给出查询结果中前面三行的记录。
6查询“产品信息表”中的所有数据,要求检索结果按照“价格”降序排列。
7将“产品信息表”与“销售表”做内连接,得到每次销售的产品名称、销售数量、销售时间。
三、实验步骤
1SELECT*FROM产品信息表
2SELECT产品名称,价格FROM产品信息表
3SELECT产品名称,价格AS销售价格,库存量AS产品库存量
FROM产品信息表
4SELECT产品名称,价格*库存量AS产品总价值FROM产品信息表
5SELECT*FROM产品信息表ORDERBY价格
6SELECTa.产品名称,b.数量,b.销售时间FROM产品信息表ASaINNERJOIN销售ASbONa.产品编号=b.产品编号
GO
四、实验结果
1
产品编号
产品名称
价格
库存量
1
000001
长虹彩电
3000.0
13
2
000002
小天鹅洗衣机
1200.0
25
3
000003
容声冰箱
1800.0
17
4
000004
樱花电热水器
2000.0
36
5
000005
太阳能热水器
2200.0
18
6
000006
海尔1匹空调
1800.0
35
2
产品名称
价格
库存量
1
长虹彩电
3000
13
2
小天鹅洗衣机
1200
25
3
容声冰箱
1800
17
4
樱花电热水器
2000
36
5
太阳能热水器
2200
18
6
海尔1匹空调
1800
35
3
产品名称
价格
库存量
1
长虹彩电
3000.0
13
2
小天鹅洗衣机
1200.0
25
3
容声冰箱
1800.0
17
4
樱花电热水器
2000.0
36
5
太阳能热水器
2200.0
18
6
海尔1匹空调
1800.0
35
4
产品名称
产品总价值
库存量
1
长虹彩电
39000.0
13
2
小天鹅洗衣机
30000.0
25
3
容声冰箱
30600.0
17
4
樱花电热水器
72000.0
36
5
太阳能热水器
39600.0
18
6
海尔1匹空调
63000.0
35
5
产品编号
产品名称
价格
库存量
1
000001
长虹彩电
3000.0
13
2
000005
太阳能热水器
2200.0
18
3
000004
樱花电热水器
2000.0
36
4
000003
容生冰箱
1800.0
17
5
000006
海尔1匹空调
1800.0
35
6
000002
小天鹅洗衣机
1200.0
25
6
产品名称
销售数量
销售时间
1
长虹彩电
1
2010-08-1000:
00:
00
2
长虹彩电
2
2010-09-2000:
00:
00
3
小天鹅洗衣机
1
2010-08-1000:
00:
00
4
小天鹅洗衣机
2
2010-05-1500:
00:
00
5
小天鹅洗衣机
3
2010-11-1700:
00:
00
五、实验总结
数据库的查询是SQL和VFP课程中的核心操作,所以本次实验中数据查询也是重中之重。
SQL的数据查询与VFP类似,都是使用SELECT语句进行数据查询,实验中不仅写出了查询语句而且给出了查询结果,列出了简单的几条记录。
查询这一块相对其他几个实验来说是相当复杂,因为查询分为很多种,比如条件查询、聚合函数、多表查询等等,其间也是耗时最多的一个部分,但是整个过程让我懂得了耐心的重要性。
实验4:
数据库的安全性和完整性
一、实验目的
1掌握主键、唯一键、检查、默认值等的创建方法。
2掌握默认,规则、用户自定义数据类型的使用方法。
二、实验内容
1查找“产品信息表”中的主键,然后删除主键,最后再将主键添加上,写出相应的SQL语句。
2使用企业管理器建立唯一键约束。
在“销售商信息表”中“电话”后插入一列:
“电子信箱,char(40),NULL”,并对“电话”列建立唯一键约束,要求表中“电话”列取值是唯一的。
3对“销售信息表”中的“电话”列添加检索约束,要求每个新加入或修改的电话号码为8位数字,但对表中现有的记录不进行检查,写出相应的SQL语句。
4在“销售商信息表”的“备注”列上,添加默认值约束,默认值为“经理”。
然后添加一条新纪录,相关信息为:
“‘100004’,‘航天电器城’,‘山东’,‘李耀国’,‘64390715’,‘liyaoguo@’”。
三、实验步骤
1USE产品销售
GO
EXECUTESP_HELP产品信息表——查看主键
GO
ALTERTABLE产品信息表——删除主键
DROP
CONSTRAINTPK_产品信息表
GO
ALTERTABLE产品信息表——添加“工号”列为主键
ADD
CONSTRAINTPK_产品信息表PRIMARYKEY(产品编号)
GO
②
(1)打开“销售商信息表”,单击鼠标右键打开设计表操作窗口,选择“备注”一列,单击右键选择“插入列”命令。
(2)输入列名、数据类型、长度等信息,并保存结果。
(3)在设计表窗口任意处,单击右键选择“属性”或“索引/键”选项,或者打击设计表窗口工具栏上的“表和索引属性”按钮。
(4)在“索引/键”选项卡中单击“新建”按钮,然后输入新建的索引名称,也可直接用系统默认名,在“列名”的下拉框中选择“电话”,并设置索引顺序。
接下来选择“创建UNIQUE”复选按钮。
若要删除该约束,直接按“删除”按钮即可。
(5)保存设置。
③USE产品销售
GO
EXECUTESP_HELP销售商信息表
GO
ALTERTABLE销售商信息表
DROP
CONSTRAINTCK_销售商信息表
GO
ALTERTABLE销售商信息表
WITHNOCHECKADD
CONSTRAINTCK_销售商信息表
CHECK([电话]LIKE‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9]’)
GO
④USE产品销售
GO
ALTERTABLE销售商信息表——删除默认值约束
DROP
CONSTRAINTDF_销售商信息表_备注
GO
ALTERTABLE销售商信息表——添加默认值约束
ADD
CONSTRAINTDF_销售商信息表-备注DEFAULT‘经理’FOR备注
INSERT销售商信息表(销售商编号,销售商名称,地区,负责人,电话,电子信箱,备注)
VALUES(‘100004’,‘航天电器城’,‘山东’,‘李耀国’,‘64390715’,‘liyaoguo@’,DEFAULT)
GO
SELECT*FROM销售商信息表——查看销售商信息表中的全部记录
GO
四、实验结果
1
Name
Owner
Type
Created_datetime
1
产品信息表
dbo
usertable
2008-07-21
Column_name
Type
Computed
Length
Prec
Scale
Nullable
TrimTrailingBlanks
1
产品编号
Char
No
6
No
No
2
产品名称
Char
No
30
No
No
3
价格
Float
No
8
53
NULL
Yes
(n/a)
4
库存量
Int
No
4
10
0
Yes
(n/a)
Identity
Seed
Increment
NotForReplication
1
Noidentitycolumndefined.
NULL
NULL
NULL
RowGuidcol
1
Norowguidcolcolumndefined.
2略。
3略。
4
销售商编号
销售商名称
地区
负责人
电话
电子信箱
备注
1
100001
国美电器
北京
张广平
84627472
NULL
NULL
2
100002
苏宁家电
江苏常州
张宏
88779462
NULL
NULL
3
100003
万宝电器
河南
王新城
27462783
NULL
NULL
4
100004
航天电器城
山东
李耀国
64390715
Liyaoguo@
经理
五、实验总结
实体完整性要求表中的每一行必须是唯一的,它可以通过主键约束、唯一键约束、索引和标识来实现,也称为列完整性。
参照完整性又称引用完整性。
它定义了一个关系数据库中,被参照表(从表)中数据保持一致。
用户自定义完整性即为用户根据自身需求定义不属于上述完整性分类的完整性。
实验过程中较为复杂,花费了大量时间编写语句,经过反复修改和调试,最终还是基本解决了所出现的问题,但中间也不乏有不足和错误的地方,还望老师能予以纠正。
实验5:
数据库的存储与恢复
一、实验目的
1理解备份与恢复的相关概念。
2掌握备份与恢复数据库的方法。
二、实验内容
1创建一个逻辑名为“产品销售表BACK”的备份设备,然后将“产品销售表”数据库备份设备上。
2使用命令还原数据库。
三、实验步骤
1EXECsp_addumpdevice‘DISK’,‘产品销售表BACK’,‘E:
\产品销售表.BAK’
BACKUPDATABASE产品销售表TO产品销售表BACKWITHINIT,NAME=‘产品销售表Bak’
2——进行数据库差异备份
BACKUPDATABASE产品销售表TO产品销售表BACKWITHDIFFERENTIAL,NAME=‘产品销售表Bak
GO
——确保不再使用“产品销售”数据库
USEMASTER
——还原数据库完全设备
RESTOREDATABASE产品销售表FROM产品销售表BACK
WITHFILE=1,NORECOVERY
——还原数据库差异备份
RESTOREDATABASE产品销售表FROM产品销售表BACK
WITHFILE=2,NORECOVERY
GO
四、实验总结
数据库的存储与恢复又可叫做数据库的备份与恢复。
数据库的备份是恢复数据库结构、对象和数据的备份,以便数据库遭受破坏时能够修复数据库。
数据库的恢复是指将备份的数据库再加载到数据库服务器中。
数据库的备份与恢复降低了因某种计算机故障丢失重要数据的风险,给日常的作业带来很有效的保证。
实验过程中挺顺利,中间省略了关于数据导入导出的这一步骤,但不影响实验的进行。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 实验 报告