《數(shù)據(jù)庫(kù)原理及應(yīng)用》實(shí)驗(yàn)指導(dǎo)書_第1頁(yè)
《數(shù)據(jù)庫(kù)原理及應(yīng)用》實(shí)驗(yàn)指導(dǎo)書_第2頁(yè)
《數(shù)據(jù)庫(kù)原理及應(yīng)用》實(shí)驗(yàn)指導(dǎo)書_第3頁(yè)
《數(shù)據(jù)庫(kù)原理及應(yīng)用》實(shí)驗(yàn)指導(dǎo)書_第4頁(yè)
《數(shù)據(jù)庫(kù)原理及應(yīng)用》實(shí)驗(yàn)指導(dǎo)書_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE1實(shí)驗(yàn)1初識(shí)SQLServer2000【實(shí)驗(yàn)?zāi)康摹?.熟識(shí)實(shí)驗(yàn)機(jī)房對(duì)SQLServer2000實(shí)驗(yàn)環(huán)境的設(shè)置、學(xué)會(huì)獨(dú)立使用該系統(tǒng);2。熟識(shí)SQLServer2000中企業(yè)管理器和查詢分析器兩個(gè)常用管理工具;【實(shí)驗(yàn)內(nèi)容】1.練習(xí)啟動(dòng)、停止和暫停服務(wù)管組件的服務(wù),了解SQLServer2000中包括的服務(wù)器組件,掌握服務(wù)管理器和使用。2.練習(xí)MicrosoftSQLServerEnterpriseManager的使用。3.練習(xí)MicrosoftSQL查詢分析器的使用?!緦?shí)驗(yàn)籌備】1。復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)2.對(duì)本次實(shí)驗(yàn)中要求自己完成的部分做好籌備【實(shí)驗(yàn)步驟】1.練習(xí)啟動(dòng)、停止和暫停服務(wù)管組件的服務(wù),了解SQLServer2000中包括的服務(wù)器組件,掌握服務(wù)管理器和使用。1)啟動(dòng)SQLServer服務(wù)2)停止SQLServer服務(wù)2.練習(xí)MicrosoftSQLServer/EnterpriseManager打開(kāi)MicrosoftSQLServer/EnterpriseManager觀察SQLServer組下已經(jīng)建立的服務(wù)器組1)打開(kāi)其中的一個(gè)服務(wù)器,觀察其中的文件夾2)打開(kāi)“數(shù)據(jù)庫(kù)”文件夾,觀察已經(jīng)建立的數(shù)據(jù)庫(kù)3)打開(kāi)其中的某一個(gè)數(shù)據(jù)庫(kù),觀察其中的內(nèi)容4)打開(kāi)“平安性”文件夾,進(jìn)入“登錄”,觀察可以登錄該服務(wù)器的用戶及其屬性。3.練習(xí)MicrosoftSQL查詢分析器打開(kāi)MicrosoftSQL查詢分析器,在窗口中輸入SELECT*FROMProducts并單擊(或按F5)執(zhí)行查詢,熟識(shí)查詢分析器的命令操作方式【分析與回答】1.SQLServer2000中包含哪些組件,其功能各是什么?SQLServer2000供應(yīng)了9種功能強(qiáng)大、容易操作的管理工具,以便利用戶進(jìn)行圖形化界面對(duì)導(dǎo)或腳本方式的管理操作。其中最重要的工具有服務(wù)管理器、企業(yè)管理器、查詢分析器和導(dǎo)入導(dǎo)出數(shù)據(jù)工具,利用它可以完成以下任務(wù):管理服務(wù)器、設(shè)計(jì)與創(chuàng)建數(shù)據(jù)庫(kù)、查詢數(shù)據(jù)。如圖所示。1服務(wù)管理器SQLServer服務(wù)管理器用于啟動(dòng)、暫停、連續(xù)和停止SQLServer數(shù)據(jù)庫(kù)服務(wù)器的實(shí)時(shí)工具,是在服務(wù)器端實(shí)際工作時(shí)最有用的有用程序,是其他管理工具工作的基礎(chǔ)。SQLServer服務(wù)管理器供應(yīng)的服務(wù)主要包括以下4種基本服務(wù)。(1)SQLServer服務(wù):數(shù)據(jù)庫(kù)引擎,主要負(fù)責(zé)協(xié)調(diào)和執(zhí)行客戶對(duì)數(shù)據(jù)庫(kù)的全部服務(wù)懇求指令;管理分布式數(shù)據(jù)庫(kù),保證數(shù)據(jù)的全都性和完整性;對(duì)數(shù)據(jù)加鎖、實(shí)施并發(fā)掌握等.在計(jì)算機(jī)上運(yùn)行的每個(gè)SQLServer實(shí)例都有一個(gè)SQLServer服務(wù)。(2)SQLServerAgent服務(wù):自動(dòng)化引擎,供應(yīng)SQLServer的調(diào)度服務(wù),通過(guò)對(duì)它的配置和使用,用戶可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的定時(shí)、自動(dòng)管理。在計(jì)算機(jī)上運(yùn)行的每個(gè)SQLServer實(shí)例都有一個(gè)SQLServer代理服務(wù)。(3)MSDTC服務(wù):分布事務(wù)協(xié)調(diào)員,管理分布式事務(wù),它允許客戶的應(yīng)用程序在一個(gè)事物中對(duì)分布在多個(gè)服務(wù)器上的數(shù)據(jù)源進(jìn)行操作。不論計(jì)算機(jī)上有多個(gè)SQLServer實(shí)例,都只有一個(gè)服務(wù)。(4)MicrosoftSearch服務(wù):是一個(gè)可選的組件,實(shí)現(xiàn)全文檢索引擎。不論計(jì)算機(jī)上有多個(gè)SQLServer?qū)嵗?都只有一個(gè)服務(wù)。。2企業(yè)管理器企業(yè)管理器是SQLServer2000中最重要的管理工具,是Microsoft管理掌握臺(tái)(MMC。的管理單元組件.通過(guò)易于使用的圖形用戶界面,將全部SQLServer對(duì)象展顯在一個(gè)分層結(jié)構(gòu)的掌握臺(tái)樹中。操作如下:單擊“開(kāi)頭”→“程序”→“MicrosoftSQLServer”→“企業(yè)管理器”,打開(kāi)企業(yè)管理器,如圖所示。企業(yè)管理器可以完成幾乎全部的管理工作,主要包括以下功能:(1)注冊(cè)和管理SQLServer服務(wù);(2)連接、啟動(dòng)、暫?;蛲V梗観LServer服務(wù);(3)創(chuàng)建和管理數(shù)據(jù)庫(kù);(4)創(chuàng)建和管理各種數(shù)據(jù)庫(kù)對(duì)象,包括表、視圖、存儲(chǔ)過(guò)程、觸發(fā)器、角色、規(guī)章、默認(rèn)值、用戶自定義數(shù)據(jù)類型、用戶自定義函數(shù)以及全文名目;(5)備份數(shù)據(jù)庫(kù)和事務(wù)日志,數(shù)據(jù)庫(kù)復(fù)制,設(shè)置任務(wù)調(diào)度;(6)讓管理者進(jìn)行警報(bào)設(shè)置,供應(yīng)跨服務(wù)器的拖放操作;(7)管理用戶賬戶,編寫和執(zhí)行Trasact-SQL語(yǔ)句,管理和掌握SQLMail。3查詢分析器查詢分析器是一個(gè)可以交互執(zhí)行SQL語(yǔ)句和腳本的圖形化工具,主要用于輸入、執(zhí)行和保存Transact-SQL語(yǔ)句,并可飛快查看Transact—SQL語(yǔ)句運(yùn)行結(jié)果,以分析和處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。另外,通過(guò)其中的對(duì)象掃瞄工具,還能像企業(yè)管理器一樣,掃瞄數(shù)據(jù)庫(kù)中的全部對(duì)象。用戶可以選擇“開(kāi)頭"→“程序"→“MicrosoftSQLServer"→“查詢分析器”命令,或者在企業(yè)管理中,選擇“查看”→“SQL查詢分析器"打開(kāi)查詢分析器,如圖所示。3導(dǎo)入和導(dǎo)出數(shù)據(jù)工具導(dǎo)入和導(dǎo)出數(shù)據(jù)工具對(duì)數(shù)據(jù)庫(kù)而言,是一個(gè)重要的工具向?qū)?,利用它可以便捷地?shí)現(xiàn)SQLServer與其它數(shù)據(jù)庫(kù)系統(tǒng)間的數(shù)據(jù)轉(zhuǎn)換。SQLServer2000利用“DTS導(dǎo)入/導(dǎo)出向?qū)?數(shù)據(jù)轉(zhuǎn)換服務(wù)支持在異構(gòu)數(shù)據(jù)源之間的數(shù)據(jù)導(dǎo)入和導(dǎo)出,從而實(shí)現(xiàn)Excel、Foxpro、Access等格式數(shù)據(jù)和SQLServer數(shù)據(jù)得轉(zhuǎn)換。2.畫出SQLServerEnterpriseManager掌握臺(tái)名目結(jié)構(gòu)?答:3。DBMS的作用是什么?SQLServer2000的體系結(jié)構(gòu)是怎樣的?dbms是一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng),它由以下幾個(gè)模塊組成1)數(shù)據(jù)定義有DDL翻譯處理程序(包括外模式、模式、存儲(chǔ)模式處理程序)、保密定義處理程序(如授權(quán)定義處理程序)、完整性約束定義處理程序等.這些程序接收相應(yīng)的定義,進(jìn)行語(yǔ)法、語(yǔ)義檢查,把它們翻譯為內(nèi)部格式存儲(chǔ)在數(shù)據(jù)字典中。DDL翻譯程序還依據(jù)模式定義負(fù)責(zé)建立數(shù)據(jù)庫(kù)的框架(即形成一個(gè)空庫(kù)),等待裝入數(shù)據(jù).2)數(shù)據(jù)操縱有DML處理程序、終端查詢語(yǔ)言解釋程序、數(shù)據(jù)存取程序、數(shù)據(jù)更新程序等。DML處理程序或終端查詢語(yǔ)言解釋程序?qū)τ脩魯?shù)據(jù)操縱懇求進(jìn)行語(yǔ)法、語(yǔ)義檢查,有數(shù)據(jù)存取或更新程序完成對(duì)數(shù)據(jù)庫(kù)的存取操作。3)數(shù)據(jù)庫(kù)運(yùn)行管理有系統(tǒng)初啟程序,負(fù)責(zé)初始化DBMS,建立DBMS的系統(tǒng)緩沖區(qū),系統(tǒng)工作區(qū),打開(kāi)數(shù)據(jù)字典等等。還有平安性掌握,完整性檢查、并發(fā)掌握、事務(wù)管理、運(yùn)行日志管理等程序模塊,在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中監(jiān)視著對(duì)數(shù)據(jù)庫(kù)的全部操作,掌握管理數(shù)據(jù)庫(kù)資源,處理多用戶的并發(fā)操作等。它們一方面保證用戶事務(wù)的正常運(yùn)行及其原子性,一方面保證數(shù)據(jù)庫(kù)的平安性和完整性.4)數(shù)據(jù)庫(kù)組織、存儲(chǔ)和管理有文件讀寫與維護(hù)程序、存取路徑(如索引)管理程序、緩沖區(qū)管理程序(包括緩沖區(qū)讀、寫、淘汰模塊),這些程序負(fù)責(zé)維護(hù)數(shù)據(jù)庫(kù)的數(shù)據(jù)和存取路徑,供應(yīng)有效的存取方法。5)數(shù)據(jù)庫(kù)建立、維護(hù)和其他?實(shí)驗(yàn)2數(shù)據(jù)庫(kù)創(chuàng)建與管理【實(shí)驗(yàn)?zāi)康摹?.嫻熟掌握SQLServerEnterpriseManager創(chuàng)建和管理數(shù)據(jù)庫(kù);2.嫻熟掌握使用SQL語(yǔ)句創(chuàng)建和管理數(shù)據(jù)庫(kù)【實(shí)驗(yàn)內(nèi)容】1。利用企業(yè)管理器創(chuàng)建和管理數(shù)據(jù)2.使用SQL語(yǔ)句管理器創(chuàng)建和管理數(shù)據(jù)【實(shí)驗(yàn)籌備】復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)對(duì)本次實(shí)驗(yàn)中要求自己完成的部分做好籌備【實(shí)驗(yàn)步驟】1、利用企業(yè)管理器創(chuàng)建和管理數(shù)據(jù)庫(kù)(1)創(chuàng)建數(shù)據(jù)庫(kù)ⅰ展開(kāi)服務(wù)器組,然后展開(kāi)服務(wù)器ⅱ右擊"數(shù)據(jù)庫(kù)",然后單擊"新建數(shù)據(jù)庫(kù)”命令ⅲ鍵入新數(shù)據(jù)庫(kù)的名稱student,同時(shí)用指定的數(shù)據(jù)庫(kù)名student作為前綴創(chuàng)建主數(shù)據(jù)庫(kù)和事務(wù)日志文件,例如:student_Data。mdf和student_Log。ldfⅳ要更改新建主數(shù)據(jù)庫(kù)文件的默認(rèn)值,單擊”常規(guī)"選項(xiàng)卡。若要更改新建事務(wù)日志文件的默認(rèn)值,單擊”事務(wù)日志"選項(xiàng)卡”,要更改"文件名"、"位置”、"初始大?。∕B)”和"文件組"等列的默認(rèn)值,單擊要更改的適當(dāng)單元格,再鍵入新值.要指定文件增長(zhǎng)方式和文件大小按界面提示選擇相應(yīng)的項(xiàng).(2)刪除數(shù)據(jù)庫(kù)選擇student數(shù)據(jù)庫(kù),右擊鼠標(biāo)選擇“刪除”命令即可。2、使用SQL語(yǔ)句管理器創(chuàng)建和管理數(shù)據(jù)(1)創(chuàng)建SPJ數(shù)據(jù)庫(kù):打開(kāi)查詢分析器,輸入以下語(yǔ)句并運(yùn)行creat(yī)edatabasespjon(name='spj_dat(yī)a’,filename=’c:\programfiles\microsoftsqlserver\mssql\data\spj_data.mdf’,size=2,maxsize=10,filegrowth=10%)logon(name=’spj_log',filename=’c:\programfiles\microsoftsqlserver\mssql\data\spj_log.ldf’,size=1,filegrowth=10%)(2)修改spj數(shù)據(jù)庫(kù):在查詢分析器中輸入以下語(yǔ)句并運(yùn)行(了解)alterdatabasespjmodifyfile(name='spj_data’,size=3,maxsize=unlimited)alterdatabasespjaddfile(name=’spj_dat(yī)a_2’,filename=’c:\programfiles\microsoftsqlserver\mssql\data\spj_date_2.ndf',size=1,maxsize=10,filegrowth=10%)(3)刪除spj數(shù)據(jù)庫(kù):dropdatabasespj實(shí)驗(yàn)3表的創(chuàng)建與修改【實(shí)驗(yàn)?zāi)康摹浚保畬W(xué)會(huì)使用企業(yè)管理器創(chuàng)建和修改表結(jié)構(gòu)2。學(xué)會(huì)使用查詢分析器3.學(xué)會(huì)使用SQL語(yǔ)句創(chuàng)建和修改表結(jié)構(gòu)【實(shí)驗(yàn)內(nèi)容】1。使用企業(yè)管理器建立和修改班級(jí)表、成果表2.使用查詢分析器建立和修改課程表、同學(xué)表【實(shí)驗(yàn)籌備】1.復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)2.對(duì)本次實(shí)驗(yàn)中要求自己完成的部分做好籌備【實(shí)驗(yàn)步驟】1。用企業(yè)管理器建立同學(xué)表啟動(dòng)企業(yè)管理器(使用上次實(shí)驗(yàn)建立的帳號(hào)注冊(cè)連接服務(wù)器)展開(kāi)服務(wù)器(下圖中(LOCAL))-—>展開(kāi)數(shù)據(jù)庫(kù)—-〉展開(kāi)自己學(xué)號(hào)所對(duì)應(yīng)的數(shù)據(jù)庫(kù)(下圖中的5102201101在實(shí)驗(yàn)中應(yīng)為你的學(xué)號(hào))。在”表"上右擊,在快捷菜單中單擊"新建表...",如下圖所示在表結(jié)構(gòu)窗口內(nèi)建立如下圖所示的班級(jí)表(ID含義為”班號(hào)",NAME含義為"班名”,DEPARTMENT含義為所在系,各字段類型及是否允許為空按圖中設(shè)置),如下圖所示,左側(cè)三角形標(biāo)志為當(dāng)前列,下方的列屬性即為該列的.在第一行上右擊,在彈出的快捷菜單中單擊"設(shè)置主鍵",如下圖所示,則ID字段被設(shè)置為主鍵,在ID列屬性中將標(biāo)識(shí)改為:是,則ID字段在新增行時(shí),從標(biāo)識(shí)種子(當(dāng)前為1)開(kāi)頭,逐行以標(biāo)識(shí)遞增量(當(dāng)前為1)自動(dòng)遞增(即此列在新增行時(shí)不用輸入數(shù)據(jù)而自動(dòng)生成)。要插入和刪除列,請(qǐng)使用類似方法--在快捷菜單中使用"插入列(M)"和"刪除列(D)".并在工具欄上單擊保存圖標(biāo),在彈出的保存對(duì)話框中輸入"U_CLASSES",單擊"確定”,然后關(guān)閉表結(jié)構(gòu)設(shè)計(jì)窗口依照上面設(shè)計(jì)同學(xué)表的步驟,設(shè)計(jì)如下圖所示的成果表(STUDENT_ID含義為學(xué)號(hào),COURSE_ID含義為課程號(hào),SCORE為成果,各字段類型和是否允許為空,按圖中設(shè)置),表名保存為”U_SCORES"(注意設(shè)置主鍵時(shí),先按住Shift,分別單擊第一、其次行左側(cè)-—選中這兩行,再右擊,在快捷菜單單擊中設(shè)置主鍵——該操作可設(shè)置和取消主鍵)。關(guān)閉表設(shè)計(jì)窗口。2.用企業(yè)管理器修改表如果要修改表,請(qǐng)展開(kāi)你的數(shù)據(jù)庫(kù),單擊其下的"表"在右邊的窗格中,找到要修改的表,在其上右擊在彈出的快捷菜單中,單擊”設(shè)計(jì)表(S)”則打找開(kāi)表設(shè)計(jì)窗口進(jìn)行修改,簡(jiǎn)略如下圖所示3.用SQL語(yǔ)句建立班級(jí)表、課程表依照啟動(dòng)企業(yè)管理器的方法,啟動(dòng)查詢分析器,在"連接到SQLServer"對(duì)話框中,設(shè)置"SQLServer(S)"為local,選擇SQLServer身份驗(yàn)證,在登錄名中輸入你的學(xué)號(hào),密碼中輸入你的密碼,單擊"確定"。啟動(dòng)查詢分析器后,注意右上角當(dāng)前數(shù)據(jù)庫(kù)處是否為你的數(shù)據(jù)庫(kù)(如果不是,說(shuō)明登錄的名稱有問(wèn)題,或該登錄的默認(rèn)數(shù)據(jù)庫(kù)設(shè)置不正確).若不是請(qǐng)重新選擇.依據(jù)下圖輸入SQL語(yǔ)句(藍(lán)色和黑色部分,其中第一條為建表語(yǔ)句,其次條為設(shè)置主鍵的語(yǔ)句)建立課程表(U_COURSES)(其中ID表示課程編號(hào),該字段自動(dòng)遞增,COURSE為課程名稱),單擊”分析查詢"(”√"按鈕)按鈕,檢查語(yǔ)句的正確性。如果檢查正確,單擊"分析查詢"按鈕的右邊的執(zhí)行按鈕(右向的三角形按鈕)執(zhí)行(或按F5)。右擊左側(cè)數(shù)據(jù)庫(kù)圖標(biāo),在快捷菜單擊”刷新".展開(kāi)數(shù)據(jù)庫(kù)(你的學(xué)號(hào)),再展開(kāi)"用戶表",查看是否已存在班級(jí)表(U_COURSES),如下圖所示.依照上述方法輸入SQL語(yǔ)句(技巧:在查詢命令窗口內(nèi),要執(zhí)行的命令可先選中,再執(zhí)行,則未選中的語(yǔ)句不會(huì)執(zhí)行)建立同學(xué)表(U_STUDENTS),表結(jié)構(gòu)如下:序號(hào)字段類型(長(zhǎng)度)主鍵含義1IDchar(10)是學(xué)號(hào)2NAMEvarchar(16)姓名3CLASS_IDtinyint所在班級(jí)編號(hào)4.用SQL語(yǔ)句修改表結(jié)構(gòu)用SQL語(yǔ)句,給課程表添加一個(gè)學(xué)時(shí)字段(字段名:period,類型:tinyint)。ALTERTABLE[dbo]。[U_COURSES]ADDperiodtinyint用SQL語(yǔ)句,給課程表添加一個(gè)學(xué)分字段(字段名:CREDIT,類型:tinyint)。請(qǐng)參照上面SQL命令自行進(jìn)行用SQL語(yǔ)句,刪除課程表學(xué)時(shí)字段(字段名:period)。ALTERTABLE[dbo]。[U_COURSES]DROPCOLUMNperiod用SQL語(yǔ)句,修改成果表,使SCORE字段類型為tinyint。ALTERTABLE[dbo]。[U_SCORES]ALTERCOLUMNSCOREtinyint5.用企業(yè)管理器檢查各表,如果和上面要求的相同,則你的實(shí)驗(yàn)就完成了實(shí)驗(yàn)4數(shù)據(jù)查詢【實(shí)驗(yàn)?zāi)康摹繉W(xué)會(huì)使用企業(yè)管理器查詢數(shù)據(jù)掌握使用SQL語(yǔ)句查詢數(shù)據(jù)【實(shí)驗(yàn)內(nèi)容】使用企業(yè)管理器進(jìn)行數(shù)據(jù)查詢?cè)诓樵兎治銎鲀?nèi)使用SQL語(yǔ)句進(jìn)行數(shù)據(jù)查詢【實(shí)驗(yàn)籌備】復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)復(fù)習(xí)查詢分析器的使用對(duì)本次實(shí)驗(yàn)中要求自己完成的部分做好籌備(其次部分,請(qǐng)預(yù)先寫出來(lái))【實(shí)驗(yàn)步驟】用企業(yè)管理器進(jìn)行數(shù)據(jù)查詢啟動(dòng)企業(yè)管理器,注冊(cè)連接。展開(kāi)服務(wù)器-—>展開(kāi)數(shù)據(jù)庫(kù)-->展開(kāi)自己的數(shù)據(jù)庫(kù)--〉單擊表.在需要查詢的表上單擊右鍵,在彈出的快捷菜單中選擇"打開(kāi)表(O)",其下級(jí)菜單即為查詢命令:返回全部行(A)

--該命令以網(wǎng)格方式顯示指定表的全部記錄返回首行(T).。。

--該命令以交互方式輸入要返回的行數(shù)查詢(Q)

-—打開(kāi)查詢窗口,以圖形方式設(shè)計(jì)查詢請(qǐng)從同學(xué)表(U_STUDENTS)上右擊,使用"查詢(Q)"命令建立一個(gè)查詢,請(qǐng)選中學(xué)號(hào)(ID)、姓名(NAME)兩個(gè)字段,再單擊上面的執(zhí)行按鈕(!按鈕)執(zhí)行查詢,查看結(jié)果.再在關(guān)系圖窗格內(nèi)右擊鼠標(biāo)在彈出菜單中選擇添加表,添加班級(jí)表(U_CLASSES),在班級(jí)表的ID字段上按下鼠標(biāo)左鍵,拖至同學(xué)表的CLASS_ID上建立關(guān)聯(lián),在班級(jí)表上選中班級(jí)(CLASS)、系(DEPARTMENT)字段,再在網(wǎng)格窗格上選擇姓名(NAME)行上選擇排序類型為"升序"。執(zhí)行該查詢,查看結(jié)果.結(jié)果如下圖所示。(注意查看SQL窗格內(nèi)的SQL查詢語(yǔ)句)該操作實(shí)現(xiàn)了從班級(jí)表、同學(xué)表中查詢出全部同學(xué)的學(xué)號(hào)(ID)、姓名(NAME)、班級(jí)(CLASS_ID)、所在系(DEPARTMENT)的記錄數(shù)據(jù)。關(guān)閉企業(yè)管理器用SQL語(yǔ)句查詢數(shù)據(jù)啟動(dòng)查詢分析器在查詢分析器中分別執(zhí)行下列查詢語(yǔ)句(有的語(yǔ)句請(qǐng)自己寫出),體會(huì)或說(shuō)明各語(yǔ)句的功能(請(qǐng)將下面的語(yǔ)句復(fù)制到查詢分析器,逐條執(zhí)行-—要執(zhí)行一條語(yǔ)句請(qǐng)選中該語(yǔ)句再按F5或單擊執(zhí)行銨鈕,如下圖所示)?!?查詢同學(xué)表?select*fromu_students

?select*fromu_studentsorderbyclass_id?

-—查詢成果表(請(qǐng)?bào)w會(huì)下列語(yǔ)句的功能)

select*fromu_scores

?select*fromu_scoreswherecourse_id=1??select*fromu_scoreswherestudent_id=’5103210102'select*fromu_scoreswherescore〈60?

select*fromu_scoreswherescore<60andcourse_id=1?

--請(qǐng)比較下面三個(gè)語(yǔ)句,并說(shuō)明其作用。

selecttop10*fromu_scores

selecttop10*fromu_scoresorderbyscore

?selecttop10*fromu_scoresorderbyscoredesc--下面命令將結(jié)果存放于tmp_xsb1表中.?select*intodbo。tmp_xsb1fromu_scoreswherescore<60andcourse_id=1--請(qǐng)寫出查詢課程號(hào)為2成果大等于70的同學(xué)成果情況,并將其結(jié)果存放于tmp_xscj表中(在查詢語(yǔ)句中參照上例用intodbo。tmp_xscj子句)。??—-從成果表中找出有哪些同學(xué)(學(xué)號(hào)).?selectdistinctstudent_idfromu_scores??—-查詢?nèi)客瑢W(xué)情況(比較下面的兩個(gè)語(yǔ)句)。?selecta.id,a.name,b。class,b.department

fromu_studentsainnerjoinu_classesbona.class_id=b.id

selecta.id,a.name,b.class,b.department?fromu_studentsa,u_classesbwherea.class_id=b。id??-—查詢班號(hào)為2的全部同學(xué)。?selecta.id,a.name,b。class,b。department?fromu_studentsa,u_classesb

wherea.class_id=b。idandb.id=2--請(qǐng)寫出從同學(xué)表查詢班級(jí)為’軟件031'的同學(xué)情況(學(xué)號(hào),姓名,所在班級(jí),所在系),并請(qǐng)將查詢結(jié)果用into子句存放于dbo。tmp_xsb2表中。??--按班級(jí)統(tǒng)計(jì)人數(shù)。

selectclass_idas班號(hào),count(*)as人數(shù)?fromu_studentsgroupbyclass_id?-—請(qǐng)將上面的語(yǔ)句添加into子句,再執(zhí)行一次并將結(jié)果存放于dbo。tmp_xsrs表中。?

--查詢?nèi)客瑢W(xué)成果(試比較下面的兩個(gè)語(yǔ)句的不同點(diǎn),并看看他們的執(zhí)行結(jié)果是否相同)。?selecta.id,a.name,b.course,c.score?fromu_scorescinnerjoinu_studentsaonc。student_id=a.id?innerjoinu_coursesbonc.course_id=b.id??selecta.id,a.name,b。course,c.score?fromu_studentsa,u_coursesb,u_scoresc?wherec.student_id=a.idandb.id=c。course_id

?—-統(tǒng)計(jì)各人平均分。

selecta.idas學(xué)號(hào),a.nameas姓名,avg(b。score)as平均分,?max(b。score)as最高分,min(b.score)as最低分?fromu_studentsainnerjoinu_scoresbonb.student_id=a。id?groupbya。id,a.name?orderby平均分??—-查找陳姓同學(xué)。

selectid,namefromu_studentswherenamelike’陳%'??--查找姓名其次個(gè)字是月的同學(xué)。?selectid,namefromu_studentswherenamelike’_月%'??-—請(qǐng)寫出查詢丁姓名同學(xué)的查詢語(yǔ)句,并將其結(jié)果用into子句存放于dbo.tmp_xsb3中。??-—查看有不及格課程的同學(xué)名單。?selecta。idas學(xué)號(hào),a。nameas姓名?fromu_studentsawherea.id

in(selectdistinctb。student_idfromu_scoresbwherescore<60)?

--查看沒(méi)有不及格課程的同學(xué)名單(請(qǐng)參照上面的語(yǔ)句寫出查詢語(yǔ)句)??——查看成果在50-60之間(含50,60)的同學(xué)及其各課程成果。

selecta.id,a.name,b.course,c.score

fromu_scorescinnerjoinu_studentsaonc.student_id=a.id?innerjoinu_coursesbonc。course_id=b。id

wherec.scorebetween50and60?

—-下面第一個(gè)語(yǔ)句是查找有課程成果在80分以上的同學(xué),試與其次個(gè)語(yǔ)句進(jìn)行比較,看看結(jié)果是不是一樣,如果不一樣,想想為什么。?selecta。id,a。namefromu_studentsa?whereexists(select*fromu_scoresbwherea.id=b。student_idandb。score>80)

?selecta。id,a.namefromu_studentsa?wherenotexists(select*fromu_scoresbwherea。id=b.student_idandb.score<=80)查看一下,在你的數(shù)據(jù)庫(kù)中是否存在下面的表?dbo.tmp_xsb1?dbo.tmp_xsb2?dbo.tmp_xsb3

dbo.tmp_xscj

dbo.tmp_xsrs如果有,那么你的實(shí)驗(yàn)就完成了,請(qǐng)關(guān)閉查詢分析器,結(jié)束實(shí)驗(yàn)實(shí)驗(yàn)5數(shù)據(jù)處理【實(shí)驗(yàn)?zāi)康摹?.學(xué)會(huì)使用企業(yè)管理器處理表數(shù)據(jù)、查看表記錄2。學(xué)會(huì)使用SQL語(yǔ)句處理表數(shù)據(jù)【實(shí)驗(yàn)內(nèi)容】1.使用企業(yè)管理器給班級(jí)表、同學(xué)表處理數(shù)據(jù)2。使用SQL語(yǔ)句給課程表、成果添加數(shù)據(jù)--INSERT語(yǔ)句3。使用SQL語(yǔ)句給同學(xué)表、成果表更新數(shù)據(jù)-—UPDATE語(yǔ)句4.使用SQL語(yǔ)句為同學(xué)表刪除記錄——DELETE語(yǔ)句【實(shí)驗(yàn)籌備】1.復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)2。復(fù)習(xí)查詢分析器的使用3.對(duì)本次實(shí)驗(yàn)中要求自己完成的部分做好籌備【實(shí)驗(yàn)步驟】格外說(shuō)明:本實(shí)驗(yàn)中使用的數(shù)據(jù)僅為實(shí)驗(yàn)而已,無(wú)任何其他作用。1。用企業(yè)管理器給班級(jí)表添加記錄1)啟動(dòng)企業(yè)管理器,用自己的帳號(hào)、密碼,注冊(cè)并連接到SQLServer服務(wù)器。展開(kāi)連接的服務(wù)器-->展開(kāi)”數(shù)據(jù)庫(kù)"-—>展開(kāi)你的數(shù)據(jù)庫(kù)(你的學(xué)號(hào))-->單擊"表"。在右邊的窗格內(nèi),右擊班級(jí)表(U_CLASSES),在彈出的快捷菜單中,將鼠標(biāo)移到"打開(kāi)表(O)"上,再移到"返回全部行(A)”上單擊.參見(jiàn)下圖。2)接著按下圖輸入數(shù)據(jù),注意,ID列不用輸入(為什么?)。3)輸入完成后,若要對(duì)數(shù)據(jù)行(如:刪除行)進(jìn)行操作,可在某行上右擊鼠標(biāo),在彈出菜單中選擇要執(zhí)行的命令.關(guān)閉該查詢窗口.2.用企業(yè)管理器修改表記錄數(shù)據(jù)若要修改數(shù)據(jù),可用上述方法打開(kāi)查詢窗口,直接修改即可.3。用企業(yè)管理器給同學(xué)表(U_STUDENTS)添加數(shù)據(jù)1)參照前面方法給用企業(yè)管理器給同學(xué)表輸入如下記錄。在輸入過(guò)程中,注意觀察如果輸入相同學(xué)號(hào)有什么現(xiàn)象(什么緣由?),如果班級(jí)編號(hào)不輸入,又會(huì)怎樣(為什么?)。4。在查詢分析器中用SQL命令給課程表(U_COURSES)、成果表(U_SCORES)添加數(shù)據(jù)、修改數(shù)據(jù)1)啟動(dòng)查詢?cè)O(shè)計(jì)器(服務(wù)器:local,登錄名:你的學(xué)號(hào),密碼:你的密碼)。2)輸入(為削減輸入工作量,可將下面的語(yǔ)句復(fù)制到查詢分析器)如下語(yǔ)句并執(zhí)行之,為課程表(U_COURSES)插入插入5條記錄.INSERTINTO[U_COURSES](COURSE,CREDIT)VALUES('計(jì)算機(jī)文化基礎(chǔ)',4)INSERTINTO[U_COURSES](COURSE,CREDIT)VALUES('C語(yǔ)言程序設(shè)計(jì)',4)INSERTINTO[U_COURSES](COURSE,CREDIT)VALUES(’數(shù)據(jù)結(jié)構(gòu)’,4)INSERTINTO[U_COURSES](COURSE,CREDIT)VALUES('數(shù)據(jù)庫(kù)原理與應(yīng)用',4)INSERTINTO(shè)[U_COURSES](COURSE,CREDIT)VALUES('SQLServer',3)3)輸入”SELECT*FROMU_COURSES"查看課程表記錄。4)輸入下面的語(yǔ)句,修改”計(jì)算機(jī)文化基礎(chǔ)"的學(xué)分,使之為5。UPDATEU_COURSESSETCREDIT=5WHERECOURSE='計(jì)算機(jī)文化基礎(chǔ)’5)參照上面的語(yǔ)句,將"SQLServer"課程名稱改為”大型數(shù)據(jù)庫(kù)"。6)再次執(zhí)行"SELECT*FROMU_COURSES"查看課程表記錄,看看與修改要求是否全都。7)輸入如下語(yǔ)句(為削減輸入工作量,可將下面的語(yǔ)句復(fù)制到查詢分析器)為成果表(U_SCORES)添加10條記錄(分別學(xué)號(hào)為5103210101和5103212102的五門功課的成果).INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103210101’,1,80)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103210101',2,82)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103210101’,3,75)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES(’5103210101’,4,78)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_(tái)ID,SCORE)VALUES(’5103210101’,5,88)INSERTINTO(shè)[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES(’5103212102',1,54)INSERTINTO(shè)[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103212102',2,71)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES(’5103212102',3,60)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103212102’,4,50)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103212102',5,60)8)將上面的語(yǔ)句再執(zhí)行一次,看看有什么現(xiàn)象(為什么?)。9)參照上面的SQL命令,分別為學(xué)號(hào)為5103210102、5103210103、5103212101的同學(xué)添加五門功課的成果(學(xué)號(hào)、課程號(hào)、成果如下)。學(xué)號(hào)

課程號(hào)成果5103210102

1

655103210102

2

605103210102

3

585103210102

4

435103210102

5

705103210103

1

455103210103

2

585103210103

665103210103

4

605103210103

5

575103212101

1

725103212101

2

905103212101

765103212101

4

745103212101

5

5810)輸入”SELECT*FROMU_SCORES”查看成果表記錄。11)輸入下面的語(yǔ)句,將學(xué)號(hào)為5103210101,課程號(hào)為2的課程成果改為90。UPDATE[U_SCORES]SETSCORE=90WHERESTUDENT_ID='5103210101'ANDCOURSE_ID=212)再次執(zhí)行"SELECT*FROMU_SCORES"查看成果表記錄,注意學(xué)號(hào)為5103210101,課程號(hào)為2的同學(xué)課程成果。13)參照上面的語(yǔ)句將學(xué)號(hào)為5103212102,課程號(hào)為3的課程成果改為56。5.在查詢分析器中用SQL命令刪除記錄1)在查詢分析器輸入"SELECT*FROMU_STUDENTS”查看同學(xué)表記錄.2)輸入下列命令刪除同學(xué)表中學(xué)號(hào)為5103210104、5103210105的記錄。DELETEFROM[U_STUDENTS]WHEREID='5103210104’ORID=’5103210105'3)再次執(zhí)行”SELECT*FROMU_STUDENTS"查看記錄,注意記錄數(shù).4)參照上述命令分別同學(xué)表中學(xué)號(hào)為5103212103、5103212104、5103212105的記錄實(shí)驗(yàn)6T-SQL編程【實(shí)驗(yàn)?zāi)康摹空莆誘_SQL編程的基本語(yǔ)法常用函數(shù)的使用方法【實(shí)驗(yàn)內(nèi)容】使用查詢分析器練習(xí)T—SQL編程方法練習(xí)函數(shù)的使用【實(shí)驗(yàn)籌備】復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)預(yù)習(xí)相關(guān)函數(shù)(請(qǐng)預(yù)查閱CONVERT、DATENAME、GFTDATE函數(shù)的用法)對(duì)本次實(shí)驗(yàn)中要求自己完成的部分做好籌備【實(shí)驗(yàn)步驟】條件結(jié)構(gòu)在查詢分析器中執(zhí)行下面的語(yǔ)句,體會(huì)IF。.。ELSE..。結(jié)構(gòu)DECLARE@CJTINYINT

SELECT@CJ=SCOREFROMU_SCORESWHERESTUDENT_ID='5103210101’ANDCOURSE_ID=2?--SELECT@CJ

IF@CJ>=60?

PRINT’及格'?ELSE?

PRINT’不及格'

PRINT’分?jǐn)?shù)為:’+CONVERT(CHAR(2),@CJ)將上述語(yǔ)句中學(xué)號(hào)改為5103210102,課程號(hào)改為3,看看執(zhí)行結(jié)果如何.自己編寫一段程序推斷一個(gè)年份(比如1900年)是否是閏年,是則顯示1900年為閏年,否則顯示1900年不是閏年.循環(huán)結(jié)構(gòu)下面是計(jì)算1~100和的循環(huán)結(jié)構(gòu),執(zhí)行之,體會(huì)循環(huán)結(jié)構(gòu)程序,注意語(yǔ)句塊標(biāo)志BEGIN。。.ENDDECLARE@SUMINT,@IINT

SELECT@I=1,@SUM=0

WHILE@I〈=100?BEGIN?

SELECT@SUM=@SUM+@I?

SELECT@I=@I+1

END?PRINT'1.。.100的和為:'+CONVERT(CHAR(4),@SUM)編寫一個(gè)程序用于計(jì)算10的階乘自己編制一個(gè)程序,要求其能打印出100內(nèi)的素?cái)?shù)(只能被其自身和1整除的數(shù)).--循環(huán)結(jié)構(gòu)+條件結(jié)構(gòu)CASE結(jié)構(gòu)下面的程序打印出每位同學(xué)的每門課程是否及格SELECTS.ID,S。NAME,C。COURSE,?

CASE?

WHENSC.SCORE>=60THEN'及格'?

ELSE’不及格'?

ENDSCORE

FROMU_SCORESSCINNERJOINU_COURSESCONSC.COURSE_(tái)ID=C.ID?INNERJOINU_STUDENTSSONSC。STUDENT_ID=S.ID請(qǐng)自己編程實(shí)現(xiàn)各位同學(xué)的成果以等級(jí)分顯示即:90分及以上為優(yōu),80分及以上到90以下為良,70分及以上到80分以下為中,60分及以上到70分以下為及格,其余為不及格。下面查詢,顯示當(dāng)前日期,顯示格式為:"今日是XXXX年XX月XX日,星期X",執(zhí)行之,體會(huì)系統(tǒng)函數(shù)的用法.SELECT'今日是'+DATENAME(YEAR,GETDATE())+'年'+DATENAME(MONTH,GETDATE())+'月’+DATENAME(DAY,GETDATE())+'日'+DATENAME(WEEKDAY,GETDATE()實(shí)驗(yàn)7函數(shù)【實(shí)驗(yàn)?zāi)康摹坷斫馐裁词菢?biāo)量函數(shù)、內(nèi)嵌表值函數(shù)及多語(yǔ)句表值函數(shù)。嫻熟掌握標(biāo)量函數(shù)、內(nèi)嵌表值函數(shù)、多語(yǔ)句表值函數(shù)的定義和調(diào)用.【實(shí)驗(yàn)內(nèi)容】1.創(chuàng)建標(biāo)量函數(shù)、內(nèi)嵌表值函數(shù)及多語(yǔ)句表值函數(shù).2.分析他們之間的區(qū)分.【實(shí)驗(yàn)步驟】對(duì)于jxgl數(shù)據(jù)庫(kù),定義完成如下功能的函數(shù):(1)在jxgl數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)用戶自定義標(biāo)量函數(shù)fage,然后同學(xué)表查詢出同學(xué)的姓名,姓名,性別和年齡;從老師表中查詢出老師的姓名,姓名,性別和工齡。createfunctiondbo。fage(@priordatedatetime,@curdatedatetime)returnsintasbeginreturnyear(@curdat(yī)e)-year(@priordat(yī)e)endgoselect學(xué)號(hào),姓名,性別,dbo.fage(誕生日期,getdate())as年齡from同學(xué)goselect工號(hào),姓名,性別,dbo。fage(工作日期,getdate())as年齡from老師go(2)創(chuàng)建一個(gè)依據(jù)學(xué)號(hào)返回同學(xué)學(xué)號(hào),姓名,性別,課程號(hào),成果等信息的內(nèi)嵌表值函數(shù)finfo。createfunctiondbo.finfo(@xhchar(8)=’08010101’)returnstableasreturn(select同學(xué)。學(xué)號(hào),姓名,性別,課程號(hào),成果from同學(xué),選修where同學(xué)。學(xué)號(hào)=選修.學(xué)號(hào)and同學(xué).學(xué)號(hào)=@xh)goselect*fromdbo。finfo(default)go運(yùn)行結(jié)果如圖所示。(3)創(chuàng)建一個(gè)依據(jù)課程號(hào)查詢返回選修該課程的同學(xué)學(xué)號(hào),姓名,性別,課程號(hào),成果等信息的多語(yǔ)句函數(shù)score_info。creat(yī)efunctionscore_info(@courseidchar(2))returns@total_scoretable(課程號(hào)char(2),學(xué)號(hào)char(8),姓名char(6),性別char(2),成果tinyint)asbegininsert@total_scoreselect課程號(hào),選修。學(xué)號(hào),姓名,性別,成果from選修,同學(xué)where選修。學(xué)號(hào)=同學(xué).學(xué)號(hào)and課程號(hào)=@courseidreturnendgoselect*fromscore_info('02')三、分析與回答試說(shuō)明內(nèi)嵌表值函數(shù)、多語(yǔ)句表值函數(shù)的聯(lián)系與區(qū)分。多語(yǔ)句表值函數(shù)可以看作標(biāo)量函數(shù)和內(nèi)嵌表值函數(shù)的聯(lián)合,它集中了這兩個(gè)函數(shù)的優(yōu)點(diǎn)。其函數(shù)值也是一個(gè)表,但函數(shù)體也用begin…end語(yǔ)句定義,作為函數(shù)返回值的表中的數(shù)據(jù)由函數(shù)體中的語(yǔ)句插入.因此,多語(yǔ)句表值函數(shù)可以進(jìn)行多次查詢操作,彌補(bǔ)了內(nèi)嵌表值函數(shù)的不足.內(nèi)嵌表值函數(shù)的函數(shù)體不使用begin…end語(yǔ)句,而是通過(guò)return語(yǔ)句返回select查詢得到的一個(gè)結(jié)果集,其功能相當(dāng)于一個(gè)參數(shù)化的視圖,因此在使用上,內(nèi)嵌表值函數(shù)就可以當(dāng)成一個(gè)虛表來(lái)使用;內(nèi)嵌表值函數(shù)只能通過(guò)select語(yǔ)句調(diào)用。實(shí)驗(yàn)8視圖與索引【實(shí)驗(yàn)?zāi)康摹繉W(xué)會(huì)使用企業(yè)管理器建立視圖與索引掌握使用SQL語(yǔ)句建立視圖與索引【實(shí)驗(yàn)內(nèi)容】使用企業(yè)管理器建立視圖索引使用SQL語(yǔ)句建立視圖索引【實(shí)驗(yàn)籌備】復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)對(duì)本次實(shí)驗(yàn)中要求自己完成的部分做好籌備【實(shí)驗(yàn)步驟】用企業(yè)管理器建立一個(gè)基于同學(xué)表、課程表、成果表的視圖,要求該視圖顯示學(xué)號(hào)、姓名、課程、成果啟動(dòng)企業(yè)管理器、注冊(cè)、連接展開(kāi)服務(wù)器、數(shù)據(jù)庫(kù)、在視圖上右擊,在快捷菜單中執(zhí)行”新建視圖(V)。..”如下圖所示在新視圖窗口內(nèi)的關(guān)系圖窗格內(nèi)右擊鼠標(biāo),彈出的菜單即為視圖設(shè)計(jì)菜單,執(zhí)行"添加表(B).。。",如下圖所示再在添加表對(duì)話框中選擇U_SCORES表,再單擊添加按鈕.依此操作,分別添加U_STUDENTS、U_COURSES表,單擊關(guān)閉按鈕.再在關(guān)系窗格內(nèi),拖動(dòng)U_STUDENTS表的”ID"至U_SCORES的STUDENT_ID,拖動(dòng)U_COURSES表的”ID”至U_SCORES的COURSE_ID,再分別選中U_STUDENTS表的"ID”,”NAME”列(列前的復(fù)選框),U_COURSES表的"COURSE"列以及U_SCORES表的”SCORE"列,然后單擊”?。粹o,顯示視圖結(jié)果,如下圖所示:?jiǎn)螕舯4姘粹o,將視圖保存為V_SCORES,單擊確定。用查詢分析器建立一個(gè)基于同學(xué)表、班級(jí)表的同學(xué)視圖(V_STUDENTS),包括學(xué)號(hào)、姓名、班級(jí)、系,SQL語(yǔ)句如下:CREATEVIEWdbo.V_STUDENTS?AS?SELECTdbo.U_STUDENTS。ID,dbo。U_STUDENTS。NAME,dbo。U_CLASSES.CLASS,?dbo.U_CLASSES.DEPARTMENT?FROMdbo.U_STUDENTSINNERJOIN?dbo.U_CLASSESONdbo.U_STUDENTS.CLASS_ID=dbo.U_CLASSES.ID自己寫一個(gè)SQL語(yǔ)句建立一個(gè)基于課程表的視圖(V_COURSES),要求顯示課程編號(hào)、課程名、學(xué)分.查看索引在企業(yè)管理器中打開(kāi)U_STUDENTS表的設(shè)計(jì)窗口,然后單擊"管理索引"按鈕,如下圖所示在彈出的屬性窗口內(nèi),查看索引PK_U_STUDENTS的各屬性(該索引是簇集索引)為同學(xué)表按班級(jí)建立一個(gè)非簇集索引FK_U_STUDENTS,操作過(guò)程如下在上一操作的屬性窗口內(nèi)單擊”新建"按鈕,新建一個(gè)索引將索引名改為FK_U_STUDENTS,將列名選擇為CLASS_ID單擊關(guān)閉用SQL語(yǔ)句為U_COURSES表建立一個(gè)基于課程名的非簇集索引IX_U_COURSES,SQL語(yǔ)句如下CREATEINDEX[IX_U_COURSES]ON[dbo]。[U_COURSES]([COURSE])ON[PRIMARY]自己用SQL語(yǔ)句為班級(jí)表建立一個(gè)基于班級(jí)名稱的非簇集索引IX_U_CLASSES

實(shí)驗(yàn)9存儲(chǔ)過(guò)程【實(shí)驗(yàn)?zāi)康摹空莆談?chuàng)建存儲(chǔ)過(guò)程的基本方法【實(shí)驗(yàn)內(nèi)容】用企業(yè)管理器創(chuàng)建存儲(chǔ)過(guò)程用查詢分析器創(chuàng)建存儲(chǔ)過(guò)程【實(shí)驗(yàn)籌備】復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)對(duì)本次實(shí)驗(yàn)中要求自己完成的部分做好籌備【實(shí)驗(yàn)步驟】用向?qū)?chuàng)建一個(gè)存儲(chǔ)過(guò)程:該存儲(chǔ)過(guò)程用于向同學(xué)表添加記錄。在企業(yè)管理器中連接服務(wù)器,完成后展開(kāi)服務(wù)器,展開(kāi)數(shù)據(jù)庫(kù),單擊存儲(chǔ)過(guò)程然后在“工具”菜單中單擊“向?qū)Вǎ祝!?,在向?qū)?duì)話框中展開(kāi)“數(shù)據(jù)庫(kù)",選擇“創(chuàng)建存儲(chǔ)過(guò)程向?qū)А?單擊“確定"在創(chuàng)建存儲(chǔ)過(guò)程向?qū)е校瑔螕簟跋乱徊健睓z查數(shù)據(jù)庫(kù)名是否正確如果正確,單擊“下一步”,如下圖進(jìn)行選擇單擊“下一步”,在消滅的對(duì)話框中單擊“編輯”按鈕在存儲(chǔ)過(guò)程屬性對(duì)話框中修改名稱使之為”INSERT_U_STUDENTS”,然后單擊“編輯SQL(E)。..”,查看創(chuàng)建該存儲(chǔ)過(guò)程的SQL語(yǔ)句。上述過(guò)程得到的SQL語(yǔ)句為USE[5102201101]?GO?CREATEPROCEDURE[INSERT_U_STUDENTS]

(@ID_1[char](10),

@NAME_2[varchar](16),

@CLASS_ID_3[tinyint])??ASINSERTINTO[5102201101].[dbo]。[U_STUDENTS]?([ID],?[NAME],

[CLASS_ID])??VALUES?(@ID_1,?@NAME_2,?@CLASS_ID_3)單擊“確定”就建立了插入同學(xué)記錄的存儲(chǔ)過(guò)程INSERT_U_STUDENTS依照上述過(guò)程自己用向?qū)?chuàng)建一個(gè)插入課程記錄的存儲(chǔ)過(guò)程"INSERT_U_COURSES".參照上述過(guò)程自己用向?qū)?chuàng)建一個(gè)同學(xué)姓名的存儲(chǔ)過(guò)程"UPDATE_(tái)U_STUDENTS"。(主要步驟見(jiàn)如下三圖)請(qǐng)單擊”編輯SQL(E)..."按下面進(jìn)行修改用SQL語(yǔ)句建立一個(gè)更改課程名稱的存儲(chǔ)過(guò)程”UPDATE_(tái)U_COURSES"。(執(zhí)行下圖中"新建存儲(chǔ)過(guò)程(S)...",然后輸入代碼)在查詢分析器中驗(yàn)證上述存儲(chǔ)過(guò)程啟動(dòng)查詢分析器分別執(zhí)行下面命令,驗(yàn)證上述存儲(chǔ)過(guò)程其他存儲(chǔ)過(guò)程請(qǐng)自行驗(yàn)證在查詢分析器中用SQL語(yǔ)句建立一個(gè)存儲(chǔ)過(guò)程”DISPTODAY”:要求該存儲(chǔ)過(guò)程顯示當(dāng)前日期,格式為:今日是XXXX年XX月XX日星期X并驗(yàn)證之(參見(jiàn)下圖).實(shí)驗(yàn)9存儲(chǔ)過(guò)程【實(shí)驗(yàn)?zāi)康摹?.掌握創(chuàng)建存儲(chǔ)過(guò)程的基本方法【實(shí)驗(yàn)內(nèi)容】1用企業(yè)管理器創(chuàng)建存儲(chǔ)過(guò)程2.用查詢分析器創(chuàng)建存儲(chǔ)過(guò)程【實(shí)驗(yàn)籌備】1復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)2.對(duì)本次實(shí)驗(yàn)中要求自己完成的部分做好籌備【實(shí)驗(yàn)步驟】1。用向?qū)?chuàng)建一個(gè)存儲(chǔ)過(guò)程:該存儲(chǔ)過(guò)程用于向同學(xué)表添加記錄。1)在企業(yè)管理器中連接服務(wù)器,完成后展開(kāi)服務(wù)器,展開(kāi)數(shù)據(jù)庫(kù),單擊存儲(chǔ)過(guò)程2)然后在“工具”菜單中單擊“向?qū)?W)。.?!?,在向?qū)?duì)話框中展開(kāi)“數(shù)據(jù)庫(kù)",選擇“創(chuàng)建存儲(chǔ)過(guò)程向?qū)?,單擊“確定"3)在創(chuàng)建存儲(chǔ)過(guò)程向?qū)е?,單擊“下一?4)檢查數(shù)據(jù)庫(kù)名是否正確5)如果正確,單擊“下一步”,如下圖進(jìn)行選擇6)單擊“下一步”,在消滅的對(duì)話框中單擊“編輯”按鈕7)在存儲(chǔ)過(guò)程屬性對(duì)話框中修改名稱使之為”INSERT_U_STUDENTS",然后單擊“編輯SQL(E)...”,查看創(chuàng)建該存儲(chǔ)過(guò)程的SQL語(yǔ)句.8)上述過(guò)程得到的SQL語(yǔ)句為use[5102201101]gocreateprocedure[insert_u_students](@id_1[char](10),@name_2[varchar](16),@class_id_3[tinyint])asinsertinto[5102201101]。[dbo].[u_students]([id],[name],[class_id])values(@id_1,@name_2,@class_id_3)單擊“確定”就建立了插入同學(xué)記錄的存儲(chǔ)過(guò)程INSERT_U_STUDENTS9)依照上述過(guò)程自己用向?qū)?chuàng)建一個(gè)插入課程記錄的存儲(chǔ)過(guò)程"INSERT_U_COURSES".10)參照上述過(guò)程自己用向?qū)?chuàng)建一個(gè)同學(xué)姓名的存儲(chǔ)過(guò)程"UPDATE_U_STUDENTS"。(主要步驟見(jiàn)如下三圖)請(qǐng)單擊"編輯SQL(E)..。"按下面進(jìn)行修改用SQL語(yǔ)句建立一個(gè)更改課程名稱的存儲(chǔ)過(guò)程"UPDATE_U_COURSES".(執(zhí)行下圖中"新建存儲(chǔ)過(guò)程(S)...”,然后輸入代碼)在查詢分析器中驗(yàn)證上述存儲(chǔ)過(guò)程啟動(dòng)查詢分析器分別執(zhí)行下面命令,驗(yàn)證上述存儲(chǔ)過(guò)程其他存儲(chǔ)過(guò)程請(qǐng)自行驗(yàn)證在查詢分析器中用SQL語(yǔ)句建立一個(gè)存儲(chǔ)過(guò)程"DISPTO(shè)DAY":要求該存儲(chǔ)過(guò)程顯示當(dāng)前日期,格式為:今日是XXXX年XX月XX日星期X并驗(yàn)證之(參見(jiàn)下圖).實(shí)驗(yàn)10觸發(fā)器【實(shí)驗(yàn)?zāi)康摹?.嫻熟掌握后觸發(fā)器和替代觸發(fā)器的區(qū)分;2.嫻熟掌握后觸發(fā)器和替代觸發(fā)器的創(chuàng)建.【實(shí)驗(yàn)內(nèi)容和步驟】對(duì)于jxgl數(shù)據(jù)庫(kù),完成如下各項(xiàng):1。使用存儲(chǔ)過(guò)程封裝處理數(shù)據(jù)的語(yǔ)句創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,實(shí)現(xiàn)查詢班級(jí)號(hào)為090102同學(xué)信息的功能.usejxglgocreateprocpro_同學(xué)asselect學(xué)號(hào),姓名,性別,year(getdat(yī)e())-year(誕生日期)as年齡,籍貫from同學(xué)whereleft(學(xué)號(hào),6)='090102'go2.使用帶輸入?yún)?shù)的存儲(chǔ)過(guò)程創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,實(shí)現(xiàn)查詢指定同學(xué)姓名成果信息的功能。usejxglgocreateprocpro_同學(xué)_選修@xmchar(6)asselect同學(xué)。學(xué)號(hào),姓名,課程號(hào),成果from同學(xué),選修where同學(xué)。學(xué)號(hào)=選修.學(xué)號(hào)and姓名=@xmgo3.使用輸入?yún)?shù)帶默認(rèn)值的存儲(chǔ)過(guò)程創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,實(shí)現(xiàn)查詢指定課程號(hào)的課程及其選修信息。usejxglgo-—?jiǎng)?chuàng)建存儲(chǔ)過(guò)程代碼如下:creat(yī)eprocpro_課程_選修@kchchar(2)='01’asselect課程.課程號(hào),課程名稱,學(xué)號(hào),成果from課程,選修where課程.課程號(hào)=選修.課程號(hào)and課程。課程號(hào)=@kch-—調(diào)用存儲(chǔ)過(guò)程代碼如下:goexecpro_課程_選修goexecpro_課程_選修defaultgoexecpro_課程_選修’02’go4.使用帶輸出參數(shù)的存儲(chǔ)過(guò)程創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,實(shí)現(xiàn)查詢老師的平均工資。usejxglgo—-以下是創(chuàng)建存儲(chǔ)過(guò)程代碼:createprocpro_avg_老師@avgscorefloatoutputasselect@avgscore=avg(基本工資)from老師go--以下是執(zhí)行存儲(chǔ)過(guò)程代碼:declare@avgscorefloatexecpro_avg_老師@avgscoreoutputprint'老師的平均工資:'+cast(@avgscoreasvarchar(6))運(yùn)行結(jié)果如下:警告:聚合或其它SET操作消除了空值。老師的平均工資:22265.使用帶輸入輸出參數(shù)的存儲(chǔ)過(guò)程創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,實(shí)現(xiàn)指定姓名時(shí),查詢?cè)撋窟x修課程的平均成果。usejxglgocreat(yī)eprocpro_avg_成果@xmchar(6),@avgscorefloatoutputasselect@avgscore=avg(成果)from同學(xué),選修where同學(xué).學(xué)號(hào)=選修。學(xué)號(hào)and姓名=@xmgo-—以下是執(zhí)行存儲(chǔ)過(guò)程代碼:declare@xmchar(6),@avgscorefloatset@xm='儲(chǔ)兆雯'execpro_avg_成果'儲(chǔ)兆雯',@avgscoreoutputprint@avgscore6.使用輸出參數(shù)是游標(biāo)類型的存儲(chǔ)過(guò)程創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,實(shí)現(xiàn)逐行顯示表“同學(xué)”中的數(shù)據(jù).(1)創(chuàng)建存儲(chǔ)過(guò)程代碼:usejxglgoifexists(selectnamefromsysobjectswherename=’cursor_選修’andtype=’p')dropproccursor_選修gocreateproccursor_選修@xhchar(8)=’08010101',@js_cursorcursorvaryingoutputasset@js_cursor=cursorforward_onlystat(yī)icforselect*from選修where學(xué)號(hào)=@xhopen@js_cursorgo(2)調(diào)用存儲(chǔ)過(guò)程代碼declare@xhchar(8),@mycursorset@xh='08010101’execcursor_選修@xh,@myoutputwhile(@@fetch_status=0)beginfetchnextfrom@my???—-提取數(shù)據(jù)endclose@my? ????-—關(guān)閉游標(biāo)deallocat(yī)e@m(xù)y?????--刪除游標(biāo)(3)運(yùn)行結(jié)果如圖9—12所示.實(shí)驗(yàn)11導(dǎo)入導(dǎo)出【實(shí)驗(yàn)?zāi)康摹浚保莆諗?shù)據(jù)導(dǎo)入導(dǎo)出的基本方法【實(shí)驗(yàn)內(nèi)容】1.用DTS向?qū)?dǎo)入ACCESS數(shù)據(jù)2.用DTS向?qū)?dǎo)入EXCEL數(shù)據(jù)3.DTS向?qū)?dǎo)出數(shù)據(jù)【實(shí)驗(yàn)籌備】1。復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)2。對(duì)本次實(shí)驗(yàn)中要求自己完成的部分做好籌備【實(shí)驗(yàn)步驟】1.用DTS導(dǎo)入向?qū)YPERLINK”http://219。219.90。5/zwq/mydocs/jyjx/SQL/practice/計(jì)軟03名單.xls"計(jì)軟03名單。xls導(dǎo)入到數(shù)據(jù)庫(kù)中保存為“JR03”表1)啟動(dòng)企業(yè)管理器,連接服務(wù)器2)選擇數(shù)據(jù)庫(kù),執(zhí)行‘工具'菜單中的“向?qū)В╓)...”,選擇"數(shù)據(jù)轉(zhuǎn)換向?qū)А敝械摹盌TS導(dǎo)出向?qū)А?,單擊”確定",在對(duì)話框中單擊"下一步”.然后依據(jù)下面的步驟操作。??3)用DTS導(dǎo)入向?qū)ⅲ萗PERLINK"http://219。219.90。5/zwq/mydocs/jyjx/SQL/practice/ZGGZ.mdb"ZGGZ.MDB導(dǎo)入到數(shù)據(jù)庫(kù)中保存為“GZ”表4)注意:選擇數(shù)據(jù)源類型為"MicrosoftAccess"5)將同學(xué)表U_STUDENTS導(dǎo)出為EXCEL表"XS。XLS”6)將課程表U_COURSES導(dǎo)出為ACCESS文件"KC。MDB"自行練習(xí)其他導(dǎo)入導(dǎo)出過(guò)程實(shí)驗(yàn)12系統(tǒng)平安管理【實(shí)驗(yàn)?zāi)康摹繉W(xué)會(huì)使用企業(yè)管理器學(xué)會(huì)注冊(cè)、連接服務(wù)器學(xué)會(huì)創(chuàng)建登錄、建立數(shù)據(jù)庫(kù)學(xué)會(huì)為數(shù)據(jù)庫(kù)創(chuàng)建和設(shè)置用戶【實(shí)驗(yàn)內(nèi)容】使用企業(yè)管理器注冊(cè)、連接SQL數(shù)據(jù)庫(kù)服務(wù)器使用企業(yè)管理器建立數(shù)據(jù)庫(kù)使用企業(yè)管理器創(chuàng)建登錄使用企業(yè)管理器為數(shù)據(jù)庫(kù)創(chuàng)建用戶并設(shè)置其權(quán)限【實(shí)驗(yàn)籌備】復(fù)習(xí)與本次實(shí)驗(yàn)內(nèi)容相關(guān)知識(shí)預(yù)習(xí)有關(guān)登錄的建立等相關(guān)內(nèi)容【實(shí)驗(yàn)步驟】1.啟動(dòng)企業(yè)管理器啟動(dòng)過(guò)程為:開(kāi)頭菜單—-〉程序-->MicrosoftSQLServer——>企業(yè)管理器,參見(jiàn)下圖。2。注冊(cè)SQL服務(wù)器在企業(yè)管理器中,展開(kāi)樹形列表中的"MicrosoftSQLServers”項(xiàng)目,我們可以看到下面有一個(gè)子項(xiàng)目"SQLServer組".用鼠標(biāo)右鍵點(diǎn)擊該項(xiàng)目圖標(biāo),在彈出的菜單中選"新建SQLServer注冊(cè)"菜單項(xiàng),如下圖所示。企業(yè)管理器啟動(dòng)向?qū)椭M(jìn)行注冊(cè)。然后點(diǎn)擊”下一步"按鈕。消滅如下圖所示的對(duì)話框,在服務(wù)器編輯框中輸入SQLServer的IP地址及數(shù)據(jù)庫(kù)實(shí)例的名稱,選擇SQLServer身份驗(yàn)證方式,并填入登錄名和密碼,本次實(shí)驗(yàn)使用的登錄名為dbuser,密碼為dbuser。(在以后的實(shí)驗(yàn)中要求大家必須使用本次實(shí)驗(yàn)中自己建立的登錄帳號(hào))。然后點(diǎn)擊"確定”按鈕。3。連接SQL服務(wù)器展開(kāi)樹形列表框中"SQLServer組"項(xiàng)目,在剛注冊(cè)的服務(wù)器圖標(biāo)(如第4步圖中所示,圖中的服務(wù)器名稱為(LOCAL)(WindowsNT)上右擊,選擇彈出菜單中的”連接",即可與SQL服務(wù)器進(jìn)行連接。4。建立數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)服務(wù)器連接以后,展開(kāi)該服務(wù)器項(xiàng)目,其下有子項(xiàng)目”數(shù)據(jù)庫(kù)”,選擇該項(xiàng)目后,右擊該項(xiàng)目,或者在右面的子窗口中右擊,在彈出菜單中有”新建數(shù)據(jù)庫(kù)"。點(diǎn)擊”新建數(shù)據(jù)庫(kù)”菜單項(xiàng)后,消滅下圖所示的對(duì)話框.在”常規(guī)"選項(xiàng)卡中的”名稱"編輯框中輸入新建數(shù)據(jù)庫(kù)的名稱(用你的完整學(xué)號(hào)命名,共10位數(shù)字,將使用你的學(xué)號(hào)來(lái)推斷您的實(shí)驗(yàn)中該步是否完成,否則,后果自負(fù))如下圖所示(圖中51022201101處應(yīng)為你的學(xué)號(hào)),設(shè)置完成后點(diǎn)擊”確定"按鈕,即可建立數(shù)據(jù)庫(kù).5。建立登錄帳號(hào)為便于本課程后面的實(shí)驗(yàn)順利進(jìn)行,需要每位同學(xué)為自己在數(shù)據(jù)庫(kù)系統(tǒng)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論