




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫原理與應(yīng)用實驗指導(dǎo)書信息管理與信息系統(tǒng)教研室遼寧工業(yè)大學(xué)2010年3月目 錄實驗1 數(shù)據(jù)庫管理工具的使用及數(shù)據(jù)庫的管理1實驗2 數(shù)據(jù)表的管理4實驗3 數(shù)據(jù)查詢6實驗4 索引和視圖及數(shù)據(jù)完整性9實驗5 Transact-SQL程序設(shè)計15實驗6 存儲過程和觸發(fā)器18實驗7 數(shù)據(jù)庫的安全管理、備份恢復(fù)、導(dǎo)入導(dǎo)出22 文檔可自由編輯打印實驗1 數(shù)據(jù)庫管理工具的使用及數(shù)據(jù)庫的管理項目1 數(shù)據(jù)庫管理工具的使用一、實驗?zāi)康?了解 SQL Server 2000安裝對軟、硬件的要求,學(xué)會安裝方法。 2了解 SQL Server的注冊和配置方法。 3了解SQL Server 2000包含的主要組件及其功
2、能。 4熟悉企業(yè)管理器和查詢分析器的界面及基本使用方法。 5對數(shù)據(jù)庫及其對象有一個基本了解。二、實驗準備 1了解安裝 SQL Server 2000的軟、硬件要求。 2了解 SQL Server 2000支持的身份驗證模式。Windows的兩種服務(wù)賬戶:本地系統(tǒng)賬戶和域用戶賬戶。 3了解 SQL Server各組件的主要功能。 4對數(shù)據(jù)庫、表和數(shù)據(jù)庫對象有一個基本了解。 5了解在查詢分析器中執(zhí)行SQL語句的方法。三、實驗內(nèi)容及步驟 1根據(jù)軟、硬件環(huán)境的要求,安裝 SQL Server 2000。 2通過“開始”“程序”Microsoft SQL Server“服務(wù)管理器”,打開“SQL Ser
3、ver 服務(wù)管理器”窗口,選擇 SQL Server服務(wù)。并且通過該窗口“啟動”和“停止”SQL Server 服務(wù)。 3通過“開始”“程序”Microsoft SQL Server“企業(yè)管理器”打開企業(yè)管理器窗口。 4在企業(yè)管理器中、使用“注冊向?qū)А弊苑?wù)器。查看本地已住冊的 SQL Server。 搜索網(wǎng)絡(luò)上另一臺計算機,并且注冊該機上的 SQL Server,注冊時使用“Windows認證模 式”或“用我的 SQL Server賬戶信息自動登錄”的連接方式。 5從 SQL企業(yè)管理器中注銷網(wǎng)絡(luò) SQL Server。 6打開本地服務(wù)器的屬性對話框,查看以下信息:產(chǎn)品名稱、主機操作系統(tǒng)、產(chǎn)
4、品的版本、操作平臺、主機內(nèi)存等。 7利用企業(yè)管理器訪問系統(tǒng)自帶的pubs數(shù)據(jù)庫。 (1)以系統(tǒng)管理員身份登錄到企業(yè)管理器。(2)在企業(yè)管理器的樹形目錄中找到pubs數(shù)據(jù)庫并展開,查看該數(shù)據(jù)庫的所有對象,如表、視圖、存儲過程、默認和規(guī)則等。 (3)選擇pubs數(shù)據(jù)庫的“表”選項,在右窗格中將列出pubs數(shù)據(jù)庫的所有表(包括系統(tǒng)表和用戶表),選擇用戶表titles,右擊,彈出快捷菜單,從中選擇“打開表”“返回所有行”菜單項,打開titles表,查看其內(nèi)容。 8利用查詢分析器訪問pubs數(shù)據(jù)庫的表。 (l)通過“開始”“程序”Microsoft SQL Server“查詢分析器”方式運行SQL Se
5、rver查詢分析器,或者在企業(yè)管理器中,選擇“工具”“SQL查詢分析器”菜單項,運行SQL Server查詢分析器。 (2)在查詢分析器窗口中,選擇“查詢”“更改數(shù)據(jù)庫”菜單項,或者單擊常用工具欄中的更改數(shù)據(jù)庫下拉框的下拉按鈕,選擇要操作的pubs數(shù)據(jù)庫。 (3)在查詢分析器的編輯窗口中,輸入以下代碼: SELECT type,avg(price) FROM titles WHERE royalty10 GROUP BY type (4)選擇查詢分析器的“查詢”“分析”菜單項,或者單擊常用工具欄上“分析查詢”按鈕,查詢分析器將對輸入的代碼進行語法分析,并由消息窗格給出分析結(jié)果報告。(5)選擇查
6、詢分析器的“查詢”“執(zhí)行”菜單項,或者單擊常用工具欄上“執(zhí)行查詢”按鈕,SQL Server將編譯窗口中的代碼,并在結(jié)果窗格中顯示查詢結(jié)果,如圖1所示。圖1 查詢分析器的編輯窗口四、實驗思考 1查詢分析器的作用是什么?可以有幾種啟動查詢分析器的方法?2改變查詢分析器的當(dāng)前數(shù)據(jù)庫,使用什么方法?項目2 數(shù)據(jù)庫的管理一、實驗?zāi)康?1了解SQL Server數(shù)據(jù)庫的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)的特點。 2學(xué)會使用企業(yè)管理器對數(shù)據(jù)庫進行管理。 3學(xué)會使用TransactSQL 語句對數(shù)據(jù)庫進行管理。二、實驗準備 1確定能夠創(chuàng)建數(shù)據(jù)庫的用戶是系統(tǒng)管理員,或是被授權(quán)使用CREATE DATABASE語句的用戶。 2
7、確定要創(chuàng)建的數(shù)據(jù)庫名、所有者(即創(chuàng)建數(shù)據(jù)庫的用戶)、數(shù)據(jù)庫大小(最初的大小、最大的大小、是否允許增長及增長的方式)和存儲數(shù)據(jù)的文件。 3了解常用的創(chuàng)建數(shù)據(jù)庫方法。三、實驗內(nèi)容及步驟 1在企業(yè)管理器中創(chuàng)建studentsdb數(shù)據(jù)庫。 (1)運行SQL Server管理器,啟動企業(yè)管理器,展開服務(wù)器“(LOCAL)(Windows NT)”。 (2)右擊“數(shù)據(jù)庫”項,在快捷菜單中選擇“新建數(shù)據(jù)庫”菜單項。在新建數(shù)據(jù)庫對話框的名稱文本框中輸入學(xué)生管理數(shù)據(jù)庫名studentsdb。 2選擇studentsdb數(shù)據(jù)庫,在其快捷菜單中選擇“屬性”菜單項,查看“常規(guī)”、“數(shù)據(jù)文件”、“事務(wù)日志”、“文件組”
8、、“選項”和“權(quán)限”頁面。3打開studentsdb數(shù)據(jù)庫的“屬性”對話框,在“數(shù)據(jù)文件”選項卡中修改studentsdb數(shù)據(jù)文件的“分配的空間”大小為2MB。指定“最大文件大小”為5MB。在“事務(wù)日志”選項卡中修改studentsdb數(shù)據(jù)庫的日志文件的大小在每次填滿時自動遞增5。4在企業(yè)管理器中刪除studentsdb數(shù)據(jù)庫。5啟動查詢分析器,在查詢分析器中使用Transact-SQL語句CREATE DATABASE創(chuàng)建studb數(shù)據(jù)庫。然后通過系統(tǒng)存儲過程sp_helpdb查看系統(tǒng)中的數(shù)據(jù)庫信息。 6在查詢分析器中使用 Transact-SQL語句ALTER DATABASE修改stud
9、b數(shù)據(jù)庫的設(shè)置,指定數(shù)據(jù)文件大小為5MB,最大文件大小為20MB,自動遞增大小為1MB。 7在查詢分析器中為Studb數(shù)據(jù)庫增加一個日志文件,命名為Studb_Log2,大小為5MB,最大文件大小為10MB。 8使用企業(yè)管理器將studb數(shù)據(jù)庫的名稱更改為student_db。9使用 TransactSQL語句 DROP DATABASE刪除student_db數(shù)據(jù)庫。10創(chuàng)建一個Company數(shù)據(jù)庫,所有文件存放到D盤的SQL目錄下。該數(shù)據(jù)庫的主數(shù)據(jù)文件邏輯名稱為Company_data,物理文件名為Company.mdf,初始大小為10MB,最大尺寸為無限大,增長速度為10%;數(shù)據(jù)庫的日志
10、文件邏輯名稱為Company_log,物理文件名為Company.ldf,初始大小為1MB,最大尺寸為5MB,增長速度為1MB。11添加一個包含兩個數(shù)據(jù)文件的文件組和一個事務(wù)日志文件到Company數(shù)據(jù)庫中。12刪除Company數(shù)據(jù)庫中的一個數(shù)據(jù)文件,然后刪除此數(shù)據(jù)庫。四、實驗思考新數(shù)據(jù)庫是否包含SQL Server在主設(shè)備中生成的模型數(shù)據(jù)庫內(nèi)的所有對象?實驗2 數(shù)據(jù)表的管理一、實驗?zāi)康?學(xué)會使用企業(yè)管理器和TransactSQL語句 CREATE TABLE和ALTER TABLE創(chuàng)建和修改表。2學(xué)會在企業(yè)管理器中對表進行插入、修改和刪除數(shù)據(jù)操作。3學(xué)會使用TransactSQL語句對表進
11、行插入、修改和刪除數(shù)據(jù)操作。4了解SQL Server的常用數(shù)據(jù)類型。二、實驗準備1了解在企業(yè)管理器中實現(xiàn)表數(shù)據(jù)的操作,如插入、修改和刪除等。2掌握用TransactSQL語句對表數(shù)據(jù)進行插入(INSERT)、修改(UPDATE)和刪除(DELETE或 TRANCATE TABLE)操作。三、實驗內(nèi)容1啟動企業(yè)管理器,展開studentsdb數(shù)據(jù)庫文件夾。2在 studentsdb數(shù)據(jù)庫中包含有數(shù)據(jù)表student_info、curriculum、grade,這些表的數(shù)據(jù)結(jié)構(gòu)如圖1、圖2和圖3所示。 圖1學(xué)生基本情況表student_info 圖2課程信息表curriculum 圖3學(xué)生成績表
12、 grade3在企業(yè)管理器中創(chuàng)建 student_info、curriculum表。4在企業(yè)管理器中,將student_info表的學(xué)號列設(shè)置為主鍵,非空。5使用 TransactSQL 語句 CREATE TABLE在 studentsdb數(shù)據(jù)庫中創(chuàng)建grade表。6student_info、curriculum、grade表中的數(shù)據(jù)如圖4、圖5和圖6所示。圖4 student_info的數(shù)據(jù)圖5 curriculum的數(shù)據(jù) 圖6 grade的數(shù)據(jù) 7在企業(yè)管理器中為student_info、curriculum、grade表添加數(shù)據(jù)。 8使用 TransactSQL 語句INSERT IN
13、TOVALUES向studentsdb數(shù)據(jù)庫的grade表插入以下數(shù)據(jù): 學(xué)號 課程編號 分數(shù) 0004 0001 80 9使用 TransactSQL 語句ALTER TABLE修改curriculum表的“課程編號”列,使之為非空。 10使用 TransactSQ L語句ALTER TABLE修改grade表的“分數(shù)”列,使其數(shù)據(jù)類型為real。11使用 TransactSQL語句ALTER TABLE修改student_info表的“姓名”列,使其列名為“學(xué)生姓名”,數(shù)據(jù)類型為varchar(10),非空。sp_rename 'student_info.姓名','
14、學(xué)生姓名' ALTER TABLE student_infoALTER column 學(xué)生姓名 varchar(10) not null 12分別使用企業(yè)管理器和TransactSQL語句DELETE刪除studentsdb數(shù)據(jù)庫的grade表中學(xué)號為0004的成績記錄。 DELETE grade WHERE學(xué)號=0004 13使用TransactSQL語句UPDATE修改studentsdb數(shù)據(jù)庫的grade表中學(xué)號為0003、課程編號為0005、分數(shù)為90的成績記錄。 UPDATE grade SET分數(shù)=90 WHERE學(xué)號=0003 and課程編號= 0005 14使用Tran
15、sact-SQL語句ALTERADD為studentsdb數(shù)據(jù)庫的grade表添加一個名為“備注”的數(shù)據(jù)列,其數(shù)據(jù)類型為VARCHAR(20)。 ALTER TABLE grade ADD備注 VARCHAR(20)NULL 15分別使用企業(yè)管理器和TransactSQL語句 DROP TABLE刪除studentsdb數(shù)據(jù)庫中g(shù)rade表。四、實驗思考 1使用TSQL語句刪除在studentsdb數(shù)據(jù)庫的grade表添加的“備注”數(shù)據(jù)列。 2在企業(yè)管理器中,studentsdb數(shù)據(jù)庫的student_info表的數(shù)據(jù)輸入時,如果輸入相同學(xué)號有什么現(xiàn)象?怎樣避免該情況的發(fā)生?實驗3 數(shù)據(jù)查詢一
16、、實驗?zāi)康?1掌握使用Transact-SQL的SELECT語句進行基本查詢的方法。 2掌握使用SELECT語句進行條件查詢的方法。 3掌握嵌套查詢的方法。 4掌握多表查詢的方法。 5掌握SELECT語句的GROUP BY和ORDER BY子句的作用和使用方法; 6掌握聯(lián)合查詢的操作方法。 7掌握數(shù)據(jù)更新語句 INSERT INTO、UPDATE、DELETE的使用方法。二、實驗準備 1了解SELECT語句的基本語法格式和執(zhí)行方法。 2了解嵌套查詢的表示方法。 3了解UNION運算符的用法。 4了解SELECT語句的GROUP BY和ORDER BY子句的作用。 5了解IN、JOIN等子查詢的
17、格式。 6了解 INSERT INTO、UPDATE、DELETE的格式與作用。三、實驗內(nèi)容和步驟 1在studentsdb數(shù)據(jù)庫中,使用下列SQL語句將輸出什么? (1) SELECT COUNT(*)FROM grade (2)SELECT SUBSTRING(姓名,1,2)FROM student_info (3)SELECT UPPER(kelly) (4)SELECT Replicate(kelly,3) (5)SELECT SQRT(分數(shù))FROM grade WHERE分數(shù)>=85 (6)SELECT 2,3,POWER(2,3) (7)SELECT YEAR(GETDAT
18、E(),MONTH(GETDATE(),DAY(GETDATE() 2在studentsdb數(shù)據(jù)庫中使用SELECT語句進行基本查詢。 (1)在student_info表中,查詢每個學(xué)生的學(xué)號、姓名、出生日期信息。 (2)查詢學(xué)號為0002的學(xué)生的姓名和家庭住址。(3)找出所有男同學(xué)的學(xué)號和姓名。3使用SELECT語句進行條件查詢(1)在grade表中查找分數(shù)在8090范圍內(nèi)的學(xué)生的學(xué)號和分數(shù)。(2)在grade表中查詢課程編號為0003的學(xué)生的平均分。(3)在grade表中查詢學(xué)習(xí)各門課程的人數(shù)。(4)將學(xué)生按出生日期由大到小排序。(5)查詢所有姓“張”的學(xué)生的學(xué)號和姓名。SELECT學(xué)號,
19、姓名 FROM student_lnfo WHERE姓名LIKE張4嵌套查詢(1)在student_lnfo表中查找與“劉衛(wèi)平”性別相同的所有學(xué)生的姓名、出生日期。 SELECT 姓名,出生日期 FROM student_lnfo WHERE性別= (SELECT性別 FROM student_lnfo WHERE姓名=劉衛(wèi)平)(2)使用IN子查詢查找所修課程編號為0002、0005的學(xué)生學(xué)號、姓名、性別。 SELECT學(xué)號,姓名,性別 FROM student_info WHERE student_info學(xué)號 IN (SELECT學(xué)號 FROM grade WHERE課程編號IN(0002
20、,0005)(3)列出學(xué)號為0001的學(xué)生的分數(shù)比0002的學(xué)生的最低分數(shù)高的課程編號和分數(shù)。 SELECT 課程編號,分數(shù) FROM grade WHERE學(xué)號=0001AND分數(shù)ANY (SELECT分數(shù) FROM grade WHERE學(xué)號=0002)(4)列出學(xué)號為0001的學(xué)生的分數(shù)比學(xué)號為0002的學(xué)生的最高成績還要高的課程編號和分數(shù)。5多表查詢(1)查詢分數(shù)在8090范圍內(nèi)的學(xué)生的學(xué)號、姓名、分數(shù)。 SELECT student_info學(xué)號,姓名,分數(shù) FROM student_info,grade WHERE student_info學(xué)號=grade學(xué)號 AND分數(shù) BETW
21、EEN 80 AND 90(2)查詢學(xué)習(xí)“ C語言程序設(shè)計”課程的學(xué)生的學(xué)號、姓名、分數(shù)。 SELECT student_info學(xué)號,姓名,分數(shù) FROM student_info INNER JOIN grade ON student_info學(xué)號=grade學(xué)號 INNER JOIN curriculum ON課程名稱=C語言程序設(shè)計(3)查詢所有男同學(xué)的選課情況,要求列出學(xué)號、姓名、課程名稱、分數(shù)。(4)查詢每個學(xué)生的所選課程的最高成績,要求列出學(xué)號、姓名、課程編號、分數(shù)。(5)查詢所有學(xué)生的總成績,要求列出學(xué)號、總成績,沒有選修課程的學(xué)生的總成績?yōu)榭铡L崾荆菏褂米笸膺B接。(6)為gr
22、ade表添加數(shù)據(jù)行:學(xué)號0004、課程編號為0006、分數(shù)為76。查詢所有課程的選修情況,要求列出課程編號、課程名稱、選修人數(shù),curriculum 表中沒有的課程列值為空。提示:使用右外連接。6、使用UNION運算符將student_lnfo表中姓“張”的學(xué)生的學(xué)號、姓名與curriculum 表的課程編號、課程名稱返回在一個表中,且列名為u_編號、u_名稱。7數(shù)據(jù)更新(1)創(chuàng)建totalgrade表,具有數(shù)據(jù)列:學(xué)號、姓名、總成績。 CREATE TABLE totalgrade (學(xué)號 char(4)NOT NULL, 姓名 varchar(8)Null, 總成績 decimal(5,2
23、)NULL)(2)使用INSERT INTO語句通過student_lnfo表更新totalgrade表的學(xué)號、姓名列數(shù)據(jù)。 INSERT INTO totalgrade SELECT學(xué)號,姓名,總成績=0 FROM student_info(3)使用UPDATE語句通過grade表更新totalgrade表的總成績列數(shù)據(jù),使totalgrade表中每個學(xué)生的總成績?yōu)間rade表中該學(xué)生各成績之和。UPDATE totalgrade SET總成績=(SELECT SUM(分數(shù))FROM grade WHERE totalgrade學(xué)號=grade學(xué)號)FROM grade(4)刪除totalg
24、rade表中沒有總成績的學(xué)生記錄。四、實驗思考1查詢所有沒有選修課程的學(xué)生信息,返回結(jié)果包括學(xué)號、姓名、性別。2在student_lnfo表和grade表之間實現(xiàn)交叉連接。3查詢每個學(xué)生的所選課程的成績,并列出學(xué)號生成分組匯總行(總成績)和明細行(各課成績)。提示:使用 SELECT語句的 COMPUTE選項。實驗4 索引和視圖及數(shù)據(jù)完整性項目1 索引和視圖一、實驗?zāi)康?學(xué)會使用企業(yè)管理器和 Transact-SQL語句CREATE INDEX創(chuàng)建索引。 2學(xué)會使用企業(yè)管理器查看索引。3學(xué)會使用企業(yè)管理器和Transact-SQL語句DROP INDEX刪除索引。4掌握使用企業(yè)管理器、向?qū)У葎?chuàng)
25、建、管理和刪除全文索引,并使用全文索引查詢信息的方法。5掌握使用企業(yè)管理器和Transact-SQL語句CREATE VIEW創(chuàng)建視圖的用法。6掌握系統(tǒng)存儲過程sp_rename的用法。7掌握使用Transact-SQL語句ALTER VIEW修改視圖的方法。二、實驗準備1了解聚集索引和非聚集索引的概念。2了解使用Transact-SQL語句CREATE INDEX創(chuàng)建索引的語法。3了解使用企業(yè)管理器創(chuàng)建索引的步驟。4了解Transact-SQL語句 DROP INDEX刪除索引的用法。5了解創(chuàng)建視圖的Transact-SQL語句CREATE VIEW的語法格式及用法。6了解修改視圖的Tran
26、sact-SQL語句ALTER VIEW的語法格式。7了解視圖更名的系統(tǒng)存儲過程sp_rename的用法。8了解刪除視圖的Transact-SQL語句DROP VIEW的用法。三、實驗內(nèi)容l分別使用企業(yè)管理器和Transact-SQL語句為studentsdb數(shù)據(jù)庫的student_info表和curriculum表創(chuàng)建主鍵索引。2使用企業(yè)管理器按curriculum表的課程編號列創(chuàng)建唯一性索引。3分別使用企業(yè)管理器和Transact-SQL語句為studentsdb數(shù)據(jù)庫的grade表的“分數(shù)”字段創(chuàng)建一個非聚集索引,命名為grade_index。 CREATE INDEX grade_ln
27、dex ON grade(分數(shù))4為studentsdb數(shù)據(jù)庫的grade表的“學(xué)號”和“課程編號”字段創(chuàng)建一個復(fù)合唯一索引,命名為grade_id_c_ind。 CREATE UNIQUE INDEX grade_id_c_ind ON grade(學(xué)號,課程編號)5分別使用企業(yè)管理器和系統(tǒng)存儲過程sp_helpindex查看grade表和student_info表上的索引信息。 sp_helpindex grade6使用企業(yè)管理器的向?qū)А惫ぞ邔rade表創(chuàng)建一個聚集索引和唯一索引。7使用系統(tǒng)存儲過程sp_rename將索引grade_index更名為grade_ind。 sp_renam
28、e gradegrade_index, grade_ind,INDEX 8分別使用企業(yè)管理器和Transact-SQL語句 DROP INDEX刪除索引grade_ind。再次使用系統(tǒng)存儲過程sp_helpindex查看grade表上的索引信息。 DROP INDEX gradegrade_ind 9分別使用企業(yè)管理器和系統(tǒng)存儲過程sp_fulltext_database為studentsdb數(shù)據(jù)庫啟用全文檢索。10分別使用企業(yè)管理器和系統(tǒng)存儲過程sp_fulltext_catalog為studentsdb數(shù)據(jù)庫建立全文目錄,命名為FT_stu。為student_info表建立全文索引數(shù)據(jù)元。
29、 execute sp_fulltext_catalog FT_stu,create exec sp_fulltext_table student_info,create,F(xiàn)T_stu,PK_ student_info 在建立全文索引數(shù)據(jù)元之前保證已為student_info表建立了PK_ student_info索引。11為student_info表設(shè)置全文索引列名為家庭住址。在全文目錄中注冊該表,激活表的全文檢索能力。 column student_info,家庭住址,add execute sp_fulltext_ table student_info,activate12填充全文目錄,
30、檢查全文目錄填充情況。 execute sp_fulltext_catalogFT_stu,start_full While(fulltextcatalogproperty(FT_stu,populateStatus)<>0) BEGIN waitfor delay,0:0:30如果全文目錄正處于填充狀態(tài),則等待30s后再檢測一次 END13在student_info表中,分別使用CONTAINS和FREETEXT函數(shù)通過全文目錄檢索家庭住址包含25號的記錄。 SELECT姓名,家庭住址 FROM student_info WHERE CONTAINS(家庭住址,25號)14使用系
31、統(tǒng)存儲過程從studentsdb數(shù)據(jù)庫中禁用全文檢索。15在studentsdb數(shù)據(jù)庫中,以student_info表為基礎(chǔ),使用企業(yè)管理器建立名為v_stu_i的視圖,使視圖顯示學(xué)生姓名、性別、家庭住址。16在 studentsdb數(shù)據(jù)庫中,使用Transact-SQL語句 CREATE VIEW建立一個名為v_stu_c的視圖,顯示學(xué)生的學(xué)號、姓名、所學(xué)課程的課程編號,并利用視圖查詢學(xué)號為0003的學(xué)生情況。17基于student_info表、curriculum表和grade表,建立一個名為v_stu_g的視圖,視圖中具有所有學(xué)生的學(xué)號、姓名、課程名稱、分數(shù)。使用視圖v_stu_g查詢學(xué)
32、號為0001的學(xué)生的所有課程與成績。 18分別使用企業(yè)管理器和Transact-SQL語句修改視圖v_stu_c,使之顯示學(xué)號、姓名、每個學(xué)生所學(xué)課程數(shù)目。19使用Transact-SQL語句 ALTER VIEW修改視圖v_stu_i,使其具有列名學(xué)號、姓名、性別。 ALTER VIEW v_stu_i(學(xué)號,姓名,性別) AS SELECT學(xué)號,姓名,性別 FROM student_info 20使用系統(tǒng)存儲過程sp_rename將視圖v_stu_i更名為v_stu_info。 sp_rename v_stu_i,v_stu_info21利用視圖v_stu_i為student_info表添
33、加一行數(shù)據(jù):學(xué)號為0015、姓名為陳婷、性別為女。22利用視圖v_stu_i刪除學(xué)號為0015的學(xué)生記錄。23利用視圖v_stu_g修改姓名為劉衛(wèi)平的學(xué)生的高等數(shù)學(xué)的分數(shù)為84。24使用Transact-SQL語句 DROP VIEW刪除視圖v_stu_c和v_stu_g。四、實驗思考1是否可以通過視圖v_stu_g修改grade表中學(xué)號列數(shù)據(jù)?2通過對視圖上的操作,比較通過視圖和基表操作數(shù)據(jù)的異同。項目2 數(shù)據(jù)完整性一、實驗?zāi)康?掌握企業(yè)管理器和Transact-SQL語句(CREATE RULE、DROP RULE)創(chuàng)建和刪除規(guī)則的方法。2掌握系統(tǒng)存儲過程sp_bindrule、sp_un
34、bindrule綁定和解除綁定規(guī)則的操作方法,以及sp_help、sp_helptext查詢規(guī)則信息、sp_rename更名規(guī)則的方法。3掌握企業(yè)管理器和Transact-SQL語句(CREATE DEFAULT、DROP DEFAULT)創(chuàng)建和刪除默認對象的方法。4掌握系統(tǒng)存儲過程sp_bindefault、sp_unbindefault綁定和解除綁定默認對象的操作方法,以及sp_help、sp_helptext查詢規(guī)則信息、sp_rename更名規(guī)則的方法。5掌握企業(yè)管理器和Transact-SQL語句(CREATE TABLE、ALTER TABLE)定義和刪除約束的方法,并了解約束的類
35、型。二、實驗準備1了解數(shù)據(jù)完整性概念。2了解創(chuàng)建規(guī)則和刪除規(guī)則的語法,了解綁定規(guī)則和解除綁定規(guī)則的語法。3了解創(chuàng)建默認對象和刪除默認對象的語法,了解綁定和解除綁定默認對象的語法。4了解約束的類型、創(chuàng)建約束和刪除約束的語法。三、實驗內(nèi)容和步驟1為studentdb數(shù)據(jù)庫創(chuàng)建一個規(guī)則,限制所輸入的數(shù)據(jù)為7位09的數(shù)字。 (1)復(fù)制student_info表命名為stu_phone,在stu_phone表中插入一列,列名為“電話號碼”。完成以下代碼實現(xiàn)該操作。 SELECT * INTO stu_phone FROM student_info ALTER TABLE stu_phone ADD_ C
36、HAR(7)NULL stu_phone表結(jié)構(gòu)如圖1所示。 圖1 stu_phone表結(jié)構(gòu)(2)創(chuàng)建一個規(guī)則phone_rule,限制所輸入的數(shù)據(jù)為7位09的數(shù)字。實現(xiàn)該規(guī)則的代碼為 CREATE_ phone_rule AS Phone LIKE 0-90-90-90-90-90-90-9 (3)使用系統(tǒng)存儲過程sp_bindrule將phone_rule規(guī)則綁定到stu_phone表的“電話號碼”列上。實現(xiàn)該操作的代碼為 sp_bindrule_,stu_phone電話號碼 (4)輸入以下代碼,進行一次插入操作: INSERT INTO stu_phone(學(xué)號,姓名,電話號碼)VALUE
37、S(0009,王國強,1234yyy) 產(chǎn)生以下出錯信息: 服務(wù)器:消息513,級別16,狀態(tài)1,行1列的插入或更新與先前的 CREATE RULE語句所強制的規(guī)則沖突。該語句己終止。沖突發(fā)生于數(shù)據(jù)庫studentsdb。表stu_phone,列電話號碼試分析:為什么會產(chǎn)生該出錯信息?如果要實現(xiàn)插入操作,應(yīng)修改INSERT INTO語句中的哪個值?phone_rule規(guī)則能否對其他操作(如 DELETE)進行規(guī)則檢查?2使用企業(yè)管理器實現(xiàn)實驗內(nèi)容1的每個操作。3創(chuàng)建一個規(guī)則stusex_rule,將其綁定到stu_phone表的“性別”列上,保證輸入的性別值只能是“男”或“女”。4使用系統(tǒng)存儲
38、過程sp_help查詢stusex_rule規(guī)則列表,使用sp_helptext查詢stusex_rule規(guī)則的文本,使用sp_rename將stusex_rule規(guī)則更名為stu_s_rule。5刪除stu_s_rule規(guī)則。 注意:stu_s_rule為stusex_rule更名后規(guī)則名,是否仍然綁定在stu_phone表的“性別”列上,應(yīng)如何操作才能刪除它。6在 studentdb數(shù)據(jù)庫中,建立日期、貨幣和字符等數(shù)據(jù)類型的默認對象。 (1)在查詢分析器中,完成以下代碼,創(chuàng)建默認對象df_date、df_char、df_money。 一創(chuàng)建日期型默認對象df_date CREATE_df_
39、date AS2006-4-12 GO 一創(chuàng)建字符型默認對象df_char CREATE DEFAULT df_char _unknown GO 一創(chuàng)建貨幣型默認對象df_money CREATE DEFAULT_ AS 100 GO(2)輸人以下代碼,在studentsdb數(shù)據(jù)庫中創(chuàng)建stu_fee數(shù)據(jù)表。 CREATE TABLE stu_fee (學(xué)號 char(10)NOT NULL, 姓名 char(8) NOT NULL, 學(xué)費money , 交費日期 datetime, 電話號碼 char(7)(3)使用系統(tǒng)存儲過程sp_bindefault將默認對象df_date、df_cha
40、r、df_money分別綁定在stu_fee表的“學(xué)費”、“交費日期”、“電話號碼”列上。 _df_money,stu_fee學(xué)費 GO sp_bindefault_,stu_fee交費日期 GO sp_bindefault df_char, stu_fee電話號碼 GO (4)輸人以下代碼,在stu_fee表進行插入操作: INSERT INTO stu_fee(學(xué)號,姓名)values(0001,劉衛(wèi)平) INSERT INTO stu_fee(學(xué)號,姓名,學(xué)費)values(0001,張衛(wèi)民,120) INSERT INTO stu_fee(學(xué)號,姓名,學(xué)費,交費日期) VALUES(0
41、001,馬東,110,2006-5-12) 分析stu_fee表中插入記錄的各列的值是什么? (5)完成以下代碼解除默認對象 df_char的綁定,并刪除之。 _stu_fee電話號碼 _DEFAULT df _Char 按同樣的方式,刪除默認對象df_date、df_money。7使用企業(yè)管理器創(chuàng)建默認對象df_date、df_money,并將它們分別綁定到stu_fee表的“學(xué)費”、“交費日期”、“電話號碼”列上,在插入操作中觀察stu_fee表的數(shù)據(jù)變化情況,操作完成后,刪除這些默認對象。8為student_info表添加一列,命名為“院系”,創(chuàng)建一個默認對象stu_d_df,將其綁定到
42、student_info表的“院系”列上,使其默認值為“信息院”,對student_info表進行插入操作,操作完成后,刪除該默認對象。分別使用企業(yè)管理器和查詢分析器實現(xiàn)。9在studentsdb數(shù)據(jù)庫中用CREATE TABLE語句創(chuàng)建表stu_con,并同時創(chuàng)建約束。 (l)創(chuàng)建表的同時創(chuàng)建約束。 表結(jié)構(gòu)如圖2所示。 約束要求如下:將學(xué)號設(shè)置為主鍵(PRIMARY KEY), 圖2 要創(chuàng)建的表的結(jié)構(gòu)主鍵名為pk_sid. 為姓名添加唯一約束(UNIQUE),約束名為uk_name. 為性別添加默認約束(DEFAULT),默認名稱為df_sex,其值為“男”。 為出生日期添加屬性值約束(CH
43、ECK,約束名為ck_bday,其檢查條件為:出生日期>1988-1-l(2)在stu_con表中插入如表1-1所示的數(shù)據(jù)記錄。表1-1在stu_con表中插入的數(shù)據(jù) 學(xué)號 姓名 性別 出生日期 家庭住址 0009 張小東 1989-4-6 0010 李梅 女 1983-8-5 0011 王強 1988-9-10 0012 王強 1989-6 -3 分析各約束在插入記錄時所起的作用,查看插入記錄后表中數(shù)據(jù)與所插入的數(shù)據(jù)是否一致?(3)使用ALTER TABLE語句的DROP CONSTRAINT參數(shù)項在查詢分析器中刪除為stu_con表所建的約束。10用企業(yè)管理器完成實驗內(nèi)容9的所有設(shè)置
44、。11在查詢分析器中,為studentsdb數(shù)據(jù)庫的grade表添加外鍵約束(FOREIGNKEY),要求將“學(xué)號”設(shè)置為外鍵,參照表為studentinfo,外鍵名稱為fk_sid。 使用系統(tǒng)存儲過程sp_help查看grade表的外鍵信息。 在grade表中插入以下記錄,觀察SQL Server會做何處理,為什么?如何解決所產(chǎn)生的問題? 學(xué)號課程編號分數(shù) 0100000178 使用查詢分析器刪除grade表的外鍵fk_sid。四、實驗思考 1在SQL Server 2000中??刹捎媚男┓椒▽崿F(xiàn)數(shù)據(jù)完整性? 2比較默認對象和默認約束的異同。實驗5 Transact-SQL程序設(shè)計一、實驗?zāi)?/p>
45、的1掌握Transact-SQL的數(shù)據(jù)類型、常量變量、表達式等概念。2掌握程序中注釋的基本概念和使用方法。3掌握程序中的流程控制語句。4掌握SQL Server 2000中常用函數(shù)的用法。5掌握游標的概念和聲明方法,以及使用游標進行數(shù)據(jù)的查詢、修改、刪除操作等。二、實驗準備1了解程序中注釋的語法格式。2了解程序中的流程控制語句:IFELSE、CASE、WHILE等控制流語句。3了解系統(tǒng)提供的常用數(shù)學(xué)函數(shù)、日期和時間函數(shù)、字符串函數(shù)和數(shù)據(jù)類型轉(zhuǎn)換函數(shù)的用法。4了解函數(shù)的使用方法。5了解游標的使用方法。三、實驗內(nèi)容和步驟1在查詢分析器中,選擇studentsdb數(shù)據(jù)庫,輸入以下代碼。 DECLAR
46、E stu_ name varchar(l0) SELECTstu_ name =姓名 FROM student_ info WHERE姓名 LIKE張 SELECT stu_ name 觀察顯示的結(jié)果,與student_ info表中數(shù)據(jù)進行比較,stu_ name賦值的是SELECT結(jié)果集中的哪個數(shù)據(jù)?2定義int型局部變量grademax、grademin、gradesum,在 grade表中查找最高分、最低分和總分,分別賦給grademax、grademin、gradesum,并顯示。DECLAREgrademax int,grademin int,gradesum intSELECT
47、grademax=max(分數(shù)),grademin=min(分數(shù)),gradesum=sum(分數(shù))FROM gradeSELECT grademax,grademin ,gradesum 3使用SET命令將查詢的結(jié)果數(shù)目賦值給int型局部變量row。給下面代碼中的劃線處填上適當(dāng)?shù)膬?nèi)容,以完成上述操作。 DECLARE rows SET_(SELECT COUNT(*)FROM grade) _rows 一顯示rows的值4以下代碼在 curriculum表中插入新記錄: DECLARE intCId int,intErrorCode int INSERT INTO curriculum(課程
48、編號,課程名稱,學(xué)分) VALUES(0006,VB程序設(shè)計,2) SELECT intCId=identity,intErrorCode=error SELECT intCId,intErrorCode將該代碼段連續(xù)執(zhí)行兩次,觀察兩次顯示的信息及curriculum表中數(shù)據(jù)的變化,為什么前后兩次執(zhí)行時顯示的信息會不同?5在 studentsdb數(shù)據(jù)庫的student_info表中,以“性別”為分組條件,分別統(tǒng)計男生和女生人數(shù)。6在grade表中,使用適當(dāng)函數(shù)找出“高等數(shù)學(xué)”課程的最高分、最低分和平均分。7定義一個 datetime型局部變量studate,以存儲當(dāng)前日期。計算 student
49、_info表中的學(xué)生的年齡,并顯示學(xué)生的姓名、年齡。在以下代碼的劃線部分填入適當(dāng)內(nèi)容,以實現(xiàn)上述功能。 DECLARE_datetime SETstudate=_ 一給studate賦值為當(dāng)前日期 SELECT姓名,_(studate)year(出生日期)AS年齡 FROM student_info8運行以下代碼,寫出運行結(jié)果。 DECLARE a nit,b nit SET a168 SET b=73 SELECT a b,ab,ab9在局部變量stu_id中存儲了學(xué)號值。編寫代碼查詢學(xué)號為0001的學(xué)生的各科平均成績,如果平均分=60則顯示“你的成績及格了,恭賀你!”,否則顯示“你的成績不
50、及格”。 IF(SELECT AVG(分數(shù))FROM grade where學(xué)號=0001)<60) PRINT你的成績不及格 ELSE PRINT 你的成績及格了,恭賀你!10運行以下代碼段,寫出運行的結(jié)果。 DECLAREcounter int SETcounter=1 WHILE counter<10 BEGIN SELECT counter的值現(xiàn)在為:+CONVERT(CHAR(2),counter) SETcounter =counter+1 END 11查詢 grade表。如果分數(shù)大于等于90顯示A;如果分數(shù)大于等于80小于90,顯示B;如果分數(shù)大于等于70小于80,顯示C;如果分數(shù)大于等于60小于70,顯示D;其他顯示E。在以下代碼的劃線部分填入適當(dāng)內(nèi)容
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腰椎管狹窄護理要點
- 商業(yè)地產(chǎn)數(shù)字化營銷與數(shù)字孿生的關(guān)系研究
- 女性消費者行為分析在女包營銷中的運用
- 基于云技術(shù)的遠程教育數(shù)字資源建設(shè)研究
- 企業(yè)辦公數(shù)據(jù)的隱私保護措施分析
- 退休文化傳播設(shè)計顧問合同
- 基于數(shù)字孿生的現(xiàn)代建筑設(shè)計與運營模式研究
- 諸城市文化合同履約金約定
- 新能源匯集站新建工程實施方案(參考范文)
- 石英礦選礦項目實施方案(范文參考)
- 2024年國債資金管理辦法
- 黑龍江科技大學(xué)創(chuàng)業(yè)創(chuàng)新答案
- 智聯(lián)招聘行測筆試題庫
- 地坪工程合同格式模板
- 小滿 課件小滿 課件(21張)
- 中國抗日戰(zhàn)爭史智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
- AED(自動體外除顫儀)的使用
- 《大學(xué)生創(chuàng)業(yè)基礎(chǔ)系列課程》課件-第14-2課-創(chuàng)業(yè)財務(wù)管理-2學(xué)時
- 九江芳蘭湖公園規(guī)劃方案
- 全國自然教育中長期發(fā)展規(guī)劃
- 夏季預(yù)防胃腸疾病課件
評論
0/150
提交評論