实验一SQLServer数据库的安装和创建数据库_第1页
实验一SQLServer数据库的安装和创建数据库_第2页
实验一SQLServer数据库的安装和创建数据库_第3页
实验一SQLServer数据库的安装和创建数据库_第4页
实验一SQLServer数据库的安装和创建数据库_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 : SQL Server 数据库的安装和创建数据库一、实验目的:熟悉SQL Server 2000的安装过程及运行环境,掌握企业管理器的使用二、实验内容:在服务器的操作系统下安装SQL Server 2000版本的服务器端和客户端软件,在安装成功后,登录SQL Server服务器,运行企业管理器和查询分析器。三、实验步骤:实验二 :创建表及对表的基本操作一、实验目的:掌握利用企业管理器创建数据库、创建表的方法,理解关系型数据库中的表的属性名、数据类型及表的主外键等二、实验内容:创建一个名称为factory的数据库并建立相关表三、实验步骤:(1)将主数据库文件factory-data.M

2、DF放置在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,其结构为

3、:职工号:int,姓名:char(8),出生日期:datatime,工资:dacimal(6,1)。其中“职工号”和“日期”为主键。在salary表中输入如下记录:(6)建立worker、depart和salary3个表之间的关系。实验三 :数据查询一、实验目的:掌握各种查询语句的实现,包括一定程度的复杂查询,掌握利用SQL Server 2000的查询分析器书写SQL语句进行各种查询、插入记录值及删除记录值二、实验内容:在factory数据库中实现查询、插入数据、删除数据(1)显示所有职工的年龄。 (2)求出各部门的党员人数。 (3)显示所有职工的姓名和2004年1月份的工资数。 (4)显示

4、所有职工的职工号、姓名和平均工资。(5)显示所有职工的职工号、姓名、部门名和2004年2月份工资,并按部门名顺序排列。(6)显示各部门和该部门的所有职工平均工资。(7)显示所有平均工资高于1200的部门名和对应的平均工资。(8)显示所有职工的的职工号、姓名和部门类型,其中财务处和人事处属管理部门,市场部属市场部门(9)若存在职工号为10的职工,则显示其工作部门名称,否则显示相应提示信息。(10)求出男女职工的平均工资,若男职工平均工资与女职工平均工资在1.50.8之间,则显示“男职工和女职工的平均工资差不多”的信息:否则,显示“女职工比男职工的工资高多了”的信息三、实验步骤:select o.

5、id,c.textfrom sysobjects o inner JOIN syscomments c on o.id=c.idwhere o.type= 'p' and = 'oakland_authors'goalter proc oakland_authorswith ENCRYPTIONas select au_fname,au_lname,address,city,zipfrom pubs.authorswhere state = 'ca'order by au_lname,au_fname goselect o.id ,c

6、.textfrom sysobjects o inner joIn syscomments c on o.id=c.idwhere o.type='p' and ='oakland_authors'goselect customer.customerfrom customer,loanwhere loan.bank= '农业银行'and loan.laccount= customer.account实验四 :索引的应用一、实验目的:利用企业管理器在数据库的表上创建索引,理解创建索引的目的意义二、实验内容:在factory数据库的三章表

7、中建立索引三、实验步骤:实验五 :视图的应用一、实验目的:通过企业管理器和查询分析器建立视图,掌握创建视图的方法,理解利用视图的便利之处二、实验内容:(1)建立视图view1,查询所有职工的职工号、姓名、部门名和2004年2月份的工资,并按部门名顺序排序(2)建立视图view2,查询所有职工的职工号、姓名和平均工资(3)建立视图view3,查询各部门和该部门的所有职工的平均工资(4)显示视图view3的定义三、实验步骤:select bankfrom depositegroup by bankhaving sum(account) >= all ( select sum(account

8、) as sumc from deposite where ddate like '2004%' group by bank )select sum(account ) from deposite group by bank where ddate >= '2004-01-01' and ddate <= '2004-12-31' use studentgocreate view 数据库系统概论成绩 as select a.sid,a.sname,ame,c.score from t_stu as a inner join t_sco

9、re as c on a.sid=c.sid inner join t_course as b on b.cid=c.cid where ame='数据库系统概论'goselect * from 数据库系统概论成绩order by score desc实验六:存储过程与触发器的应用一、实验目的:掌握通过企业管理器和查询分析器创建存储过程与触发器的方法,理解存储过程与触发器的运行机理二、实验内容:(1)创建一个为worker表添加职工记录的存储过程addworker(2)创建一个存储过程delworker删除worker表中指定职工号的记录(3显示存储过程delworker(4)

10、删除存储过程delworker和addworker(5)在表depart上创建一个触发器depart_update,当更改部门号时同步更改worker表中对应的部门号(6)在表worker上创建一个触发器worker_delete,当删除职工记录时同步删除slalry表中对应职工的工资记录(7)删除触发器depart_update和worker_delete三、实验步骤:if exists(select name from sysobjects where name= 'p1' and type = 'p')drop proc p1gocreate proc p

11、1 bankname varchar(50), count5y varchar(50) outputas select count5y = bankfrom depositewhere bank = bankname and dtype = '定期'go declare bankn varchar(50) exec p1 '交通银行',bankn output gocreate proc dbo.dt_addtosourcecontrol vchSourceSafeINI varchar(255) = '', vchProjectName var

12、char(255) ='', vchComment varchar(255) ='', vchLoginName varchar(255) ='', vchPassword varchar(255) =''asset nocount ondeclare iReturn intdeclare iObjectId intselect iObjectId = 0declare iStreamObjectId intselect iStreamObjectId = 0declare VSSGUID varchar(100)select V

13、SSGUID = 'SQLVersionControl.VCS_SQL'declare vchDatabaseName varchar(255)select vchDatabaseName = db_name()declare iReturnValue intselect iReturnValue = 0declare iPropertyObjectId intdeclare vchParentId varchar(255)declare iObjectCount intselect iObjectCount = 0 exec iReturn = sp_OACreate VSS

14、GUID, iObjectId OUT if iReturn <> 0 GOTO E_OAError /* Create Project in SS */ exec iReturn = sp_OAMethod iObjectId, 'AddProjectToSourceSafe', NULL, vchSourceSafeINI, vchProjectName output, SERVERNAME, vchDatabaseName, vchLoginName, vchPassword, vchComment if iReturn <> 0 GOTO E_O

15、AError exec iReturn = sp_OAGetProperty iObjectId, 'GetStreamObject', iStreamObjectId OUT if iReturn <> 0 GOTO E_OAError /* Set Database Properties */ begin tran SetProperties /* add high level object */ exec iPropertyObjectId = dbo.dt_adduserobject_vcs 'VCSProjectID' select vch

16、ParentId = CONVERT(varchar(255),iPropertyObjectId) exec dbo.dt_setpropertybyid iPropertyObjectId, 'VCSProjectID', vchParentId , NULL exec dbo.dt_setpropertybyid iPropertyObjectId, 'VCSProject' , vchProjectName , NULL exec dbo.dt_setpropertybyid iPropertyObjectId, 'VCSSourceSafeIN

17、I' , vchSourceSafeINI , NULL exec dbo.dt_setpropertybyid iPropertyObjectId, 'VCSSQLServer', SERVERNAME, NULL exec dbo.dt_setpropertybyid iPropertyObjectId, 'VCSSQLDatabase', vchDatabaseName, NULL if error <> 0 GOTO E_General_Error commit tran SetProperties declare cursorPro

18、cNames cursor for select convert(varchar(255), name) from sysobjects where type = 'P' and name not like 'dt_%' open cursorProcNames while 1 = 1 begin declare vchProcName varchar(255) fetch next from cursorProcNames into vchProcName if fetch_status <> 0 break select colid, text

19、into #ProcLines from syscomments where id = object_id(vchProcName) order by colid declare iCurProcLine int declare iProcLines int select iCurProcLine = 1 select iProcLines = (select count(*) from #ProcLines) while iCurProcLine <= iProcLines begin declare pos int select pos = 1 declare iCurLineSiz

20、e int select iCurLineSize = len(select text from #ProcLines where colid = iCurProcLine) while pos <= iCurLineSize begin declare vchProcLinePiece varchar(255) select vchProcLinePiece = convert(varchar(255), substring(select text from #ProcLines where colid = iCurProcLine), pos, 255 ) exec iReturn

21、= sp_OAMethod iStreamObjectId, 'AddStream', iReturnValue OUT, vchProcLinePiece if iReturn <> 0 GOTO E_OAError select pos = pos + 255 end select iCurProcLine = iCurProcLine + 1 end drop table #ProcLines exec iReturn = sp_OAMethod iObjectId, 'CheckIn_StoredProcedure', NULL, sProj

22、ectName = vchProjectName, sSourceSafeINI = vchSourceSafeINI, sServerName = SERVERNAME, sDatabaseName = vchDatabaseName, sObjectName = vchProcName, sComment = vchComment, sLoginName = vchLoginName, sPassword = vchPassword, iVCSFlags = 0, iActionFlag = 0, sStream = '' if iReturn = 0 select iOb

23、jectCount = iObjectCount + 1 endCleanUp:close cursorProcNamesdeallocate cursorProcNames select vchProjectName select iObjectCount returnE_General_Error: /* this is an all or nothing. No specific error messages */ goto CleanUpE_OAError: exec dbo.dt_displayoaerror iObjectId, iReturn goto CleanUpGO实验七

24、: SQL语句查询功能一、实验目的:掌握利用查询分析器,使用SQL语句实现上面的各种功能的方法二、实验内容:(1)删除factory数据库上各个表之间建立的关系(2)显示各职工的工资记录和相应的工资小计。(3)按性别和部门名的所有组合方式列出相应的平均工资。(4)在worker表中使用以下语句插入一个职工记录:insert into depart values (5,设备处)在对worker 和depart 表进行完整外部连接显示职工的职工号、姓名、和部门名,然后删除这两个插入的记录(5) 显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资(6)显示最高工资的职工所在的的部门名(7)

25、显示所有平均工资低于全部平均工资的职工的职工号、姓名(8)采用游标方式实现(6)的功能(9)采用游标方式实现(7)的功能(10)先显示worker表中的职工人数,开始一个事务,插入一个职工记录,再显示worker表中的职工人数,回滚该事务,最后显示worker表中的职工人数(11)在worker表中的部门号列上建立一个非聚集索引,若该索引已存在,则删除后重建(12)在salary表的职工号列和日期列上创建聚集索引,并且强制唯一性三、实验步骤:delete from employeeswhere year(birthdate) <2000select distinct customer.c

26、ustomerfrom customer,loanwhere customer.account= loan.laccount and loan.bank = '工商银行' and customer.customerid in ( select customerid from customer,deposite where customer.account= deposite.daccount and deposite.bank = '工商银行' )实验八 :SQL Server 的管理及数据库的备份与还原一、实验目的:掌握SQL Server 的管理及数据库的备

27、份与还原的方法,自动实现数据库的管理二、实验内容:(1)创建一个登录账号ABC/123456(2)为factory数据库中创建一个用户帐号,并将其关联到ABC登录账号中(3)用企业管理器对factory数据库执行完全备份和还原操作三、实验步骤:实验九:数据库与开发工具的协同使用一、实验目的:全面掌握数据库的系统开发过程,通过实际例子深入理解数据库的管理、使用和维护技巧二、实验内容:综合前面所学习的数据库知识,结合VB开发一个学生档案系统,完成班级内的学生个人资料管理、学习成绩管理、学生成绩统计、学期排名等日常教学中比较常用的功能,主要功能如下:(1)学生个人资料管理(2)学生成绩管理(3)学生成绩统计、学期排名 三、实验步骤:部分代码如下'将图片保存到数据库中Private Sub SaveToDB(ByRef PICField As ADODB.Field, DiskFile As String)Const BLOCKSIZE = 4096 '每次读写数据块的大小Dim byteData() As Byte &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论