![實驗4 T-SQL語言.doc_第1頁](http://file.renrendoc.com/FileRoot1/2020-1/16/20bbe8de-6211-428a-9e00-faccf3e8f970/20bbe8de-6211-428a-9e00-faccf3e8f9701.gif)
![實驗4 T-SQL語言.doc_第2頁](http://file.renrendoc.com/FileRoot1/2020-1/16/20bbe8de-6211-428a-9e00-faccf3e8f970/20bbe8de-6211-428a-9e00-faccf3e8f9702.gif)
![實驗4 T-SQL語言.doc_第3頁](http://file.renrendoc.com/FileRoot1/2020-1/16/20bbe8de-6211-428a-9e00-faccf3e8f970/20bbe8de-6211-428a-9e00-faccf3e8f9703.gif)
![實驗4 T-SQL語言.doc_第4頁](http://file.renrendoc.com/FileRoot1/2020-1/16/20bbe8de-6211-428a-9e00-faccf3e8f970/20bbe8de-6211-428a-9e00-faccf3e8f9704.gif)
![實驗4 T-SQL語言.doc_第5頁](http://file.renrendoc.com/FileRoot1/2020-1/16/20bbe8de-6211-428a-9e00-faccf3e8f970/20bbe8de-6211-428a-9e00-faccf3e8f9705.gif)
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
實驗4 T-SQL語言實驗目的:1、 掌握Transact-SQL語言中的變量、運算符、函數(shù);2、 掌握Transact-SQL語句編寫批處理和流程控制程序。3、 掌握游標的創(chuàng)建,打開,數(shù)據(jù)讀取,關閉,銷毀的基本方法實驗內(nèi)容和步驟:Transact-SQL語言是在SQL Server 2005 中使用的程序設計語言。不但包含了標準SQL語言部分,而且為了滿足實際應用中的編程需要,在Transact-SQL語言中還另外增加了一些語言要素,它們包括注釋、變量、運算符、函數(shù)和流程控制語句等。所有的語句都在查詢分析器中執(zhí)行。1. Transact-SQL語句實驗內(nèi)容1: 返回在程序執(zhí)行過程中上一條SQL語句影響的記錄數(shù)(全局變量ROWCOUNT),注意觀察結果窗口。use teach-打開teach 數(shù)據(jù)庫GO-查詢學生表中的記錄SELECT * FROM Student-查詢上一條SELECT語句影響的記錄數(shù)SELECT ROWCOUNT AS 第一次查詢返回的記錄數(shù)GO實驗內(nèi)容2: 查詢學生表的人數(shù),將返回的記錄數(shù)賦給局部變量RowsUSE teachGODECLARE Rows int-聲明局部變量-給局部變量賦值SET Rows=(SELECT COUNT(*) FROM Student)-顯示局部變量的值SELECT Rows AS SELECT返回的記錄數(shù)GO實驗內(nèi)容3: 設置一個局部變量為表,進行插入和查詢操作- 定義變量為臨時表DECLARE Table_Example TABLE (Col_num int PRIMARY KEY, Col_text char (50)- 向該變量中添加兩行內(nèi)容INSERT INTO Table_Example VALUES (1, this is a)INSERT INTO Table_Example VALUES (2, table data type example)- 從臨時表中查詢SELECT * FROM Table_ExampleGO實驗內(nèi)容4:(練習,自己試著寫一下)設置一個局部變量其值為選修了課程的人數(shù),并顯示提示: DECLARE Rows int-聲明局部變量-給局部變量賦值SET Rows=(SELECT COUNT(distinct sno) FROM SC )-顯示局部變量的值SELECT Rows AS 選課人數(shù)GO實驗內(nèi)容5:檢查sysdatabases中的每一個數(shù)據(jù)庫,使用數(shù)據(jù)庫標識號來確定數(shù)據(jù)庫名稱。USE master-打開master 數(shù)據(jù)庫GO-DB_NAME 是一個函數(shù),功能是根據(jù)數(shù)據(jù)庫標識號,來返回數(shù)據(jù)庫的名稱SELECT dbid , DB_NAME(dbid) AS DB_NAMEFROM sysdatabases ORDER BY dbidGO實驗內(nèi)容6:從數(shù)據(jù)庫中返回學生表的第2列的名稱USE teachGO-定義局部變量,用于存放學生表的ID號DECLARE 學生表ID INT-OBJECT_ID是一個函數(shù),功能是返回數(shù)據(jù)庫對象的編號SET 學生表ID= OBJECT_ID(Student)-COL_NAME是一個函數(shù), 返回指定表中指定字段的名稱,即列名SELECT COL_NAME(學生表ID,2) AS 學生表中第2列的名稱GO實驗內(nèi)容7:簡單年、月、日函數(shù)SELECT MONTH(03/12/1998), DAY(03/12/1998),YEAR(03/12/1998)實驗內(nèi)容8:從系統(tǒng)當前日期中返回系統(tǒng)當前的年份數(shù)、月份數(shù)和天數(shù)。- GETDATE()函數(shù)返回系統(tǒng)當前日期SELECT YEAR(GETDATE() AS 當前年份, MONTH(GETDATE() AS 當前月份, DAY(GETDATE() AS 當前天數(shù)GO實驗內(nèi)容9:自己編寫函數(shù)。編寫一個函數(shù),名稱為“函數(shù)_學生選課數(shù)”,要求根據(jù)輸入的學生學號,求此學生的選課數(shù)。USE teachGO-通過CREATE FUNCTION語句創(chuàng)建用戶的自定義函數(shù)“函數(shù)_學生選課數(shù)”CREATE FUNCTION 函數(shù)_學生選課數(shù)(xuehao AS char(9) -函數(shù)的輸入?yún)?shù))RETURNS int -返回結果類型BEGIN -函數(shù)體 DECLARE 選課數(shù) AS int SELECT 選課數(shù) =COUNT(cno) FROM SC WHERE Sno=xuehao RETURN 選課數(shù)ENDGO-使用自定義函數(shù),求選課表(SC)中每位學生的選課數(shù)SELECT DISTINCT Student.Sno,Sname,選課數(shù)=dbo. 函數(shù)_學生選課數(shù)(SC.Sno)FROM Student,SCWHERE Student .Sno=SC.SnoGO實驗內(nèi)容10: (練習,自己試著寫一下)練習自定義函數(shù),求每門課程的選課人數(shù)提示:USE teachGOCREATE FUNCTION 函數(shù)_選課人數(shù)(cno AS char(9) )RETURNS int BEGIN DECLARE 選課人數(shù) AS int SELECT 選課人數(shù) =COUNT(sno) FROM SC WHERE cno=cno RETURN 選課人數(shù)ENDGO-使用自定義函數(shù),查詢每門課的選課人數(shù)(注:沒有人選的課程,不會出現(xiàn))SELECT DISTINCT Course.Cno ,Cname ,選課人數(shù)=dbo. 函數(shù)_選課人數(shù)(SC.Cno)FROM Course,SCWHERE Co=SC.Cno GO-使用自定義函數(shù),通過左外連接,保留了左邊被舍棄的元組SELECT DISTINCT Course.Cno ,Cname ,選課人數(shù)=dbo. 函數(shù)_選課人數(shù)(SC.Cno)FROM Course left join SC on Co=SC.Cno GO2. 游標的創(chuàng)建和使用游標(Cursor)是處理數(shù)據(jù)的一種方法,為了查看或者處理結果集中的數(shù)據(jù),游標提供了在結果集中一次以行或者多行前進或向后瀏覽數(shù)據(jù)的能力。我們可以把游標當作一個指針,它可以指定結果中的任何位置,然后允許用戶對指定位置的數(shù)據(jù)進行處理。T-SQL游標:該游標是基于Declare Cursor 語法,主要用于Transaction-SQL腳本、存儲過程以及觸發(fā)器中。Transaction-SQL游標在服務器處理由客戶端發(fā)送到服務器的Transaction-SQL語句。使用游標要遵循以下順序:聲明游標打開游標讀取數(shù)據(jù)關閉游標刪除游標。1聲明游標實驗內(nèi)容1:以下是一個符合SQL-92標準的游標聲明,此游標是只讀的,只能從頭到尾順序提取數(shù)據(jù)。 DECLARE S_CUR1 CURSOR FOR SELECT * FROM STUDENT FOR READ ONLY實驗內(nèi)容2:以下是一個符合T-SQL擴展的游標聲明,此游標是動態(tài)游標,可前后滾動,可對姓名列進行修改。 DECLARE S_CUR2 CURSOR SCROLL DYNAMIC FOR SELECT * FROM STUDENTFOR UPDATE OF SName2. 打開游標聲明游標之后,要使用游標提取數(shù)據(jù),必須先打開游標。使用OPEN語句可以打開游標。打開游標后,可以使用全局變量CURSOR_ROWS查看游標中數(shù)據(jù)行的數(shù)目。實驗內(nèi)容3:打開游標S_CUR1,輸出其行數(shù) OPEN S_CUR1 SELECT 游標s_cur1的數(shù)據(jù)行數(shù)=CURSOR_ROWS注意:通過聯(lián)機叢書來查詢CURSOR_ROWS,來理解其值的含義3讀取數(shù)據(jù)游標打開后,就可以使用FETCH命令從中讀取數(shù)據(jù)。具體語句格式見聯(lián)機叢書。實驗內(nèi)容4:從游標S_CUR1中提取數(shù)據(jù),只能用NEXT提取數(shù)據(jù)。 FETCH NEXT FROM S_CUR1提示:選中該語句,點擊執(zhí)行,查看結果。再點擊執(zhí)行,查看結果。重復執(zhí)行。實驗內(nèi)容5:從游標S_CUR2中提取數(shù)據(jù):OPEN S_CUR2-讀取游標第一行FETCH FIRST FROM S_CUR2-讀取下一行FETCH NEXT FROM S_CUR2-讀取上一行FETCH PRIOR FROM S_CUR2-讀取最后一行FETCH LAST FROM S_CUR2-讀取當前行的上二行FETCH RELATIVE-2 FROM S_CUR24關閉游標游標使用完后,要及時關閉游標,以釋放當前的結果集并解除定位在該游標記錄行上的游標鎖定。實驗內(nèi)容6:關閉游標S_CUR1CLOSE S_CUR15刪除游標關閉一個游標后,其數(shù)據(jù)結構仍存儲在系統(tǒng)中,需要的時候仍然可以再次使用OPEN語句打開和使用該游標。如果確定以后不再使用該游標,則可以刪除游標,將游標占用的系統(tǒng)空間釋放出來。實驗內(nèi)容7:刪除游標S_CUR1DEALLOCATE S_CUR13. 收獲體會此次實驗與之前的幾次試驗都大有所不同,此次實驗的內(nèi)容主要是關于Transact-SQL語言中的變量、運算符、函數(shù)以及游標的相關操作。對于
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代辦公室空間的靈活性與可變性設計
- 現(xiàn)代物流人才培養(yǎng)與教育創(chuàng)新
- 學校記者團國慶節(jié)活動方案
- 現(xiàn)代企業(yè)的辦公自動化與多維度管理培訓體系構建研究
- 現(xiàn)代企業(yè)家的自我管理與時間管理策略
- 現(xiàn)代汽車制造工藝的變革與教育新模式
- 現(xiàn)代企業(yè)決策中的核心能力體現(xiàn)
- 國慶節(jié)主題活動方案早教
- 2023三年級數(shù)學下冊 四 綠色生態(tài)園-解決問題第3課時說課稿 青島版六三制001
- 2024-2025學年高中歷史 專題八 當今世界經(jīng)濟的全球化趨勢 二 當今世界經(jīng)濟的全球化趨勢(3)教學說課稿 人民版必修2
- 無人機技術與遙感
- 燃煤電廠超低排放煙氣治理工程技術規(guī)范(HJ 2053-2018)
- 臨床敘事護理概述與應用
- TSG-T7001-2023電梯監(jiān)督檢驗和定期檢驗規(guī)則宣貫解讀
- 冠脈介入進修匯報
- 護理病例討論制度課件
- 養(yǎng)陰清肺膏的臨床應用研究
- 恩施自治州建始東升煤礦有限責任公司東升煤礦礦產(chǎn)資源開發(fā)利用與生態(tài)復綠方案
- PDCA提高臥床患者踝泵運動的執(zhí)行率
- 蔣詩萌小品《誰殺死了周日》臺詞完整版
- DBJ-T 15-98-2019 建筑施工承插型套扣式鋼管腳手架安全技術規(guī)程
評論
0/150
提交評論