1、dacimal(6,1)。其中“职工号”和“日期”为主键。在salary表中输入如下记录:(6)建立worker、depart和salary3个表之间的关系。实验三 :数据查询掌握各种查询语句的实现,包括一定程度的复杂查询,掌握利用SQL Server 2000的查询分析器书写SQL语句进行各种查询、插入记录值及删除记录值在factory数据库中实现查询、插入数据、删除数据(1)显示所有职工的年龄。 (2)求出各部门的党员人数。 (3)显示所有职工的姓名和2004年1月份的工资数。 (4)显示所有职工的职工号、姓名和平均工资。(5)显示所有职工的职工号、姓名、部门名和2004年2月份工资,并按
2、部门名顺序排列。(6)显示各部门和该部门的所有职工平均工资。(7)显示所有平均工资高于1200的部门名和对应的平均工资。(8)显示所有职工的的职工号、姓名和部门类型,其中财务处和人事处属管理部门,市场部属市场部门(9)若存在职工号为10的职工,则显示其工作部门名称,否则显示相应提示信息。(10)求出男女职工的平均工资,若男职工平均工资与女职工平均工资在1.50.8之间,则显示“男职工和女职工的平均工资差不多”的信息:否则,显示“女职工比男职工的工资高多了”的信息select o.id,c.textfrom sysobjects o inner JOIN syscomments c on o.i
3、d=c.idwhere o.type= p and o.name= oakland_authorsgoalter proc oakland_authorswith ENCRYPTIONas select au_fname,au_lname,address,city,zipfrom pubs.authorswhere state = caorder by au_lname,au_fname select o.id ,c.textfrom sysobjects o inner joIn syscomments c on o.id=c.idwhere o.type= and o.name=selec
4、t customer.customerfrom customer,loanwhere loan.bank= 农业银行and loan.laccount= customer.account实验四 :索引的应用利用企业管理器在数据库的表上创建索引,理解创建索引的目的意义在factory数据库的三章表中建立索引实验五 :视图的应用通过企业管理器和查询分析器建立视图,掌握创建视图的方法,理解利用视图的便利之处(1)建立视图view1,查询所有职工的职工号、姓名、部门名和2004年2月份的工资,并按部门名顺序排序(2)建立视图view2,查询所有职工的职工号、姓名和平均工资(3)建立视图view3,查询
5、各部门和该部门的所有职工的平均工资(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 ) group by bank where ddate = 2004-01-01 and ddate 2004-12-31use studentcreate view 数据库系统概论成绩 as select
6、 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=数据库系统概论select * from 数据库系统概论成绩order by score desc实验六:存储过程与触发器的应用掌握通过企业管理器和查询分析器创建存储过程与触发器的方法,理解存储过程与触发器的运行机理(1)创建一个为worker表添加职工记录的存储过程addworker(2)创建一个存储过程delworker删除wor
7、ker表中指定职工号的记录(3显示存储过程delworker(4)删除存储过程delworker和addworker(5)在表depart上创建一个触发器depart_update,当更改部门号时同步更改worker表中对应的部门号(6)在表worker上创建一个触发器worker_delete,当删除职工记录时同步删除slalry表中对应职工的工资记录(7)删除触发器depart_update和worker_deleteif exists(select name from sysobjects where name= p1 and type = )drop proc p1create pro
8、c p1 bankname varchar(50), count5y varchar(50) outputselect count5y = bankwhere bank = bankname and dtype = 定期 declare bankn varchar(50) exec p1 交通银行,bankn output gocreate proc dbo.dt_addtosourcecontrol vchSourceSafeINI varchar(255) = , vchProjectName varchar(255) = vchComment varchar(255) = vchLogi
9、nName 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_SQLdeclare vchDatabaseName varchar(255)select vchDatabase
10、Name = 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_OAMet
11、hod iObjectId, AddProjectToSourceSafe NULL, vchSourceSafeINI, vchProjectName output, SERVERNAME, vchDatabaseName, vchLoginName, vchPassword, vchComment exec iReturn = sp_OAGetProperty iObjectId, GetStreamObject, iStreamObjectId OUT /* Set Database Properties */ begin tran SetProperties /* add high l
12、evel object */ exec iPropertyObjectId = dbo.dt_adduserobject_vcs VCSProjectID select vchParentId = CONVERT(varchar(255),iPropertyObjectId) exec dbo.dt_setpropertybyid iPropertyObjectId, , vchParentId , NULLVCSProject , vchProjectName , NULLVCSSourceSafeINI , vchSourceSafeINI , NULLVCSSQLServer, SERV
13、ERNAME, NULLVCSSQLDatabase, vchDatabaseName, NULL if error 0 GOTO E_General_Error commit tran SetProperties declare cursorProcNames 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(2
14、55) fetch next from cursorProcNames into vchProcName if fetch_status 0 break select colid, text 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 #ProcLin
15、es) while iCurProcLine = iProcLines declare pos int select pos = 1 declare iCurLineSize int select iCurLineSize = len(select text from #ProcLines where colid = iCurProcLine) while pos = iCurLineSize declare vchProcLinePiece varchar(255) select vchProcLinePiece = convert(varchar(255), substring(selec
16、t text from #ProcLines where colid = iCurProcLine), pos, 255 ) exec iReturn = sp_OAMethod iStreamObjectId, AddStream, iReturnValue OUT, vchProcLinePiece select pos = pos + 255 end select iCurProcLine = iCurProcLine + 1 drop table #ProcLinesCheckIn_StoredProcedure sProjectName = vchProjectName, sSour
17、ceSafeINI = vchSourceSafeINI, sServerName = SERVERNAME, sDatabaseName = vchDatabaseName, sObjectName = vchProcName, sComment = vchComment, sLoginName = vchLoginName, sPassword = vchPassword, iVCSFlags = 0, iActionFlag = 0, sStream = if iReturn = 0 select iObjectCount = iObjectCount + 1CleanUp: close
18、 cursorProcNames deallocate 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, iReturnGO实验七 : SQL语句查询功能掌握利用查询分析器,使用SQL语句实现上面的各种功能的方法(1)删除factory数据库上各
19、个表之间建立的关系(2)显示各职工的工资记录和相应的工资小计。(3)按性别和部门名的所有组合方式列出相应的平均工资。(4)在worker表中使用以下语句插入一个职工记录:insert into depart values (5,设备处)在对worker 和depart 表进行完整外部连接显示职工的职工号、姓名、和部门名,然后删除这两个插入的记录(5) 显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资(6)显示最高工资的职工所在的的部门名(7)显示所有平均工资低于全部平均工资的职工的职工号、姓名(8)采用游标方式实现(6)的功能(9)采用游标方式实现(7)的功能(10)先显示work
20、er表中的职工人数,开始一个事务,插入一个职工记录,再显示worker表中的职工人数,回滚该事务,最后显示worker表中的职工人数(11)在worker表中的部门号列上建立一个非聚集索引,若该索引已存在,则删除后重建(12)在salary表的职工号列和日期列上创建聚集索引,并且强制唯一性delete from employeeswhere year(birthdate) 2000select distinct customer.customerwhere customer.account= loan.laccount and loan.bank = 工商银行 and customer.cus
21、tomerid in ( select customerid from customer,deposite where customer.account= deposite.daccount and deposite.bank = 实验八 :SQL Server 的管理及数据库的备份与还原掌握SQL Server 的管理及数据库的备份与还原的方法,自动实现数据库的管理(1)创建一个登录账号ABC/123456(2)为factory数据库中创建一个用户帐号,并将其关联到ABC登录账号中(3)用企业管理器对factory数据库执行完全备份和还原操作实验九:数据库与开发工具的协同使用全面掌握数据库的
22、系统开发过程,通过实际例子深入理解数据库的管理、使用和维护技巧综合前面所学习的数据库知识,结合VB开发一个学生档案系统,完成班级内的学生个人资料管理、学习成绩管理、学生成绩统计、学期排名等日常教学中比较常用的功能,主要功能如下:(1)学生个人资料管理(2)学生成绩管理(3)学生成绩统计、学期排名 部分代码如下将图片保存到数据库中Private Sub SaveToDB(ByRef PICField As ADODB.Field, DiskFile As String)Const BLOCKSIZE = 4096 每次读写数据块的大小Dim byteData() As Byte 定义数据块数组D
23、im NumBlocks As Long 定义数据块个数Dim FileLength As Long 标识文件长度Dim LeftOver As Long 定义剩余字节长度Dim SourceFile As Long 定义自由文件号Dim I As Long 定义循环变量SourceFile = FreeFile 提供一个尚未使用的文件号Open DiskFile For Binary Access Read As SourceFile打开文件FileLength = LOF(SourceFile) 得到文件长度If FileLength = 0 Then 判断文件是否存在 Close Sou
24、rceFile MsgBox + DiskFile + 指定的文件不存在!Else NumBlocks = FileLength BLOCKSIZE 得到数据块的个数 LeftOver = FileLength Mod BLOCKSIZE 得到剩余字节数 PICField.Value = NullReDim byteData(BLOCKSIZE) 重新定义数据块的大小 For I = 1 To NumBlocks Get SourceFile, , byteData() 读到内存块中 PICField.AppendChunk byteData() 写到要保存的字段中 Next I ReDim byteData(LeftOver) 读到内存块中(剩余的字节)PICField.AppendChunk byteData() Close SourceFile 关闭源文件End IfEnd Sub该过程完成将指定的图片文件DiskFile保存在数据库PICField字段中的功能。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1