《網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)》實(shí)驗(yàn)指導(dǎo)書_第1頁(yè)
《網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)》實(shí)驗(yàn)指導(dǎo)書_第2頁(yè)
《網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)》實(shí)驗(yàn)指導(dǎo)書_第3頁(yè)
《網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)》實(shí)驗(yàn)指導(dǎo)書_第4頁(yè)
《網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)》實(shí)驗(yàn)指導(dǎo)書_第5頁(yè)
已閱讀5頁(yè),還剩30頁(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)介

1、網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)技術(shù)與應(yīng)用課程課程編號(hào):433011實(shí) 驗(yàn) 指 導(dǎo) 書主撰人: 王志和審核人:陳 剛經(jīng)濟(jì)與管理科學(xué)系電子商務(wù)教研室二一二年五月 目 錄前 言1實(shí)驗(yàn)1熟悉Java編程環(huán)境和Java程序結(jié)構(gòu)實(shí)驗(yàn)2實(shí)驗(yàn)2Java基本語(yǔ)法實(shí)驗(yàn)實(shí)驗(yàn)3面向?qū)ο缶幊虒?shí)驗(yàn)實(shí)驗(yàn)4數(shù)組與字符串實(shí)驗(yàn)實(shí)驗(yàn)5異常處理機(jī)制實(shí)驗(yàn)實(shí)驗(yàn)6多線程實(shí)驗(yàn)實(shí)驗(yàn)7輸入流/輸出流類實(shí)驗(yàn)實(shí)驗(yàn)8圖形用戶界面及applet實(shí)驗(yàn)實(shí)驗(yàn)9網(wǎng)絡(luò)編程實(shí)驗(yàn)前 言實(shí)驗(yàn)總體目標(biāo):網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用是電子商務(wù)專業(yè)的專業(yè)必修課程。課程內(nèi)容主要包括:數(shù)據(jù)模型、關(guān)系代數(shù)、關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL、關(guān)系數(shù)據(jù)理論、數(shù)據(jù)庫(kù)設(shè)計(jì)與編程、關(guān)系查詢處理和查詢優(yōu)化和數(shù)據(jù)庫(kù)的恢復(fù)與并

2、發(fā)技術(shù)。學(xué)習(xí)本課程的上機(jī)實(shí)驗(yàn),使學(xué)生真正深層次了解數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu),掌握數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)理論、技術(shù)和方法,掌握主流數(shù)據(jù)庫(kù)管理系統(tǒng)SQL Server的應(yīng)用技術(shù)及數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)、開發(fā)能力。適用專業(yè)年級(jí):電子商務(wù)專業(yè)第四學(xué)期實(shí)驗(yàn)課時(shí)分配:16學(xué)時(shí)序號(hào)實(shí)驗(yàn)項(xiàng)目要求類型每組人數(shù)實(shí)驗(yàn)學(xué)時(shí)1常用數(shù)據(jù)庫(kù)管理工具的使用必驗(yàn)證122數(shù)據(jù)庫(kù)的管理和表操作必設(shè)計(jì)123SQL數(shù)據(jù)操作與查詢必驗(yàn)證144Transact-SQL數(shù)據(jù)庫(kù)編程必設(shè)計(jì)145數(shù)據(jù)庫(kù)的管理與維護(hù)必驗(yàn)證126數(shù)據(jù)庫(kù)應(yīng)用開發(fā)必設(shè)計(jì)149網(wǎng)絡(luò)編程實(shí)驗(yàn)必設(shè)計(jì)14實(shí)驗(yàn)環(huán)境Windows 2003,Microsoft SQL Server 2005。

3、實(shí)驗(yàn)總體要求通過本實(shí)驗(yàn)課程的教學(xué),學(xué)生能基本上達(dá)到獨(dú)立完成實(shí)驗(yàn)內(nèi)容,通過老師的指導(dǎo)可完成設(shè)計(jì)性實(shí)驗(yàn)內(nèi)容,能將相關(guān)內(nèi)容應(yīng)用到課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)等實(shí)踐性環(huán)節(jié)中。實(shí)驗(yàn)1 常用數(shù)據(jù)庫(kù)管理工具的使用一、實(shí)驗(yàn)?zāi)康?理解服務(wù)的概念,掌握SQL Server服務(wù)的啟動(dòng)、暫停和停止。2熟悉SQL Server數(shù)據(jù)庫(kù)結(jié)構(gòu),掌握企業(yè)管理器的基本操作。3理解查詢分析器的作用,掌握查詢分析器的常用用法。4掌握聯(lián)機(jī)叢書的用法。二、實(shí)驗(yàn)內(nèi)容與步驟1、服務(wù)管理器的用法SQL Server 是作為Windows 網(wǎng)絡(luò)操作系統(tǒng)的一個(gè)服務(wù)運(yùn)行的。通過設(shè)置,可以在啟動(dòng)操作系統(tǒng)時(shí)自動(dòng)啟動(dòng)SQL Server,也可以遠(yuǎn)程啟動(dòng)和停止SQL

4、 Server??梢允褂孟铝泄ぞ呤止?dòng)、暫停和停止SQL Server服務(wù):l SQL Server企業(yè)管理器l SQL Server服務(wù)管理器l 控制面板中的“服務(wù)”在命令提示符中使用net命令net pause mssqlservernet continue mssqlservernet stop mssqlserver其中,服務(wù)管理器是最常用的圖形界面工具。實(shí)驗(yàn)要求1:使用SQL Server服務(wù)管理器查看SQL Server服務(wù)是否正在運(yùn)行,若正在運(yùn)行,將其停止。實(shí)驗(yàn)要求2:使用控制面板中的“服務(wù)”管理控制臺(tái)將已停止的SQL Server服務(wù)啟動(dòng)。2、企業(yè)管理器的使用企業(yè)管理器是SQ

5、L Server提供的最主要的數(shù)據(jù)庫(kù)管理圖形界面工具,它以樹形結(jié)構(gòu)來(lái)組織數(shù)據(jù)庫(kù)服務(wù)器、數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)中的對(duì)象,大部分的數(shù)據(jù)庫(kù)管理工作都可以使用它來(lái)完成。實(shí)驗(yàn)要求3:?jiǎn)?dòng)企業(yè)管理器,查看SQL Server的注冊(cè)屬性。提示:?jiǎn)?dòng)企業(yè)管理器后,在控制臺(tái)樹中,展開“Microsoft SQL Servers”,然后展開“SQL Server組”,右擊自己的服務(wù)器名,然后單擊“編輯SQL Server注冊(cè)屬性”。實(shí)驗(yàn)要求4:在企業(yè)管理器中,查看Northwind數(shù)據(jù)庫(kù)中用戶數(shù)據(jù)表和系統(tǒng)數(shù)據(jù)表各有多少個(gè)?13,193、查詢分析器的使用查詢分析器是圖形化的數(shù)據(jù)庫(kù)編程接口,用戶可以以自由的文本格式編輯、調(diào)試

6、和執(zhí)行SQL腳本。實(shí)驗(yàn)要求5:在查詢分析器中,使用SQL語(yǔ)句在master數(shù)據(jù)庫(kù)中查詢sysobjects表的所有信息。提示:首先,啟動(dòng)查詢分析器,在查詢分析器的查詢窗口中輸入如下的SQL語(yǔ)句:select * from sysobjects然后,單擊工具欄中的“執(zhí)行查詢”按鈕。實(shí)驗(yàn)要求6:在查詢分析器中,使用SQL語(yǔ)句查詢Northwind數(shù)據(jù)庫(kù)中的Employees表的所有信息。select * from Northwind.Employees4、聯(lián)機(jī)叢書的使用聯(lián)機(jī)叢書中包含所有SQL Server2000的使用說(shuō)明。在本課程的學(xué)習(xí)中,各位同學(xué)應(yīng)該掌握聯(lián)機(jī)叢書的使用。實(shí)驗(yàn)要求7:打開聯(lián)機(jī)叢

7、書,在目錄中展開“安裝SQL Server”,查看有關(guān)SQL Server 2000 的硬件和軟件安裝要求。實(shí)驗(yàn)要求8:打開聯(lián)機(jī)叢書,在索引中查找有關(guān)sp_help存儲(chǔ)過程的幫助信息。四、思考題可以在一臺(tái)計(jì)算機(jī)中注冊(cè)多個(gè)命名實(shí)例和服務(wù)器,現(xiàn)在若需要將18號(hào)機(jī)器的SQL Server服務(wù)注冊(cè)到本地企業(yè)管理器中來(lái),應(yīng)該怎么做?實(shí)驗(yàn)2 數(shù)據(jù)庫(kù)的管理和表操作一、實(shí)驗(yàn)?zāi)康?掌握使用企業(yè)管理器和T-SQL語(yǔ)言創(chuàng)建SQL Server數(shù)據(jù)庫(kù)的方法。2掌握附加和分離數(shù)據(jù)庫(kù)的方法。3掌握使用企業(yè)管理器或存儲(chǔ)過程查看SQL數(shù)據(jù)庫(kù)屬性的方法。4熟悉數(shù)據(jù)庫(kù)的收縮、更名和刪除。5掌握使用企業(yè)管理器或sp_dboptio

8、n存儲(chǔ)過程修改數(shù)據(jù)庫(kù)選項(xiàng)的方法。6掌握使用企業(yè)管理器和T-SQL語(yǔ)句創(chuàng)建表、修改表的結(jié)構(gòu)。7掌握使用企業(yè)管理器和T-SQL語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作。二、實(shí)驗(yàn)內(nèi)容與步驟1、使用向?qū)?chuàng)建數(shù)據(jù)庫(kù)實(shí)驗(yàn)內(nèi)容1:創(chuàng)建一個(gè)名為TestData0的數(shù)據(jù)庫(kù),數(shù)據(jù)文件的初始大小設(shè)為20MB,文件增長(zhǎng)增量設(shè)為5MB,文件增長(zhǎng)方式設(shè)為自動(dòng)增長(zhǎng),文件的增長(zhǎng)上限設(shè)為500MB;日志文件的初始大小為20MB,文件增長(zhǎng)增量設(shè)為1MB,文件的增長(zhǎng)限制設(shè)為100MB。CREATE DATABASE TestData0ON ( NAME = TestData0, FILENAME ='d:TestDBTestData0.mdf

9、', SIZE = 20, MAXSIZE = 500, FILEGROWTH = 5 )LOG ON( NAME =TestLog0, FILENAME = 'd:TestDBTestLog0.ldf', SIZE = 20, MAXSIZE = 100, FILEGROWTH = 1 )2、用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(kù)實(shí)驗(yàn)內(nèi)容2:使用SQL Server企業(yè)管理器創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),具體要求如下:l數(shù)據(jù)庫(kù)名稱為Test。l主要數(shù)據(jù)文件:邏輯文件名為TestData1,物理文件名為TestData1.mdf,初始容量為1MB,最大容量為10MB,遞增量為1MB。l次要數(shù)據(jù)文件:

10、邏輯文件名為TestData2,物理文件名為TestData2.ndf,初始容量為1MB,最大容量為10MB,遞增量為1MB。l事務(wù)日志文件:邏輯文件名為TestLog1,物理文件名為TestLog1.ldf,初始容量為1MB,大容量為5MB,遞增量為512KB。 CREATE DATABASE TestON ( NAME = TestData1, FILENAME ='d:TestDBTestData1.mdf', SIZE = 1, MAXSIZE = 10, FILEGROWTH = 1 ),( NAME = TestData2, FILENAME ='d:Tes

11、tDBTestData2.ndf', SIZE = 1, MAXSIZE = 10, FILEGROWTH = 1 )LOG ON( NAME =TestLog1, FILENAME = 'd:TestDBTestLog1.ldf', SIZE = 1, MAXSIZE = 5, FILEGROWTH = 512KB )3、用T-SQL語(yǔ)言創(chuàng)建數(shù)據(jù)庫(kù)實(shí)驗(yàn)內(nèi)容3:使用查詢分析器新建一個(gè)數(shù)據(jù)庫(kù),名稱為“圖書”,其主要數(shù)據(jù)文件大小為2M,最大文件大小為10M,每次增長(zhǎng)2M;次要數(shù)據(jù)文件大小為1M;日志文件大小為1M;三個(gè)文件的文件名自定,上述沒有說(shuō)明的選項(xiàng)都采用默認(rèn)值。提示:

12、在查詢分析器中輸入如下SQL腳本:CREATE DATABASE 圖書ON ( NAME = data1, FILENAME = 'd:TestDBdata1.mdf', SIZE = 2, MAXSIZE = 10, FILEGROWTH = 2 ),( NAME =data2, FILENAME = 'd:TestDBdata2.ndf', SIZE = 1 )LOG ON( NAME =log, FILENAME = 'd:TestDBlog.ldf', SIZE = 1 )實(shí)驗(yàn)內(nèi)容4:用T-SQL語(yǔ)句創(chuàng)建一個(gè)名為student的數(shù)據(jù)庫(kù),它

13、由5MB的主數(shù)據(jù)文件、2MB的次數(shù)據(jù)文件和1MB的日志文件組成。并且主數(shù)據(jù)文件以2MB的增長(zhǎng)速度增長(zhǎng),其最大容量為15MB;次數(shù)據(jù)文件以10%的增長(zhǎng)速度增長(zhǎng),其最大容量為10MB;事務(wù)日志文件以1MB增長(zhǎng)速度增長(zhǎng),其最大日志文件大小為10MB。提示:在查詢分析器中輸入如下SQL腳本:CREATE DATABASE studentOn( name=student1,filename= 'd:TestDBstudent_data1.mdf',size=5,maxsize=15,filegrowth=2),( name=student2,filename='d:TestDBs

14、tudent_data2.ndf',size=2,maxsize=10,filegrowth=10%)log on( name=student_log,filename='d:TestDBstudent_log.ldf',size=1,maxsize=10,filegrowth=1)4、數(shù)據(jù)庫(kù)的分離與附加實(shí)驗(yàn)內(nèi)容5:將“圖書”數(shù)據(jù)庫(kù)與服務(wù)器分離??梢允褂闷髽I(yè)管理器或SQL語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行分離的操作。分離數(shù)據(jù)庫(kù)的存儲(chǔ)過程是sp_detach_db。sp_detach_db 圖書實(shí)驗(yàn)內(nèi)容6:將已分離的“圖書”數(shù)據(jù)庫(kù)附加到服務(wù)器上。可以使用企業(yè)管理器或SQL語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行附

15、加的操作。附加數(shù)據(jù)庫(kù)的存儲(chǔ)過程是sp_attach_db。sp_attach_db 圖書,'d:TestDBstudent_data1.mdf','d:TestDBstudent_data2.ndf','d:TestDBstudent_log.ldf'5、查看和修改數(shù)據(jù)庫(kù)屬性可以使用企業(yè)管理器或SQL語(yǔ)言來(lái)查看或修改數(shù)據(jù)庫(kù)的屬性。使用企業(yè)管理器的方法是右擊數(shù)據(jù)庫(kù)名稱,在快捷菜單中選擇“屬性”,然后數(shù)據(jù)庫(kù)屬性對(duì)話框中就可以查看或修改數(shù)據(jù)庫(kù)的屬性。也可以使用sp_helpdb、sp_spaceused、sp_helpfile和sp_helpfileg

16、roup等存儲(chǔ)過程查看和數(shù)據(jù)庫(kù)有關(guān)的屬性。修改數(shù)據(jù)庫(kù)屬性可以使用ALTER DATABASE命令。實(shí)驗(yàn)內(nèi)容7:使用sp_helpdb存儲(chǔ)過程查看student數(shù)據(jù)庫(kù)的信息,然后企業(yè)管理器將student數(shù)據(jù)庫(kù)的事務(wù)日志文件的增長(zhǎng)大小改為按1MB字節(jié)增長(zhǎng),再使用sp_helpdb存儲(chǔ)過程查看student數(shù)據(jù)庫(kù)的信息。sp_helpdb student實(shí)驗(yàn)內(nèi)容8:使用ALTER DATABASE命令為student數(shù)據(jù)庫(kù)添加一個(gè)新的數(shù)據(jù)文件,文件邏輯名為student_data3,初始大小為2MB,增長(zhǎng)值為1MB,其他屬性默認(rèn)。ALTER DATABASE studentADD FILE( na

17、me=student_data3, filename='d:TestDBstudent_data3.ndf', size=2,filegrowth=1)ALTER DATABASE studentremove FILE student_data36、數(shù)據(jù)庫(kù)的收縮數(shù)據(jù)庫(kù)收縮可以縮小數(shù)據(jù)庫(kù)的空閑空間??梢允褂闷髽I(yè)管理器或SQL語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行收縮工作。收縮數(shù)據(jù)庫(kù)使用的SQL語(yǔ)言是DBCC SHRINKDATABASE命令。也可以使用ALTER DATABASE的SET子句或sp_dboption將數(shù)據(jù)庫(kù)設(shè)為自動(dòng)收縮。DBCC SHRINKDATABASE(student)實(shí)驗(yàn)內(nèi)容9

18、:將student數(shù)據(jù)庫(kù)設(shè)為自動(dòng)收縮。sp_dboption N'student', N'autoshrink', N'true'7、數(shù)據(jù)庫(kù)的更名更改數(shù)據(jù)庫(kù)的名稱應(yīng)使用sp_renamedb存儲(chǔ)過程。實(shí)驗(yàn)內(nèi)容10:將student數(shù)據(jù)庫(kù)改名為stu。sp_rename 'student', 'stu'8、數(shù)據(jù)庫(kù)選項(xiàng)的配置可以使用 ALTER DATABASE 語(yǔ)句的 SET 子句、sp_dboption 系統(tǒng)存儲(chǔ)過程,或者在某些情況下使用 SQL Server 企業(yè)管理器設(shè)置數(shù)據(jù)庫(kù)選項(xiàng)。實(shí)驗(yàn)內(nèi)容11:使用企業(yè)管理器

19、將stu數(shù)據(jù)庫(kù)設(shè)為只讀。 實(shí)驗(yàn)內(nèi)容12:使用sp_dboption存儲(chǔ)過程取消stu數(shù)據(jù)庫(kù)的只讀設(shè)置。sp_dboption N'student', N'read only', N'true9、數(shù)據(jù)庫(kù)的刪除刪除數(shù)據(jù)庫(kù)可以使用企業(yè)管理器或DROP DATABASE命令。實(shí)驗(yàn)內(nèi)容13:使用DROP DATABASE命令將stu數(shù)據(jù)庫(kù)刪除。DROP DATABASE stu10、使用企業(yè)管理器按下表結(jié)構(gòu)創(chuàng)建表表名:Course屬性名稱屬性描述數(shù)據(jù)類型字節(jié)數(shù)空否備注CourseID課程號(hào)int4否主鍵,標(biāo)識(shí)列CourseName課程名稱varchar20否Cat

20、egory課程類別char8Period學(xué)時(shí)數(shù)smallint2Credit學(xué)分tinyint1表名:ClassInfo屬性名稱屬性描述數(shù)據(jù)類型字節(jié)數(shù)空否備注ClassID班級(jí)號(hào)int4否ClassName班級(jí)名稱varchar20否11、使用T-SQL語(yǔ)句按下表結(jié)構(gòu)創(chuàng)建表表名:Student屬性名稱屬性描述數(shù)據(jù)類型字節(jié)數(shù)空否備注StudentNum學(xué)號(hào)char9否主鍵StudentName姓名varchar8否Sex性別bit1Birthday出生日期smalldatetime4ClassID班級(jí)號(hào)int4CREATE TABLE student ( StudentNum char(9) N

21、OT NULL PRIMARY KEY, StudentName varchar(8) NOT NULL, Sex bit, Birthday smalldatetime, ClassID int )12、使用企業(yè)管理器修改表的結(jié)構(gòu)使用企業(yè)管理器將第1題所建立的Course表中的Category字段修改為varchar(20),為Period和Credit字段默認(rèn)值為0。13、使用T-SQL語(yǔ)句修改表的結(jié)構(gòu)使用T-SQL語(yǔ)句為Student表添加Nation(民族)字段和Stature(身高)字段,字段數(shù)據(jù)類型自定。ALTER TABLE StudentADD Nation varchar(8

22、),Stature intDrop column Nation,Stature14、使用企業(yè)管理器實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作使用企業(yè)管理器按下表向Course添加數(shù)據(jù)。課程號(hào)課程名稱課程類別學(xué)時(shí)數(shù)學(xué)分1哲學(xué)公共 3622實(shí)用英語(yǔ)(1)公共 7233實(shí)用英語(yǔ)(2)公共 7234計(jì)算機(jī)應(yīng)用基礎(chǔ)公共 10255C語(yǔ)言程序設(shè)計(jì)專業(yè)基礎(chǔ)10256關(guān)系數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)專業(yè)基礎(chǔ)1025四、思考題1.一個(gè)數(shù)據(jù)庫(kù)中包含哪幾種文件?2.事務(wù)日志文件的大小一般為數(shù)據(jù)文件大小的多少合適?3.若需修改數(shù)據(jù)庫(kù)文件的大小,可以使用的方法有哪些?若要求使用T-SQL語(yǔ)言,則命令應(yīng)如何編寫?4.能不能刪除master數(shù)據(jù)庫(kù)?若一個(gè)用戶數(shù)據(jù)

23、庫(kù)當(dāng)前正在被訪問,能不能被刪除?實(shí)驗(yàn)3 SQL數(shù)據(jù)操作與查詢實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?了解T-SQL語(yǔ)句的基本語(yǔ)法。2掌握基本的SELECT語(yǔ)句的設(shè)計(jì)和編寫。3掌握多表查詢的使用。4熟悉UNION子句的使用。5掌握GROUP BY子句的使用。6練習(xí)使用企業(yè)管理器、向?qū)Ш筒樵兎治銎鲃?chuàng)建視圖。7會(huì)使用視圖、修改視圖、查詢視圖的信息和刪除視圖。8進(jìn)一步掌握使用T-SQL語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作。二、實(shí)驗(yàn)內(nèi)容與步驟利用上次實(shí)驗(yàn)所創(chuàng)建的student數(shù)據(jù)庫(kù)進(jìn)行實(shí)驗(yàn)。1、使用T-SQL語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作(1)使用INSERT語(yǔ)句向Course表中添加記錄:(計(jì)算機(jī)網(wǎng)絡(luò),專業(yè)基礎(chǔ),72,4)insert Course

24、(CourseName,Category,Period,Credit) values('計(jì)算機(jī)網(wǎng)絡(luò)','專業(yè)基礎(chǔ)','72','4')(2)使用UPDATE語(yǔ)句將Course表中的“計(jì)算機(jī)應(yīng)用基礎(chǔ)”課的學(xué)時(shí)數(shù)改為106。update Course set Period='106' where CourseName='計(jì)算機(jī)應(yīng)用基礎(chǔ)'(3)使用DELETE語(yǔ)句將Course表中的公共課全部刪除。DELETE FROM Course where Category='公共'2、使用T-SQ

25、L語(yǔ)句按下表結(jié)構(gòu)創(chuàng)建表(在創(chuàng)建表時(shí)定義約束)表名:Grade屬性名稱屬性描述數(shù)據(jù)類型字節(jié)數(shù)空否約束備注StudentNum學(xué)號(hào)char9否主鍵CourseID課程號(hào)int4否主鍵DailyGrade平時(shí)成績(jī)decimal5,1不小于0且不大于20PracticeGrade實(shí)踐成績(jī)decimal5,1不小于0且不大于30TestGrade期末成績(jī)decimal5,1不小于0且不大于50Grade總評(píng)由平時(shí)成績(jī)(20%)、實(shí)踐成績(jī)(30%)和期末成績(jī)(50%)計(jì)算而來(lái)create table Grade( StudentNumchar(9) not null, CourseIDint not nu

26、ll, DailyGradedecimal(5,1), PracticeGradedecimal(5,1), TestGradedecimal(5,1), Grade as DailyGrade*0.20+ PracticeGrade*0.30+ TestGrade*0.50 constraint pk_sc primary key(StudentNum,CourseID) , constraint ck_dg check(DailyGrade>0 and DailyGrade<20), constraint ck_pg check(PracticeGrade>0 and P

27、racticeGrade<30), constraint ck_tg check(TestGrade>0 and TestGrade<50) )3、使用T-SQL語(yǔ)句修改表的結(jié)構(gòu)(1)為班級(jí)表ClassInfo添加入學(xué)時(shí)間EnrollDate字段,并定義入學(xué)時(shí)間不小于2001年9月1日。alter table ClassInfo Add EnrollDate datetime,check (EnrollDate >= '2001-9-1')(2)為班級(jí)表ClassInfo定義主鍵約束,定義班級(jí)號(hào)ClassID為主鍵。alter table ClassIn

28、fo add constraint pk_ClassInfo primary key(ClassID)4、使用企業(yè)管理器定義約束(1)為學(xué)生表Student定義外鍵約束,使ClassID參照班級(jí)表ClassInfo中的ClassID,并為約束設(shè)置級(jí)聯(lián)更新。(2)為班級(jí)表ClassInfo的ClassName定義唯一約束。5、 默認(rèn)值對(duì)象的創(chuàng)建與使用(1)使用T-SQL語(yǔ)句創(chuàng)建名為DF_GRADE的默認(rèn)值對(duì)象,值為0。CREATE DEFAULT DF_GRADE AS 0(2)使用企業(yè)管理器將DF_GRADE綁定到成績(jī)表Grade中的DailyGrade、PracticeGrade和TestG

29、rade字段上。exec sp_bindefault DF_GRADE,'Grade.DailyGrade'exec sp_bindefault DF_GRADE,'Grade.PracticeGrade'exec sp_bindefault DF_GRADE,'Grade.TestGrade'(3)使用sp_unbindefault存儲(chǔ)過程將DF_GRADE從DailyGrade、PracticeGrade和TestGrade字段上解除。exec sp_unbindefault 'Grade.DailyGrade'exec sp

30、_unbindefault 'Grade.PracticeGrade'exec sp_unbindefault 'Grade.TestGrade'(4)刪除DF_GRADE默認(rèn)值對(duì)象。DROP DEFAULT DF_GRADE在查詢分析器在窗口下用SELECT語(yǔ)句完成單表查詢:5、SELECT語(yǔ)句的基本使用 查詢學(xué)生基本信息表中的每個(gè)學(xué)生的所有數(shù)據(jù)。Select * from stud_info 在學(xué)生基本信息表中查詢每個(gè)學(xué)生的地址和電話。Select address,telcode from stud_info 查詢學(xué)號(hào)為“0401010634”的學(xué)生的地址和

31、電話。Select address,telcode from stud_info where stud_id='0401010634' 查詢stud_info表中性別為“女”的學(xué)生的地址和電話。使用AS子句將結(jié)果中指定目標(biāo)列的標(biāo)題分別指定為地址,電話。Select address as 地址,telcode as 電話 from stud_info where gender=N'女' 查詢計(jì)算機(jī)應(yīng)用教研室“0101”的教師工資情況。Select name,salary from teacher_info where jysh_id='0101'

32、找出所有姓“王”的教師所對(duì)應(yīng)的技術(shù)職稱。Select name,tech_title from teacher_info where name like '王%' 在學(xué)生成績(jī)表中查詢成績(jī)?cè)?089之間的學(xué)生的學(xué)號(hào)、課程號(hào)和成績(jī)。Select stud_id,course_id,grade from stud_grade where grade between 80 and 896、子查詢的使用 查找在計(jì)算機(jī)工程系“01”工作的教師的情況。Select * from teacher_info where jysh_id in (select jysh_id from staffr

33、oom_info where deptcode='01') 查找計(jì)算機(jī)工程系“01”中所有擔(dān)任多媒體技術(shù)“0401010106”的教師編號(hào)和姓名。Select teacher_id,name from teacher_info where jysh_id in (select jysh_id from staffroom_info where deptcode='01') and course_id='0401010106' 查找計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)的學(xué)生學(xué)號(hào)、姓名、年齡、電話號(hào)碼及其家庭地址。Select stud_id,name,year(ge

34、tdate()-year(birthday) age,telcode,address from stud_info where speccode =(select speccode from specialty_code where specname='計(jì)算機(jī)應(yīng)用技術(shù)')7、連接查詢的使用 在stud_info與stud_grade中按stud_id進(jìn)行等值內(nèi)連接,以查詢所有參加考試的學(xué)生基本信息和成績(jī)。Select a.*,b.grade from stud_info a inner join stud_grade b On a.stud_id=b.stud_id 實(shí)現(xiàn)tea

35、cher_info左外連接lesson_info。Select * from teacher_info a left outer join lesson_info b On a.course_id=b.course_id8、數(shù)據(jù)匯總 查詢?nèi)w教師的平均工資。Select avg(salary) from teacher_info 求計(jì)算機(jī)工程系“01”教師的平均年齡。Select avg(age) from teacher_info where jysh_id in(select jysh_id from staffroom_info where deptcode='01')

36、求計(jì)算機(jī)工程系“01”教師的總?cè)藬?shù)。Select count(*) from teacher_info where jysh_id in(select jysh_id from staffroom_info where deptcode='01')9、GROUP BY、ORDER BY子句的使用 按職稱統(tǒng)計(jì)各個(gè)教研室的教師人數(shù)。Select jysh_id,count(*) from teacher_info group by jysh_id 將計(jì)算機(jī)工程系“01”職稱為“講師”的教師,按年齡由低到高排列。Select * from teacher_info where jys

37、h_id in(select jysh_id from staffroom_info where deptcode='01') order by age 10、熟悉pubs數(shù)據(jù)庫(kù)中的三個(gè)用戶表:employee(emp_id,fname,minit,lname,job_id,job_lvl,pub_id,hire_date),job(job_id,job_desc,min_lvl,max_lvl),publishers(pub_id,pub_name,city,state,country)。他們分別是關(guān)于雇員、職務(wù)和出版社的基本表。11、在查詢分析器在窗口下用SELECT語(yǔ)句完

38、成單表查詢: 查詢?nèi)w出版社的詳細(xì)記錄;Select * from publishers 查詢所有工作的job_id為7的職工的職工編號(hào);Select emp_id from employee where job_id=7 查詢工作的job_id小于7的職工的職工編號(hào);Select emp_id from employee where job_id<7 查詢?cè)贕ermany和France的出版社的名字和所在城市;Select pub_name,city from publishers where country='Germany' or country='Fran

39、ce' 查詢lastname為Jablonski的雇員的firstname、job_id和hire_date;Select emp_id from employee where job_id<7 查詢lastname的前兩個(gè)字符為cr的職員的編號(hào)和firstname;select emp_id,fname from employee where lname like 'cr%' 查詢job_id為5的職員的編號(hào)和job_lvl,查詢結(jié)果按job_lvl的降序排列;select emp_id,job_lvl from employee where job_id=5

40、order by job_lvl desc 查詢job_id為13的職員中job_lvl最高的職員的firstname 和lastname。select top 1 fname,lname from employee where job_id=13 order by job_lvl desc12、在查詢分析器在窗口下用SELECT語(yǔ)句完成連接(嵌套)查詢: 查詢各個(gè)工作號(hào)與相應(yīng)的工作人數(shù);select job_id,count(*) from employee group by job_id 查詢每個(gè)職工及其工作的描述(job_desc)的情況;select employee.*,job_de

41、sc from employee inner join jobs on employee.job_id = jobs.job_id 查詢每個(gè)職工及其工作職務(wù)名其及所在出版社的名字;select a.*,b.job_desc,c.pub_name from employee a inner join jobs b on a.job_id = b.job_id inner join publishers con a.pub_id = c.pub_id 查詢與“Annette”(firstname)在同一個(gè)出版社工作的職工的firstname;select fname from employee w

42、here pub_id=(select pub_id from employee where fname='Annette') 查詢?cè)诿绹?guó)工作的員工中工作職務(wù)為Editor的員工的fname 和lname;select fname,lname from employee where job_id=(select job_id from jobs where job_desc='Editor' )and pub_id in (select pub_id from publishers where country='USA' ) 查詢?cè)贜ew Moo

43、n Books這個(gè)出版社工作的員工中job_lvl大于100的職工的姓名和其所作工作的描述;select a.fname,a.lname,b.job_desc from employee a inner join jobs bon a.job_id=b.job_id where job_lvl>100 and pub_id in(select pub_id from publishers where pub_name='New Moon Books' )13、在查詢分析器在窗口下用SELECT語(yǔ)句完成集合查詢:查詢job_id為5和job_id為6的職工的姓名和職工所在出

44、版社的名字。select a.*,b.pub_name from employee a inner join publishers bon a.pub_id=b.pub_id where job_id=5 or job_id=614、使用企業(yè)管理器創(chuàng)建一個(gè)名為“view_1”的視圖,內(nèi)容是顯示學(xué)生表Student中計(jì)算機(jī)應(yīng)用技術(shù)“040101”的學(xué)生的學(xué)號(hào)、姓名和性別。create view view_1 As select stud_id,name,gender from stud_info where speccode='040101'15、使用查詢分析器創(chuàng)建一個(gè)名為“vi

45、ew_2”的視圖,內(nèi)容是顯示學(xué)生表中沒有選修課程的學(xué)生的學(xué)號(hào)、姓名和班級(jí),并且為該視圖加密。create view view_2 with encryption As select stud_id,name,speccode from stud_info where stud_id not in(select stud_id from stud_grade)16、使用查詢分析器修改名為“view_1”的視圖,內(nèi)容修改為顯示學(xué)生表中男生的學(xué)號(hào)、姓名、性別和專業(yè)代碼,并且以后所有對(duì)該視圖的更新操作都必須符合所設(shè)定的條件。alter view view_1 As select stud_id,nam

46、e,gender,speccode from stud_infowhere gender=N'男' with check option16、查詢視圖“view_1”中專業(yè)代碼為040102的學(xué)生所有信息。select * from view_1 where speccode='040102'17、向視圖“view_1”中的所有字段插入一條記錄。insert view_1 values('0402010999','李四','男','040201')實(shí)驗(yàn)4 Transact-SQL數(shù)據(jù)庫(kù)編程實(shí)驗(yàn)一、實(shí)驗(yàn)

47、目的1掌握Transact-SQL的基礎(chǔ)知識(shí)。2掌握流程控制語(yǔ)句和功能性語(yǔ)句的格式及應(yīng)用。3掌握存儲(chǔ)過程和觸發(fā)器的應(yīng)用。二、實(shí)驗(yàn)內(nèi)容與步驟在查詢分析器在窗口下用T-SQL語(yǔ)句完成下列操作:1、從數(shù)據(jù)表stud_info中,查找學(xué)號(hào)為0401030213的學(xué)生,找到則顯示:“您好!XX同學(xué)”,否則顯示“未找到”。if exists (select * from stud_info where stud_id='0401030213')print '您好!XX同學(xué)'elseprint '未找到' 2、從數(shù)據(jù)庫(kù)teacher_info中,選取teach

48、er_id、name、gender,如果gender為“女”則輸出“女士”,如果為“男”則輸出“先生”。SELECT teacher_id,name,sex=CASE gender WHEN N'男' THEN N'先生' WHEN N'女' THEN N'女士' ELSE '未知' END from teacher_info3、計(jì)算1100之間所有能被3整除的數(shù)的個(gè)數(shù)及總和。declare x int,s intset x=3set s=0while (x<100) begin set s=s+x set

49、x=x+3 endprint s4、計(jì)算s=1!+2!+10!。declare n int,s int,i int,st intset n=1set s=0while (n<=10) begin set i=1 set st=1 while (i<=n) begin set st=st*i set i=i+1 end set s=s+st set n=n+1 endprint s5、輸出字符串“School”中每一個(gè)字符的ASCII值和字符。declare pos int,str char(6),len int,ch char(1)set pos=1set str='Sch

50、ool'set len=datalength(str)while pos<=lenbegin set ch=substring(str,pos,1) select ch ascchar,ascii(ch) asccode set pos=pos+1end6、從stud_grad表中查詢所有同學(xué)考試成績(jī)情況,凡成績(jī)?yōu)榭照咻敵觥拔纯肌?,小?0分輸出“不及格”,60分(含60分)至70分輸出“及格”,70分(含70分)至80分輸出“良好”,大于等于80分輸出“優(yōu)秀”。select stud_id,score=case when grade is null then '未考&#

51、39; when grade<60 then '不及格' when grade<70 then '及格' when grade<80 then '良好' when grade>=80 then '優(yōu)秀' endfrom stud_grade7、查詢pubs數(shù)據(jù)庫(kù)的employee表,如果表中雇員的平均服務(wù)時(shí)間長(zhǎng)于10年,則打印信息:我們的雇員都很忠誠(chéng):),否則打印信息:我們的雇員經(jīng)常跳槽:(。use pubsgoif (select avg( datediff(year,hire_date,getdate(

52、) ) from employee) > 10 print '我們的雇員都很忠誠(chéng):)'else print '我們的雇員經(jīng)常跳槽:('8、查詢pubs數(shù)據(jù)庫(kù)中employee表,顯示相關(guān)雇員信息(id,姓名,服務(wù)時(shí)間等),其中增加一個(gè)雇員類型列:如果雇傭時(shí)間長(zhǎng)于12年,則顯示他為新雇員,否則顯示他為老雇員。use pubsgoselect Emp_ID, LName + '.' + FName '姓名', datediff(year,hire_date,getdate() as 'age' , '雇員

53、類型' = case when datediff(year,hire_date,getdate() < 12 then '新雇員' when datediff(year,hire_date,getdate() >= 12 then '老雇員' endFrom employeeOrder by age9、創(chuàng)建一個(gè)名為“proc_1”的存儲(chǔ)過程,用于查看學(xué)生表的所有信息。然后調(diào)用該存儲(chǔ)過程。create procedure proc_1as select * from stud_info10、創(chuàng)建一個(gè)名為“proc_2”的存儲(chǔ)過程,用于向?qū)W生表的

54、所有字段添加一條記錄,記錄內(nèi)容由調(diào)用時(shí)決定。然后調(diào)用該存儲(chǔ)過程。CREATE PROCEDURE proc_2 (stud_id_1 char(10), name_2 nvarchar(4), birthday_3 datetime, gender_4 nchar(1), address_5 nvarchar(20), telcode_6 char(12), zipcode_7 char(6), mark_8 decimal, speccode_9 char(6)AS INSERT INTO stud_info( stud_id,name,birthday,gender,address,tel

55、code, zipcode,mark,speccode) VALUES ( stud_id_1,name_2,birthday_3,gender_4,address_5, telcode_6,zipcode_7,mark_8,speccode_9)11、創(chuàng)建一個(gè)名為“proc_3”的存儲(chǔ)過程,用于刪除學(xué)生表中指定學(xué)號(hào)的記錄,具體學(xué)號(hào)由調(diào)用時(shí)決定。然后調(diào)用該存儲(chǔ)過程。CREATE PROCEDURE proc_3 stud_id_1 char(10)AS DELETE FROM stud_info WHERE stud_id=stud_id_112、修改存儲(chǔ)過程“proc_4”,用于查詢不小于指定成績(jī)的學(xué)生的基本信息,具體成績(jī)由調(diào)用時(shí)決定。create procedure proc_4 grade_1 decimal(4,1)as select * from stud_info where stud_id in(select stud_id from stud_grade where grade>=grade_1) 13、創(chuàng)建一個(gè)名為“proc_5”的存

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論