实验一 : SQL Server 数据库的安装和创建数据库一、实验目的:熟悉SQL Server 2000的安装过程及运行环境,掌握企业管理器的使用二、实验内容:在服务器的操作系统下安装SQL Server 2000版本的服务器端和客户端软件,在安装成功后,登录SQL Server服务器,运行企业管理器和查询分析器三、实验步骤:实验二 :创建表及对表的基本操作一、实验目的:掌握利用企业管理器创建数据库、创建表的方法,理解关系型数据库中的表的属性名、数据类型及表的主外键等二、实验内容:创建一个名称为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个表之间的关系实验三 :数据查询一、实验目的:掌握各种查询语句的实现,包括一定程度的复杂查询,掌握利用SQL Server 2000的查询分析器书写SQL语句进行各种查询、插入记录值及删除记录值二、实验内容:在factory数据库中实现查询、插入数据、删除数据(1)显示所有职工的年龄 (2)求出各部门的党员人数 (3)显示所有职工的姓名和2004年1月份的工资数 (4)显示所有职工的职工号、姓名和平均工资5)显示所有职工的职工号、姓名、部门名和2004年2月份工资,并按部门名顺序排列6)显示各部门和该部门的所有职工平均工资7)显示所有平均工资高于1200的部门名和对应的平均工资8)显示所有职工的的职工号、姓名和部门类型,其中财务处和人事处属管理部门,市场部属市场部门(9)若存在职工号为10的职工,则显示其工作部门名称,否则显示相应提示信息。
10)求出男女职工的平均工资,若男职工平均工资与女职工平均工资在1.5~0.8之间,则显示“男职工和女职工的平均工资差不多”的信息:否则,显示“女职工比男职工的工资高多了”的信息三、实验步骤:select o.id,c.textfrom sysobjects o inner JOIN syscomments c on o.id=c.idwhere o.type= 'p' and o.name= '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.textfrom sysobjects o inner joIn syscomments c on o.id=c.idwhere o.type='p' and o.name='oakland_authors'goselect customer.customerfrom customer,loanwhere loan.bank= '农业银行'and loan.laccount= customer.account实验四 :索引的应用一、实验目的:利用企业管理器在数据库的表上创建索引,理解创建索引的目的意义二、实验内容:在factory数据库的三章表中建立索引三、实验步骤:实验五 :视图的应用一、实验目的:通过企业管理器和查询分析器建立视图,掌握创建视图的方法,理解利用视图的便利之处二、实验内容:(1)建立视图view1,查询所有职工的职工号、姓名、部门名和2004年2月份的工资,并按部门名顺序排序(2)建立视图view2,查询所有职工的职工号、姓名和平均工资(3)建立视图view3,查询各部门和该部门的所有职工的平均工资(4)显示视图view3的定义三、实验步骤:select bankfrom depositegroup by bankhaving sum(account) >= all ( select sum(account ) 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_score 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)删除存储过程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 p1 @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 varchar(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 @VSSGUID = '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 @VSSGUID, @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 。