南昌大学数据库实验报告.docx
《南昌大学数据库实验报告.docx》由会员分享,可在线阅读,更多相关《南昌大学数据库实验报告.docx(26页珍藏版)》请在冰点文库上搜索。
南昌大学数据库实验报告
实验报告
实验课程:
数据库系统概论
学生姓名:
贺艳松
学号:
6100509090
专业班级:
管理科学与工程类093班
2011年6月5日
目录
一、实验一……………………………………………………第3页
二、实验二……………………………………………………第6页
三、实验三…………………………………………………第10页
四、实验四…………………………………………………第16页
五、实验五…………………………………………………第19页
南昌大学实验报告
学生姓名:
贺艳松学号:
6100509090专业班级:
管理科学与工程类093班
实验类型:
□验证□综合□设计□创新实验日期:
2011-4实验成绩:
实验一SQLSERVER2000上机环境
一、实验目的
熟悉SQLSERVER2000上机环境、了解SQLSERVER2000各个组件的作用、学习使用SQLSERVER联机丛书。
二、实验的示例
1、SQLSERVER2000的安装演示
2、讲解各主要组件的作用
3、使用联机丛书获得帮助
三、实验内容与步骤
1、观看SQLSERVER2000安装演示
2、熟悉熟悉SQLSERVER2000上机环境
3、使用联机丛书查找出数据库还原和备份的方法,并按照其中一种方法备份pubs数据库,改变其中的部分数据后,还原数据库pubs。
实验步骤:
1、从网站上下载SQLSERVER2000,然后运行得到如下:
2、点击安装SQLSERVER2000组件,可以得到如下:
3、这时出现安装向导点击下一步
4“本地计算机”是默认选项,其名称就显示在上面,我们按其默认点“下一步”。
5、接下来,在“安装选择”对话窗口中,同样按其默认项“创建新的SQLServer实例,或安装客户端工具”点”下一步“。
6、在用户信息窗口,输入用户信息点击”下一步“。
7、接受软件许可协议,点”是“。
8、在”安装定义“窗口,选择服务器和客户端工具选项进行安装。
我们需要将服务器和客户端同时安装,这样在同一台机器上,我们可以完成相关的所有操作,对于我们学习SQLServer很有用处。
如果你已经在其它机器上安装了SQLServer,则可以只安装客户端工具,用于对其它机器上SQLServer的存取。
选择”服务器和客户端工具“,点击”下一步“。
9、在”实例名“窗口,选择”默认“的实例名称。
这时本SQLServer的名称将和Windows2000服务器的名称相同。
例如笔者的Windows服务器名称是Darkroad,则SQLServer的名字也是Darkroad。
SQLServer2000可以在同一台服务器上安装多个实例,也就是你可以重复安装几次。
这时您就需要选择不同的实例名称了。
建议将实例名限制在10个字符之内。
实例名会出现在各种SQLServer和系统工具的用户界面中,因此,名称越短越容易读取。
另外,实例名称不能是Default或MSSQLServer以及SQLServer的保留关键字等。
10、在”安装类型“窗口,选择”典型“安装选项,并指定目的文件夹。
程序和数据文件的默认安装位置都是C:
\ProgramFiles\MicrosoftSQLServer\。
11、在”服务账号“窗口,请选择”对每个服务使用统一账户...“的选项。
在”服务设置“处,选择”使用本地系统账户“。
如果需要”使用域用户账户“的话,请将该用户添加至WindowsServer的本机管理员组中。
12、安装完毕后,出现该界面,并新增了以下的菜单。
四、注意事项
安装过程中有些事项的选择要谨慎细心。
5、实验体会或对改进实验的建议
安装前要对SQLSERVER2000有所了解,注意在不同的Windows环境下对安装需要的条件不同,以免造成不必要的麻烦。
南昌大学实验报告
学生姓名:
贺艳松学号:
6100509090专业班级:
管理科学与工程类093班
实验类型:
□验证□综合□设计□创新实验日期:
2011-4实验成绩:
实验二数据库的创建、管理与维护
一、实验目的
使学生能够巩固数据库的基础知识,掌握使用SQLServer2000企业管理器方法创建数据库、查看和修改数据库的属性、缩小与删除数据库。
二、实验的示例
1.使用SQLServer2000企业管理器方法创建数据库。
2.使用SQLServer2000企业管理器方法查看、修改数据库属性。
3.使用SQLServer2000企业管理器方法缩小、更改与删除数据库。
4.使用SQLServer2000企业管理器方法备份、还原和维护数据库
三、实验的内容和步骤
1、用企业管理器创建数据库。
⑴创建数据库Sale_manage:
右击数据库,单击【新建数据库】。
⑵输入数据库名称Sale_manage。
⑶选择【数据文件】标签,增加一个文件Sale_manage1,设置初始大小为5MB。
⑷选择【事务日志】标签,增加一个日志文件Sale_manage1_log,初始大小为5MB。
⑸单击【确定】按钮,开始创建数据库。
2、用企业管理器修改数据库Sale_manage,增加一个文件组Sale_manageFG1,并在文件组下增加两个次要数据文件1和2,数据库的参数如下表所示。
3、设置数据库选项:
使用企业管理器修改数据库选项。
右击数据库,单击“属性”,选择“选项”标签,弹出窗口,选中“只读”复选框。
这样数据库就变为只读数据库。
4、压缩数据库:
使用企业管理器压缩数据库。
右击数据库,选择“所有任务”,单击“收缩数据库”,弹出窗口,键入收缩量。
参数
参数值
数据库名
Sale_manage
增加的文件组名
Sale_manageFG1
增加的文件1的逻辑名
Sale_managedat3
文件1在磁盘中的路径
C:
\tdat3.ndf
文件1的初始大小
5MB
文件1的最大值
50MB
文件1的增长量
5MB
增加的文件2逻辑名
Sale_managedat4
文件2磁盘中的路径
C:
\tdat4.ndf
文件2初始大小
5MB
文件2最大值
50MB
文件2增长量
5MB
新增日志逻辑文件名
Sale_managelog2
日志文件在磁盘中的路径
C:
\Sale_managelog.ldf
日志文件初始值
5MB
日志文件最大值
100MB
日志文件增长量
5MB
5、删除数据库:
右键数据库Sale_manage,选择删除
6、备份数据库:
选择要备份的数据库后右键,选择菜单“所有任务”——“备份数据库”
7、还原数据库:
选择要备份的数据库后右键,选择菜单“所有任务”——“还原数据库”
8、数据库维护:
选择数据库服务器或数据库,选择菜单“工具”——“数据库维护计划器”
四、实验报告
5、实验体会或对改进实验的建议
创建数据库时要注意数据的存储路径、文件初始大小、最大值及其类型等。
南昌大学实验报告
学生姓名:
贺艳松学号:
6100509090专业班级:
管理科学与工程类093班
实验类型:
□验证□综合□设计□创新实验日期:
2011-5实验成绩:
实验三分别使用SQLSERVER企业管理器和
T-SQL脚本建立表和表约束
一、实验目的
通过使用SQLSERVER企业管理器建立表。
模式为人事表、客户表、销售表、销售明细表、产品表。
理解数据库模式的概念,理解主键约束、外键约束、UNIQUE约束和CHECK约束。
通过SQLSERVER企业管理器建立表间的约束。
将得到的表生成脚本,保存。
二、实验示例
createtableemployee1(emp_nochar(5)notnull,
constraintemp_nochkcheck(emp_nolike'[E-F][0-9][0-9][0-9][0-9]'),
emp_namechar(10)notnull,
emp_sexchar
(1)notnull,
constraintemp_sexchkcheck(emp_sexin('m','f')),
emp_phonechar(13)notnull,
constraintemp_phonechkcheck(emp_phonelike'([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'),
emp_addvarchar(60)notnull,
emp_salarychar(5)notnull,
constraintemp_salarychkcheck(emp_salarybetween60000and80000)
)
go
三、实验内容与步骤
1、建立五张表,每张表至少需要20条记录。
(1)/*员工人事表employee*/
emp_no
char(5)
Notnull
primarykey
员工编号
emp_name
char(10)
Notnull
员工姓名
Sex
char
(1)
Notnull
性别
Dept
char(4)
Notnull
所属部门
title
char(6)
Notnull
职称
Date_hired
datetime
Notnull
到职日
birthday
datetime
Null
生日
salary
int
Notnull
薪水
Addr
char(50)
Null
住址
(2)/*客户表customer*/
Cust_id
char(5)
Notnull
primarykey
客户号
Cust_name
char(20)
Notnull
客户名称
Addr
char(40)
Notnull
客户住址
tel_no
char(10)
Notnull
客户电话
Zip
char(6)
Null
邮政编码
(3)/*销售主表sales*/
order_no
int
Notnull
primarykey
订单编号
Cust_id
char(5)
Notnull
客户号
Sale_id
char(5)
Notnull
业务员编号
tot_amt
numeric(9,2)
Notnull
订单金额
order_date
datetime
Notnull
订货日期
invoice_no
char(10)
Notnull
发票号码
(4)/*销货明细表sale_item*/
order_no
int
Notnull
primarykey
订单编号
Prod_id
char(5)
Notnull
primarykey
产品编号
Qty
int
Notnull
销售数量
Unit_price
numeric(7,2)
Notnull
单价
Ship_date
datetime
Notnull
出货日期
(5)/*产品名称表product*/
pro_id
char(5)
Notnull
primarykey
产品编号
Prod_name
char(20)
Notnull
产品名称
2、建立表的同时创建表的约束。
(1)为每张表建立主键约束。
(2)通过拖放操作加入外键。
(3)在表employee加入CHECK约束:
输入的员工编号必须以E开头的5位数编号,性别只能为M/F。
(4)为销售主表sales中的发票编号字段建立UNIQUE约束。
3、通过快捷菜单得到脚本。
四、实验报告
设置备份并还原:
实验得到的脚本:
员工人事表(employee):
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[employee]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[employee]
GO
CREATETABLE[dbo].[employee](
[emp_no][char](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[emp_name][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[Sex][char]
(1)COLLATEChinese_PRC_CI_ASNOTNULL,
[Dept][char](4)COLLATEChinese_PRC_CI_ASNOTNULL,
[title][char](6)COLLATEChinese_PRC_CI_ASNOTNULL,
[Date_hired][datetime]NOTNULL,
[birthday][datetime]NULL,
[salary][int]NOTNULL,
[Addr][char](50)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
产品名称表(Product):
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[product]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[product]
GO
CREATETABLE[dbo].[product](
[pro_id][char](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[Prod_name][char](20)COLLATEChinese_PRC_CI_ASNOTNULL
)ON[PRIMARY]
GO
销售明细表(Sale_item):
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[sale_item]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[sale_item]
GO
CREATETABLE[dbo].[sale_item](
[order_no][int]NOTNULL,
[Prod_id][char](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[Qty][int]NOTNULL,
[Unit_price][numeric](18,0)NOTNULL,
[Ship_date][datetime]NOTNULL
)ON[PRIMARY]
GO
销售主表(Sales):
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[sales]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[sales]
GO
CREATETABLE[dbo].[sales](
[order_no][int]NOTNULL,
[Cust_id][char](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[Sale_id][char](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[tot_amt][numeric](18,0)NOTNULL,
[order_date][datetime]NOTNULL,
[invoice_no][char](10)COLLATEChinese_PRC_CI_ASNOTNULL
)ON[PRIMARY]
GO
客户表(Customer):
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[customer]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[customer]
GO
CREATETABLE[dbo].[customer](
[Cust_id][char](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[Cust_name][char](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Addr][char](40)COLLATEChinese_PRC_CI_ASNOTNULL,
[tel_no][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[Zip][char](6)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
5、实验体会或对实验改进的建议
输入数据时要注意数据类型、主码和数据约束的限制。
南昌大学实验报告
学生姓名:
贺艳松学号:
6100509090专业班级:
管理科学与工程类093班
实验类型:
□验证□综合□设计□创新实验日期:
2011-5实验成绩:
实验四使用SELECT、UPDATE/INSERT/DELETE语句
一、实验目的
理解SELECT语句的操作和基本使用方法,熟练使用UPDATE/INSERT/DELETE语句进行表操作。
三、实验内容与步骤
1、查找所有经理的姓名、职称、薪水。
2、查找出姓“王”并且姓名的最后一个字为“功”的员工。
3、添加一条记录至employee表(用INSERT…..INTO)。
4、将每个员工的薪水上调3%。
5、查找住在上海或北京的女员工,并显示其姓名、所属部门、职称、住址。
6、在表sales中挑出销售金额大于等于10000元订单。
7、选取订单金额最高的前10%的订单数据。
8、查找出职称为经理或职称为职员的女员工的信息。
9、删除sales表中作废的订单(其发票号码为I000000004),其订货明细数据也一并删除。
10、计算出一共销售了几种产品。
11、显示sale_item表中每种个别产品的订购金额总和,并且依据销售金额由大到小排列来显示出每一种产品的排行榜。
12、计算每一产品每月的销售金额总和,并将结果按销售(月份,产品编号)排序。
四、实验报告
(1)selectemp_name,title,sex
fromemployee
wheretitle='经理';
(2)select*
fromemployee
whereemp_nameLIKE'王%功';
(3)INSERT
INTOemployee(emp_no,emp_name,sex,Dept,title,date_hired,birthday,salary,Addr)
VALUES('E0014','谭灵','F','财务','职员','2004-07-21',5000,'湖南');
(4)UPDATEemployee
SETsalary=salary+salary*0.3;
(5)selectemp_name,Dept,title,Addr
fromemployee
whereAddr='北京'orAddr='上海';
(6)select*
fromsales
wheretot_amt>10000;
(7)selecttop10percentsum(tot_amt),order_no
fromsales
groupbyorder_no
orderbysum(tot_amt)desc;
(8)SELECT*
FROMemployee
WHEREtitle='经理'ANDSex='F'ORtitle='职员'ANDSex='F';
(9)DELETE
FROMsales
WHEREinvoice_no='I000000004';
(10)selectcount(*)
fromsale_item;
(11)selectprod_id,sum(qty*unit_price)
fromsale_item
groupbyprod_id
orderbysum(qty*unit_price)desc;
(12)selectsum(tot_amt),prod_id,ship_date
fromsale_item,sales
groupbyprod_id,ship_date
orderbysum(tot_amt)desc;
5、实验体会或对实验改进的建议
对某个基本表中的数据进行增、删、改操作要注意对参照完整性的检查和控制。
南昌大学实验报告
学生姓名:
贺艳松学号:
6100509090专业班级:
管理科学与工程类093班
实验类型:
□验证□综合□设计□创新实验日期:
2011-6实验成绩:
实验五表连接JOIN
一、实验目的
理解JOIN语句的操作和基本使用方法,掌握内连接、外连接、自身连接的概念和使用。
二、实验示例
1、检索product表和sale_item表中数量大于2的相同产品的产品编号、产品名称、数量、单价。
selecta.prod_id,a.qty,a.unit_price,b.prod_name
fromsale_itemasainnerjoinproductasb/*如果改成leftjoin/rightjoin试分析结果*/
on(a.prod_id=b.pro_id)anda.qty>2
orderbya.prod_id
2、查找出employee表中住址相同的员工的姓名、性别、职称、薪水、住址。
selecta.emp_na