《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頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

北華航天工業(yè)學院《數據庫系統(tǒng)管理》實驗報告報告題目:Transact-SQL程序設計作者所在系部:計算機科學與工程系作者所在專業(yè):網絡工程作者學號:作者姓名:指導教師姓名:完成時間:2011年9月26日北華航天工業(yè)學院教務處制Transact-SQL程序設計實驗目的掌握Transact-SQL語言中注釋、局部變量的用法;掌握Transact-SQL語言中常用運算符的用法;掌握Transact-SQL語言中常用函數的用法;掌握Transact-SQL語言中流程控制語句的用法。實驗內容(一)附加上次實驗所創(chuàng)建的數據庫“tb_Library”,并回顧該數據庫的數據表信息。(二)練習Transact-SQL語言中兩種注釋的用法。(三)使用系統(tǒng)函數查看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實驗步驟(三)、使用系統(tǒng)函數查看SQLServer當前安裝的日期、版本和處理器類型。使用命令及結果如下。select@@VERSIONas系統(tǒng)信息系統(tǒng)信息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執(zhí)行結果如如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'該圖書無人借閱'執(zhí)行結果如圖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執(zhí)行結果如圖3-5所示。圖3-5修改圖書歸還日期實驗總結通過上機實驗掌握了Transact-SQL語言中注釋和局部變量的用法,對常用運算符的用法有了更深入的了解,能夠編寫簡單的函數,對常用函數如類型轉換cast(),日期

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論