精選數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告一_第1頁
精選數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告一_第2頁
精選數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告一_第3頁
精選數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告一_第4頁
精選數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告一_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

精選數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告一廣西大學(xué)2023數(shù)據(jù)庫原理實(shí)驗(yàn)報(bào)告學(xué)號(hào):1207300122姓名:羅金雄專業(yè)班級(jí):計(jì)網(wǎng)121班指導(dǎo)老師:顧平成績:實(shí)驗(yàn)一SQLServer的安裝及環(huán)境介紹實(shí)驗(yàn)?zāi)康恼莆誗QLServer效勞器的安裝方法〔安裝版本為SQLServer2023〕。了解SQLServer效勞器的環(huán)境實(shí)驗(yàn)要求1.完成SQLServer的安裝、啟動(dòng)。實(shí)驗(yàn)內(nèi)容安裝SQLServer。實(shí)驗(yàn)步驟〔1〕下載SQLServer2023集成包并解壓,運(yùn)行后出現(xiàn)“SQLServer安裝中心〞。在左側(cè)的目錄樹中選擇“安裝〞。〔2〕在右側(cè)的選擇項(xiàng)中,選擇第1工程“全新安裝或向現(xiàn)有安裝添加功能〞,然后就進(jìn)入了安裝程序?!?〕輸入產(chǎn)口密鑰,許可條款,安裝程序支持文件?!?〕接下來,才是正式安裝SQLServer程序。這個(gè)步驟看起來跟剛剛在準(zhǔn)備過程中的一樣,都是掃描本機(jī),防止在安裝過程中出現(xiàn)異?!,F(xiàn)在并不是在重復(fù)剛剛的步驟,從以下圖明顯看出這次掃描的精度更細(xì),掃描的內(nèi)容也更多?!?〕功能選擇。勾選全部的安裝組件,方便以后使用?!?〕實(shí)例配置。我們這里安裝一個(gè)默認(rèn)實(shí)例?!?〕效勞賬戶配置。〔8〕數(shù)據(jù)庫引擎配置。〔9〕之后的配置無需改動(dòng),一路下一步即可,等待安裝成功。請你練習(xí)如果在安裝時(shí)設(shè)置身份驗(yàn)證模式為混合模式,那SQLServer默認(rèn)生成的系統(tǒng)管理員賬戶名是?答:系統(tǒng)管理員賬戶名saSQLServer2023中有哪幾種身份驗(yàn)證模式?答:Windows身份、SQlServer和Windows身份驗(yàn)證模式3.什么是實(shí)例、默認(rèn)實(shí)例和命名實(shí)例?在一臺(tái)計(jì)算機(jī)上是否可以安裝多個(gè)實(shí)例?答:“實(shí)例〞,就是一個(gè)SQLServer數(shù)據(jù)庫引擎。一臺(tái)計(jì)算機(jī)上最多只有一個(gè)默認(rèn)實(shí)例,也可以沒有默認(rèn)實(shí)例,默認(rèn)實(shí)例名與計(jì)算機(jī)名相同?!懊麑?shí)例〞就是自己使用這自己命名的事例??蛻舳诉B接命名實(shí)例時(shí),必須使用以下計(jì)算機(jī)名稱與命名實(shí)例的實(shí)例名組合的格式。SQLServer支持在同一臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)SQLServer數(shù)據(jù)庫引擎實(shí)例。分析與討論:1、程序運(yùn)行出錯(cuò),登錄用戶‘sa’無法連接數(shù)據(jù)庫解決方案:翻開數(shù)據(jù)庫企業(yè)管理器--展開sqlserver組--右鍵〔local〕數(shù)據(jù)庫屬性---平安性---身份驗(yàn)證選sqlserver和Windows身份驗(yàn)證模式---確定2、數(shù)據(jù)庫選擇的是默認(rèn)位置,要改變路徑,右鍵——屬性——數(shù)據(jù)庫設(shè)置,填寫路徑保存即可。實(shí)驗(yàn)二SQLServer常用管理工具和使用實(shí)驗(yàn)?zāi)康?.理解效勞的概念,掌握SQLServer效勞的啟動(dòng)、暫停和停止。2.熟悉SQLServer配置管理工具的使用,掌握使用管理工具查看數(shù)據(jù)庫信息的方法。3.掌握幫助文檔的使用實(shí)驗(yàn)要求1.使用多種方法啟動(dòng)、暫停和停止SQLServer效勞。2.使用管理工具查看當(dāng)前數(shù)據(jù)庫信息。實(shí)驗(yàn)內(nèi)容1. 啟動(dòng)、暫停和停止SQLServer效勞。2. 查看幫助文檔實(shí)驗(yàn)步驟與結(jié)果實(shí)驗(yàn)步驟〔1〕依次〞計(jì)算機(jī)〞——“管理〞——“效勞和應(yīng)用進(jìn)程〞——“效勞〞,翻開效勞項(xiàng)〔2〕找到一項(xiàng)名為“SQLServer(MSSQLSERVER)〞的效勞,查看其描述和狀態(tài)?!?〕停止該效勞?!?〕啟動(dòng)該效勞。〔5〕暫停該效勞?!?〕恢復(fù)該效勞?!?〕在SQLServer配置管理器中嘗試重復(fù)上述操作?!?〕在SQLServer配置管理器中還可以查看到SQLServer效勞占用的端口和本機(jī)IP地址。點(diǎn)擊左側(cè)“MSSQLSERVER的協(xié)議〞選擇“TCP/IP〞,然后選擇IP地址選項(xiàng)卡??梢钥吹蕉丝谔?hào)。〔9〕使用命令NET管理MSSQLSERVER效勞。停止效勞。命令:NETSTOPMSSQLSERVER〔10〕啟動(dòng)效勞。命令:NETSTARTMSSQLSERVER〔11〕暫停效勞。命令:NETPAUSEMSSQLSERVER〔12〕重新開啟效勞。命令:NETCONTINUEMSSQLSERVER〔9〕~〔12〕截圖如下:請你練習(xí)上網(wǎng)查找在osql命令的作用和使用方法,并使用該命令登錄SQLServer查看版本。OSQL—?命令可查看osql命令的用法*通過命令可知該數(shù)據(jù)庫版本為SQL202311.0NTx64上圖列舉了OSQL的一些常用命令。分析與討論:SQLserver的應(yīng)用進(jìn)程我效勞會(huì)有多個(gè),尤其是效勞,停止或暫停了某些應(yīng)用進(jìn)程和效勞,都可能是數(shù)據(jù)庫無法正常的使用,所以不要停止相關(guān)進(jìn)程和效勞。實(shí)驗(yàn)三創(chuàng)立數(shù)據(jù)庫實(shí)驗(yàn)?zāi)康?. 掌握在圖形界面下創(chuàng)立數(shù)據(jù)庫的方法。2. 掌握使用SQL語句創(chuàng)立數(shù)據(jù)庫的方法。3. 熟悉SQLServerManagementStudio的環(huán)境。實(shí)驗(yàn)要求1.熟練使用兩種方法創(chuàng)立數(shù)據(jù)庫。實(shí)驗(yàn)內(nèi)容創(chuàng)立數(shù)據(jù)庫。實(shí)驗(yàn)步驟和結(jié)果:〔路徑選擇本機(jī)系統(tǒng)默認(rèn)的路徑〕〔1〕明確需求。〔2〕使用向?qū)?chuàng)立上訴描述的數(shù)據(jù)庫?!?〕單擊“連接〞按鈕,便可以進(jìn)入【SQLServerManagementStudio】窗口?!?〕在“數(shù)據(jù)庫〞節(jié)點(diǎn)上右擊,彈出如以下圖所示的快捷菜單,選擇“新建數(shù)據(jù)庫〞命令?!?〕在“常規(guī)〞數(shù)據(jù)頁的“數(shù)據(jù)庫名稱〞文本框中,輸入要?jiǎng)?chuàng)立的數(shù)據(jù)庫名稱和其他屬性信息?!?〕單擊“確定〞。數(shù)據(jù)庫建立成功?!?〕使用T-SQL語言創(chuàng)立數(shù)據(jù)庫。需求:使用查詢分析器新建一個(gè)數(shù)據(jù)庫,名稱為“LIB〞,其主要數(shù)據(jù)文件大小為4M,最大文件大小為10M,每次增長2M;次要數(shù)據(jù)文件大小為1M;日志文件大小為1M;三個(gè)文件的文件名自定,上述沒有說明的選項(xiàng)都采用默認(rèn)值。〔8〕點(diǎn)擊“新建查詢〞,鍵入SQL語句。CREATE

DATABASELIBON(NAME

=

bdata1,FILENAME

=’C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\bdata3.mdf',SIZE

=

2,MAXSIZE

=

10,

FILEGROWTH

=

2

),(

NAME

=bdata2,

FILENAME

=

‘C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\bdata4.ndf',

SIZE

=

1

)

LOG

ON

(

NAME

=blog,

FILENAME

=’

C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\blog.ldf',SIZE

=

1

)〔9〕點(diǎn)擊“執(zhí)行〞執(zhí)行以上代碼后發(fā)現(xiàn)以下問題:CREATEDATABASE語句失敗。主文件必須至少是5MB才能容納model數(shù)據(jù)庫的副本。將主文件大小改為5M后,再執(zhí)行,提示命令功能執(zhí)行成功請你練習(xí)熟悉SQL語言建庫的語法。創(chuàng)立一個(gè)test數(shù)據(jù)庫,其主數(shù)據(jù)文件邏輯名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸為無限大,增長速度1MB;數(shù)據(jù)庫日志文件邏輯名稱為test_log,物理文件名為test_log.ldf,初始大小為1MB,最大尺寸為5MB,增長速度為10%。自行查找刪除數(shù)據(jù)庫T-SQL語句。刪除語句為:dropdatabasetext,其中text為數(shù)據(jù)庫的名稱分析與討論:1、題目中要求數(shù)據(jù)庫主文件的初始大小位4,運(yùn)行后出現(xiàn)問題:CREATEDATABASE語句失敗。主文件必須至少是5MB才能容納model數(shù)據(jù)庫的副本。所以要把主文件的廚師大小改為5MB,其他條件可以不變,即可執(zhí)行成功。2、因?yàn)閿?shù)據(jù)庫的路徑選擇的是安裝的默認(rèn)路徑,所以對練習(xí)中文件的路徑也要做相應(yīng)的改變,即要修改為本數(shù)據(jù)庫默認(rèn)的路徑。否那么無法創(chuàng)立數(shù)據(jù)庫成功。實(shí)驗(yàn)四管理數(shù)據(jù)庫實(shí)驗(yàn)?zāi)康倪M(jìn)一步熟練企業(yè)管理器和查詢分析器的使用。掌握附加和別離數(shù)據(jù)庫的方法。熟悉數(shù)據(jù)庫的更名。掌握數(shù)據(jù)庫的刪除。實(shí)驗(yàn)要求使用T-SQL語句創(chuàng)立和修改數(shù)據(jù)庫。掌握其他常用的數(shù)據(jù)庫管理操作。實(shí)驗(yàn)內(nèi)容使用T-SQL語句修改數(shù)據(jù)庫。其他數(shù)據(jù)庫管理操作。實(shí)驗(yàn)?zāi)康倪M(jìn)一步熟練企業(yè)管理器和查詢分析器的使用。掌握附加和別離數(shù)據(jù)庫的方法。熟悉數(shù)據(jù)庫的更名。掌握數(shù)據(jù)庫的刪除。實(shí)驗(yàn)要求使用T-SQL語句創(chuàng)立和修改數(shù)據(jù)庫。掌握其他常用的數(shù)據(jù)庫管理操作。實(shí)驗(yàn)內(nèi)容使用T-SQL語句修改數(shù)據(jù)庫。其他數(shù)據(jù)庫管理操作。實(shí)驗(yàn)步驟建庫需求。創(chuàng)立一個(gè)名為“Test〞數(shù)據(jù)庫。主要數(shù)據(jù)文件:邏輯文件名為TestData1,實(shí)際文件名為TestData1.mdf;初始容量為5MB,最大容量為10MB,遞增量為1MB。次要數(shù)據(jù)文件:邏輯文件名為TestData2,實(shí)際文件名為TestData2.ndf;初始容量為1MB,最大容量為10MB,遞增量為1MB。事務(wù)日志文件:邏輯文件名為TestLog,實(shí)際文件名為TestLog.ldf;初始容量為1MB,最大容量為5MB,遞增量為1MB。修改需求。按照下面的要求修改數(shù)據(jù)庫Test。主要數(shù)據(jù)文件的容量為2MB,最大容量為20MB,遞增量為2MB。次要數(shù)據(jù)文件的容量為2MB,最大容量為20MB,遞增量為2MB。事務(wù)日志文件的容量為2MB,最大容量為10MB,遞增量為2MB?!?〕啟動(dòng)“企業(yè)管理器〞,在控制面板的“樹形目錄〞中選擇“數(shù)據(jù)庫〞節(jié)點(diǎn),單擊鼠標(biāo)右鍵,在彈出菜單中選擇“新建數(shù)據(jù)庫〞命令,出現(xiàn)“數(shù)據(jù)庫屬性〞對話框。〔4〕設(shè)置常規(guī)選項(xiàng)卡:在“名稱〞文本框中輸入數(shù)據(jù)庫名稱“Test〞;〔5〕設(shè)置數(shù)據(jù)文件選項(xiàng)卡:在文件名字段中輸入數(shù)據(jù)文件邏輯文件名“TestData1〞;設(shè)置該文件初始大小為1MB;標(biāo)記“文件屬性〞欄下的“文件自動(dòng)增長〞復(fù)選框,并選中“按兆字節(jié)〞設(shè)置文件容量遞增值為1。在“最大文件大小〞對話框中選擇“將文件增長限制為(MB)〞為10。同樣,在第二行輸入次要數(shù)據(jù)文件信息,并進(jìn)行相應(yīng)設(shè)置。設(shè)置事務(wù)日志選項(xiàng)卡:在文件名字段中輸入數(shù)據(jù)文件邏輯文件名“TestLog〞;設(shè)置該文件初始大小為1MB,標(biāo)記“文件屬性〞欄下的“文件自動(dòng)增長〞復(fù)選框,并選中“按兆字節(jié)〞設(shè)置文件容量遞增值為1;在“最大文件大小〞對話框中,選擇“將文件增長限制為(MB)〞為5?!?〕單擊“確定〞按鈕,完成數(shù)據(jù)庫的創(chuàng)立?!?〕在“樹狀目錄窗格〞中,選擇新建的數(shù)據(jù)庫“Test〞,單擊鼠標(biāo)右鍵,在彈出菜單中選擇“屬性〞命令,翻開數(shù)據(jù)庫屬性窗口;〔8〕選擇數(shù)據(jù)文件選項(xiàng)卡,在其中將主要數(shù)據(jù)文件和次要數(shù)據(jù)文件的容量改為2MB,最大容量改為20MB,遞增量改為2MB。〔9〕選擇事務(wù)日志選項(xiàng)卡,在其中將事務(wù)日志文件的容量改為2MB,最大容量改為10,遞增量改為2?!?0〕使用Transact-SQL語句創(chuàng)立和修改數(shù)據(jù)庫?!?1〕修改數(shù)據(jù)庫〔12〕點(diǎn)擊“執(zhí)行〞,執(zhí)行修改?!?3〕在“樹狀目錄窗格〞中,選擇新建的數(shù)據(jù)庫“Test〞,單擊鼠標(biāo)右鍵,在彈出菜單中選擇“屬性〞命令,翻開數(shù)據(jù)庫屬性窗口,查看更新是否已執(zhí)行。〔14〕重命名數(shù)據(jù)庫。選擇數(shù)據(jù)庫“Test〞,單擊鼠標(biāo)右鍵,在彈出菜單中選擇“重命名〞命令〔15〕別離數(shù)據(jù)庫?!?6〕別離數(shù)據(jù)庫準(zhǔn)備就緒后,請單擊“確定〞?!?7〕右鍵單擊“數(shù)據(jù)庫〞,然后單擊“附加〞〔18〕單擊“確定〞,附加數(shù)據(jù)庫?!?9〕刪除數(shù)據(jù)庫。選擇數(shù)據(jù)庫“Test〞,單擊鼠標(biāo)右鍵,在彈出菜單中選擇“刪除〞命令。然后在彈出的窗口中勾選“關(guān)閉現(xiàn)有連接〞請你練習(xí)認(rèn)真完本錢節(jié)數(shù)據(jù)庫管理的相關(guān)練習(xí),自己制定需求,然后按“建立-修改-重命名-別離-附加-刪除〞順序操作。建立:修改:ALTERDATABASETestMODIFYFILE(NAME=TestData1,SIZE=7,MAXSIZE=20,FILEGROWTH=2)GOALTERDATABASETestMODIFYFILE(NAME=TestData2,SIZE=7,MAXSIZE=20,FILEGROWTH=2)GOALTERDATABASETestMODIFYFILE(NAME=TestLog,SIZE=3,MAXSIZE=10,FILEGROWTH=2)GO重命名:別離:附加:刪除:2.查詢“別離〞和“附加〞操作的T-SQL命令分別是什么?別離:EXECsp_detach_dbDatabaseName附加:CREATEDATABASEdatabasenameON(FILENAME='C:\Database\dbname.mdf')----路徑和名稱FORATTACH|FORATTACH_REBUILD_LOG分析與討論:1、在64位和32位環(huán)境中,SQLServer磁盤存儲(chǔ)格式均相同。

因此,可以將32位環(huán)境中的數(shù)據(jù)庫附加到64位環(huán)境中,反之亦然。

從運(yùn)行在某個(gè)環(huán)境中的效勞器實(shí)例上別離的數(shù)據(jù)庫可以附加到運(yùn)行在另一個(gè)環(huán)境中的效勞器實(shí)例。2、別離數(shù)據(jù)庫是指將數(shù)據(jù)庫從SQLServer實(shí)例中刪除,但使數(shù)據(jù)庫在其數(shù)據(jù)文件和事務(wù)日志文件中保持不變。之后,就可以使用這些文件將數(shù)據(jù)庫附加到任何SQLServer實(shí)例,包括別離該數(shù)據(jù)庫的效勞器。如果存在以下任何情況,那么不能別離數(shù)據(jù)庫:已復(fù)制并發(fā)布數(shù)據(jù)庫。如果進(jìn)行復(fù)制,那么數(shù)據(jù)庫必須是未發(fā)布的。必須通過運(yùn)行sp_replicationdboption禁用發(fā)布后,才能別離數(shù)據(jù)庫3、附加數(shù)據(jù)庫時(shí),所有數(shù)據(jù)文件〔MDF文件和NDF文件〕都必須可用。

如果任何數(shù)據(jù)文件的路徑不同于首次創(chuàng)立數(shù)據(jù)庫或上次附加數(shù)據(jù)庫時(shí)的路徑,那么必須指定文件的當(dāng)前路徑。實(shí)驗(yàn)五表的創(chuàng)立實(shí)驗(yàn)?zāi)康氖炀氄莆沼肨ransact-SQL語句創(chuàng)立根本表的方法。熟練掌握根本表的特性。了解SQLServer的根本數(shù)據(jù)類型。使用SSMS管理平臺(tái)創(chuàng)立根本表。實(shí)驗(yàn)要求熟練使用企業(yè)管理器創(chuàng)立和刪除根本表。是用查詢分析器,完成用SQL語句創(chuàng)立和刪除根本表。實(shí)驗(yàn)內(nèi)容創(chuàng)立、刪除根本表。實(shí)驗(yàn)步驟〔1〕翻開企業(yè)管理器?!?〕選擇一個(gè)創(chuàng)立好的數(shù)據(jù)庫test,單擊數(shù)據(jù)庫中的表對象,然后右擊窗口右側(cè)選擇新建表〔3〕在這個(gè)窗體中,列名列表示表的字段名,可以在這個(gè)窗體中為字段選擇數(shù)據(jù)類型和長度以及是否可以為空值。〔4〕在“id〞數(shù)據(jù)項(xiàng)上設(shè)置主鍵。右鍵單擊該數(shù)據(jù)項(xiàng)選擇“設(shè)置主鍵〞〔5〕設(shè)置自動(dòng)增長后,插入輸入時(shí)可以不填主鍵,主鍵可以自動(dòng)生成〔6〕填完正在創(chuàng)立表的其他信息,單擊工具欄上的保存圖標(biāo),輸入表的名稱〔7〕輸入表的名稱后,單擊確定系統(tǒng)會(huì)創(chuàng)立表〔8〕在查詢分析器中利用SQL語句創(chuàng)立表。點(diǎn)擊“新建查詢〞?!?〕在查詢窗體中輸入創(chuàng)立表的T-SQL語句?!?0〕單擊工具欄上的圖標(biāo)按鈕,執(zhí)行分析查詢,以檢查輸入的SQL語句是否存在語法錯(cuò)誤?!?1〕創(chuàng)立一個(gè)更為復(fù)雜的學(xué)生表,引入SQLServer創(chuàng)立表的更多特性〔12〕在查詢窗體中輸入T-SQL語句請你練習(xí)1.建表練習(xí),按以下要求通過SSMS創(chuàng)立表。屬性列數(shù)據(jù)類型長度空值列約束說明st_idnVarChar9NotNullPK學(xué)生學(xué)號(hào)st_nmnVarChar8NotNull學(xué)生姓名st_sexnVarChar2Null學(xué)生性別st_birthdatetimeNull出生日期st_scoreintNull入學(xué)成績st_datedatetimeNull入學(xué)日期st_fromnChar20Null學(xué)生來源st_dpidnVarChar2Null所在系編號(hào)st_mnttinyintNull學(xué)生職務(wù)2.建表練習(xí),按以下要求通過T-SQL語句創(chuàng)立表。屬性列數(shù)據(jù)類型長度空值列約束說明cs_idnVarChar4NotNullPK課程編號(hào)cs_nmnVarChar20NotNull課程名稱cs_tmintNull課程學(xué)時(shí)cs_scintNull課程學(xué)分創(chuàng)立上表的T—SQL語句為:IFOBJECT_ID('class')ISNOTNULLDROPTABLEclassGOCREATETABLEclass(cs_idnVarChar(4)PRIMARYKEY,cs_nmnVarChar(20)NotNull, cs_tmint, cs_scint,)ON[PRIMARY]GOexecsp_addextendedpropertyN'MS_Description',N'課程編號(hào)',N'user',N'dbo',N'table',N'class',N'column',N'cs_id'execsp_addextendedpropertyN'MS_Description',N'課程名稱',N'user',N'dbo',N'table',N'class',N'column',N'cs_nm'execsp_addextendedpropertyN'MS_Description',N'課程學(xué)時(shí)',N'user',N'dbo',N'table',N'class',N'column',N'cs_tm'execsp_addextendedpropertyN'MS_Description',N'課程學(xué)分',N'user',N'dbo',N'table',N'class',N'column',N'cs_sc'GO3.建表練習(xí),按以下要求通過T-SQL語句創(chuàng)立表。屬性列數(shù)據(jù)類型長度空值列約束說明cs_idnVarChar4NotNullFK課程編號(hào)st_idnVarChar9NotNullFK學(xué)生編號(hào)scoreintNull課程成績sltdatedatetimeNull選課日期創(chuàng)立上表的T—SQL語句為:IFOBJECT_ID('class_student1')ISNOTNULLDROPTABLEclass_student1GOCREATETABLEclass_student1(cs_idnVarChar(4)NotNullFOREIGNKEYreferencesclass(cs_id),st_idnVarChar(9)NotNullFOREIGNKEYreferencesstudent(st_id), scoreint, sltdatedatetime,)GOexecsp_addextendedpropertyN'MS_Description',N'課程編號(hào)',N'user',N'dbo',N'table',N'class_student1',N'column',N'cs_id'execsp_addextendedpropertyN'MS_Description',N'學(xué)生編號(hào)',N'user',N'dbo',N'table',N'class_student1',N'column',N'st_id'execsp_addextendedpropertyN'MS_Description',N'課程成績',N'user',N'dbo',N'table',N'class_student1',N'column',N'score'execsp_addextendedpropertyN'MS_Description',N'選課日期',N'user',N'dbo',N'table',N'class_student1',N'column',N'sltdate'GO執(zhí)行以上代碼后,課得到下表:分析與討論:使用外鍵鏈接時(shí),列的數(shù)據(jù)類型和數(shù)據(jù)長度必須要一樣實(shí)驗(yàn)六表的維護(hù)實(shí)驗(yàn)?zāi)康氖炀氄莆帐褂肨-SQL語句對表的結(jié)構(gòu)進(jìn)行修改。熟練掌握使用SSMS管理工具刪除表、重命名表。熟練掌握使用T-SQL語句刪除表、重命名表。實(shí)驗(yàn)要求了解常用的修改表定義語句。完成已經(jīng)創(chuàng)立成功的表上的修改表定義的操作。實(shí)驗(yàn)內(nèi)容修改表定義練習(xí)。實(shí)驗(yàn)步驟右鍵點(diǎn)擊所要修改的學(xué)生表,選擇“設(shè)計(jì)表〞。在空白處點(diǎn)右鍵,選擇“屬性〞,彈出另一窗體,在此可以更改約束,也可以增加約束利用Transact-SQL語句修改表。使用上一節(jié)最后完成的Student表。先做好準(zhǔn)備,通過SSMS刪除Sage上的check約束,Ssex上的check約束,sno上的主鍵約束。修改Sage列,允許空值,類型為smallint。添加一列列名為Sdept,類型為varchar(20)。useTestaltertableStudentaddSagesmallintnotnullgoaltertableStudentaddSdeptvarchar(20)更改表以刪除列〔5〕修改表的列以增加約束。〔6〕查看Student表上添加的約束。execsp_helpconstraintstudent0由于執(zhí)行了很屢次,所以結(jié)果有多個(gè)?!?〕修改表的列以刪除約束。〔8〕修改列的屬性。將Student表中的Sname長度改為20。useTestgoaltertablestudent0altercolumnsnamechar(20)〔9〕將Student表重新命名成Stu。useTESTgoSp_rename'student0','stu'〔10〕將stu表的列Sname重命名為T-Sname。useTESTgoSp_rename'stu,Sname','T-Sname','column'請你練習(xí)為“stu〞表添加“dp_count〞列〔數(shù)據(jù)類型為nvarchar,長度為3,允許為空〕。useTESTaltertablestuadddp_countnvarchar(3)修改“stu〞表的“dp_count〞列數(shù)據(jù)類型為int。useTESTaltertablestualtercolumndp_countint刪除“stu〞表的“dp_count〞列。useTESTaltertablestudropcolumndp_count4.刪除表“stu〞。分析與討論:在對表進(jìn)行修改操作時(shí),應(yīng)先將各列的約束去除,否那么無法進(jìn)行修改。實(shí)驗(yàn)七數(shù)據(jù)查詢初步實(shí)驗(yàn)?zāi)康恼莆粘R?guī)的select語句的使用方法。掌握其他數(shù)據(jù)操縱語句的使用。熟練通過SQL語句導(dǎo)入數(shù)據(jù)實(shí)驗(yàn)要求掌握簡單select語句使用方法。熟悉關(guān)系型數(shù)據(jù)庫查詢的根本思想。實(shí)驗(yàn)內(nèi)容Select語句簡單查詢。T-SQL數(shù)據(jù)操縱語句。實(shí)驗(yàn)步驟1、使用insert語句向數(shù)據(jù)庫中插入數(shù)據(jù)2、翻開企業(yè)管理器,右鍵點(diǎn)擊stu表,選擇“選擇前1000行3、update語句可以用來更新行。useTESTUPDATEstuSETSbir='1991-1-2',Sage=25WHERESname='gxustu'GO〔4〕delete語句。delete語句用于刪除數(shù)據(jù)行?!?〕創(chuàng)立表。新建查詢,使用SQL語句導(dǎo)入數(shù)據(jù)。〔6〕查詢EMP表中的全部信息。select*from[Test].[dbo].[EMP];〔7〕查詢EMP表中的EMPNO、ENAME、SAL三列,并將名稱顯示為職工號(hào)、姓名、工資。selectEMPNO職工號(hào),ENAME姓名,SAL工資from[Test].[dbo].[EMP];〔8〕查詢EMP表中的ENAME、DEPTNO、JOB、SAL四列,并將名稱顯示為姓名、部門號(hào)、工作、工資,并使用SAL為依據(jù)排序。selectENAME姓名,DEPTNO部門號(hào),Job工作,SAL工資from[Test].[dbo].[EMP]ORDERBYSAL;請你練習(xí)查找insert、delete、update語句的格式,練習(xí)使用。插入:INSERTINTO[數(shù)據(jù)庫名].[dbo].[表名]([列1],[列2],[列3])VALUES(值1,值2,值3〕GO刪除:DELETEFROM[數(shù)據(jù)庫名].[dbo].[表名]WHERE列名='列值GO更新:use數(shù)據(jù)庫名UPDATE表名SETSbir='1991-1-2',Sage=25WHERESname='gxustu'GO2、按以下圖顯示的表定義,通過SSMS建表。寫出插入這些數(shù)據(jù)的SQL語句。建表語句為:useTESTcreatetableJOB(job_idsmallintprimarykey,job_descvarchar(50),min_vtinyint,max_vtinyint〕T_SQL語句為:insertintoJOBvalues(1,'NewHire.Jobnotspecified',10,10);insertintoJOBvalues(2,'ChiefExecutive',200,250);insertintoJOBvalues(3,'BusinessOperationsManager',175,225);insertintoJOBvalues(4,'ChiefFinancialOffical',175,250);insertintoJOBvalues(5,'Publisher',150,250);insertintoJOBvalues(6,'ManagerEditer',140,225);insertintoJOBvalues(7,'MaketingManager',120,200);insertintoJOBvalues(8,'PublicRelationsManager',100,175);insertintoJOBvalues(9,'AcquisitionsManager',75,175);insertintoJOBvalues(10,'ProductionsManager',75,165);insertintoJOBvalues(11,'OperationsManager',75,150);insertintoJOBvalues(12,'Editor',25,100);insertintoJOBvalues(13,'SalesRepresentative',25,100);insertintoJOBvalues(14,'Designer',25,100);分析與討論:有兩種情況UPDATE不會(huì)對影響表中的數(shù)據(jù)。

1.當(dāng)WHERE中的條件在表中沒有記錄和它匹配時(shí)。

2.當(dāng)我們將同樣的值賦給某個(gè)字段時(shí),如將字段abc賦為'123',而abc的原值就是'123'。實(shí)驗(yàn)八數(shù)據(jù)查詢穩(wěn)固實(shí)驗(yàn)?zāi)康姆€(wěn)固上節(jié)數(shù)據(jù)查詢操作。分組、排序查詢。了解例如數(shù)據(jù)庫Northwind結(jié)構(gòu)實(shí)驗(yàn)要求熟練掌握各種數(shù)據(jù)查詢方法。掌握關(guān)系型數(shù)據(jù)庫查詢的根本思想。實(shí)驗(yàn)內(nèi)容數(shù)據(jù)查詢練習(xí)。附加Northwind數(shù)據(jù)庫,了解其結(jié)構(gòu)。實(shí)驗(yàn)步驟(1)從EMP數(shù)據(jù)庫中查出有多少種不同的工作,列名為“工作〞。selectdistinctJOB工作from[Test].[dbo].[EMP]〔2〕從EMP數(shù)據(jù)庫中查出“DEPTNO〞等于30的所有人員信息。select*from[Test].[dbo].[EMP]whereDEPTNO=30〔3〕查出所有辦事員的姓名、職工號(hào)、所屬部門。selectENAME姓名,EMPNO職工號(hào),DNAME部門from[Test].[dbo].[EMP],[Test].[dbo].[DEPT]whereJOB='辦事員'〔4〕查出部門號(hào)為30,薪水大于100的員工信息。select*from[Test].[dbo].[EMP]whereDEPTNO=30andSAL>=100〔5〕查出所在部門號(hào)為10,職位不是辦事員又不是部門經(jīng)理的所有人。select*from[Test].[dbo].[EMP]whereDEPTNO=10andJOB!='辦事員'andJOB!='部門經(jīng)理'〔6〕在EMP中選擇所有姓王的雇員信息。select*from[Test].[dbo].[EMP]whereENAMElike'王%'〔7〕按部門升序、工資降序輸出EMP表。select*from[Test].[dbo].[EMP]whereDEPTNO=10orderbySALdesc〔8〕按部門升序,工資降序輸出EMP表。select*from[Test].[dbo].[EMP]whereDEPTNO=10orderbySALdesc〔9〕下面進(jìn)行Northwind數(shù)據(jù)庫的查詢練習(xí)。首先要附加數(shù)據(jù)庫。右鍵單擊“數(shù)據(jù)庫〞選擇“附加〞。在彈出的對話框中選擇添加,選擇Northwnd數(shù)據(jù)庫。〔10〕在NorthWind中查詢出每個(gè)供給商所提供產(chǎn)品的平均價(jià)格。selectSupplierID,avg(UnitPrice)from[Northwind].[dbo].[Products]groupbySupplierID〔11〕在NorthWind中查詢得到不同的地區(qū)有多少家供給商的信息。selectCountry,count(*)from[Northwind].[dbo].[Suppliers]groupbyCountry〔12〕在NorthWind中查詢顯示哪些供給商有傳真。selectCompanyName,Faxfrom[Northwind].[dbo].[Suppliers]wherefaxisnotnull〔13〕在NorthWind中查詢不同產(chǎn)品所訂購的總價(jià)。selectProductID,sum(Quantity*UnitPrice)from[Northwind].[dbo].[OrderDetails]groupbyProductIDorderbyProductID〔14〕在NorthWind中查詢出生日期在1940年至1960年之間的雇員信息。select*from[Northwind].[dbo].[Employees]whereBirthDate>='1940-1-1'andBirthDate<'1960-1-1'〔15〕查詢“Northwnd〞例如數(shù)據(jù)庫中供給商的ID、公司名稱、地區(qū)、城市和電話字段的值。條件是“地區(qū)等于華北〞并且“聯(lián)系人頭銜等于銷售代表〞。SelectSupplierID,CompanyName,Address,Cityfrom[Northwind].[dbo].[suppliers]whereRegion='華北'andContactTitle='銷售代表'〔16〕查詢“Northwind〞例如數(shù)據(jù)庫中供給商的ID、公司名稱、地區(qū)、城市和電話字段的值。其中的一些供給商位于華東或華南地區(qū),另外一些供給商所在的城市是天津。SelectSupplierID,CompanyName,Region,City,Phonefrom[Northwind].[dbo].[Suppliers]whereRegionin('東北','華南')orCity='天津'<找不到符合條件的值>〔17〕查詢“Northwind〞例如數(shù)據(jù)庫中位于“華東〞或“華南〞地區(qū)的供給商的ID、公司名稱、地區(qū)、城市和電話字段的值。SelectSupplierID,CompanyName,Region,City,Phonefrom[Northwind].[dbo].[Suppliers]whereRegionin('東北','華南')<找不到符合條件的值>請你練習(xí)在NorthWind數(shù)據(jù)庫中查詢所有產(chǎn)品的信息。SQl語句為:select*from[Northwind].[dbo].[Products]局部截圖:查詢NorthWind中雇員姓名、所在城市及其家庭電話,姓名以格式“姓.名〞顯示。查詢語句為:SelectLastName,FirstName,City,HomePhonefrom[Northwind].[dbo].[Employees]在NorthWind中查詢出單價(jià)最貴的前10種產(chǎn)品的信息。查詢語句為:selectTop10*from[Northwind].[dbo].[Products]orderbyUnitPricedesc在NorthWind中查詢出所有單價(jià)超過50美元的貨物名稱、貨物代號(hào)及其單位重量。查詢語句為:selectProductName,ProductID,QuantityPerUnitfrom[Northwind].[dbo].[Products]whereUnitPrice>505.在NorthWind中查詢出職務(wù)為銷售代表,稱呼為小姐的所有職員姓名和生日。SelectLastName,FirstName,BirthDatefrom[Northwind].[dbo].[Employees]whereTitle='SalesRepresentative'andTitleOfCourtesy='Ms.'分析與討論:1、SQL使用單引號(hào)來環(huán)繞文本值〔大局部數(shù)據(jù)庫系統(tǒng)也接受雙引號(hào)〕。如果是數(shù)值,請不要使用引號(hào)。實(shí)驗(yàn)九稍復(fù)雜的查詢〔多表查詢、子查詢〕實(shí)驗(yàn)?zāi)康恼莆誗SMS查詢編輯器的使用方法,加深對SQL語言的嵌套查詢語句的理解。熟悉根本的連接查詢,掌握內(nèi)連接與外連接查詢。掌握相關(guān)子查詢的使用方法。學(xué)會(huì)嵌套子查詢的使用方法、集合查詢。實(shí)驗(yàn)要求掌握在實(shí)際的數(shù)據(jù)關(guān)系中設(shè)計(jì)有意義的查詢。掌握較復(fù)雜的數(shù)據(jù)查詢方法。實(shí)驗(yàn)內(nèi)容數(shù)據(jù)查詢聯(lián)系。實(shí)驗(yàn)步驟〔1〕查詢唐強(qiáng)的工作所在部門名稱和部門所在地。selectDNAME,LOCATIONfrom[T].[dbo].[DEPT]

whereDEPTNO=( selectDEPTNOfrom[Test].[dbo].[EMP] whereENAME='唐強(qiáng)')〔2〕在沈陽工作的雇員信息。

select*from[Test].[dbo].[EMP]

whereDEPTNO=( selectDEPTNOfrom[Test].[dbo].[DEPT] whereLOCATION='沈陽')

3〕找出在沈陽工作的雇員信息及其所在部門信息。select*from[Test].[dbo].[EMP],[Test].[dbo].[DEPT]whereDEPT.LOCATION='沈陽'andDEPT.DEPTNO=EMP.DEPTNO〔4〕找出工資超過經(jīng)理的職工,列出姓名、工資及其經(jīng)理的姓名、工資。selectfirst.ENAME職工,second.ENAME經(jīng)理from[Test].[dbo].[EMP]first,[Test].[dbo].[EMP]secondwherefirst.JOBnotlike'%經(jīng)理'andsecond.JOBin('總經(jīng)理','部門經(jīng)理')andfirst.SAL>second.SAL〔5〕下面使用Northwind數(shù)據(jù)庫進(jìn)行練習(xí)。查詢Boise和Albuquerque的客戶在1996年訂購的所有訂單的訂單ID、所訂購的產(chǎn)品名稱和數(shù)量useNorthwindselectorders.orderid,productname,quantity,cityfrom[orderdetails]joinproductson[orderdetails].productid=ductidjoinorderson[orderdetails].orderid=orders.orderidjoincustomersonorders.customerid=customers.customeridwherecityin('Boise','Albuquerque')andOrderDatebetween'1996-1-1'and'1996-12-31'〔6〕查詢客戶的每份訂單的訂單ID、產(chǎn)品名稱和銷售金額useNorthwindselectorders.orderid,productname,[orderdetails].unitprice*quantityas銷售金額from[orderdetails]joinproductson[orderdetails].productid=ductidjoinorderson[orderdetails].orderid=orders.orderidjoincustomersonorders.customerid=customers.customerid〔7〕按運(yùn)貨商公司名稱,統(tǒng)計(jì)1997年由各個(gè)運(yùn)貨商承運(yùn)的訂單的總數(shù)量useNorthwindselectcompanyname,count(*)fromshippersjoinordersonshippers.shipperid=orders.shipviawhereyear(orderdate)=1997groupbycompanyname〔8〕找出1997年訂單id為10400的訂單詳情。select*from[orderdetails]joinorderson[orderdetails].orderid=orders.orderidwhereorders.orderid=10400andyear(orderdate)=1997〔9〕統(tǒng)計(jì)各類產(chǎn)品的平均價(jià)格useNorthwindselectcategories.categoryname,avg(unitprice)fromproductsjoincategoriesonproducts.categoryid=categories.categoryidgroupbycategories.categoryname請你練習(xí)以下查詢均基于Northwind數(shù)據(jù)庫。查詢所有運(yùn)貨商的公司名稱和電話。查詢語句:useNorthwindselectcompanyname,phonefromshippers查詢所有客戶的公司名稱、電話、傳真、地址、聯(lián)系人姓名和聯(lián)系人頭銜。查詢語句:useNorthwindselectcompanyname,fax,phone,address,contactname,contacttitlefromcustomers……..查詢單價(jià)介于10至30元的所有產(chǎn)品的產(chǎn)品ID、產(chǎn)品名稱和庫存量。查詢語句:selectproductid,productname,unitsinstock

fromproducts

whereunitpricebetween10and30……..查詢單價(jià)大于20元的所有產(chǎn)品的產(chǎn)品名稱、單價(jià)以及供給商的公司名稱、電話。查詢語句:selectproductname,unitprice,panyname,suppliers.phonefromsuppliersjoinproductsonsuppliers.supplierid=products.supplieridwhereunitprice>20統(tǒng)計(jì)1997年上半年的每份訂單上所訂購的產(chǎn)品的總數(shù)量。查詢語句:selectorders.orderid,sum(quantity)from[orderdetails]joinorderson[orderdetails].orderid=orders.orderidwhereyear(orderdate)=1997andmonth(orderdate)>=1andmonth(orderdate)<=6groupbyorders.orderid………統(tǒng)計(jì)各地區(qū)客戶的總數(shù)量。查詢語句:selectcount(*)fromcustomerswhereregionisnotnullgroupbyregion分析與討論:1、Count(*)返回組中的項(xiàng)數(shù)。COUNT與COUNT_BIG函數(shù)類似。兩個(gè)函數(shù)唯一的差異是它們的返回值。COUNT始終返回int數(shù)據(jù)類型值。COUNT_BIG始終返回bigint數(shù)據(jù)類型值。COUNT(ALLexpression)對組中的每一行都計(jì)算expression并返回非空值的數(shù)量。COUNT(DISTINCTexpression)對組中的每一行都計(jì)算expression并返回唯一非空值的數(shù)量。2、Jion相當(dāng)于將多個(gè)表合并得到一個(gè)虛擬的表,要注意找到多個(gè)表的聯(lián)系。而對于嵌套的子查詢可以將內(nèi)層查詢作為一個(gè)結(jié)果,從而產(chǎn)生一個(gè)約束條件。實(shí)驗(yàn)十視圖的管理實(shí)驗(yàn)?zāi)康氖炀氄莆帐褂肨-SQL語句創(chuàng)立視圖。熟練使用SSMS管理工具創(chuàng)立視圖、修改視圖。熟練掌握使用T-SQL語句刪除視圖、重命名視圖。實(shí)驗(yàn)要求掌握在SQLServer中視圖的創(chuàng)立和刪除操作。實(shí)驗(yàn)內(nèi)容視圖的創(chuàng)立與刪除。實(shí)驗(yàn)步驟〔1〕首先來看如何使用SSMS創(chuàng)立視圖。啟動(dòng)SSMS?!?〕在SSMS管理平臺(tái)中,展開指定的效勞器,翻開要?jiǎng)?chuàng)立的視圖的數(shù)據(jù)庫,選擇視圖文件夾,右擊該視圖文件夾,從彈出的快捷菜單中選擇“新建視圖〞選項(xiàng)。接著就出現(xiàn)添加表、視圖、函數(shù)對話框?!?〕選擇好創(chuàng)立視圖所需的表、視圖、函數(shù)后,通過單擊字段左邊的復(fù)選框選擇需要的字段。單擊工具欄中的“保存〞按鈕,或者單擊鼠標(biāo)右鍵,從快捷菜單中選擇保存選項(xiàng)保存視圖,輸入視圖名,即可完成視圖的創(chuàng)立。〔4〕現(xiàn)在使用T-SQL語句創(chuàng)立視圖。查詢訂購日期在1996年7月1

溫馨提示

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

評(píng)論

0/150

提交評(píng)論