实验一SQL Server 数据库的安装和创建数据库.docx
- 文档编号:12203790
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:21
- 大小:288.88KB
实验一SQL Server 数据库的安装和创建数据库.docx
《实验一SQL Server 数据库的安装和创建数据库.docx》由会员分享,可在线阅读,更多相关《实验一SQL Server 数据库的安装和创建数据库.docx(21页珍藏版)》请在冰豆网上搜索。
实验一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@iPropertyObjectId,'VCSSourceSafeINI',@vchSourceSafeINI,NULL
execdbo.dt_setpropertybyid@iPropertyObjectId,'VCSSQLServer',@@SERVERNAME,NULL
execdbo.dt_setpropertybyid@iPropertyObjectId,'VCSSQLDatabase',@vchDatabaseName,NULL
if@@error<>0GOTOE_General_Error
committranSetProperties
declarecursorProcNamescursorfor
selectconvert(varchar(255),name)fromsysobjectswheretype='P'andnamenotlike'dt_%'
opencursorProcNames
while1=1
begin
declare@vchProcNamevarchar(255)
fetchnextfromcursorProcNamesinto@vchProcName
if@@fetch_status<>0
break
selectcolid,textinto#ProcLines
fromsyscomments
whereid=object_id(@vchProcName)
orderbycolid
declare@iCurProcLineint
declare@iProcLinesint
select@iCurProcLine=1
select@iProcLines=(selectcount(*)from#ProcLines)
while@iCurProcLine<=@iProcLines
begin
declare@posint
select@pos=1
declare@iCurLineSizeint
select@iCurLineSize=len((selecttextfrom#ProcLineswherecolid=@iCurProcLine))
while@pos<=@iCurLineSize
begin
declare@vchProcLinePiecevarchar(255)
select@vchProcLinePiece=convert(varchar(255),
substring((selecttextfrom#ProcLineswherecolid=@iCurProcLine),
@pos,255))
exec@iReturn=sp_OAMethod@iStreamObjectId,'AddStream',@iReturnValueOUT,@vchProcLinePiece
if@iReturn<>0GOTOE_OAError
select@pos=@pos+255
end
select@iCurProcLine=@iCurProcLine+1
end
droptable#ProcLines
exec@iReturn=sp_OAMethod@iObjectId,
'CheckIn_StoredProcedure',
NULL,
@sProjectName=@vchProjectName,
@sSourceSafeINI=@vchSourceSafeINI,
@sServerName=@@SERVERNAME,
@sDatabaseName=@vchDatabaseName,
@sObjectName=@vchProcName,
@sComment=@vchComment,
@sLoginName=@vchLoginName,
@sPassword=@vchPassword,
@iVCSFlags=0,
@iActionFlag=0,
@sStream=''
if@iReturn=0select@iObjectCount=@iObjectCount+1
end
CleanUp:
closecursorProcNames
deallocatecursorProcNames
select@vchProjectName
select@iObjectCount
return
E_General_Error:
/*thisisanallornothing.Nospecificerrormessages*/
gotoCleanUp
E_OAError:
execdbo.dt_displayoaerror@iObjectId,@iReturn
gotoCleanUp
GO
实验七:
SQL语句查询功能
一、实验目的:
掌握利用查询分析器,使用SQL语句实现上面的各种功能的方法
二、实验内容:
(1)删除factory数据库上各个表之间建立的关系
(2)显示各职工的工资记录和相应的工资小计。
(3)按性别和部门名的所有组合方式列出相应的平均工资。
(4)在worker表中使用以下语句插入一个职工记录:
insertintodepartvalues(5,’设备处’)
在对worker和depart表进行完整外部连接显示职工的职工号、姓名、和部门名,然后删除这两个插入的记录
(5)显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资
(6)显示最高工资的职工所在的的部门名
(7)显示所有平均工资低于全部平均工资的职工的职工号、姓名
(8)采用游标方式实现(6)的功能
(9)采用游标方式实现(7)的功能
(10)先显示worker表中的职工人数,开始一个事务,插入一个职工记录,再显示worker表中的职工人数,回滚该事务,最后显示worker表中的职工人数
(11)在worker表中的部门号列上建立一个非聚集索引,若该索引已存在,则删除后重建
(12)在salary表的职工号列和日期列上创建聚集索引,并且强制唯一性
三、实验步骤:
deletefromemployees
whereyear(birthdate)<2000
selectdistinctcustomer.customer
fromcustomer,loan
wherecustomer.account=loan.laccount
andloan.bank='工商银行'
andcustomer.customeridin
(selectcustomerid
fromcustomer,deposite
wherecustomer.account=deposite.daccount
anddeposite.bank='工商银行'
)
实验八:
SQLServer的管理及数据库的备份与还原
一、实验目的:
掌握SQLServer的管理及数据库的备份与还原的方法,自动实现数据库的管理
二、实验内容:
(1)创建一个登录账号ABC/123456
(2)为factory数据库中创建一个用户帐号,并将其关联到ABC登录账号中
(3)用企业管理器对factory数据库执行完全备份和还原操作
三、实验步骤:
实验九:
数据库与开发工具的协同使用
一、实验目的:
全面掌握数据库的系统开发过程,通过实际例子深入理解数据库的管理、使用和维护技巧
二、实验内容:
综合前面所学习的数据库知识,结合VB开发一个学生档案系统,完成班级内的学生个人资料管理、学习成绩管理、学生成绩统计、学期排名等日常教学中比较常用的功能,主要功能如下:
(1)学生个人资料管理
(2)学生成绩管理
(3)学生成绩统计、学期排名
三、实验步骤:
部分代码如下
'将图片保存到数据库中
PrivateSubSaveToDB(ByRefPICFieldAsADODB.Field,DiskFileAsString)
ConstBLOCKSIZE=4096'每次读写数据块的大小
DimbyteData()AsByte'定义数据块数组
DimNumBlocksAsLong'定义数据块个数
DimFileLengthAsLong'标识文件长度
DimLeftOverAsLong'定义剩余字节长度
DimSourceFileAsLong'定义自由文件号
DimIAsLong'定义循环变量
SourceFile=FreeFile'提供一个尚未使用的文件号
OpenDiskFileForBinaryAccessReadAsSourceFile
'打开文件
FileLength=LOF(SourceFile)'得到文件长度
IfFileLength=0Then'判断文件是否存在
CloseSourceFile
MsgBox"["+DiskFile+"]指定的文件不存在!
"
Else
NumBlocks=FileLength\BLOCKSIZE'得到数据块的个数
LeftOver=FileLengthModBLOCKSIZE'得到剩余字节数
PICField.Value=Null
ReDimbyteData(BLOCKSIZE)'重新定义数据块的大小
ForI=1ToNumBlocks
GetSourceFile,,byteData()'读到内存块中
PICField.AppendChunkbyteData()'写到要保存的字段中
NextI
ReDimbyteData(LeftOver)'重新定义数据块的大小
GetSourceFile,,byteData()'读到内存块中(剩余的字节)
PICField.AppendChunkbyteData()'写到要保存的字段中
CloseSourceFile'关闭源文件
EndIf
EndSub
该过程完成将指定的图片文件DiskFile保存在数据库PICField字段中的功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验一 SQL Server 数据库的安装和创建数据库 实验 数据库 安装 创建