实验一SQLServer数据库的安装和创建数据库.docx
《实验一SQLServer数据库的安装和创建数据库.docx》由会员分享,可在线阅读,更多相关《实验一SQLServer数据库的安装和创建数据库.docx(19页珍藏版)》请在冰豆网上搜索。
实验一SQLServer数据库的安装和创建数据库
实验一:
SQLServer数据库的安装和创建数据库
一、实验目的:
熟悉SQLServer2000的安装过程及运行环境,掌握企业管理器的使用
二、实验内容:
在服务器的操作系统下安装SQLServer2000版本的服务器端和客户端软件,在安装成功后,登录SQLServer服务器,运行企业管理器和查询分析器。
三、实验步骤:
实验二:
创建表及对表的基本操作
一、实验目的:
掌握利用企业管理器创建数据库、创建表的方法,理解关系型数据库中的表的属性名、数据类型及表的主外键等
二、实验内容:
创建一个名称为factory的数据库并建立相关表
三、实验步骤:
(1)将主数据库文件factory-data.MDF放置在E:
\DBF文件夹中,其文件大小自动增长为按5MB增长。
(2)将事务日志文件factory-data.MDF放置在E:
\DBF文件夹中,其文件大小自动增长为按1MB增长。
(3)建立职工表worker,其结构:
职工号:
int,姓名:
char(8),性别:
char
(2),出生日期:
datatime,党员否:
bit,参加工作:
datatime,部门号:
int。
其中“职工号”为主键。
在worker表中输入如下记录:
(4)建立部门表depart,其结构为:
部门号:
int,部门名:
char(10)。
其中,“部门号”为主键。
在depart表中输入如下记录:
(5)建立职工工资表salary,其结构为:
职工号:
int,姓名:
char(8),,出生日期:
datatime,工资:
dacimal(6,1)。
其中“职工号”和“日期”为主键。
在salary表中输入如下记录:
(6)建立worker、depart和salary3个表之间的关系。
实验三:
数据查询
一、实验目的:
掌握各种查询语句的实现,包括一定程度的复杂查询,掌握利用SQLServer2000的查询分析器书写SQL语句进行各种查询、插入记录值及删除记录值
二、实验内容:
在factory数据库中实现查询、插入数据、删除数据
(1)显示所有职工的年龄。
(2)求出各部门的党员人数。
(3)显示所有职工的姓名和2004年1月份的工资数。
(4)显示所有职工的职工号、姓名和平均工资。
(5)显示所有职工的职工号、姓名、部门名和2004年2月份工资,并按部门名顺序排列。
(6)显示各部门和该部门的所有职工平均工资。
(7)显示所有平均工资高于1200的部门名和对应的平均工资。
(8)显示所有职工的的职工号、姓名和部门类型,其中财务处和人事处属管理部门,市场部属市场部门
(9)若存在职工号为10的职工,则显示其工作部门名称,否则显示相应提示信息。
(10)求出男女职工的平均工资,若男职工平均工资与女职工平均工资在1.5~0.8之间,则显示“男职工和女职工的平均工资差不多”的信息:
否则,显示“女职工比男职工的工资高多了”的信息
三、实验步骤:
selecto.id,c.text
fromsysobjectsoinnerJOINsyscommentscono.id=c.id
whereo.type='p'ando.name='oakland_authors'
go
alterprocoakland_authors
withENCRYPTION
as
selectau_fname,au_lname,address,city,zip
frompubs.authors
wherestate='ca'
orderbyau_lname,au_fname
go
selecto.id,c.text
fromsysobjectsoinnerjoInsyscommentscono.id=c.id
whereo.type='p'ando.name='oakland_authors'
go
selectcustomer.customer
fromcustomer,loan
whereloan.bank='农业银行'
andloan.laccount=customer.account
实验四:
索引的应用
一、实验目的:
利用企业管理器在数据库的表上创建索引,理解创建索引的目的意义
二、实验内容:
在factory数据库的三章表中建立索引
三、实验步骤:
实验五:
视图的应用
一、实验目的:
通过企业管理器和查询分析器建立视图,掌握创建视图的方法,理解利用视图的便利之处
二、实验内容:
(1)建立视图view1,查询所有职工的职工号、姓名、部门名和2004年2月份的工资,并按部门名顺序排序
(2)建立视图view2,查询所有职工的职工号、姓名和平均工资
(3)建立视图view3,查询各部门和该部门的所有职工的平均工资
(4)显示视图view3的定义
三、实验步骤:
selectbank
fromdeposite
groupbybank
havingsum(account)>=all(selectsum(account)assumc
fromdeposite
whereddatelike'2004%'
groupbybank
)
selectsum(account)
fromdeposite
groupbybank
whereddate>='2004-01-01'
andddate<='2004-12-31'
usestudent
go
createview数据库系统概论成绩as
selecta.sid,a.sname,ame,c.score
fromt_stuasainnerjoint_scoreasc
ona.sid=c.sidinnerjoint_courseasb
onb.cid=c.cid
whereame='数据库系统概论'
go
select*from数据库系统概论成绩
orderbyscoredesc
实验六:
存储过程与触发器的应用
一、实验目的:
掌握通过企业管理器和查询分析器创建存储过程与触发器的方法,理解存储过程与触发器的运行机理
二、实验内容:
(1)创建一个为worker表添加职工记录的存储过程addworker
(2)创建一个存储过程delworker删除worker表中指定职工号的记录
(3显示存储过程delworker
(4)删除存储过程delworker和addworker
(5)在表depart上创建一个触发器depart_update,当更改部门号时同步更改worker表中对应的部门号
(6)在表worker上创建一个触发器worker_delete,当删除职工记录时同步删除slalry表中对应职工的工资记录
(7)删除触发器depart_update和worker_delete
三、实验步骤:
ifexists(selectnamefromsysobjects
wherename='p1'andtype='p')
dropprocp1
go
createprocp1
@banknamevarchar(50),
@count5yvarchar(50)output
as
select@count5y=bank
fromdeposite
wherebank=@bankname
anddtype='定期'
go
declare@banknvarchar(50)
execp1'交通银行',@banknoutput
go
createprocdbo.dt_addtosourcecontrol
@vchSourceSafeINIvarchar(255)='',
@vchProjectNamevarchar(255)='',
@vchCommentvarchar(255)='',
@vchLoginNamevarchar(255)='',
@vchPasswordvarchar(255)=''
as
setnocounton
declare@iReturnint
declare@iObjectIdint
select@iObjectId=0
declare@iStreamObjectIdint
select@iStreamObjectId=0
declare@VSSGUIDvarchar(100)
select@VSSGUID='SQLVersionControl.VCS_SQL'
declare@vchDatabaseNamevarchar(255)
select@vchDatabaseName=db_name()
declare@iReturnValueint
select@iReturnValue=0
declare@iPropertyObjectIdint
declare@vchParentIdvarchar(255)
declare@iObjectCountint
select@iObjectCount=0
exec@iReturn=sp_OACreate@VSSGUID,@iObjectIdOUT
if@iReturn<>0GOTOE_OAError
/*CreateProjectinSS*/
exec@iReturn=sp_OAMethod@iObjectId,
'AddProjectToSourceSafe',
NULL,
@vchSourceSafeINI,
@vchProjectNameoutput,
@@SERVERNAME,
@vchDatabaseName,
@vchLoginName,
@vchPassword,
@vchComment
if@iReturn<>0GOTOE_OAError
exec@iReturn=sp_OAGetProperty@iObjectId,'GetStreamObject',@iStreamObjectIdOUT
if@iReturn<>0GOTOE_OAError
/*SetDatabaseProperties*/
begintranSetProperties
/*addhighlevelobject*/
exec@iPropertyObjectId=dbo.dt_adduserobject_vcs'VCSProjectID'
select@vchParentId=CONVERT(varchar(255),@iPropertyObjectId)
execdbo.dt_setpropertybyid@iPropertyObjectId,'VCSProjectID',@vchParentId,NULL
execdbo.dt_setpropertybyid@iPropertyObjectId,'VCSProject',@vchProjectName,NULL
execdbo.dt_setpropertybyid@iPropertyObjectI