版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、浙江樹人大學信息科技學院數(shù)據(jù)庫系統(tǒng)原理實驗指導書適合專業(yè):計算機科學與技術本科專業(yè)編寫部門:電子商務教研室編寫日期:2012.0252 / 54文檔可自由編輯打印實驗一:SQL Server 2005服務器管理1實驗二:創(chuàng)建和管理數(shù)據(jù)庫4實驗三:數(shù)據(jù)定義7實驗四:數(shù)據(jù)更新10實驗五:數(shù)據(jù)查詢1簡單查詢13實驗六:數(shù)據(jù)查詢(2)連接查詢15實驗七:數(shù)據(jù)查詢(3)綜合17實驗八:視圖18實驗九:約束、默認、規(guī)則20實驗十:存儲過程23實驗十一:觸發(fā)器(1)26實驗十二:觸發(fā)器(2)28實驗十三:安全性管理32實驗十四:數(shù)據(jù)庫的備份與還原37實驗一:SQL Server 2005服務器管理一、 實驗
2、目的通過實驗使學生掌握SQL Server 2005數(shù)據(jù)庫服務器啟動、暫停、停止的方法;掌握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 Ser
3、ver Management StudioSQL Server提供了多種實用工具來幫助用戶管理和使用數(shù)據(jù)庫,這些工具大大方便了用戶的工作。SQL Server Management Studio是微軟管理控制臺中的一個內建控制臺,用來管理所有的SQL Server數(shù)據(jù)庫。l SQL Server Management Studio查詢窗口SQL Server Management Studio查詢窗口是一個圖形界面的查詢工具,用它可以提交Transact-SQL語言,然后發(fā)送到服務器,并返回執(zhí)行結果,該工具支持基于任何服務器的任何數(shù)據(jù)庫連接。l 性能監(jiān)視器SQL Server提供了監(jiān)視服務器性
4、能和活動的功能,其功能是在選擇的計數(shù)器上設置閥值,當達到閥值時,產(chǎn)生警告。利用性能監(jiān)視器可以創(chuàng)建、觀察和保存功能圖表,用戶可以選擇對象和計數(shù)器并把它們添加到圖表中,不同顏色的圖表代表不同的計數(shù)器,如果要使圖表較小并且可讀,可以創(chuàng)建不同的圖表來監(jiān)視不同的統(tǒng)計類型。l 活動監(jiān)視器SQL 活動監(jiān)視器是圖形工具,使系統(tǒng)管理員得以監(jiān)視SQL Server 2005實例中的事件,可以捕獲有關每個事件的數(shù)據(jù)并將其保存到文件或SQL Server表中供以后分析。l SQL Server 2005聯(lián)機叢書提供如何使用SQL Server 2005的各種幫助。3、 SQL Server 2005的常用屬性配置l
5、SQL Server 2005的登錄方式設置l SQL Server 2005的連接設置4、 SQL Server 2005服務器的運行管理 SQL Server 2005服務器的啟動、暫停和停止。三、 實驗內容1、 啟動、暫停和停止SQL Server實例2、 熟悉SQL Server 2005的各種實用工具3、 SQL Server 2005服務器注冊四、 實驗步驟1、 啟動、暫停和停止SQL Server實例l 利用SQL Server Management Studio在已注冊的服務器或對象資源管理器中,右鍵單擊要啟動的服務器實例,然后單擊“啟動”。 如果服務器名稱旁邊的圖標上出現(xiàn)一個
6、綠色箭頭,則說明服務器已成功啟動。用同樣的方法可以暫停和停止SQL Server實例。l 利用SQL Server配置管理器(1)在“開始”菜單中,依次指向“所有程序”、“Microsoft SQL Server 2005”和“配置工具”,然后單擊“SQL Server 配置管理器”。(2)在 SQL Server 配置管理器中,展開“服務”,再單擊 SQL Server。(3)在詳細信息窗格中,右鍵單擊 SQL Server (MSSQLServer),再單擊“啟動”。如果工具欄上和服務器名稱旁的圖標上出現(xiàn)綠色箭頭,則指示服務器已成功啟動。 用同樣的方法可以暫停和停止SQL Server實例
7、。2、 熟悉SQL Server 2005的各種實用工具l SQL Server Management Studiol SQL Server Management Studio查詢窗口l 練習使用SQL Server 2005聯(lián)機叢書3、 SQL Server 2005服務器注冊l 在對象資源管理器中,右鍵單擊已經(jīng)連接的服務器,然后單擊“注冊”。l 在“注冊服務器”對話框的“服務器名稱”文本框中,鍵入希望顯示在“已注冊的服務器”中的該服務器的名稱。此項并不要求一定是服務器名稱。l 在“服務器說明”文本框中,可以根據(jù)需要鍵入一些其他信息,以幫助標識服務器。l 在“選擇服務器組”框中,單擊服務器組
8、,再單擊“保存”。 實驗二:創(chuàng)建和管理數(shù)據(jù)庫一、實驗目的通過實驗使學生掌握SQL Server 2005數(shù)據(jù)庫的文件結構,數(shù)據(jù)庫的創(chuàng)建和修改方法。二、原理解析5、 SQL Server 2005數(shù)據(jù)庫文件和文件組SQL Server 2005用文件來存放數(shù)據(jù)庫,即將數(shù)據(jù)庫映射到操作系統(tǒng)文件上。數(shù)據(jù)庫文件有主數(shù)據(jù)文件、次數(shù)據(jù)文件、事務日志文件。主數(shù)據(jù)文件的后綴.mdf,次數(shù)據(jù)文件的后綴.nfd,事務日志文件的后綴.ldf。一個數(shù)據(jù)庫有且僅有一個主文件,事務日志文件至少一個,次數(shù)據(jù)文件可有可無。SQL Server 2005中提供了兩種類型的文件組:主文件組和用戶自定義文件組。6、 SQL Ser
9、ver 2005數(shù)據(jù)庫類型SQL Server 2005數(shù)據(jù)庫分為系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。系統(tǒng)數(shù)據(jù)庫包括master數(shù)據(jù)庫、tempdb數(shù)據(jù)庫、model數(shù)據(jù)庫和msdb數(shù)據(jù)庫。7、 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ù)據(jù)庫名和主文件、次文件以及日志文件的位置和邏輯名、物理名就可以了。下面介紹用T-SQL的CREATE DATABASE語句創(chuàng)建數(shù)據(jù)庫。CREA
10、TE DATABASE database_name ON<>,n,<>,n LOG ON <>,n COLLATE <collation_name> FOR LOAD|FOR ATTACH<>:= PRIMARY(NAME='邏輯文件名','存放數(shù)據(jù)庫的物理路徑和文件名', SIZE=數(shù)據(jù)文件的初始大小, MAXSIZE=指定文件的最大大小, 指出文件每次的增量)8、 SQL Server 2005數(shù)據(jù)庫的修改SQL Server 2005數(shù)據(jù)庫的修改主要包括括修改數(shù)據(jù)庫選項、擴充分配給數(shù)據(jù)庫的數(shù)據(jù)或事
11、務日志空間、壓縮分配給數(shù)據(jù)庫的數(shù)據(jù)或事務日志空間、添加數(shù)據(jù)和事務日志文件、創(chuàng)建文件組等。本次實驗要求掌握使用企業(yè)管理器工具和T-SQL語句及系統(tǒng)存儲過程對數(shù)據(jù)庫進行管理。SQL Server 2005數(shù)據(jù)庫的修改可以在SQL Server Management Studio中完成,也可以使用T-SQL的ALTER DATABASE語句進行。ALTER DATABASE語句的語法結構如下:ALTER DATABASE database_name ADD FILE <>,nTO /*在文件組中增加數(shù)據(jù)文件*/|ADD LOG FILE <>,n /*增加事務日志文件*/|R
12、EMOVE /*刪除數(shù)據(jù)文件*/|ADD /*增加文件組*/|REMOVE /*刪除文件組*/|MODIFY FILE <> /*修改文件屬性*/|MODIFY NAME=new_dbname /*更新數(shù)據(jù)庫名稱*/三、實驗內容4、 用SQL Server Management Studio創(chuàng)建數(shù)據(jù)庫5、 用CREATE DATABASE語句創(chuàng)建數(shù)據(jù)庫3、 用SQL Server Management Studio修改數(shù)據(jù)庫4、 用ALTER DATABASE語句修改數(shù)據(jù)庫四、實驗步驟1、利用SQL Server Studio創(chuàng)建學生數(shù)據(jù)庫,數(shù)據(jù)文件的存放路徑和個數(shù)可以自己設定。2
13、、用CREATE DATABASE語句來創(chuàng)建一個名為BOOK的數(shù)據(jù)庫,它由2MB的主數(shù)據(jù)文件、5MB的次數(shù)據(jù)文件和5MB的日志文件組成。并且主數(shù)據(jù)文件以1MB的增長速度其最大數(shù)據(jù)文件的大小為10MB,次數(shù)據(jù)文件以2MB的增長速度其最大次數(shù)據(jù)文件的大小為15MB,事務日志文件以1MB的增長速度其最大日志文件的大小為10MB。create database bookon(name=book1,'C:SQLServerBook2book1.mdf',size=2,maxsize=10,),(name=book2,'C:SQLServerBook2book2.ndf',
14、size=5,maxsize=15,)LOG ON(name=book_log,'C:SQLServerBook2book_log.ld',size=5,maxsize=10,)3、在SQL Server Studio中將學生數(shù)據(jù)庫的主文件大小改為4MB。4、用ALTER DATABASE語句修改BOOK數(shù)據(jù)庫,為其增加一個次要數(shù)據(jù)文件(Book_data2.ndf),該文件的大小是5MB,最大可增長到20MB,以20%的速度增長。alter database bookadd file (name=book_data2, 'c:sqlServerbookbook_dat
15、a2.ndf', size=5MB, maxsize=20MB, )9、 利用SQL Server Studio為學生數(shù)據(jù)庫增加一個文件組My。提示:通過數(shù)據(jù)庫屬性文件組進行修改。10、 用ALTER DATABASE語句為BOOK數(shù)據(jù)庫增加一個文件組My。alter database Studentadd My7、用ALTER DATABASE語句為BOOK數(shù)據(jù)庫增加兩個次數(shù)據(jù)文件,并將他們放到My文件組。ALTER DATABASE BOOK ADD FILE ( NAME = test1dat3, = '''+ data_path + 't1dat
16、3.ndf'', SIZE = 5MB, MAXSIZE = 100MB, = 5MB),( NAME = test1dat4, = '''+ data_path + 't1dat4.ndf'', SIZE = 5MB, MAXSIZE = 100MB, = 5MB)TO Test1FG1'實驗三:數(shù)據(jù)定義一、實驗目的通過實驗使學生掌握用不用的方法設計數(shù)據(jù)庫表結構、修改數(shù)據(jù)庫表結構以及刪除表結構。二、原理解析1、用SQL Server 2005的SQL Server Management Studio設計數(shù)據(jù)庫表結構用SQ
17、L Server 2005的SQL Server Management Studio設計數(shù)據(jù)庫表結構比較簡單,只要在表設計器中對表中的各個字段進行設計,主要包括字段名、字段的數(shù)據(jù)類型等。2、用T-SQL的CREATE TABLE語句創(chuàng)建表結構CREATE TABLE語句的語法結構如下:CREATE TABLE table_name(column_name datatype NOT NULL|NULL)3、用SQL Server 2005的SQL Server Management Studio設計數(shù)據(jù)庫表結構用SQL Server 2005的SQL Server Management Stud
18、io設計數(shù)據(jù)庫表結構比較簡單,與創(chuàng)建表結構類似,只要打開表設計器,在表設計器中修改并加以保存就可以了。4、用T-SQL的CREATE TABLE語句創(chuàng)建表結構CREATE TABLE語句的語法結構如下:l 向表中添加列ALTER TABLE 表名ADD 列名 列的描述l 刪除列ALTER TABLE 表名DROP COLUMN 列名l 修改列ALTER TABLE 表名ALTER COLUMN 列名 列的描述5、刪除表結構l 使用SQL Server Management Studio刪除表 l 用T-SQL的DROP TABLE語句刪除表DROP TABLE 表名三、實驗內容1、用SQL S
19、erver Management Studio創(chuàng)建數(shù)據(jù)庫表2、用CREATE TABLE語句創(chuàng)建數(shù)據(jù)庫表3、 用SQL Server Management Studio修改數(shù)據(jù)庫表結構4、 用ALTER TABLE語句修改數(shù)據(jù)庫表結構5、 用SQL Server Management Studio刪除表6、 用DROP TABLE語句刪除表四、實驗步驟學生數(shù)據(jù)庫由三張包括三張表xsqk、xskc、xscj,各個表的結構如下:xsqk結構列名數(shù)據(jù)類型長度允許空值說明系別Char10班級Char12專業(yè)Varchar30學號Char8×主鍵姓名Char8×性別Char2默認值:
20、男出生年月Smalldatetime4總學分Tinyint1備注Text16xskc結構列名數(shù)據(jù)類型長度允許空值說明課程號Char3×主鍵課程名Char16×開課學期Tinyint1×規(guī)則:18學時Tinyint1×學分Tinyint1xscj結構列名數(shù)據(jù)類型長度允許空值說明學號Char8×主鍵課程號Char3×主鍵成績Tinyint1學分Tinyint11、利用SQL Server Studio創(chuàng)建xsqk表。2、用CREATE TABLE語句創(chuàng)建xskc表和xscj表。3、利用SQL Server Studio修改xskc表,向表
21、中添加一個字段:字段名為授課教師、數(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ù)更新一、實驗目的通過實驗使學生掌握用不用的方法實現(xiàn)數(shù)據(jù)庫表數(shù)據(jù)的插入、更新和刪除。二、原理解析11、 用SQL Server 2005的SQL Server Management Studio實現(xiàn)表數(shù)據(jù)的更新用SQL Server 2005的SQL
22、 Server Management Studio實現(xiàn)表數(shù)據(jù)的更新比較簡單,只要打開表,直接在里邊作修改,然后退出,系統(tǒng)會自動保存。12、 用T-SQL的INSERT語句向表中插入數(shù)據(jù)INSERT語句的語法結構如下:INSERT INTO 表名 (列名)VALUES(表達式)13、 用INSERTSELECT語句向表中批量插入數(shù)據(jù)INSERTSELECT語句的語法結構如下:INSERT INTO 表名 SELECT語句14、 用T-SQL的UPDATE語句修改表數(shù)據(jù)UPDATE語句的語法結構如下:UPDATE 表名SET 列名= 表達式 WHERE 條件 15、 刪除表數(shù)據(jù)l 用T-SQL的D
23、ELETE語句刪除表數(shù)據(jù) DELETE語句的語法結構:DELETE 表名WHERE 條件l 用T-SQL的TRUNCATE TABLE語句刪除表TRUNCATE TABLE語句的語法結構:TRUNCATE TABLE 表名三、實驗內容6、 用SQL Server Management Studio更新表數(shù)據(jù)7、 用INSERT語句向表中插入數(shù)據(jù)3、 用INSERTSELECT語句向表中插入數(shù)據(jù)4、 用UPDATE語句修改表數(shù)據(jù)5、 用DELETE語句刪除表數(shù)據(jù)6、 用TRUNCATE TABLE語句刪除表數(shù)據(jù)四、實驗步驟1、利用SQL Server Studio向xsqk表、xskc表、xsc
24、j表中插入數(shù)據(jù)。表1 學生情況表(xsqk)數(shù)據(jù)樣本系別班級專業(yè)學號姓名性別出生年月總學分備注計算機計算機0203計算機應用與維護王玲玲女1981-8-269計算機計算機0203計算機應用與維護張燕紅女1981-10-209計算機計算機0203計算機應用與維護楊勇男1982-3-15計算機計算機0203計算機應用與維護王紅慶男1983-5-17計算機計算機0203計算機應用與維護陳園女1982-4-12計算機信息管理0201信息管理黃薇娜女1983-8-198計算機信息管理0201信息管理沈昊男1982-3-188計算機信息管理0201信息管理傅亮達男1983-1-22計算機信息管理0201信
25、息管理任建剛男1981-12-21計算機信息管理0201信息管理葉小紅女1983-7-16表1 學生課程表(xskc)數(shù)據(jù)樣本課程號課程名開課學期學時學分101計算機文化基礎1864102Qbasic1684205離散數(shù)學3644206VC2684208數(shù)據(jù)結構2684210操作系統(tǒng)3644212計算機組成4865216數(shù)據(jù)庫原理2684301計算機網(wǎng)絡5563表2 學生成績表(xscj)數(shù)據(jù)樣本學號課程號成績學分1018541027051019041028051018642088042085042166042、用向xskc表中插入如下表所示的兩條記錄。假設學生成績表(xskc)中有如下數(shù)據(jù):
26、表4 要插入的記錄值課程號課程名開課學期學時學分102Qbasic1684205離散數(shù)學3644insert into xskc(課程號,課程名,開課學期,學時,學分) values ('102','QBasic',1,68,4)insert into xskc(課程號,課程名,開課學期,學時,學分) values ('205','離散數(shù)學',3,94,4)3、利用SQL Server Studio Management修改xsqk表、xskc表、xscj表中的數(shù)據(jù)。4、用UPDATE語句修改xskc,將102課程的學分改為6。U
27、pdate xskc set 學分=6 where 課程號= 1025、用UPDATE語句修改xsqk,將信息管理專業(yè)學生的總學分改為12。Update xsqk set 總學分=12 where 專業(yè)=信息管理6、用DELETE語句刪除“離散數(shù)學”的課程信息。DELTE FROM xskc where 課程名=離散數(shù)學7、用DELETE語句刪除1983年出生的學生信息。DELTE FROM xsqk where 出生年月 between 1983-1-1 and 1983-12-318、用DELETE語句刪除不及格的選課信息。DELETE FROM xscj where 成績<609、
28、用TRUNCATE TABLE語句刪除xsqk表中的所有信息。TRUNCATE TABLE xsqk實驗五:數(shù)據(jù)查詢1簡單查詢一、 實驗目的通過對SELECT的使用,掌握SELECT語句的結構及其應用,掌握基于單個表的查詢。二、 原理解析語法格式為: SELECT目標列組 FROM數(shù)據(jù)源 WHERE元組選擇條件 GROUP BY分列組HAVING 組選擇條件 ORDER BY排序列1排序要求1 ,n(1) SELECT子句SELECT子句用于指明查詢結果集的目標列。(2) FROM子句FROM子句用于指明查詢的數(shù)據(jù)源。(3) WHERE子句WHERE子句通過條件表達式描述關系中元組的選擇條件。
29、(4) GROUP BY子句GROUP BY子句的作用是按分組列的值對結果集分組。 (5) ORDER BY子句ORDER BY子句的作用是對結果集進行排序。三、 實驗內容(1)取出生年月小于1982-1-1的學生名單。select * from xsqkwhere 出生年月 <'1982-1-1'(2)檢索xsqk表中的所有記錄數(shù)據(jù)。select * from xsqk(3)查詢班級為“計算機0203”的學生情況。select * from xsqk where 班級 ='計算機0203'(4)查詢出生年月在“1981-01-01”至“1982-05-0
30、1”之間的學生情況。select * from xsqk where 出生年月 between '1981-1-1' and '1982-5-1'(5)查詢姓名中含有“紅”字的學生情況。select * from xsqk where 姓名 like '%紅%'(6)查詢出生年月在“1981-01-01”至“1982-05-01”之間的學生情況,并以出生年月按降序排列。select * from xsqk where 出生年月 between '1981-1-1' and '1982-5-1' order by 出
31、生年月 desc(7)統(tǒng)計學生情況(xsqk)表中“計算機0203”的班級有多少人。select count(學號) from xsqkwhere 班級='計算機0203'(8)統(tǒng)計學生成績(xscj)表中每門課程的最低分、最高分和平均分。select 課程號,max(成績) 最高分,min(成績) 最低分,avg(成績) 平均分 from xscjgroup by 課程號(9)在學生成績庫中查詢出生年月在“1981-01-01”至“1982-05-01”之間的男生情況,并以出生年月按降序排列。select * from xsqk where 出生年月 between '
32、;1981-1-1' and '1982-5-1' and 性別='男' order by 出生年月 desc(10)統(tǒng)計“信息管理”專業(yè)的人數(shù)。select count(學號) from xsqkwhere 專業(yè)='信息管理'(11)統(tǒng)計每個學生每個學期的最低分、最高分及平均分。select 學號,max(成績) 最高分,min(成績) 最低分,avg(成績) 平均分 from xscjgroup by 學號實驗六:數(shù)據(jù)查詢(2)連接查詢一、實驗目的通過對SELECT的使用,掌握SELECT語句的結構及其應用,掌握連接查詢。二、 原理解
33、析語法格式為: SELECT目標列組 FROM數(shù)據(jù)源 WHERE元組選擇條件 GROUP BY分列組HAVING 組選擇條件 ORDER BY排序列1排序要求1 ,n(1) SELECT子句SELECT子句用于指明查詢結果集的目標列。(2) FROM子句FROM子句用于指明查詢的數(shù)據(jù)源。(3) WHERE子句WHERE子句通過條件表達式描述關系中元組的選擇條件。(4) GROUP BY子句GROUP BY子句的作用是按分組列的值對結果集分組。 (5) ORDER BY子句ORDER BY子句的作用是對結果集進行排序。三、 實驗內容1.查詢學號為的學生所選的全部課程的課程名和成績select 課
34、程名,成績from xscj,xskc where xscj.課程號=xskc.課程號and 學號='2020102'2.查詢沒有學生選的課程號select 課程號from xskc where 課程號not in( select distinct 課程號from xscj)-或select 課程號from xskc where not exists( select 課程號from xscj where xskc.課程號=xscj.課程號)3.查詢沒有成績的課程號,課程名select 姓名,課程號,課程名from xscj,xskc where 成績is null and xs
35、cj.課程號=xskc.課程號 and xscj.學號=xsqk.學號4.查詢沒有選修號課程的學生姓名select 姓名from xsqk where not exists( select * from xscj where xscj.學號=xsqk.學號and 課程號='102')-或select 姓名from xsqk where 學號not in( select 學號from xscj where 課程號='102' )5.查詢選修了課程并且成績在分以上的所有學生(學號、姓名)。select xsqk.學號,姓名from xscj,xsqk where x
36、scj.學號=xsqk.學號and 成績>=80 and 課程號='101'6.查詢與“王玲玲”在同一專業(yè)學習的學生姓名。select姓名from xsqk where 專業(yè)=(select 專業(yè)from xsqk where 姓名='王玲玲')7.查詢選修了課程名為“計算機文化基礎”的學生學號和姓名。select xsqk.學號, 姓名from xsqk, xskc,xscjwhere xsqk.學號=xscj.學號and xskc.課程號=xscj.課程號and 課程名='計算機文化基礎'9.查詢選修了課程名為“計算機文化基礎”或“數(shù)據(jù)
37、結構”的學生學號和姓名。select xsqk.學號,姓名,課程名from xsqk,xskc,xscj where xsqk.學號=xscj.學號and xskc.課程號=xscj.課程號and (課程名='計算機文化基礎' or 課程名='數(shù)據(jù)結構')10.統(tǒng)計每個學生每個學期的最低分、最高分及平均分。select 學號,開課學期,min(成績) as 最低分,max(成績)as 最高分,avg(成績)as 平均分 from xscj,xskc where xscj.課程號=xskc.課程號group by 學號,開課學期11.查詢每門課程的最高分(課程號、
38、課程名、最高成績)。select xscj.課程號,課程名, max(成績)as 最高分from xscj,xskc where xscj.課程號=xskc.課程號group by xscj.課程號,課程名12.查詢所有有選課記錄的學生的情況(姓名,課程名,成績。)select xsqk.*,課程名,成績from xscj,xskc,xsqk where xscj.學號=xsqk.學號and xscj.課程號=xskc.課程號 -或select 姓名,課程名,成績from xscj,xskc,xsqk where xscj.學號=xsqk.學號and xscj.課程號=xskc.課程號 13.
39、查詢選修了學號為“”的學生所選的某門課程的學生編號。select distinct 學號from xscj where 課程號in (select 課程號 from xscj where 學號='2020101')實驗七:數(shù)據(jù)查詢(3)綜合一、實驗目的通過對SELECT的使用,掌握SELECT語句的結構及其應用,掌握連接查詢。二、原理解析語法格式為: SELECT目標列組 FROM數(shù)據(jù)源 WHERE元組選擇條件 GROUP BY分列組HAVING 組選擇條件 ORDER BY排序列1排序要求1 ,n(1) SELECT子句SELECT子句用于指明查詢結果集的目標列。(2) FR
40、OM子句FROM子句用于指明查詢的數(shù)據(jù)源。(3) WHERE子句WHERE子句通過條件表達式描述關系中元組的選擇條件。(4) GROUP BY子句GROUP BY子句的作用是按分組列的值對結果集分組。 (5) ORDER BY子句ORDER BY子句的作用是對結果集進行排序。三、實驗內容1、查詢所有學生的姓名和課程名稱。2、查詢平均成績在60分以上的學生姓名。3、查詢每個學生的姓名、所選修的課程名及成績。4、查詢選修了課程的學生姓名。5、查詢選修課程數(shù)在兩門以上的學生姓名。(用連接查詢和嵌套查詢兩種方法實現(xiàn))6、查詢成績及格的學生人數(shù)。7、查詢成績及格的學生人次。8、查詢所有學生都沒有選修的課
41、程名稱。9、查詢每個學生的平均成績,并按平均成績的降序排序。10、查詢每個同學的最高分,要求顯示學號、姓名和分數(shù)等信息。11、查詢選修同一門課程的學生學號。實驗八:視圖一、實驗目的通過實驗使學生掌握視圖的創(chuàng)建、視圖的查詢以及通過視圖更新(插入、修改、刪除)基本表中的數(shù)據(jù)。二、原理解析1、用SQL Server 2005的SQL Server Management Studio創(chuàng)建視圖用SQL Server 2005的SQL Server Management Studio創(chuàng)建視圖比較簡單,只要打開視圖設計器對視圖進行編輯就可以完成視圖的創(chuàng)建。2、用T-SQL的CREATE VIEW語句創(chuàng)建視圖
42、CREATE VIEW語句的語法結構如下:CREATE VIEW 視圖名(列名1, 列名2, n)WITH 屬性AS 查詢語句WITH CHECK OPTION3、 視圖查詢視圖創(chuàng)建后就可以像使用基本表一樣來使用,可以通過視圖進行查詢。基于視圖的查詢能夠簡化查詢語句。4、 視圖更新通過視圖更新可以實現(xiàn)基本表數(shù)據(jù)的更新,視圖更新包括視圖的插入、修改和刪除操作。5、 視圖刪除 DROP VIEW 視圖名三、實驗內容1、用SQL Server Management Studio創(chuàng)建視圖2、用CREATE VIEW語句創(chuàng)建視圖3、 視圖查詢4、 視圖更新5、 視圖刪除四、實驗步驟一、實驗目的通過實驗使
43、學生掌握視圖的創(chuàng)建、視圖的查詢以及通過視圖更新(插入、修改、刪除)基本表中的數(shù)據(jù)。二、原理解析16、 用SQL Server 2005的SQL Server Management Studio創(chuàng)建視圖用SQL Server 2005的SQL Server Management Studio創(chuàng)建視圖比較簡單,只要打開視圖設計器對視圖進行編輯就可以完成視圖的創(chuàng)建。17、 用T-SQL的CREATE VIEW語句創(chuàng)建視圖CREATE VIEW語句的語法結構如下:CREATE VIEW 視圖名(列名1, 列名2, n)WITH 屬性AS 查詢語句WITH CHECK OPTION18、 視圖查詢視圖創(chuàng)
44、建后就可以像使用基本表一樣來使用,可以通過視圖進行查詢?;谝晥D的查詢能夠簡化查詢語句。19、 視圖更新通過視圖更新可以實現(xiàn)基本表數(shù)據(jù)的更新,視圖更新包括視圖的插入、修改和刪除操作。20、 視圖刪除 DROP VIEW 視圖名三、實驗內容8、 用SQL Server Management Studio創(chuàng)建視圖9、 用CREATE VIEW語句創(chuàng)建視圖3、 視圖查詢4、 視圖更新5、 視圖刪除四、實驗步驟1、用SQL Server Management Studio創(chuàng)建視圖。為學生情況(XSQK)表創(chuàng)建一個視圖V_XSQK,以顯示學生的基本信息,如學號、姓名、性別和出生年月。2、用T-SQL的C
45、REATE VIEW語句創(chuàng)建上述視圖。CREATE VIEW V_XSQKASSELECT 學號 , 姓名 , 性別 , 出生年月FROM XSQK3、用CREATE VIEW語句創(chuàng)建視圖V_Student,要求顯示學生的姓名、選修的課程名和成績。CREATE VIEW V_StudentASSELECT 姓名,課程名,成績FROM xsqk,xscj,xskcWHERE xsqk.學號=xscj.學號 and xscj.課程號=xskc.課程號4、查詢在1981-1-1以后出生的學生信息,包括學號,姓名,性別和出生年月。SELECT * FROM V_XSQKWHERE 出生年月>19
46、81-1-15、查詢成績合格的學生信息,包括姓名、課程名和成績。SELECT 姓名,課程名,成績FROM V_STUDENTWHERE 成績>606、創(chuàng)建分組視圖V_STUDENT1,要求查詢每個學生的平均成績,包括姓名,平均成績。CREATE VIEW V_STUDENT1(姓名,平均成績)ASSELECT姓名, AVG(成績)FROM xsqk,xscj,xskcWHERE xsqk.學號=xscj.學號 and xscj.課程號=xskc.課程號GROUP BY 姓名7、向視圖V_XSQK中插入一條記錄:2020206,李紅,1983-12-3,并觀察XSQK表中的數(shù)據(jù)是否發(fā)生變化
47、。INSERT INTO V_XSQKVALUES(2020206,李紅,1983-12-3)8、修改視圖V_XSQK,將李紅同學是出生年月改為1982-12-3,并觀察XSQK表中數(shù)據(jù)的變化。UPDATE V_XSQKSET 出生年月=1982-12-3WHERE 姓名=李紅9、刪除視圖V_XSQK中李紅同學的信息,并觀察XSQK表中數(shù)據(jù)的變化。DELETE FROM V_XSQKWHERE 姓名=李紅10、查詢平均成績在60分以上的學生信息,包括姓名和平均成績。SELECT * FROM V_STUDENT1WHERE 平均成績>60實驗九:約束、默認、規(guī)則一、實驗目的通過數(shù)據(jù)庫中約
48、束、默認和規(guī)則的使用,掌握約束、默認、規(guī)則的概念及約束、默認、規(guī)則的操作和使用方法。二、原理解析數(shù)據(jù)完整性維護數(shù)據(jù)庫輸入數(shù)據(jù)的正確性和一致性,通過定義數(shù)據(jù)完整性規(guī)則,SQL Server可以通過自身提供的完整性規(guī)則有效地管理數(shù)據(jù)的輸入,而不必要使用額外的應用程序來協(xié)助管理,這樣一方面可以節(jié)省系統(tǒng)開銷,另一方面使數(shù)據(jù)庫中的數(shù)據(jù)獨立于應用程序,使創(chuàng)建開放式數(shù)據(jù)庫系統(tǒng)成為可能。數(shù)據(jù)完整性包括實體的完整性、域完整性、參照完整性和用戶自定義完整性。1、實體完整性實體完整性將記錄行定義為特定表的唯一實體。實體完整性強制表中的所有記錄都有一個惟一的標識符列(通過UNIQUE約束、PRIMARY KEY約束或
49、IDENTITY屬性)。例如:在學生情況表中,學生的學號是惟一的,它與每個學生一一對應。2、域完整性域完整性是指給定列的輸入有效性。強制域有效性的方法有:通過限制數(shù)據(jù)類型(包括自定義數(shù)據(jù)類型)、格式(CHECK約束和規(guī)則)或可能的取值范圍(FOREIGN KEY約束、CHECK約束、DEFAULT定義、NOT NULL定義和規(guī)則)來實現(xiàn)。3、參照完整性參照完整性能確保數(shù)據(jù)庫中數(shù)據(jù)的一致性。在SQL Server中,參照完整性基于外鍵與主鍵之間或外鍵與唯一鍵之間的關系(通過FOREIGN KEY和 CHECK約束)。參照完整性確保鍵值在所有表中一致,這樣的一致性要求不能引用不存在的值(即指向不存
50、在的行)。如果在被參考的表中,某一記錄被外部鍵參考,則該記錄就不能刪除,若需要更改鍵值,那么在整個數(shù)據(jù)庫中,對該鍵值的所有引用都要進行一致的更改。參照完整性在輸入或刪除記錄時保持表之間已定義的關系。當設置了參照完整性時,SQL Server將從以下幾個方面限制用戶對數(shù)據(jù)庫的操作:當主表中沒有關聯(lián)的記錄時,向一個相關表添加記錄。更改了主表中的鍵值但沒有更改相關表中的數(shù)據(jù),從而使相關表中的記錄無法在主表中找到對應記錄。從主表中刪除記錄,但在相關表中仍存在與該記錄相匹配的記錄。例如:在學生成績庫中,只要學生在成績表中有成績記錄,則該學生記錄就不能直接在學生情況表中刪除。4、用戶定義完整性可以在SQL
51、 Server中定義不屬于上述類別的特定規(guī)則的用戶完整性定義。所有的完整性類型都支持用戶定義完整性(CREATE TABLE中的所有列級和表級約束、存儲過程和觸發(fā)器)。在SQL Server中,有兩種方式可以實現(xiàn)數(shù)據(jù)完整性,聲明數(shù)據(jù)完整性和過程數(shù)據(jù)完整性。聲明數(shù)據(jù)完整性是通過在對象定義中定義的標準來實現(xiàn)數(shù)據(jù)完整性,是由系統(tǒng)本身的自動強制功能來實現(xiàn)的,它包含使用各種約束、默認和規(guī)則。而過程數(shù)據(jù)完整性是通過在腳本語言(使用觸發(fā)器或存儲過程)中定義的完整性標準來實現(xiàn)的,當這些腳本被執(zhí)行時,就可以強制完整性的實現(xiàn)。三、實驗內容(1)對學生情況表xsqk_sample使用NOT NULL約束限制系別、學
52、號和姓名列不能為空,使用PRIMARY KEY約束將學號設置為主鍵,使用CHECK約束對性別列中的值進行限制,使其值只能接受“男”或“女”,以強制執(zhí)行域的完整性,性別的默認值為“男”。CREATE TABLE xsqk_sample( 系別 char(10) not null, 班級 char(12), 專業(yè) Varchar(30), 學號 char(8)not null primary key, 姓名 Varchar(10) not null, 性別 char(2) default 男, 出生年月 smalldatetime, 總學分tinyint, 備注 text, CONSTRAINT
53、chk_Sex CHECK ( 性別 in (男,女))(2)在學生課程表中創(chuàng)建DEFAULT約束,約束名為Period_Def,要求實現(xiàn)使學時列的默認值設置為72。alter table xskcadd constraint Period_Def default 72 for 學時(3)在學生成績表中創(chuàng)建FOREIGN KEY約束,約束名為Con_CourseNo,要求實現(xiàn)把學生成績表中的“課程號”列和學生課程表中的“課程號”關聯(lián)起來。alter table xscjadd constraint Con_CourseNo foreign key(課程號) references xskc(課程
54、號)(4)為學生課程表中的學分列定義一個DEFAULT約束,默認值為4。alter table xskcadd constraint x default 4 for 學分(5)在學生成績表中定義FOREIGN KEY約束,把學生成績表中的“學號”列和學生情況表中的“學號”關聯(lián)起來。alter table xscjadd constraint Con_StudentNo foreign key(學號) references xsqk(學號)(6)創(chuàng)建一個默認值為'1982/1/1'的默認值。create default yas '1982-1-1'(7)將創(chuàng)建的Default_Birthday默認值綁定到學生情況表的出生年月列上
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版石油化工安全評價與隱患排查合同3篇
- 二零二五年度品牌推廣活動策劃與執(zhí)行合同3篇
- 二零二五版工藝品展覽館建設與運營管理合同3篇
- 二零二五年度電力工程建設項目融資合同2篇
- 二零二五年度4S店汽車租賃與綠色出行倡導合同3篇
- 二零二五版房地產(chǎn)開發(fā)項目掛靠合作保密協(xié)議合同3篇
- 2025年度特色餐飲品牌店面全面轉讓合同范本2篇
- 二零二五版物業(yè)公司應急處理合同3篇
- 二零二五版數(shù)據(jù)中心建設工程施工合同2篇
- 基于2025年度區(qū)塊鏈技術的電子勞動合同信任機制合同3篇
- 高二物理競賽霍爾效應 課件
- 金融數(shù)學-(南京大學)
- 基于核心素養(yǎng)下的英語寫作能力的培養(yǎng)策略
- 現(xiàn)場安全文明施工考核評分表
- 亞什蘭版膠衣操作指南
- 四年級上冊數(shù)學教案 6.1口算除法 人教版
- DB32-T 3129-2016適合機械化作業(yè)的單體鋼架塑料大棚 技術規(guī)范-(高清現(xiàn)行)
- 6.農(nóng)業(yè)產(chǎn)值與增加值核算統(tǒng)計報表制度(2020年)
- 人工挖孔樁施工監(jiān)測監(jiān)控措施
- 供應商物料質量問題賠償協(xié)議(終端)
- 物理人教版(2019)必修第二冊5.2運動的合成與分解(共19張ppt)
評論
0/150
提交評論