版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、.浙江樹人大學(xué)信息科技學(xué)院?數(shù)據(jù)庫系統(tǒng)原理?實驗指導(dǎo)書適宜專業(yè):計算機科學(xué)與技術(shù)本科專業(yè)編寫部門:電子商務(wù)教研室編寫日期:2013.09;實驗一:SQL Server 2005效勞器管理1實驗二:創(chuàng)立和管理數(shù)據(jù)庫4實驗三:數(shù)據(jù)定義7實驗四:數(shù)據(jù)更新10實驗五:數(shù)據(jù)查詢113實驗六:數(shù)據(jù)查詢214實驗七:數(shù)據(jù)查詢317實驗八:數(shù)據(jù)查詢419實驗九:數(shù)據(jù)查詢521實驗十:視圖23實驗十一:約束、默認(rèn)、規(guī)那么25實驗十二、十三:存儲過程28實驗十四:數(shù)據(jù)庫的備份與復(fù)原31實驗一:SQL Server 2005效勞器管理一、 實驗?zāi)康耐ㄟ^實驗使學(xué)生掌握SQL Server 2005數(shù)據(jù)庫效勞器啟動、暫
2、停、停頓的方法;掌握SQL Server 2005數(shù)據(jù)庫效勞器的注冊方法。二、 原理解析1、 SQL Server 2005效勞器注冊注冊效勞器就是在SQL Server Management Studio中登記效勞器,然后把它參加到一個指定的效勞器組中,并在SQL Server Management Studio中顯示SQL Server效勞器的運行狀態(tài)和在SQL Server Management Studio連接時自動啟動SQL Server效勞器。2、 SQL Server 2005的各種實用工具l SQL Server Management StudioSQL Server提供了多種
3、實用工具來幫助用戶管理和使用數(shù)據(jù)庫,這些工具大大方便了用戶的工作。SQL Server Management Studio是微軟管理控制臺中的一個內(nèi)建控制臺,用來管理所有的SQL Server數(shù)據(jù)庫。l SQL Server Management Studio查詢窗口SQL Server Management Studio查詢窗口是一個圖形界面的查詢工具,用它可以提交Transact-SQL語言,然后發(fā)送到效勞器,并返回執(zhí)行結(jié)果,該工具支持基于任何效勞器的任何數(shù)據(jù)庫連接。l 性能監(jiān)視器SQL Server提供了監(jiān)視效勞器性能和活動的功能,其功能是在選擇的計數(shù)器上設(shè)置閥值,當(dāng)?shù)竭_閥值時,產(chǎn)生警告
4、。利用性能監(jiān)視器可以創(chuàng)立、觀察和保存功能圖表,用戶可以選擇對象和計數(shù)器并把它們添加到圖表中,不同顏色的圖表代表不同的計數(shù)器,假設(shè)要使圖表較小并且可讀,可以創(chuàng)立不同的圖表來監(jiān)視不同的統(tǒng)計類型。l 活動監(jiān)視器SQL 活動監(jiān)視器是圖形工具,使系統(tǒng)管理員得以監(jiān)視SQL Server 2005實例中的事件,可以捕獲有關(guān)每個事件的數(shù)據(jù)并將其保存到文件或SQL Server表中供以后分析。l SQL Server 2005聯(lián)機叢書提供如何使用SQL Server 2005的各種幫助。3、 SQL Server 2005的常用屬性配置l SQL Server 2005的登錄方式設(shè)置l SQL Server 2
5、005的連接設(shè)置4、 SQL Server 2005效勞器的運行管理 SQL Server 2005效勞器的啟動、暫停和停頓。三、 實驗內(nèi)容1、 啟動、暫停和停頓SQL Server實例2、 熟悉SQL Server 2005的各種實用工具3、 SQL Server 2005效勞器注冊四、 實驗步驟1、 啟動、暫停和停頓SQL Server實例l 利用SQL Server Management Studio在已注冊的效勞器或?qū)ο筚Y源管理器中,右鍵單擊要啟動的效勞器實例,然后單擊“啟動。 假設(shè)效勞器名稱旁邊的圖標(biāo)上出現(xiàn)一個綠色箭頭,那么說明效勞器已成功啟動。用同樣的方法可以暫停和停頓SQL Se
6、rver實例。l 利用SQL Server配置管理器1在“開場菜單中,依次指向“所有程序、“Microsoft SQL Server 2005和“配置工具,然后單擊“SQL Server 配置管理器。2在 SQL Server 配置管理器中,展開“效勞,再單擊 SQL Server。3在詳細信息窗格中,右鍵單擊 SQL Server MSSQLServer,再單擊“啟動。假設(shè)工具欄上和效勞器名稱旁的圖標(biāo)上出現(xiàn)綠色箭頭,那么指示效勞器已成功啟動。 用同樣的方法可以暫停和停頓SQL Server實例。2、 熟悉SQL Server 2005的各種實用工具l SQL Server Managemen
7、t Studiol SQL Server Management Studio查詢窗口l 練習(xí)使用SQL Server 2005聯(lián)機叢書3、 SQL Server 2005效勞器注冊l 在對象資源管理器中,右鍵單擊已經(jīng)連接的效勞器,然后單擊“注冊。l 在“注冊效勞器對話框的“效勞器名稱文本框中,鍵入希望顯示在“已注冊的效勞器中的該效勞器的名稱。此項并不要求一定是效勞器名稱。l 在“效勞器說明文本框中,可以根據(jù)需要鍵入一些其他信息,以幫助標(biāo)識效勞器。l 在“選擇效勞器組框中,單擊效勞器組,再單擊“保存。 實驗二:創(chuàng)立和管理數(shù)據(jù)庫一、實驗?zāi)康耐ㄟ^實驗使學(xué)生掌握SQL Server 2005數(shù)據(jù)庫的文
8、件構(gòu)造,數(shù)據(jù)庫的創(chuàng)立和修改方法。二、原理解析1、SQL Server 2005數(shù)據(jù)庫文件和文件組SQL Server 2005用文件來存放數(shù)據(jù)庫,即將數(shù)據(jù)庫映射到操作系統(tǒng)文件上。數(shù)據(jù)庫文件有主數(shù)據(jù)文件、次數(shù)據(jù)文件、事務(wù)日志文件。主數(shù)據(jù)文件的后綴.mdf,次數(shù)據(jù)文件的后綴.nfd,事務(wù)日志文件的后綴.ldf。一個數(shù)據(jù)庫有且僅有一個主文件,事務(wù)日志文件至少一個,次數(shù)據(jù)文件可有可無。SQL Server 2005中提供了兩種類型的文件組:主文件組和用戶自定義文件組。2、 SQL Server 2005數(shù)據(jù)庫類型SQL Server 2005數(shù)據(jù)庫分為系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。系統(tǒng)數(shù)據(jù)庫包括master
9、數(shù)據(jù)庫、tempdb數(shù)據(jù)庫、model數(shù)據(jù)庫和msdb數(shù)據(jù)庫。3、 SQL Server 2005數(shù)據(jù)庫的創(chuàng)立方法SQL Server 2005數(shù)據(jù)庫可以使用SQL Server Management Studio創(chuàng)立,也可以使用T-SQL語句來創(chuàng)立。用SQL Server Management Studio創(chuàng)立數(shù)據(jù)庫比較簡單,只要設(shè)置好數(shù)據(jù)庫名和主文件、次文件以及日志文件的位置和邏輯名、物理名就可以了。下面介紹用T-SQL的CREATE DATABASE語句創(chuàng)立數(shù)據(jù)庫。CREATE DATABASE database_name ON<filespec>,n,<filegro
10、up>,n LOG ON <filespec>,n COLLATE <collation_name> FOR LOAD|FOR ATTACH<filespec>:= PRIMARYNAME='邏輯文件名',FILENAME='存放數(shù)據(jù)庫的物理途徑和文件名', SIZE=數(shù)據(jù)文件的初始大小, MAXSIZE=指定文件的最大大小, FILEGROWTH=指出文件每次的增量4、 SQL Server 2005數(shù)據(jù)庫的修改SQL Server 2005數(shù)據(jù)庫的修改主要包括括修改數(shù)據(jù)庫選項、擴大分配給數(shù)據(jù)庫的數(shù)據(jù)或事務(wù)日志空間、壓
11、縮分配給數(shù)據(jù)庫的數(shù)據(jù)或事務(wù)日志空間、添加數(shù)據(jù)和事務(wù)日志文件、創(chuàng)立文件組等。本次實驗要求掌握使用企業(yè)管理器工具和T-SQL語句及系統(tǒng)存儲過程對數(shù)據(jù)庫進展管理。SQL Server 2005數(shù)據(jù)庫的修改可以在SQL Server Management Studio中完成,也可以使用T-SQL的ALTER DATABASE語句進展。ALTER DATABASE語句的語法構(gòu)造如下:ALTER DATABASE database_name ADD FILE <filespec>,nTO FILEGROUP filegroup_name /*在文件組中增加數(shù)據(jù)文件*/|ADD LOG FILE
12、 <filespec>,n /*增加事務(wù)日志文件*/|REMOVE FILE logical_file_name /*刪除數(shù)據(jù)文件*/|ADD FILEGROUP filegroup_name /*增加文件組*/|REMOVE FILEGROUP filegroup_name /*刪除文件組*/|MODIFY FILE <filespec> /*修改文件屬性*/|MODIFY NAME=new_dbname /*更新數(shù)據(jù)庫名稱*/三、實驗內(nèi)容1、用SQL Server Management Studio創(chuàng)立數(shù)據(jù)庫2、用CREATE DATABASE語句創(chuàng)立數(shù)據(jù)庫3、 用
13、SQL Server Management Studio修改數(shù)據(jù)庫4、 用ALTER DATABASE語句修改數(shù)據(jù)庫四、實驗步驟1、利用SQL Server Studio創(chuàng)立學(xué)生數(shù)據(jù)庫,數(shù)據(jù)文件的存放途徑和個數(shù)可以自己設(shè)定。2、用CREATE DATABASE語句來創(chuàng)立一個名為BOOK的數(shù)據(jù)庫,它由3MB的主數(shù)據(jù)文件、5MB的次數(shù)據(jù)文件和5MB的日志文件組成。并且主數(shù)據(jù)文件以1MB的增長速度其最大數(shù)據(jù)文件的大小為10MB,次數(shù)據(jù)文件以2MB的增長速度其最大次數(shù)據(jù)文件的大小為15MB,事務(wù)日志文件以1MB的增長速度其最大日志文件的大小為10MB。3、在SQL Server Studio中將學(xué)生數(shù)
14、據(jù)庫的主文件大小改為4MB。4、用ALTER DATABASE語句修改BOOK數(shù)據(jù)庫,為其增加一個次要數(shù)據(jù)文件Book_data2.ndf,該文件的大小是5MB,最大可增長到20MB,以20%的速度增長。5、利用SQL Server Studio為學(xué)生數(shù)據(jù)庫增加一個文件組MyFilegroup。提示:通過數(shù)據(jù)庫屬性文件組進展修改。6、用ALTER DATABASE語句為BOOK數(shù)據(jù)庫增加一個文件組MyFilegroup。7、用ALTER DATABASE語句為BOOK數(shù)據(jù)庫增加兩個次數(shù)據(jù)文件,并將他們放到MyFilegroup文件組。實驗三:數(shù)據(jù)定義一、實驗?zāi)康耐ㄟ^實驗使學(xué)生掌握用不用的方法設(shè)
15、計數(shù)據(jù)庫表構(gòu)造、修改數(shù)據(jù)庫表構(gòu)造以及刪除表構(gòu)造。二、原理解析1、用SQL Server 2005的SQL Server Management Studio設(shè)計數(shù)據(jù)庫表構(gòu)造用SQL Server 2005的SQL Server Management Studio設(shè)計數(shù)據(jù)庫表構(gòu)造比較簡單,只要在表設(shè)計器中對表中的各個字段進展設(shè)計,主要包括字段名、字段的數(shù)據(jù)類型等。2、用T-SQL的CREATE TABLE語句創(chuàng)立表構(gòu)造CREATE TABLE語句的語法構(gòu)造如下:CREATE TABLE table_namecolumn_name datatype NOT NULL|NULL3、用SQL Serve
16、r 2005的SQL Server Management Studio設(shè)計數(shù)據(jù)庫表構(gòu)造用SQL Server 2005的SQL Server Management Studio設(shè)計數(shù)據(jù)庫表構(gòu)造比較簡單,與創(chuàng)立表構(gòu)造類似,只要翻開表設(shè)計器,在表設(shè)計器中修改并加以保存就可以了。4、用T-SQL的CREATE TABLE語句創(chuàng)立表構(gòu)造CREATE TABLE語句的語法構(gòu)造如下:l 向表中添加列ALTER TABLE 表名ADD 列名 列的描繪l 刪除列ALTER TABLE 表名DROP COLUMN 列名l 修改列ALTER TABLE 表名ALTER COLUMN 列名 列的描繪5、刪除表構(gòu)造l
17、 使用SQL Server Management Studio刪除表 l 用T-SQL的DROP TABLE語句刪除表DROP TABLE 表名三、實驗內(nèi)容1、用SQL Server Management Studio創(chuàng)立數(shù)據(jù)庫表2、用CREATE TABLE語句創(chuàng)立數(shù)據(jù)庫表3、 用SQL Server Management Studio修改數(shù)據(jù)庫表構(gòu)造4、 用ALTER TABLE語句修改數(shù)據(jù)庫表構(gòu)造5、 用SQL Server Management Studio刪除表6、 用DROP TABLE語句刪除表四、實驗步驟學(xué)生數(shù)據(jù)庫由三張包括三張表xsqk、xskc、xscj,各個表的構(gòu)造如下:
18、xsqk構(gòu)造列名數(shù)據(jù)類型長度允許空值說明系別Char10班級Char12專業(yè)Varchar30學(xué)號Char8×主鍵姓名Char8×性別Char2默認(rèn)值:男出生年月Smalldatetime4總學(xué)分Tinyint備注Text16xskc構(gòu)造列名數(shù)據(jù)類型長度允許空值說明課程號Char3×主鍵課程名Char16×開課學(xué)期Tinyint×規(guī)那么:18學(xué)時Tinyint×學(xué)分Tinyintxscj構(gòu)造列名數(shù)據(jù)類型長度允許空值說明學(xué)號Char8×主鍵課程號Char3×主鍵成績Tinyint學(xué)分Tinyint1、利用SQL Se
19、rver Studio創(chuàng)立xsqk表。2、用CREATE TABLE語句創(chuàng)立xskc表和xscj表。3、利用SQL Server Studio修改xskc表,向表中添加一個字段:字段名為授課老師、數(shù)據(jù)類型為char、長度為10、并且允許為NULL。4、用ALTER TABLE語句修改xskc,將剛剛添加的授課老師字段刪除。5、用ALTER TABLE語句修改xskc,將課程名長度改為18。6、用SQL Server Studio刪除數(shù)據(jù)表xscj。7、用DROP TABLE語句刪除數(shù)據(jù)表xskc。實驗四:數(shù)據(jù)更新一、實驗?zāi)康耐ㄟ^實驗使學(xué)生掌握用不用的方法實現(xiàn)數(shù)據(jù)庫表數(shù)據(jù)的插入、更新和刪除。二、
20、原理解析5、 用SQL Server 2005的SQL Server Management Studio實現(xiàn)表數(shù)據(jù)的更新用SQL Server 2005的SQL Server Management Studio實現(xiàn)表數(shù)據(jù)的更新比較簡單,只要翻開表,直接在里邊作修改,然后退出,系統(tǒng)會自動保存。6、 用T-SQL的INSERT語句向表中插入數(shù)據(jù)INSERT語句的語法構(gòu)造如下:INSERT INTO 表名 列名VALUES表達式7、 用INSERTSELECT語句向表中批量插入數(shù)據(jù)INSERTSELECT語句的語法構(gòu)造如下:INSERT INTO 表名 SELECT語句8、 用T-SQL的UPDAT
21、E語句修改表數(shù)據(jù)UPDATE語句的語法構(gòu)造如下:UPDATE 表名SET 列名= 表達式 WHERE 條件 9、 刪除表數(shù)據(jù)l 用T-SQL的DELETE語句刪除表數(shù)據(jù) DELETE語句的語法構(gòu)造:DELETE 表名WHERE 條件l 用T-SQL的TRUNCATE TABLE語句刪除表TRUNCATE TABLE語句的語法構(gòu)造:TRUNCATE TABLE 表名三、實驗內(nèi)容4、 用SQL Server Management Studio更新表數(shù)據(jù)5、 用INSERT語句向表中插入數(shù)據(jù)3、 用INSERTSELECT語句向表中插入數(shù)據(jù)4、 用UPDATE語句修改表數(shù)據(jù)5、 用DELETE語句刪
22、除表數(shù)據(jù)6、 用TRUNCATE TABLE語句刪除表數(shù)據(jù)四、實驗步驟1、利用SQL Server Studio向xsqk表、xskc表、xscj表中插入數(shù)據(jù)。表1 學(xué)生情況表xsqk數(shù)據(jù)樣本系別班級專業(yè)學(xué)號姓名性別出生年月總學(xué)分備注計算機計算機0203計算機應(yīng)用與維護02020201王玲玲女1981-8-269計算機計算機0203計算機應(yīng)用與維護02020202張燕紅女1981-10-209計算機計算機0203計算機應(yīng)用與維護02020203楊勇男1982-3-15計算機計算機0203計算機應(yīng)用與維護02020204王紅慶男1983-5-17計算機計算機0203計算機應(yīng)用與維護0202020
23、5陳園女1982-4-12計算機信息管理0201信息管理02020201黃薇娜女1983-8-198計算機信息管理0201信息管理02020202沈昊男1982-3-188計算機信息管理0201信息管理02020203傅亮達男1983-1-22計算機信息管理0201信息管理02020204任建剛男1981-12-21計算機信息管理0201信息管理02020205葉小紅女1983-7-16表1 學(xué)生課程表xskc數(shù)據(jù)樣本課程號課程名開課學(xué)期學(xué)時學(xué)分101計算機文化根底1864102Qbasic1684205離散數(shù)學(xué)3644206VC2684208數(shù)據(jù)構(gòu)造2684210操作系統(tǒng)3644212計算機
24、組成4865216數(shù)據(jù)庫原理2684301計算機網(wǎng)絡(luò)5563表2 學(xué)生成績表xscj數(shù)據(jù)樣本學(xué)號課程號成績學(xué)分02020201101854020202011027050202020210190402020202102805020202011018640202020120880402020202208504020202022166042、用向xskc表中插入如下表所示的兩條記錄。假設(shè)學(xué)生成績表xskc中有如下數(shù)據(jù):表4 要插入的記錄值課程號課程名開課學(xué)期學(xué)時學(xué)分102Qbasic1684205離散數(shù)學(xué)36443、利用SQL Server Studio Management修改xsqk表、xskc
25、表、xscj表中的數(shù)據(jù)。4、用UPDATE語句修改xskc,將102課程的學(xué)分改為6。5、用UPDATE語句修改xsqk,將信息管理專業(yè)學(xué)生的總學(xué)分改為12。6、用DELETE語句刪除“離散數(shù)學(xué)的課程信息。7、用DELETE語句刪除1983年出生的學(xué)生信息。8、用DELETE語句刪除不及格的選課信息。9、用TRUNCATE TABLE語句刪除xsqk表中的所有信息。實驗五:數(shù)據(jù)查詢1 一、 實驗?zāi)康耐ㄟ^對SELECT的使用,掌握SELECT語句的構(gòu)造及其應(yīng)用,掌握基于單個表的查詢。二、 原理解析語法格式為: SELECT目的列組 FROM數(shù)據(jù)源 WHERE元組選擇條件 GROUP BY分列組H
26、AVING 組選擇條件 ORDER BY排序列1排序要求1 ,n1 SELECT子句SELECT子句用于指明查詢結(jié)果集的目的列。2 FROM子句FROM子句用于指明查詢的數(shù)據(jù)源。3 WHERE子句WHERE子句通過條件表達式描繪關(guān)系中元組的選擇條件。4 GROUP BY子句GROUP BY子句的作用是按分組列的值對結(jié)果集分組。 5 ORDER BY子句ORDER BY子句的作用是對結(jié)果集進展排序。三、 實驗內(nèi)容1取出生年月小于1982-1-1的學(xué)生名單。2檢索xsqk表中的所有記錄數(shù)據(jù)。3查詢班級為“計算機0203的學(xué)生學(xué)號、姓名、性別。4查詢出生年月在“1981-01-01至“1982-05
27、-01之間的學(xué)生情況。5查詢姓名中含有“紅字的學(xué)生情況。6查詢出生年月在“1981-01-01至“1982-05-01之間的學(xué)生情況,并以出生年月按降序排列。7統(tǒng)計學(xué)生情況xsqk表中“計算機0203的班級有多少人。8統(tǒng)計學(xué)生成績xscj表中每門課程的最低分、最高分和平均分。9在學(xué)生成績庫中查詢出生年月在“1981-01-01至“1982-05-01之間的男生姓名,班級,出生年月,并以出生年月按降序排列。10統(tǒng)計“信息管理專業(yè)的人數(shù)。11查詢至少選修了二門及以上課程的學(xué)生學(xué)號。12查詢至少被2位學(xué)生選修的課程號。實驗六:數(shù)據(jù)查詢2一、實驗?zāi)康耐ㄟ^對SELECT的使用,掌握SELECT語句的構(gòu)造
28、及其應(yīng)用,掌握連接查詢。二、 原理解析語法格式為: SELECT目的列組 FROM數(shù)據(jù)源 WHERE元組選擇條件 GROUP BY分列組HAVING 組選擇條件 ORDER BY排序列1排序要求1 ,n1 SELECT子句SELECT子句用于指明查詢結(jié)果集的目的列。2 FROM子句FROM子句用于指明查詢的數(shù)據(jù)源。3 WHERE子句WHERE子句通過條件表達式描繪關(guān)系中元組的選擇條件。4 GROUP BY子句GROUP BY子句的作用是按分組列的值對結(jié)果集分組。 5 ORDER BY子句ORDER BY子句的作用是對結(jié)果集進展排序。三、 實驗內(nèi)容1.查詢學(xué)號為2020202的學(xué)生所選的全部課程
29、的課程名和成績。2.查詢沒有學(xué)生選的課程號。3.查詢沒有成績的課程號,課程名。4.查詢沒有選修102號課程的學(xué)生姓名。5.查詢選修了101課程并且成績在80分以上的所有學(xué)生學(xué)號、姓名。6.查詢與“王玲玲在同一專業(yè)學(xué)習(xí)的學(xué)生姓名。7.查詢選修了課程名為“計算機文化根底的學(xué)生學(xué)號和姓名。8.查詢選修了課程名為“計算機文化根底或“數(shù)據(jù)構(gòu)造的學(xué)生學(xué)號和姓名。用連接查詢實現(xiàn)9.統(tǒng)計每個學(xué)生每個學(xué)期的最低分、最高分及平均分姓名、開課學(xué)期、最低分、最高分、平均分。10.查詢每門課程的最高分課程號、課程名、最高成績。11.查詢所有有選課記錄的學(xué)生的情況姓名,課程名,成績。12.查詢選修了學(xué)號為“2020201
30、的學(xué)生所選的某門課程的學(xué)生編號。實驗七:數(shù)據(jù)查詢3一、實驗?zāi)康耐ㄟ^對SELECT的使用,掌握SELECT語句的構(gòu)造及其應(yīng)用,掌握連接查詢。二、原理解析語法格式為: SELECT目的列組 FROM數(shù)據(jù)源 WHERE元組選擇條件 GROUP BY分列組HAVING 組選擇條件 ORDER BY排序列1排序要求1 ,n1 SELECT子句SELECT子句用于指明查詢結(jié)果集的目的列。2 FROM子句FROM子句用于指明查詢的數(shù)據(jù)源。3 WHERE子句WHERE子句通過條件表達式描繪關(guān)系中元組的選擇條件。4 GROUP BY子句GROUP BY子句的作用是按分組列的值對結(jié)果集分組。 5 ORDER BY
31、子句ORDER BY子句的作用是對結(jié)果集進展排序。三、實驗內(nèi)容1、查詢所有學(xué)生的姓名和課程名稱。2、查詢平均成績在60分以上的學(xué)生姓名。3、查詢每個學(xué)生的姓名、所選修的課程名及成績。4、查詢選修了課程的學(xué)生姓名。5、查詢選修課程數(shù)在兩門以上的學(xué)生姓名。用連接查詢和嵌套查詢兩種方法實現(xiàn)6、查詢成績及格的學(xué)生人數(shù)。7、查詢成績及格的學(xué)生人次。8、查詢所有學(xué)生都沒有選修的課程名稱。9、查詢每個學(xué)生的平均成績,并按平均成績的降序排序。10、查詢每個同學(xué)的最高分,要求顯示學(xué)號、姓名和分?jǐn)?shù)等信息。11、查詢選修同一門課程的學(xué)生學(xué)號。實驗八:數(shù)據(jù)查詢4一、實驗?zāi)康耐ㄟ^對SELECT的使用,掌握SELECT語
32、句的構(gòu)造及其應(yīng)用,掌握連接查詢。二、原理解析語法格式為: SELECT目的列組 FROM數(shù)據(jù)源 WHERE元組選擇條件 GROUP BY分列組HAVING 組選擇條件 ORDER BY排序列1排序要求1 ,n1 SELECT子句SELECT子句用于指明查詢結(jié)果集的目的列。2 FROM子句FROM子句用于指明查詢的數(shù)據(jù)源。3 WHERE子句WHERE子句通過條件表達式描繪關(guān)系中元組的選擇條件。4 GROUP BY子句GROUP BY子句的作用是按分組列的值對結(jié)果集分組。 5 ORDER BY子句ORDER BY子句的作用是對結(jié)果集進展排序。三、實驗內(nèi)容1、查詢所有課程成績都及格的學(xué)生姓名。sel
33、ect 姓名from xsqk where 學(xué)號 inselect 學(xué)號from xscjgroup by 學(xué)號having min成績>=602、查詢沒有選修“操作系統(tǒng)課程的學(xué)生姓名。select 姓名from xsqk where 學(xué)號not inselect 學(xué)號from xscj,xskc where xscj.課程號=xskc.課程號and 課程名='操作系統(tǒng)'3、查詢沒有選修任何課程的學(xué)生姓名。select 姓名from xsqkwhere 學(xué)號 not inselect 學(xué)號from xscj4、查詢沒有成績的學(xué)生姓名。select 姓名from xsqkw
34、here 學(xué)號inselect 學(xué)號from xscj where 成績is null5、查詢同時選修了“101和“208課程的學(xué)生姓名。select 姓名from xsqk,xscjwhere xsqk.學(xué)號=xscj.學(xué)號and 課程號='101' and xscj.學(xué)號 inselect 學(xué)號from xscj where 課程號='208'6、 求至少選修“101和“208其中一門課程的學(xué)生姓名。select 姓名from xsqk where 學(xué)號in select 學(xué)號from xscj where 課程號='101' or 課程號=
35、'208'7、 查詢成績在所有同學(xué)成績平均分之上的學(xué)生姓名。select 姓名from xsqk where 學(xué)號inselect 學(xué)號from xscj where 成績>select avg成績 from xscj實驗九:數(shù)據(jù)查詢5一、實驗?zāi)康耐ㄟ^對SELECT的使用,掌握SELECT語句的構(gòu)造及其應(yīng)用,掌握連接查詢。二、原理解析語法格式為: SELECT目的列組 FROM數(shù)據(jù)源 WHERE元組選擇條件 GROUP BY分列組HAVING 組選擇條件 ORDER BY排序列1排序要求1 ,n1 SELECT子句SELECT子句用于指明查詢結(jié)果集的目的列。2 FROM子
36、句FROM子句用于指明查詢的數(shù)據(jù)源。3 WHERE子句WHERE子句通過條件表達式描繪關(guān)系中元組的選擇條件。4 GROUP BY子句GROUP BY子句的作用是按分組列的值對結(jié)果集分組。 5 ORDER BY子句ORDER BY子句的作用是對結(jié)果集進展排序。三、實驗內(nèi)容1、查詢有學(xué)生選修的課程名稱。select 課程名from xskc where 課程號 in select 課程號from xscj2、查詢同時選修了“101和“208課程的學(xué)生姓名。用自身連接查詢實現(xiàn)select 姓名from xsqk where 學(xué)號 inselect a.學(xué)號from xscj a,xscj b whe
37、re a.學(xué)號=b.學(xué)號and a.課程號='101' and b.課程號='208'3、查詢選修了課程名為“計算機文化根底或“數(shù)據(jù)構(gòu)造的學(xué)生學(xué)號和姓名。用結(jié)合查詢實現(xiàn)select xsqk.學(xué)號,姓名from xsqk,xscj,xskcwhere xsqk.學(xué)號=xscj.學(xué)號and xskc.課程號=xscj.課程號and 課程名='計算機文化根底'unionselect xsqk.學(xué)號,姓名from xsqk,xscj,xskcwhere xsqk.學(xué)號=xscj.學(xué)號and xskc.課程號=xscj.課程號and 課程名='數(shù)
38、據(jù)構(gòu)造'4、查詢每個同學(xué)的最高分。姓名、成績select 姓名,max成績 from xsqk,xscj where xsqk.學(xué)號=xscj.學(xué)號group by 姓名5、查詢平均成績及格的學(xué)生姓名。select 姓名from xsqk,xscjwhere xsqk.學(xué)號=xscj.學(xué)號 group by 姓名having avg成績>=606、查詢每個同學(xué)成績及格的課程門數(shù)。姓名、及格課程數(shù)select 姓名,count* 及格課程數(shù)from xsqk,xscjwhere xsqk.學(xué)號=xscj.學(xué)號and 成績>=60group by 姓名實驗十:視圖一、實驗?zāi)康耐?/p>
39、過實驗使學(xué)生掌握視圖的創(chuàng)立、視圖的查詢以及通過視圖更新插入、修改、刪除根本表中的數(shù)據(jù)。二、原理解析1、用SQL Server 2005的SQL Server Management Studio創(chuàng)立視圖用SQL Server 2005的SQL Server Management Studio創(chuàng)立視圖比較簡單,只要翻開視圖設(shè)計器對視圖進展編輯就可以完成視圖的創(chuàng)立。2、用T-SQL的CREATE VIEW語句創(chuàng)立視圖CREATE VIEW語句的語法構(gòu)造如下:CREATE VIEW 視圖名列名1, 列名2, nWITH 屬性AS 查詢語句WITH CHECK OPTION3、 視圖查詢視圖創(chuàng)立后就可以
40、像使用根本表一樣來使用,可以通過視圖進展查詢?;谝晥D的查詢可以簡化查詢語句。4、 視圖更新通過視圖更新可以實現(xiàn)根本表數(shù)據(jù)的更新,視圖更新包括視圖的插入、修改和刪除操作。5、 視圖刪除 DROP VIEW 視圖名三、實驗內(nèi)容1、用SQL Server Management Studio創(chuàng)立視圖2、用CREATE VIEW語句創(chuàng)立視圖3、 視圖查詢4、 視圖更新5、 視圖刪除四、實驗步驟1、用SQL Server Management Studio創(chuàng)立視圖。為學(xué)生情況XSQK表創(chuàng)立一個視圖V_XSQK,以顯示學(xué)生的根本信息,如學(xué)號、姓名、性別和出生年月。2、用T-SQL的CREATE VIEW語
41、句創(chuàng)立上述視圖。3、用CREATE VIEW語句創(chuàng)立視圖V_Student,要求顯示學(xué)生的姓名、選修的課程名和成績。4、查詢在1981-1-1以后出生的學(xué)生信息,包括學(xué)號,姓名,性別和出生年月。5、查詢成績合格的學(xué)生信息,包括姓名、課程名和成績。6、創(chuàng)立分組視圖V_STUDENT1,要求查詢每個學(xué)生的平均成績,包括姓名,課程名,平均成績。7、向視圖V_XSQK中插入一條記錄:2020206,李紅,1983-12-3,并觀察XSQK表中的數(shù)據(jù)是否發(fā)生變化。8、修改視圖V_XSQK,將李紅同學(xué)是出生年月改為1982-12-3,并觀察XSQK表中數(shù)據(jù)的變化。9、刪除視圖V_XSQK中李紅同學(xué)的信息,
42、并觀察XSQK表中數(shù)據(jù)的變化。10、查詢平均成績在60分以上的學(xué)生信息,包括姓名和平均成績。實驗十一:約束、默認(rèn)、規(guī)那么一、實驗?zāi)康耐ㄟ^數(shù)據(jù)庫中約束、默認(rèn)和規(guī)那么的使用,掌握約束、默認(rèn)、規(guī)那么的概念及約束、默認(rèn)、規(guī)那么的操作和使用方法。二、原理解析數(shù)據(jù)完好性維護數(shù)據(jù)庫輸入數(shù)據(jù)的正確性和一致性,通過定義數(shù)據(jù)完好性規(guī)那么,SQL Server可以通過自身提供的完好性規(guī)那么有效地管理數(shù)據(jù)的輸入,而不必要使用額外的應(yīng)用程序來協(xié)助管理,這樣一方面可以節(jié)省系統(tǒng)開銷,另一方面使數(shù)據(jù)庫中的數(shù)據(jù)獨立于應(yīng)用程序,使創(chuàng)立開放式數(shù)據(jù)庫系統(tǒng)成為可能。數(shù)據(jù)完好性包括實體的完好性、域完好性、參照完好性和用戶自定義完好性。1
43、、實體完好性實體完好性將記錄行定義為特定表的唯一實體。實體完好性強迫表中的所有記錄都有一個惟一的標(biāo)識符列通過UNIQUE約束、PRIMARY KEY約束或IDENTITY屬性。例如:在學(xué)生情況表中,學(xué)生的學(xué)號是惟一的,它與每個學(xué)生一一對應(yīng)。2、域完好性域完好性是指給定列的輸入有效性。強迫域有效性的方法有:通過限制數(shù)據(jù)類型包括自定義數(shù)據(jù)類型、格式CHECK約束和規(guī)那么或可能的取值范圍FOREIGN KEY約束、CHECK約束、DEFAULT定義、NOT NULL定義和規(guī)那么來實現(xiàn)。3、參照完好性參照完好性能確保數(shù)據(jù)庫中數(shù)據(jù)的一致性。在SQL Server中,參照完好性基于外鍵與主鍵之間或外鍵與唯
44、一鍵之間的關(guān)系通過FOREIGN KEY和 CHECK約束。參照完好性確保鍵值在所有表中一致,這樣的一致性要求不能引用不存在的值即指向不存在的行。假設(shè)在被參考的表中,某一記錄被外部鍵參考,那么該記錄就不能刪除,假設(shè)需要更改鍵值,那么在整個數(shù)據(jù)庫中,對該鍵值的所有引用都要進展一致的更改。參照完好性在輸入或刪除記錄時保持表之間已定義的關(guān)系。當(dāng)設(shè)置了參照完好性時,SQL Server將從以下幾個方面限制用戶對數(shù)據(jù)庫的操作:當(dāng)主表中沒有關(guān)聯(lián)的記錄時,向一個相關(guān)表添加記錄。更改了主表中的鍵值但沒有更改相關(guān)表中的數(shù)據(jù),從而使相關(guān)表中的記錄無法在主表中找到對應(yīng)記錄。從主表中刪除記錄,但在相關(guān)表中仍存在與該記
45、錄相匹配的記錄。例如:在學(xué)生成績庫中,只要學(xué)生在成績表中有成績記錄,那么該學(xué)生記錄就不能直接在學(xué)生情況表中刪除。4、用戶定義完好性可以在SQL Server中定義不屬于上述類別的特定規(guī)那么的用戶完好性定義。所有的完好性類型都支持用戶定義完好性CREATE TABLE中的所有列級和表級約束、存儲過程和觸發(fā)器。在SQL Server中,有兩種方式可以實現(xiàn)數(shù)據(jù)完好性,聲明數(shù)據(jù)完好性和過程數(shù)據(jù)完好性。聲明數(shù)據(jù)完好性是通過在對象定義中定義的標(biāo)準(zhǔn)來實現(xiàn)數(shù)據(jù)完好性,是由系統(tǒng)本身的自動強迫功能來實現(xiàn)的,它包含使用各種約束、默認(rèn)和規(guī)那么。而過程數(shù)據(jù)完好性是通過在腳本語言使用觸發(fā)器或存儲過程中定義的完好性標(biāo)準(zhǔn)來實
46、現(xiàn)的,當(dāng)這些腳本被執(zhí)行時,就可以強迫完好性的實現(xiàn)。三、實驗內(nèi)容1對學(xué)生情況表xsqk使用NOT NULL約束限制系別、學(xué)號和姓名列不能為空,使用PRIMARY KEY約束將學(xué)號設(shè)置為主鍵,使用CHECK約束對性別列中的值進展限制,使其值只能承受“男或“女,以強迫執(zhí)行域的完好性,性別的默認(rèn)值為“男。2在學(xué)生課程表中創(chuàng)立DEFAULT約束,約束名為Period_Def,要務(wù)實現(xiàn)使學(xué)時列的默認(rèn)值設(shè)置為72。3在學(xué)生成績表中創(chuàng)立FOREIGN KEY約束,約束名為Con_CourseNo,要務(wù)實現(xiàn)把學(xué)生成績表中的“課程號列和學(xué)生課程表中的“課程號關(guān)聯(lián)起來。4為學(xué)生課程表中的學(xué)分列定義一個DEFAULT
47、約束,默認(rèn)值為4。5在學(xué)生成績表中定義FOREIGN KEY約束,把學(xué)生成績表中的“學(xué)號列和學(xué)生情況表中的“學(xué)號關(guān)聯(lián)起來。6創(chuàng)立一個默認(rèn)值為'1982/1/1'的默認(rèn)值。7將創(chuàng)立的Default_Birthday默認(rèn)值綁定到學(xué)生情況表的出生年月列上。8創(chuàng)立一個規(guī)那么rule_Term_Range,用以限制輸入該規(guī)那么所綁定的列中的數(shù)據(jù)范圍為18。9將上題創(chuàng)立的rule_Term_Range規(guī)那么綁定到學(xué)生課程表的開課學(xué)期列上。10定義一個規(guī)那么rule_Speciality,這個規(guī)那么限制學(xué)生情況表中的專業(yè)列只能取以下的值:計算機應(yīng)用與維護、信息管理、電子商務(wù)、電子技術(shù)。綁定后
48、給學(xué)生情況表插入數(shù)據(jù)行,觀察規(guī)那么的設(shè)置情況,使用完畢后,解除并刪除該規(guī)那么。實現(xiàn)過程要求使用SQL語句完成。11將上述題目中的要求在SQL Server Management Studio中加以實現(xiàn)。實驗十二、十三:存儲過程一、實驗?zāi)康耐ㄟ^實驗使學(xué)生加深對數(shù)據(jù)完好性的理解,學(xué)會創(chuàng)立和使用存儲過程。二、原理解析1、存儲過程概述存儲過程是指,在一個執(zhí)行規(guī)劃中預(yù)先定義并編譯好的一組Transact-SQL語句。這些語句在一個名稱下存儲并作為一個單元進展處理。存儲過程是編寫數(shù)據(jù)庫代碼中的重要成份。它們可以是構(gòu)成任何一個由數(shù)據(jù)庫支撐的應(yīng)用程序的代碼,并且能被這些應(yīng)用程序中的任何一個調(diào)用。存儲過程能在查
49、詢分析器Query Analyzer窗口運行。它們可以被批處理文件調(diào)用,也可以由Access、Visual Basic或者其他編程語言的用戶接口程序來調(diào)用??梢韵衿渌永陶{(diào)用一樣,把參數(shù)傳給存儲過程。存儲過程會返回數(shù)據(jù)值、狀態(tài)代碼以及錯誤信息,這樣用戶就可以做出適當(dāng)?shù)捻憫?yīng)。存儲過程也能調(diào)用其他存儲過程。存儲過程可以在本地計算機或遠程效勞器上運行。在執(zhí)行系統(tǒng)內(nèi)部任務(wù)時,用戶可以指示SQL Server自動運行某種存儲過程。存儲過程類型包括系統(tǒng)存儲過程、本地存儲過程、臨時存儲過程、遠程存儲過程和擴展存儲過程。通過存儲過程的創(chuàng)立、執(zhí)行、修改和刪除操作,初步理解存儲過程的類型,掌握利用存儲過程進展程
50、序設(shè)計的方法技巧。2、存儲過程的類型系統(tǒng)存儲過程、用戶自定義存儲過程、擴展存儲過程。3、在SQL中創(chuàng)立存儲過程的語法創(chuàng)立存儲過程的語法為:CREATE PROC EDURE procedure_name ; number parameter data_type VARYING = default OUTPUT ,.n WITH RECOMPILE |
51、ENCRYPTION | RECOMPILE , ENCRYPTION FOR REPLICATION AS sql_statement .n 4、存儲過程的執(zhí)行執(zhí)行存儲過程: EXEC UTE return_status = procedure_name ;number | procedure_name
52、_var parameter = value | variable OUTPUT | DEFAULT ,.n WITH RECOMPILE 5、存儲過程中的參數(shù)輸入?yún)?shù)和輸出參數(shù)OUTPUT。三、實驗內(nèi)容(1) 創(chuàng)立不帶參數(shù)的存儲過程。(2) 創(chuàng)立帶輸入?yún)?shù)的存儲過程。(3) 創(chuàng)立帶輸出參數(shù)的存儲過程。四、實驗步驟1、在學(xué)生成績庫中創(chuàng)立存儲過程,存儲過程名為proc1,要務(wù)實現(xiàn)如下功能:根據(jù)學(xué)生學(xué)號,查詢該學(xué)生的選課情況,其中包括該學(xué)生學(xué)號、姓名、性別、課程號、課程名、成績和學(xué)分等。2、現(xiàn)有一學(xué)生學(xué)號為“02020201,要求通過調(diào)用上例中所建的名為proc1的存儲過程,實現(xiàn)顯示該學(xué)生的選課情況列表。3、在學(xué)生成績庫中創(chuàng)立一個名為proc2的存儲過程,產(chǎn)生一個學(xué)生選課情況列表,其中包括學(xué)號、姓名、性別、課程號、課程名、成績、學(xué)分等,并調(diào)用該存儲過程查看學(xué)生的選課情況。4、在學(xué)生成績庫中創(chuàng)立一個名為proc3的存儲過程,產(chǎn)生某門課程的選
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度產(chǎn)業(yè)園品牌推廣及市場合作合同3篇
- 2025年度濟南旅游開發(fā)合作合同2篇
- 2025版文化藝術(shù)行業(yè)崗位勞動合同規(guī)范匯編3篇
- 二零二五年度冠梁材料供應(yīng)與安裝承包合同3篇
- 二零二五年度房屋買賣合同:針對共有產(chǎn)權(quán)及子女入學(xué)權(quán)益3篇
- 2025年度版權(quán)許可使用合同:數(shù)字音樂平臺著作權(quán)授權(quán)協(xié)議2篇
- 皮帶修復(fù)課程設(shè)計
- 海南外國語職業(yè)學(xué)院《西方思想文化專題研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 海南外國語職業(yè)學(xué)院《環(huán)保設(shè)備基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 海南體育職業(yè)技術(shù)學(xué)院《建筑力學(xué)(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 蘇教版六年級科學(xué)上冊復(fù)習(xí)資料-已整理
- 科勒衛(wèi)浴行業(yè)分析
- 湖南省邵陽市初中聯(lián)考2023-2024學(xué)年九年級上學(xué)期期末地理試題
- 美術(shù)概論課件
- 綠籬移栽施工方案
- 機器人論文3000字范文
- 中國保險行業(yè)協(xié)會-2022年度商業(yè)健康保險經(jīng)營數(shù)據(jù)分析報告
- 新人教版小學(xué)五年級數(shù)學(xué)上冊知識點歸納總結(jié)
- 四年級上冊口算、豎式計算、脫式計算
- 腎內(nèi)科降低透析器凝血發(fā)生率品管圈PDCA成果匯報
- 回族做禮拜的念詞集合6篇
評論
0/150
提交評論