


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ù)教研室二O二年五月目錄、尸 、-前言.言實(shí)驗(yàn)1熟悉Java編程環(huán)境和Java程序結(jié)構(gòu)實(shí)驗(yàn)實(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ù)的
2、恢復(fù)與并發(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 Serve的應(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)證144Tran sact-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, MicrosoftS QL Ser
3、ver 200 5。實(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ù)管理器的用法SQLServer是作為Windows網(wǎng)絡(luò)操作系統(tǒng)的一個(gè)服務(wù)運(yùn)行的。通過設(shè)置,可以 在啟動(dòng)操作系統(tǒng)時(shí)自動(dòng)啟動(dòng) SQL Server,
4、也可以遠(yuǎn)程啟動(dòng)和停止 SQL Server??梢?使用下列工具手工啟動(dòng)、暫停和停止 SQL Server服務(wù):SQL Server企業(yè)管理器SQL Server服務(wù)管理器控制面板中的“服務(wù)”在命令提示符中使用net命令net pause mssqlservernet con ti nue 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è)管
5、理器的使用企業(yè)管理器是SQL Server提供的最主要的數(shù)據(jù)庫(kù)管理圖形界面工具,它以樹形 結(jié)構(gòu)來組織數(shù)據(jù)庫(kù)服務(wù)器、數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)中的對(duì)象,大部分的數(shù)據(jù)庫(kù)管理工作都可 以使用它來完成。實(shí)驗(yàn)要求3:啟動(dòng)企業(yè)管理器,查看SQL Server的注冊(cè)屬性。提示:?jiǎn)?dòng)企業(yè)管理器后,在控制臺(tái)樹中,展開“ Microsoft SQLServers ”,然 后展開“ SQL Server組”,右擊自己的服務(wù)器名,然后單擊“編輯 SQL Server注冊(cè) 屬性”。實(shí)驗(yàn)要求 4:在企業(yè)管理器中,查看 Northwind 數(shù)據(jù)庫(kù)中用戶數(shù)據(jù)表和系統(tǒng)數(shù)據(jù) 表各有多少個(gè)? 13,193、查詢分析器的使用 查詢分析器是圖形化
6、的數(shù)據(jù)庫(kù)編程接口, 用戶可以以自由的文本格式編輯、 調(diào)試 和執(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 的使用說明
7、。在本課程的學(xué)習(xí)中,各位同 學(xué)應(yīng)該掌握聯(lián)機(jī)叢書的使用。實(shí)驗(yàn)要求7:打開聯(lián)機(jī)叢書,在目錄中展開“安裝 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è)管理器中來,應(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ǔ)過
8、程查看 SQL數(shù)據(jù)庫(kù)屬性的方法。4熟悉數(shù)據(jù)庫(kù)的收縮、更名和刪除。5掌握使用企業(yè)管理器或 sp_dboption 存儲(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è)為100MBCREATE DATABASE TestData0O
9、N( NAME = TestData0,FILENAME ='d:TestDBTestData0.mdf',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ù),具體要求如下: 數(shù)據(jù)庫(kù)名稱為 Test 。主要數(shù)據(jù)文件:邏輯文件名為 TestData
10、1 ,物理文件名為 TestData1.mdf ,初 始容量為1MB最大容量為10MB遞增量為1MB次要數(shù)據(jù)文件:邏輯文件名為 TestData2 物理文件名為 TestData2.ndf 初 始容量為 1MB 最大容量為 10MB 遞增量為 1MB。事務(wù)日志文件:邏輯文件名為 TestLog1 物理文件名為 TestLog1.ldf初始容量為 1MB 大容量為 5MB 遞增量為 512KB。CREATE DATABASE TestON( NAME = TestData1,FILENAME ='d:TestDBTestData1.mdf',SIZE = 1,MAXSIZE =
11、10,FILEGROWTH = 1 ), ( NAME = TestData2,FILENAME ='d:TestDBTestData2.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)2
12、M次要數(shù)據(jù)文件大小為1M日志文 件大小為1M三個(gè)文件的文件名自定,上述沒有說明的選項(xiàng)都采用默認(rèn)值。提示:在查詢分析器中輸入如下 SQL腳本:CREATE DATABAS圖書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',S
13、IZE = 1 )實(shí)驗(yàn)內(nèi)容4:用T-SQL語(yǔ)句創(chuàng)建一個(gè)名為student的數(shù)據(jù)庫(kù),它由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提示:在查詢分 析器中輸入如下SQLW本:CREATE DATABASE studentOn( name=student1,filename='d:TestDBstudent_data1.mdf', size=5,maxsize=15,filegrow
14、th=2),( name=student2,filename='d:TestDBstudent_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í)
15、驗(yàn)內(nèi)容 6:將已分離的“圖書”數(shù)據(jù)庫(kù)附加到服務(wù)器上。可以使用企業(yè)管理器 或SQL語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行附加的操作。附加數(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ǔ)言來查看或修改數(shù)據(jù)庫(kù)的屬性。使用企業(yè)管理器的 方法是右擊數(shù)據(jù)庫(kù)名稱,在快捷菜單中選擇“屬性” ,然后數(shù)據(jù)庫(kù)屬性對(duì)話框中就可 以查看或修改數(shù)據(jù)庫(kù)的屬性。
16、也可以使用sp_helpdb 、sp_spaceused、sp_helpfile和 sp_helpfilegroup 等存儲(chǔ)過程查看和數(shù)據(jù)庫(kù)有關(guān)的屬性。修改數(shù)據(jù)庫(kù)屬性可以使 用 ALTER DATABAS命令。實(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 DATABAS命令為student數(shù)據(jù)庫(kù)添加一個(gè)新的數(shù)據(jù)文 件,文件邏輯名為student
17、_data3,初始大小為2MB增長(zhǎng)值為1MB其他屬性默認(rèn)。ALTER DATABASE stude ntADD FILE(n ame=stude nt_data3,file name='d:TestDBstude nt_data3. ndf,size=2,filegrowth=1)ALTER DATABASE stude ntremove FILE stude nt_data36數(shù)據(jù)庫(kù)的收縮數(shù)據(jù)庫(kù)收縮可以縮小數(shù)據(jù)庫(kù)的空閑空間。 可以使用企業(yè)管理器或SQL語(yǔ)言對(duì)數(shù)據(jù) 庫(kù)進(jìn)行收縮工作。收縮數(shù)據(jù)庫(kù)使用的 SQL語(yǔ)言是DBCCSHRINKDATABASE令。也可以 使用ALTER DATABA
18、SE SET子句或sp_dboption將數(shù)據(jù)庫(kù)設(shè)為自動(dòng)收縮。DBCC SHRINKDATABASE(stude nt)實(shí)驗(yàn)內(nèi)容9:將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_re namedb存儲(chǔ)過程。實(shí)驗(yàn)內(nèi)容10:將student數(shù)據(jù)庫(kù)改名為stu。sp_re name 'stude nt', 'stu'8、數(shù)據(jù)庫(kù)選項(xiàng)的配置可以使用ALTER DATABASES句的SET子句、sp_d
19、boption 系統(tǒng)存儲(chǔ)過程,或 者在某些情況下使用SQL Server企業(yè)管理器設(shè)置數(shù)據(jù)庫(kù)選項(xiàng)。實(shí)驗(yàn)內(nèi)容11:使用企業(yè)管理器將stu數(shù)據(jù)庫(kù)設(shè)為只讀。實(shí)驗(yàn)內(nèi)容12:使用sp_dboption存儲(chǔ)過程取消stu數(shù)據(jù)庫(kù)的只讀設(shè)置。sp_dboption N'stude nt', N'read on ly', N'true9、數(shù)據(jù)庫(kù)的刪除刪除數(shù)據(jù)庫(kù)可以使用企業(yè)管理器或 DROP DATABASE令o實(shí)驗(yàn)內(nèi)容13:使用DROP DATABASE令將stu數(shù)據(jù)庫(kù)刪除。DROP DATABASE stu10、使用企業(yè)管理器按下表結(jié)構(gòu)創(chuàng)建表表名:Course屬性名稱屬
20、性描述數(shù)據(jù)類型字節(jié)數(shù)空否備注CourseID】田千口 i=r. 課程號(hào)int4否主鍵,標(biāo)識(shí)列CourseName課程名稱varchar20r否Category課程類別char8Period學(xué)時(shí)數(shù)smalli nt2Credit學(xué)分tin yi nt1表名:Class Info屬性名稱屬性描述數(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ù)空否備注Stude ntNum學(xué)號(hào)char9:否主鍵Stude ntName姓名varchar8否Sex性別bit1Bi
21、rthday出生日期smalldatetime4ClassID班級(jí)號(hào)int4CREATE TABLE stude nt(Stude ntNum char(9) NOT NULL PRIMARY KEY,Stude ntName 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ǔ)句為St
22、udent表添加Nation (民族)字段和Stature (身高)字段, 字段數(shù)據(jù)類型自定。ALTER TABLE Stude ntADD Nation varchar(8),Stature intDrop colum n Natio n,Stature14、使用企業(yè)管理器實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作使用企業(yè)管理器按下表向Course添加數(shù)據(jù)?!刻锴Э?i=r. 課程號(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ù)中包含哪幾種文件?
23、2. 事務(wù)日志文件的大小一般為數(shù)據(jù)文件大小的多少合適?3. 若需修改數(shù)據(jù)庫(kù)文件的大小,可以使用的方法有哪些?若要求使用T-SQL語(yǔ)言,則命令應(yīng)如何編寫?4. 能不能刪除master數(shù)據(jù)庫(kù)?若一個(gè)用戶數(shù)據(jù)庫(kù)當(dāng)前正在被訪問,能不能被刪 除?實(shí)驗(yàn)3SQL數(shù)據(jù)操作與查詢實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康? 了解T-SQL語(yǔ)句的基本語(yǔ)法。2. 掌握基本的SELECTS句的設(shè)計(jì)和編寫。3 掌握多表查詢的使用。4. 熟悉UNION子句的使用。5. 掌握GROUP B子句的使用。6. 練習(xí)使用企業(yè)管理器、向?qū)Ш筒樵兎治銎鲃?chuàng)建視圖。7. 會(huì)使用視圖、修改視圖、查詢視圖的信息和刪除視圖。8. 進(jìn)一步掌握使用T-SQL語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)
24、的操作。二、實(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ù)的操作 使用INSERT語(yǔ)句向Course表中添加記錄:(計(jì)算機(jī)網(wǎng)絡(luò),專業(yè)基礎(chǔ),72, 4) insert Course(CourseName,Category,Period,Credit)values('計(jì)算機(jī)網(wǎng)絡(luò)','專業(yè)基礎(chǔ)','72','4') 使用UPDATE!句將Course表中的“計(jì)算機(jī)應(yīng)用基礎(chǔ)”課的學(xué)時(shí)數(shù)改為106。update Courseset Period='106'where Cour
25、seName='計(jì)算機(jī)應(yīng)用基礎(chǔ)'(3)使用DELETES句將Course表中的公共課全部刪除。DELETE FROM Course where Category='公共'2、使用T-SQL語(yǔ)句按下表結(jié)構(gòu)創(chuàng)建表(在創(chuàng)建表時(shí)定義約束)表名:Grade屬性名稱屬性描述數(shù)據(jù)類型字節(jié)數(shù)空否約束備注Stude ntNum學(xué)號(hào)char9否主鍵CourseID】田千口 i=r. 課程號(hào)int4否主鍵DailyGrade平時(shí)成績(jī)decimal5,1不小于0且不大于20PracticeGrade實(shí)踐成績(jī)decimal5,1不小于0且不大于30TestGrade期末成績(jī)decimal
26、5,1不小于0且不大于50Grade總評(píng)由平時(shí)成績(jī)(20% )、實(shí)踐成 績(jī)(30%)和期末成績(jī)(50%) 計(jì)算而來create table Grade(Stude ntNumchar(9) n ot null,CourselDint not nu II,DailyGradedecimal(5,1),PracticeGrade decimal(5,1),TestGradedecimal(5,1),Grade as DailyGrade*0.20+ PracticeGrade*0.30+ TestGrade*0.50con stra int pk_sc primary key(Stude ntNu
27、m,CourselD),con stra int ck_dg check(DailyGrade>0 and DailyGrade<20),con stra int ck_pg check(PracticeGrade>0 and PracticeGrade<30),con stra int ck_tg check(TestGrade>0 and TestGrade<50)3、使用T-SQL語(yǔ)句修改表的結(jié)構(gòu)(1) 為班級(jí)表Class Info添加入學(xué)時(shí)間En rollDate字段,并定義入學(xué)時(shí)間不小于2001年9月1日。alter table Class In
28、foAdd En rollDate datetime,check (En rollDate >= '2001-9-1')(2) 為班級(jí)表Class Info定義主鍵約束,定義班級(jí)號(hào)ClassID為主鍵。alter table Class In foadd con stra int pk_ClassI nfo primary key(ClassID)4、使用企業(yè)管理器定義約束(1) 為學(xué)生表Student定義外鍵約束,使 ClassID參照班級(jí)表ClassInfo中的ClassID,并為約束設(shè)置級(jí)聯(lián)更新。(2) 為班級(jí)表 Class Info 的ClassName定義唯一約
29、束。5、默認(rèn)值對(duì)象的創(chuàng)建與使用(1)使用T-SQL語(yǔ)句創(chuàng)建名為DF_GRAD的默認(rèn)值對(duì)象,值為0。CREATE DEFAULT DF_GRADE AS 0(2) 使用企業(yè)管理器將DF_GRAD綁定到成績(jī)表 Grade中的DailyGrade、 PracticeGrade 和 TestGrade 字段上。exec sp_bindefault DF_GRADE,'Grade.DailyGrade'exec sp_bindefault DF_GRADE,'Grade.PracticeGrade'exec sp_bindefault DF_GRADE,'Grad
30、e.TestGrade'(3) 使用 sp_unbindefault 存儲(chǔ)過程將 DF_GRAD從 DailyGrade、PracticeGrade 和 TestGrade 字段上解除。exec sp_unbindefault 'Grade.DailyGrade'exec sp_unbindefault 'Grade.PracticeGrade'exec sp_unbindefault 'Grade.TestGrade'(4) 刪除DF_GRAD默認(rèn)值對(duì)象。DROP DEFAULT DF_GRADE在查詢分析器在窗口下用 SELECTS句
31、完成單表查詢: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é)生的地址和電話。Select address,telcode from stud_info where stud_id='0401010634' 查詢studnfo表中性別為“女”的學(xué)生的地址和電話。使用AS子句將結(jié)果 中指定目標(biāo)列的標(biāo)題分別指定為地址,電話。Select address
32、 as 地址,telcode as 電話 from studnfo where gen der=N'女' 查詢計(jì)算機(jī)應(yīng)用教研室“ 0101”的教師工資情況。Select name,salary from teacher_info where jysh_id='0101' 找出所有姓“王”的教師所對(duì)應(yīng)的技術(shù)職稱。Select name,tech_title from teacher_info where name like '王%' 在學(xué)生成績(jī)表中查詢成績(jī)?cè)?8089之間的學(xué)生的學(xué)號(hào)、課程號(hào)和成績(jī)。Select stud_id,course_id,
33、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 staffroom_info where deptcode='01') 查找計(jì)算機(jī)工程系“ 01 ”中所有擔(dān)任多媒體技術(shù)“ 0401010106”的教師編號(hào) 和姓名。Select teacher_id,name from teacher_info where jysh_id in(sel
34、ect 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(getdate()-year(birthday) from stud_info where speccode =(select speccode from specialty_code where specname='age,telcode,address計(jì)算機(jī)應(yīng)用技術(shù)
35、9;)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 bOn a.stud_id=b.stud_id 實(shí)現(xiàn) teacher_info 左外連接 lesson_info 。 Select * from teacher_info a left outer join lesson_info bOn a.course_id=b.course_id8、數(shù)據(jù)匯總 查詢?nèi)w教師的平均工資Se
36、lect 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') 求計(jì)算機(jī)工程系“ 01”教師的總?cè)藬?shù)。Select count(*) from teacher_info where jysh_id in (select jysh_id from staffroom_info where deptcode='01
37、39;)9、GROUP BYORDER B子句的使用 按職稱統(tǒng)計(jì)各個(gè)教研室的教師人數(shù)。Select jysh_id,count(*) from teacher_info group by jysh_id 將計(jì)算機(jī)工程系“ 01”職稱為“講師”的教師,按年齡由低到高排列Select * from teacher_info where jysh_id in(select jysh_id from staffroom_info where deptcode='01') order by age10、熟悉 pubs 數(shù)據(jù)庫(kù)中的三個(gè)用戶表: employee(emp_id,fname,m
38、init,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、在查詢分析器在窗口下用 SELECTS句完成單表查詢: 查詢?nèi)w出版社的詳細(xì)記錄;Select * from publishers 查詢所有工作的 job_id 為 7 的職工的職工編號(hào);Select emp_id from employee where job_id=7 查詢工作的
39、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='France' 查詢 lastname 為 Jablonski 的雇員的 firstname 、 job_id 和 hire_date ; Select emp_id from employee where job_id<
40、;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 order by job_lvl desc 查詢 job_id 為 13的職員中 job_lvl 最高的職員的 firstname 和 lastname。 select to
41、p 1 fname,lname from employee where job_id=13 order by job_lvldesc12、在查詢分析器在窗口下用 SELECTS句完成連接(嵌套)查詢: 查詢各個(gè)工作號(hào)與相應(yīng)的工作人數(shù);select job_id,count(*) from employee group by job_id 查詢每個(gè)職工及其工作的描述(job_desc )的情況;select employee.*,job_desc from employee inner join jobson employee.job_id = jobs.job_id 查詢每個(gè)職工及其工作職務(wù)名
42、其及所在出版社的名字;select a.*,b.job_desc,c.pub_name from employee a inner join jobs bon a.job_id = b.job_id inner join publishers con a.pub_id = c.pub_id 查詢與“ Annette ” (firstname) 在同一個(gè)出版社工作的職工的 firstname ; select fname from employee where pub_id=(select pub_id from employee where fname='Annette') 查
43、詢?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è)?NewMoonBooks 這個(gè)出版社工作的員工中 job_lvl 大于 100 的職工的 姓名和其所作工作的描述;select a.fname,a.ln
44、ame,b.job_desc from employee a inner join jobs bon a.job_id=b.job_idwhere job_lvl>100 and pub_id in(select pub_id from publishers where pub_name='New Moon Books' )13、在查詢分析器在窗口下用 SELECTS句完成集合查詢:查詢 job_id 為5和 job_id 為 6的職工的姓名和職工所在出版社的名字。select a.*,b.pub_name from employee a inner join publi
45、shers 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 Asselect stud_id,name,gender from stud_info where speccode='040101'15、使用查詢分析器創(chuàng)建一個(gè)名為“ view_2”的視圖,內(nèi)容是顯示學(xué)生表中沒有 選修課程的學(xué)生的學(xué)號(hào)、姓名和班級(jí),并且為該視圖加密。create v
46、iew view_2with encryption Asselect 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 Asselect stud_id,name,gender,speccode from stud_info where gender=N'
47、; 男 '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)?zāi)康? 掌握 Transact-SQL 的基礎(chǔ)知識(shí)。 2掌握流程控制語(yǔ)句
48、和功能性語(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ù) teachernfo 中,選取 teacher_id、name gender,如果 g
49、ender 為“女”則輸出“女士” ,如果為“男”則輸出“先生” 。SELECT teacher_id,name,sex=CASE genderWHEN 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)beginset s=s+xset x=x+3endprint s4、計(jì)算
50、s=1!+2!+ +10!。declare n int,s int,i int,st intset n=1set s=0while (n<=10)beginset i=1set st=1while (i<=n)beginset st=st*iset i=i+1endset s=s+stset n=n+1endprint s5、輸出字符串“ School ”中每一個(gè)字符的 ASCII 值和字符。declare pos int,str char(6),len int,ch char(1)set pos=1set str='School'set len=datalengt
51、h(str)while pos<=lenbeginset ch=substring(str,pos,1)select ch ascchar,ascii(ch) asccodeset pos=pos+1end6、從 stud_grad 表中查詢所有同學(xué)考試成績(jī)情況,凡成績(jī)?yōu)榭照咻敵觥拔纯肌?, 小于 60分輸出“不及格”,60 分(含 60 分)至 70 分輸出“及格”,70 分(含 70 分) 至 80 分輸出“良好”,大于等于 80 分輸出“優(yōu)秀”。select stud_id,score=casewhen grade is null then '未考 'when gr
52、ade<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,g
53、etdate() from employee) > 10print ' 我們的雇員都很忠誠(chéng) :)'elseprint ' 我們的雇員經(jīng)常跳槽 :('8、查詢 pubs 數(shù)據(jù)庫(kù)中 employee 表,顯示相關(guān)雇員信息 (id ,姓名,服務(wù)時(shí)間等 ) , 其中增加一個(gè)雇員類型'列:如果雇傭時(shí)間長(zhǎng)于 12年,則顯示他為新雇員' ,否 則顯示他為老雇員' 。use pubsgoselectEmp_ID,LName + '.' + FName '姓名',datediff(year,hire_date,getd
54、ate() as 'age' , ' 雇員類型 ' =casewhen 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_1asselect * from stud_
55、info10、創(chuàng)建一個(gè)名為“ proc_2 ”的存儲(chǔ)過程,用于向?qū)W生表的所有字段添加一條記 錄,記錄內(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)ASINSERT INTO stud_info( stud_id,name,
56、birthday,gender,address,telcode,zipcode,mar k,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_i
57、d_112、修改存儲(chǔ)過程“ proc_4 ”,用于查詢不小于指定成績(jī)的學(xué)生的基本信息,具 體成績(jī)由調(diào)用時(shí)決定。create procedure proc_4grade_1 decimal(4,1)asselect * from stud_info where stud_id in(select stud_id from stud_grade where grade>=grade_1)13、創(chuàng)建一個(gè)名為“ proc_5 ”的存儲(chǔ)過程,用于求一個(gè) 3 位整數(shù)的反序數(shù)。例如 123 的反序數(shù)為 321。create procedure proc_5n intasselect reverse(str(n)14、創(chuàng)建一個(gè)名為“ trig_1 ”的觸發(fā)器,當(dāng)向
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度投資理財(cái)代理服務(wù)合同
- 二零二五年度吊車安全操作規(guī)程制定及執(zhí)行合同
- 二零二五年度冬季勞務(wù)掃雪環(huán)境保護(hù)協(xié)議
- 2025年度正規(guī)貨車駕駛員勞動(dòng)合同及貨運(yùn)業(yè)務(wù)操作規(guī)范合同
- 二零二五年度扶貧項(xiàng)目風(fēng)險(xiǎn)防范與應(yīng)急處理合作協(xié)議
- 二零二五年度合同糾紛賠償調(diào)解服務(wù)協(xié)議
- 二零二五年度名人房產(chǎn)銷售代理合同范本
- 2025年度智能制造股權(quán)抵押貸款合同
- 2025年度電子商務(wù)平臺(tái)合作解除終止范本
- 二零二五年度企業(yè)勞動(dòng)合同解除與離職員工就業(yè)援助服務(wù)協(xié)議
- 2024屆遼寧省沈陽(yáng)市名校中考四?;瘜W(xué)試題含答案解析
- 2024年4月自考00431教學(xué)設(shè)計(jì)試題
- JTGT F20-2015 公路路面基層施工技術(shù)細(xì)則
- 7S培訓(xùn)管理教材課件(-28張)
- 產(chǎn)學(xué)研合作的模式和成效
- 新綱要云南省實(shí)驗(yàn)教材第二版三年級(jí)信息技術(shù)第二冊(cè)教案-
- 公安基礎(chǔ)知識(shí)900題庫(kù)
- GB/T 15558.2-2023燃?xì)庥寐竦鼐垡蚁?PE)管道系統(tǒng)第2部分:管材
- YB-4001.1-2007鋼格柵板及配套件-第1部分:鋼格柵板(中文版)
- 慢病管理課件-高血壓、糖尿病等慢性病的護(hù)理和管理
- 267條表情猜成語(yǔ)【動(dòng)畫版】
評(píng)論
0/150
提交評(píng)論