《SQL Server 数据库》Transact-SQL程序设计实验报告_第1页
《SQL Server 数据库》Transact-SQL程序设计实验报告_第2页
《SQL Server 数据库》Transact-SQL程序设计实验报告_第3页
《SQL Server 数据库》Transact-SQL程序设计实验报告_第4页
《SQL Server 数据库》Transact-SQL程序设计实验报告_第5页
全文预览已结束

下载本文档

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

文档简介

北华航天工业学院《数据库系统管理》实验报告报告题目:Transact-SQL程序设计作者所在系部:计算机科学与工程系作者所在专业:网络工程作者学号:作者姓名:指导教师姓名:完成时间:2011年9月26日北华航天工业学院教务处制Transact-SQL程序设计实验目的掌握Transact-SQL语言中注释、局部变量的用法;掌握Transact-SQL语言中常用运算符的用法;掌握Transact-SQL语言中常用函数的用法;掌握Transact-SQL语言中流程控制语句的用法。实验内容(一)附加上次实验所创建的数据库“tb_Library”,并回顾该数据库的数据表信息。(二)练习Transact-SQL语言中两种注释的用法。(三)使用系统函数查看SQLServer当前安装的日期、版本和处理器类型,将结果记录在实验报告中。(四)按要求在数据库“db_Library”上,完成以下功能。1、编制一个函数fc_avgp,根据输入的图书类别名称,返回该类别图书的平均价格,并输入实参调用该函数。2、编制一个函数fc_count,返回本月借书的人数,并输入实参调用该函数。3、定义两个变量分别存放价格上限和下限,根据给定的两个变量的值,返回在该价格范围内的所有图书的信息。4、定义变量“@tsmc”,将某图书的名称赋值给该变量,查询出该图书的借阅情况。如果没有读者借阅,则显示“该图书无人借阅”,否则,显示所借读者的编号、姓名。5、调整图书的库存量,如果原库存量不超过5本,则各增加50%的库存量,并采用向上取整;如果超过5本但不超过10本,则各增加30%的库存量,采用向上取整;如果超过10本但不超过20本,则各增加20%的库存量,并采用向下取整;如果超过20本,则增加10%的库存量,并采用向下取整。6、判定是否有图书过期未还,如果有,则将所有图书的归还日期增加1个月,直到所有图书的归还日期都大于当前日期或者有图书的归还日期超过了201实验步骤(三)、使用系统函数查看SQLServer当前安装的日期、版本和处理器类型。使用命令及结果如下。select@@VERSIONas系统信息系统信息MicrosoftSQLServer2008R2(RTM)-10.50.1600.1(X64)Apr2201015:48:46Copyright(c)MicrosoftCorporationExpressEditionwithAdvancedServices(64-bit)onWindowsNT6.1<X64>(Build7601:ServicePack1)1、编制一个函数fc_avgp,根据输入的图书类别名称,返回该类别图书的平均价格,并输入参数调用该函数。函数fc_avgp如下:usedb_Librarygocreatefunctionfc_avgp(@booktypeaschar(30))returnsmoneyasbegindeclare@avgpricemoneyselect@avgprice=avg(定价)fromtb_booktype,tb_bookwheretb_booktype.类别编号=tb_book.类别编号and类别名称=@booktypereturn@avgpriceend声明变量并调用函数fc_avgpdeclare@pingjunmoneydeclare@srcschar(6)set@srcs='数学'set@pingjun=dbo.fc_avgp(@srcs)print'名称为'+@srcs+'的图书的平均价格为'+cast(@pingjunaschar(10))函数fc_avgp调用结果如图3-1所示。图3-1函数fc_avgp的调用结果2、编制一个函数fc_count,返回本月借书的人数,并输入实参调用该函数。函数fc_count如下:createfunctionfc_count(@datedatetime)returnsintasbegindeclare@rsintselect@rs=count(distinct读者编号)fromtb_borrowwheremonth(借阅日期)=month(@date)andyear(借阅日期)=year(@date)return@rsend函数fc_count调用如下:declare@datedatetimeset@date='2011-05-01'selectdistinctmonth(@date)as当前月份,借书人数=dbo.fc_count(@date)fromtb_borrow函数调用结果如图3-2所示。图3-2函数fc_count的调用结果3、定义两个变量分别存放价格上限和下限,根据给定的两个变量的值,返回在该价格范围内的所有图书的信息。declare@maxpricemoney,@minpricemoneyselect@maxprice=50,@minprice=25select*fromtb_bookwhere定价>@minpriceand定价<@maxprice执行结果如如3-3所示。图3-3查找价格在指定范围的图书信息4、定义变量“@tsmc”,将某图书的名称赋值给该变量,查询出该图书的借阅情况。如果没有读者借阅,则显示“该图书无人借阅”,否则,显示所借读者的编号、姓名。declare@tsmcchar(30)set@tsmc='大学英语'ifexists(select*fromtb_borrow,tb_bookwheretb_borrow.图书编号=tb_book.图书编号and书名=@tsmc)beginselecttb_reader.读者编号,姓名fromtb_borrow,tb_reader,tb_bookwheretb_borrow.读者编号=tb_reader.读者编号andtb_borrow.图书编号=tb_book.图书编号and书名=@tsmcendelseprint'该图书无人借阅'执行结果如图3-4所示。图3-4查找指定书名的图书借阅情况5、调整图书的库存量,如果原库存量不超过5本,则各增加50%的库存量,并采用向上取整;如果超过5本但不超过10本,则各增加30%的库存量,采用向上取整;如果超过10本但不超过20本,则各增加20%的库存量,并采用向下取整;如果超过20本,则增加10%的库存量,并采用向下取整。updatetb_bookset库存数=casewhen库存数<=5thenceiling(库存数*1.5)when(库存数>5and库存数<=10)thenceiling(库存数*1.3)when(库存数>10and库存数<=20)thenfloor(库存数*1.2)elsefloor(库存数*1.1)end6、判定是否有图书过期未还,如果有,则将所有图书的归还日期增加1个月,直到所有图书的归还日期都大于当前日期或者有图书的归还日期超过了2011年12月31日时停止,然后等待3秒后,显示出所有图书信息。whileexists(select*fromtb_borrowwhere归还日期<getdate())begin updatetb_borrowset归还日期=dateadd(month,1,归还日期) ifexists(select*fromtb_borrowwhereyear(归还日期)>2011) break ifexists(select*fromtb_borrowwhere归还日期<getdate()) continue elsebreakend waitfordelay'00:00:03'select*fromtb_book执行结果如图3-5所示。图3-5修改图书归还日期实验总结通过上机实验掌握了Transact-SQL语言中注释和局部变量的用法,对常用运算符的用法有了更深入的了解,能够编写简单的函数,对常用函数如类型转换cast(),日期

温馨提示

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

评论

0/150

提交评论