《數(shù)據(jù)庫系統(tǒng)》實驗指導(dǎo)手冊
《《數(shù)據(jù)庫系統(tǒng)》實驗指導(dǎo)手冊》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫系統(tǒng)》實驗指導(dǎo)手冊(53頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 《數(shù)據(jù)庫系統(tǒng)》實驗指導(dǎo)手冊 SQL Server 2005 的安裝和環(huán)境介紹 3 實驗一 使用向?qū)?chuàng)建和刪除數(shù)據(jù)庫 12 實驗一 使用向?qū)?chuàng)建和刪除數(shù)據(jù)庫 13 實驗二 使用SQL語句創(chuàng)建和刪除數(shù)據(jù)庫 15 實驗二 分別用向?qū)Ш蚐QL語句創(chuàng)建和刪除表 16 Create Table Course 17 實驗三 分別用向?qū)Ш蚐QL語句創(chuàng)建和刪除表 19 實驗四 修改數(shù)據(jù)庫基本表的定義 21 實驗五 表更新操作 23 實驗六 創(chuàng)建和刪除索引 25 實驗六 創(chuàng)建和刪除索引 26 實驗七 簡單SELECT語句 28 實驗八 子查詢 30 實驗九 使用子句的SELEC
2、T語句 32 實驗十 創(chuàng)建視圖 36 實驗十一 使用視圖 38 實驗十二 SQL Server 2005 的安全性、備份與恢復(fù) 40 實驗十二 SQL Server 2005 的安全性、備份與恢復(fù) 41 實驗列表 第1次實驗:學(xué)會用SQL server2005的工具和SQL語言 (4學(xué)時) 實驗一: 使用向?qū)?chuàng)建和刪除數(shù)據(jù)庫 實驗二: 使用SQL語句創(chuàng)建和刪除數(shù)據(jù)庫 實驗三: 兩種方法創(chuàng)建和刪除表 實驗四: 修改表的定義 實驗五 表更新操作 第2次實驗:熟練使用SQL查詢語句,學(xué)會使用SQL更新語句,使用SQL創(chuàng)建和使用視圖(4學(xué)時) 實驗六:
3、 創(chuàng)建和刪除索引 實驗七: 簡單Select語句 實驗八: 子查詢 實驗九: 使用子句的Select語句 第3次實驗:學(xué)會用SQl server 2005創(chuàng)建和使用 觸發(fā)器和存儲過程 (4學(xué)時) 實驗十: 創(chuàng)建視圖 實驗十一: 使用視圖 實驗十二: 數(shù)據(jù)庫的安全性、備份和恢復(fù) SQL Server 2005 的安裝和環(huán)境介紹 ●安裝SQL Server 2005 1. 根據(jù)安裝機器軟硬件的要求,選擇一個合適的版本,以下以開發(fā)版為例 2. 將 SQL Server 2005 DVD 插入 DVD 驅(qū)動器。如果DVD驅(qū)動器的自動運行功能無法啟動安裝程序無法啟
4、動安裝程序,請導(dǎo)航到 DVD 的根目錄然后啟動splash.hta。 3. 在自動運行的對話框中,單擊“運行 SQL Server 安裝向?qū)А薄? 4. 在“最終用戶許可協(xié)議”頁上,閱讀許可協(xié)議,再選中相應(yīng)的復(fù)選框以接受許可條款和條件。接受許可協(xié)議后即可激活“下一步”按鈕。若要繼續(xù),請單擊“下一步” 若要結(jié)束安裝程序,請單擊“取消”。如下圖: 5. 在“SQL Server 組件更新”頁上,安裝程序?qū)惭b SQL Server 2005 的必需軟件。有關(guān)組件要求的詳細(xì)信息,請單擊該頁底部的“幫助”按鈕。若要開始執(zhí)行組件更新,請單擊“安裝”。更新完成之后若要繼續(xù),請單擊“完成”。
5、6. 在 SQL Server 安裝向?qū)У摹皻g迎”頁上,單擊“下一步”以繼續(xù)安裝。 7. 在“系統(tǒng)配置檢查 (SCC)”頁上,將掃描安裝計算機,以檢查是否存在可能妨礙安裝程序的條件。 8. 在“注冊信息”頁上的“姓名”和“公司”文本框中,輸入相應(yīng)的信息。若要繼續(xù),請單擊“下一步” 9. 在“要安裝的組件”頁上,請選擇要安裝的組件。選擇各個組件組時,“要安裝的組件”窗格中會顯示相應(yīng)的說明。您可以選中任意一些復(fù)選框。建議全選。若要安裝單個組件,請單擊“高級”。否則,請單擊“下一步”繼續(xù)。 10. 在“實例名”頁上,請為安裝的軟件選擇默認(rèn)實例或已命名的實例。計算機上必須沒有默
6、認(rèn)實例,才可以安裝新的默認(rèn)實例。若要安裝新的命名實例,請單擊“命名實例”,然后在提供的空白處鍵入一個唯一的實例名。 11. 在“服務(wù)帳戶”頁上,為 SQL Server 服務(wù)帳戶指定用戶名、密碼和域名。您可以對所有服務(wù)使用一個帳戶。 12. 在“身份驗證模式”頁上,選擇要用于 SQL Server 安裝的身份驗證模式。如果選擇 Windows 身份驗證,安裝程序會創(chuàng)建一個 sa 帳戶,該帳戶在默認(rèn)情況下是被禁用的。選擇“混合模式身份驗證”時,請輸入并確認(rèn)系統(tǒng)管理員 (sa) 登錄名。建議選擇混合模式,并輸入安全的密碼。 13. 如果選擇 Reporting Services
7、作為要安裝的功能,將顯示“報表服務(wù)器安裝選項”頁。使用單選按鈕選擇是否使用默認(rèn)值配置報表服務(wù)器。如果沒有滿足在默認(rèn)配置中安裝 Reporting Services 的要求,則必須選擇“安裝但不配置服務(wù)器”安裝選項。若要繼續(xù)安裝,請單擊“下一步” 14. 在“錯誤報告”頁上,可以清除復(fù)選框以禁用錯誤報告。有關(guān)錯誤報告功能的詳細(xì)信息,請單擊該頁底部的“幫助”。若要繼續(xù)安裝,請單擊“下一步”。 15. 在“準(zhǔn)備安裝”頁上,查看要安裝的 SQL Server 功能和組件的摘要。若要繼續(xù)安裝,請單擊“安裝”。 16. 在“安裝進度”頁上,可以在安裝過程中監(jiān)視安裝進度。若要在安裝期間查看
8、某個組件的日志文件,請單擊“安裝進度”頁上的產(chǎn)品或狀態(tài)名稱。 17. 在“完成 Microsoft SQL Server 安裝向?qū)А表撋?,可以通過單擊此頁上提供的鏈接查看安裝摘要日志。若要退出 SQL Server 安裝向?qū)?,請單擊“完成”? 18. 如果提示您重新啟動計算機,請立即重新啟動。 19. 如果成功安裝了SQL Server 2005,則在開始菜單中添加了如下程序和相應(yīng)的服務(wù): (2)SQL Server的環(huán)境介紹 1. Analysis Services 提供“部署向?qū)А?,為用戶提供將某個Analysis Services項目的輸出部署到某個目標(biāo)服務(wù)器的功
9、能。 2. 配置工具 其子菜單中提供的配置管理器“SQL Server Configulation manager”用于查看和配置SQL Server的服務(wù)。 以下是SQL Server 2005 系統(tǒng)的6個服務(wù)。 右擊某個服務(wù)名稱,可以查看該服務(wù)的屬性,并且可以啟動、停止、暫停和重新啟動相應(yīng)的服務(wù)。也可以使用操作系統(tǒng)“我的電腦”-“管理”選項,在【計算機管理】窗口中查看和啟動、停止、暫停和重新啟動相應(yīng)的服務(wù)。 3. 文檔和教程 提供了SQL Server 2005的聯(lián)機幫助和示例數(shù)據(jù)庫概述。 4. 性能工具 子菜單提供了“SQL Server Profiler”和“數(shù)
10、據(jù)庫引擎優(yōu)化顧問”用戶數(shù)據(jù)庫性能調(diào)試和優(yōu)化工具。 5.SQL Server Business Intelligence Development Studio 商務(wù)智能(BI)系統(tǒng)開發(fā)人員設(shè)計的集成開發(fā)環(huán)境,構(gòu)建于Visual Studio 2005 技術(shù)之上,為商業(yè)智能系統(tǒng)開發(fā)人員提供了一個豐富、完整的專業(yè)開發(fā)平臺,支持商業(yè)智能平臺上的所有組件的調(diào)試、源代碼控制以及腳本和代碼的開發(fā)。 6.SQL Server Management Studio 它將 SQL Server 早期版本中包含的SSMS、查詢分析器和分析管理器的功能組合到單一環(huán)境中,為不同層次的開發(fā)人員和管理員提供 SQL
11、Server 訪問能力。 實驗一 使用向?qū)?chuàng)建和刪除數(shù)據(jù)庫 一. 實驗?zāi)康? 1. 熟悉SQL Server 2005 中SQL Server Management Studio的環(huán)境 2. 了解SQL Server 2005數(shù)據(jù)庫的邏輯結(jié)構(gòu)和物理結(jié)構(gòu) 3. 掌握使用向?qū)?chuàng)建和刪除數(shù)據(jù)庫的方法 二. 實驗準(zhǔn)備 1.裝有SQL Server 2005的PC機。 2. 明確能夠創(chuàng)建數(shù)據(jù)庫的用戶必須是系統(tǒng)管理員,或是被授權(quán)使用CREATE DATABASE語句的用戶。 三. 實驗要求 1. 熟練使用SSMS進行數(shù)據(jù)庫的創(chuàng)建和刪除操作 2. 完成用向?qū)Ы⒑蛣h除數(shù)據(jù)庫的實驗報
12、告 四. 實驗內(nèi)容 設(shè)有一學(xué)籍管理系統(tǒng),其數(shù)據(jù)庫名為“EDUC”,初始大小為 10MB,最大為50MB,數(shù)據(jù)庫自動增長,增長方式是按5%比例增長;日志文件初始為2MB,最大可增長到5MB,按1MB增長。數(shù)據(jù)庫的邏輯文件名為“student_data”, 物理文件名為“student_data.mdf,存放路徑為“E:\sql_data”。日志文件的邏輯文件名為“student_log”, 物理文件名為“student_log.ldf”,存放路徑為“E:\sql_data”。 (1) 使用向?qū)?chuàng)建上訴描述的數(shù)據(jù)庫。 使用SQL Server Manageme
13、nt Studio(簡稱SSMS)創(chuàng)建數(shù)據(jù)庫。 (2)使用向?qū)h除上面建立的數(shù)據(jù)庫。 用SSMS刪除添加建立的數(shù)據(jù)庫EDUC。 實驗一 使用向?qū)?chuàng)建和刪除數(shù)據(jù)庫 ●實驗指導(dǎo)——使用向?qū)?chuàng)建和刪除數(shù)據(jù)庫 (1) 使用向?qū)?chuàng)建上訴描述的數(shù)據(jù)庫。 使用SQL Server Management Studio(簡稱SSMS)創(chuàng)建數(shù)據(jù)庫。 1.啟動SSMS 在開始菜單中:所有程序-SQL Server 2005 -SQL Server Management Studio 單擊“連接”按鈕,便可以進入【SQL Serve
14、r Management Studio】窗口。如果身份驗證選擇的是“混合模式”,則要輸入sa的密碼。 2.建立數(shù)據(jù)庫 在“對象資源管理器”窗口,建立上述數(shù)據(jù)庫EDUC。在數(shù)據(jù)庫節(jié)點上右擊選擇新建。同時建立一個同樣屬性的數(shù)據(jù)庫EDUC1。 (2)使用向?qū)h除上面建立的數(shù)據(jù)庫。 用SSMS刪除添加建立的數(shù)據(jù)庫EDUC。 實驗二 使用SQL語句創(chuàng)建和刪除數(shù)據(jù)庫 一. 實驗?zāi)康模? 1、 了解SQL Server 2005數(shù)據(jù)庫的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。 2、 掌握使用SQL 語句創(chuàng)建和刪除數(shù)據(jù)庫。 二. 實驗準(zhǔn)備 1. 明確能夠創(chuàng)建數(shù)據(jù)庫的用戶必須是系統(tǒng)管
15、理員,或是被授權(quán)使用CREATE DATABASE語句的用戶。 2. 了解用SQL語句創(chuàng)建和刪除數(shù)據(jù)庫的基本語法。 三. 實驗要求 3、 熟練使用查詢分析器進行數(shù)據(jù)庫的創(chuàng)建和刪除操作 4、 完成用sql語句建立和刪除數(shù)據(jù)庫的實驗報告 四. 實驗內(nèi)容 1.以下是創(chuàng)建數(shù)據(jù)庫userdb1的SQL語句, create database userdb1 on (name=userdb4_data,--數(shù)據(jù)文件的邏輯名稱,注意不能與日志邏輯同名 filename=g:\xygl\userdb4.mdf ,--物理名稱,注意路徑必須存在 size=5,--數(shù)據(jù)初始長度為5M
16、maxsize=10,--最大長度為10M filegrowth=1)--數(shù)據(jù)文件每次增長1M log on ( name=userdb4_log, filename=g:\xygl\userdb4.ldf , size=2 , maxsize=5 , filegrowth=1) 運行上訴語句建立數(shù)據(jù)庫userdb1 2.根據(jù)1的sql語句,寫出創(chuàng)建數(shù)據(jù)庫EDUC的sql語句,并建立數(shù)據(jù)庫EDUC. 3.用SQL語句刪除步驟一建立的數(shù)據(jù)庫userdb1。 實驗二 分別用向?qū)Ш蚐QL語句創(chuàng)建和刪除表 一.實驗?zāi)康? 1.了解表的結(jié)構(gòu)特點。 2.了解SQL
17、Server的基本數(shù)據(jù)類型。 3.學(xué)會在SSMS中創(chuàng)建表。 4.學(xué)會使用T-SQL語句創(chuàng)建表。 二.實驗要求 1. 熟練使用SSMS創(chuàng)建和刪除基本表。 2. 是用查詢分析器,完成用SQL語句創(chuàng)建和刪除基本表。 3. 完成用SSMS和SQL創(chuàng)建和刪除基本表的實驗報告。 三. 實驗準(zhǔn)備 1. 確定數(shù)據(jù)庫包含包含的各表的結(jié)構(gòu),還要了解SQL Server的常用數(shù)據(jù)類型,以創(chuàng)建數(shù)據(jù)庫的表。 2. 已完成實驗二,成功創(chuàng)建了數(shù)據(jù)庫EDUC。 3.了解常用的創(chuàng)建表的方法。 四. 實驗內(nèi)容 1. 在實驗三建立的數(shù)據(jù)庫EDUC中,本課程實驗需要如下幾個表:
18、 表2.1 class表(班級信息表) 字段名稱 類 型 允許空值 主 鍵 說 明 ClsNO Char(6) NOT NULL 是 班號 ClsName Varchar(16) NOT NULL 班名 Director Varchar(10) NULL 輔導(dǎo)員 Specialty Varchar(30) NULL 專業(yè) 表2.2 student表(學(xué)生信息表) 字段名稱 類 型 允許空值 主 鍵 說 明 Sno Char(8) NOT NULL 是 學(xué)
19、號 Sname Varchar(10) NOT NULL 姓名 Sex Char(2) 性別:男、女 ClsNO Char(6) NULL 班級的編號,(外鍵)參照表Class Saddr Varchar(20) NULL 住址 Sage numeric(3, 0) 年齡,大于10,但小于30歲 Height Decimal(4,2) 身高 Sdept Varchar(30) NULL 所在院系 表2.3 course表(課程信息表) 字段名稱 類 型 允許空值
20、主 鍵 說 明 Cno Char(4) NOT NULL 是 主鍵 Cname Varchar(16) NOT NULL 課程的名稱 Cpno char(4) NULL 先修課程的課程號(外鍵),參照cno Ccredit Tinyint 學(xué)分 表2.4 sc表(學(xué)生選課成績表) 字段名稱 類 型 允許空值 主 鍵 說 明 Sno Char(8) NOT NULL 是 學(xué)號,參照Student,與Cno組成主鍵 CNO Char(4) NOT NULL 是 課程號,
21、參照Course Score Numeric(4,1) NULL 成績 2. 根據(jù)如上表結(jié)構(gòu)用向?qū)?chuàng)建各表。 3. 用SSMS刪除所建立的表Student,Sc,和Course 4. 在查詢分析器中用sql語句刪除表class Drop table class 5. 根據(jù)如上表結(jié)構(gòu)用SQL語句創(chuàng)建各表。 CREATE TABLE class ( ClsNO char(6) PRIMARY KEY, ClsName varchar(16) NOT NULL, Director varchar(10), Specialty varch
22、ar(30), stotal int NULL, monitor varchar(50) NULL) CREATE TABLE student ( Sno char(8) PRIMARY KEY CLUSTERED, Sname varchar(10) NOT NULL, Ssex char(2), ClsNO char(6), Saddr varchar(20), Sage numeric(3, 0), Height decimal(4, 2), Sdept varchar(30)) ALTER TABLE student WITH
23、 CHECK ADD CHECK ((Sage>(10) AND Sage<(30))) ALTER TABLE student WITH CHECK ADD CHECK ((Ssex=女 OR Ssex=男)) Create Table Course (Cno char(6) constraint course_primary_key Primary Key NOT NULL, Cname char(40) NOT NULL UNIQUE, Cpno char(6), Ccredit SmallInt, Foreign key (Cpno) referen
24、ces Course(Cno) ); create table SC ( Sno char(8), Cno char(4), score Numeric(4,1), primary key (Sno,Cno), /*主碼有兩個屬性構(gòu)成,必須作為表級完整性進行定義*/ foreign key (Sno) references Student(Sno), /*表級完整性約束條件,Sno是外碼,被參照表是Student*/ foreign key (Cno) references Course(Cno) /*表級完整性約束條件,Cn
25、o是外碼,被參照表示Course*/ ); 6. 將以上創(chuàng)建表的SQL命令以 .SQL文件的形式保存在磁盤上 實驗三 分別用向?qū)Ш蚐QL語句創(chuàng)建和刪除表 ●實驗指導(dǎo)——創(chuàng)建表 一.用向?qū)?chuàng)建表 用SQL Server 2005的SSMS創(chuàng)建student表 輸入表的屬性: 用以上方法在SSMS中創(chuàng)建其他表。 二.用SQL語句創(chuàng)建表 在SQL Server 2005 的查詢分析器中,用sql語句創(chuàng)建表。 如student表: CREATE TABLE student( Sno char(8) PRIMARY KEY , --
26、學(xué)號(主鍵) Sname varchar(10) NOT NULL, --姓名 Ssex char(2) CHECK (Ssex=女 OR Ssex=男), --性別 ClsNO char(6) , --班級編號 Saddr varchar(20) , --住址 Sage numeric(3, 0) CHECK ((Sage>(10) AND Sage<(30))), -- 年齡 Height decimal(4, 2), --身高 Sdept varchar(30) --院系 ) 用以上方法用sql語句創(chuàng)建其他表。 實驗四
27、 修改數(shù)據(jù)庫基本表的定義 一. 實驗?zāi)康? 1.了解表的結(jié)構(gòu)特點。 2.學(xué)會在SSMS中修改表的定義。 3.學(xué)會使用SQL語句修改表的定義。 二. 實驗準(zhǔn)備 1. 成功完成實驗四,在EDUC數(shù)據(jù)庫中已經(jīng)成功建立了各表。 2. 了解常用的修改表定義語句。 三. 實驗要求 1. 完成在已經(jīng)創(chuàng)建成功的表上修改表定義的操作 2. 寫出實驗報告。 四. 實驗內(nèi)容 1. 修改列屬性 (1) 用SSMS將Student表中的Sage字段設(shè)為不能為空(not null)。 (2) 用SQL語句將Student表中的屬性sname varchar(8)改成varchar(20)類型
28、。 ALTER TABLE student alter column sname varchar(20) 2. 添加列 (1) 用SSMS在Course表中添加一列year ,類型為varchar(4),默認(rèn)置為空。 (2) 用SQL語句在year字段添加約束,year 的屬性值在2004-2008之間。 ALTER TABLE course WITH CHECK ADD CHECK ((year>(2004) AND year<=(2008))) 3. 刪除列 (1)用SQL語句將Course表中的year字段刪除。
29、 ALTER TABLE course drop column year 實驗五 表更新操作 一. 實驗?zāi)康? 1. 學(xué)會在SSMS中操作表。 2. 熟悉使用UPDATE/INSERT/DELETE語句進行表操作; 3. 能將這些更新操作應(yīng)用于實際操作中去; 二. 實驗準(zhǔn)備 1. 成功完成實驗四,向EDUC數(shù)據(jù)庫的各表中插入、修改和刪除數(shù)據(jù)。 2. 了解INSERT、UPDATE及DELETE語句。 三. 實驗要求 1. 完成下面的實驗內(nèi)容,并提交實驗報告; 2. 在實驗報告中附上相應(yīng)的代碼; 四. 實驗內(nèi)容 1.使用“SSMS”進行各種有關(guān)記錄數(shù)據(jù)的
30、操作; 2.、掌握T-SQL中的INSERT、UPDATE及DELETE語句的使用方法 (1) 向表(Student)中插入數(shù)據(jù) Sno Sname Ssex ClsNO Saddr Sage Height Sdept 20100101 王軍 男 CS01 下關(guān)40# 20 1.76 計算機學(xué)院 20100102 李杰 男 CS01 江邊路96# 22 1.72 計算機學(xué)院 20100306 王彤 女 MT04 中央路94# 19 1.65 數(shù)學(xué)學(xué)院 20100107 吳杪 女 PH08 蓮化小區(qū)74# 1
31、8 1.60 物理學(xué)院 20100501 張亮 男 SS01 一環(huán)路193# 18 1.71 軟件學(xué)院 20100502 李梅 女 SS01 長江路2# 18 1.60 軟件學(xué)院 插入數(shù)據(jù)之后使用命令:Select * from Student; 檢查插入數(shù)據(jù)的正確性 (2)向表(Class)中插入數(shù)據(jù) ClsNO ClsName Director Specialty CS01 計算機一班 王寧 計算機應(yīng)用 CS02 計算機二班 王寧 計算機應(yīng)用 MT04 數(shù)學(xué)四班 陳晨 數(shù)學(xué) PH08 物理八班 葛格 物
32、理 插入數(shù)據(jù)之后使用命令:Select * from Class; 檢查插入數(shù)據(jù)的正確性 (3)向表(Course )中插入數(shù)據(jù) Cno Cname Cpno Credit 0001 高等數(shù)學(xué) Null 6 0003 計算機基礎(chǔ) 0001 3 0007 物理 0001 4 插入數(shù)據(jù)之后使用命令:Select * from Course; 檢查插入數(shù)據(jù)的正確性 (4)向表(Grade )中插入數(shù)據(jù) SNO CNO Score 20100101 0001 90 20100101 0007 86 20100102 0001 87
33、 20100102 0003 76 20100306 0001 87 20100306 0003 93 20100106 0007 85 (5) 對于student表,將所有班級號為‘CS01’的,并且年齡小于20歲的學(xué)生的班級號改為‘CS02’ Update student Set clsNo=CS02 where clsNo=CS01 and Sage<20 (6) 對于student表,刪掉所有年齡大于20歲,并且專業(yè)號為‘CS02’的學(xué)生的記錄。 對于student表,插入一條新記錄,它的具體信息為,學(xué)號:20101101、姓名:張三、性別:男、
34、年齡:19、班級編號:‘CS01’。 (7) 對于student表,將年齡最小的學(xué)生的家庭地址去掉。 (8) 對于student表,將平均年齡最小的一個班級編號改為‘GL01’ update student set clsNo=GL01 where clsNo in(select top 1 clsNo from student group by clsNo order by avg(sage)) * 請另外練習(xí)第三章的例題 實驗六 創(chuàng)建和刪除索引 二. 實驗?zāi)康? 1. 了解索引的類型和應(yīng)用。 2. 學(xué)會用SQL語句對表創(chuàng)建和刪除索引 三. 實驗準(zhǔn)備 1. 完成
35、實驗四,成功創(chuàng)建數(shù)據(jù)庫EDUC中各表 2. 了解創(chuàng)建和刪除索引的方法。 四. 實驗要求 1. 了解索引類型并比較各類索引的不同之處 3. 完成索引的創(chuàng)建和刪除,并提交實驗報告。 四. 實驗內(nèi)容 1. 分別建立以下索引(如果不能成功建立,請分析原因) (1) 在student表的sname列上建立普通降序索引。 (2) 在course表的cname列上建立唯一索引。 (3) 在sc表的sno列上建立聚集索引。 (4) 在sc表的sno(升序), cno(升序)和score(降序)三列上建立一個普通索引。 2. 刪除索引 將student_course表的sno列上的
36、聚集索引刪掉。 實驗六 創(chuàng)建和刪除索引 ●實驗指導(dǎo)——創(chuàng)建索引 一.用向?qū)Ы⑺饕? 用SQL Server 2005的SSMS在student表的sname列上建立普通降序索引 方法1: 方法2: 二. 用SQL語句創(chuàng)建索引 在course表的cname列上建立唯一索引。 CREATE UNIQUE INDEX IX_Course ON Course(Cname ) 實驗七 簡單SELECT語句 一. 實驗?zāi)康? 1.觀察查詢結(jié)果, 體會SELECT語句實際應(yīng)用; 2.要求學(xué)生能夠在查詢分析器中使用SELECT語句進行簡單查詢。 3.
37、熟練掌握簡單表的數(shù)據(jù)查詢、數(shù)據(jù)排序和數(shù)據(jù)連接查詢的操作方法。 二. 實驗準(zhǔn)備 1. 完成實驗四,成功建立了基本表。 2. 了解簡單SELECT語句的用法。 3. 比較熟悉查詢分析器中的SQL腳本運行環(huán)境。 三. 實驗要求 1.完成簡單查詢和連接查詢操作,并驗收實驗結(jié)果提交實驗報告 四. 實驗內(nèi)容 所有的查詢?nèi)坑肨ransact-SQL語句實現(xiàn) 1. 簡單查詢操作 此部分查詢包括投影、選擇條件表達、數(shù)據(jù)排序、使用臨時表等。 對EDUC數(shù)據(jù)庫實現(xiàn)以下查詢: ① 求計算機系應(yīng)用的學(xué)生學(xué)號和姓名; ② 求選修了課程的學(xué)生學(xué)號; ③ 求選修0001 課程的學(xué)生學(xué)號和
38、成績,并要求對查詢結(jié)果按成績的降序排列,如果成績相同則按學(xué)號的升序排列; ④ 求選修課程0001 且成績在80-90 之間的學(xué)生學(xué)號和成績,并將成績乘以系數(shù)0.75 輸出; select sno,score*0.75 from sc where cno=0001 and score between 80 and 90 ⑤ 求計算機應(yīng)用和數(shù)學(xué)專業(yè)的姓張的學(xué)生的信息; select * from student where sdept=計算機學(xué)院 or sdept=數(shù)學(xué)學(xué)院 ⑥ 求缺少了成績的學(xué)生的學(xué)號和課程號。 Select sno,cno from sc where score
39、is null 2. 連接查詢操作 對EDUC數(shù)據(jù)庫實現(xiàn)以下查詢: ① 查詢每個學(xué)生的情況以及他(她)所選修的課程; SELECT Student.*, cno,score FROM Student left JOIN SC ON Student.Sno = SC.Sno; select t.Sname,c.Cname from Student t left join SC s on s.Sno=t.Sno left join Course c on o=o ② 求學(xué)生的學(xué)號、姓名、選修的課程名及成績;
40、 select t.sno,t.Sname,c.Cname,s.score from Student t join SC s on s.Sno=t.Sno join Course c on o=o ③ 求選修0001 課程且成績在90 分以上的學(xué)生學(xué)號、姓名及成績; select t.sno,t.Sname,c.Cname,s.score from Student t join SC s on s.Sno=t.Sno join Course c on o=o
41、and o=0001 and s.score>=90 ④ 查詢每一門課的間接先行課。 select o,s.cpno from course f join course s on f.cpno=o 實驗八 子查詢 一. 實驗?zāi)康? 1. 掌握子查詢的表示。 2. 進一步掌握SQL Server 查詢分析器的使用方法,加深對SQL 語言的嵌套查詢語句的理解 二. 實驗準(zhǔn)備 1. 掌握SQL語句的基本語法,并熟悉查詢分析器的工作環(huán)境。 2. 完成了實驗四,創(chuàng)建了數(shù)據(jù)庫EDUC及各個基本表。 3. 了解子查詢的表
42、示方法,熟悉IN 比較符、ANY、EXISTS操作符的用法。 三. 實驗要求 1. 在實驗開始之前做好準(zhǔn)備工作。 2. 完成實驗,并驗收實驗結(jié)果提交實驗報告。 四. 實驗內(nèi)容 1.在數(shù)據(jù)庫EDUC中實現(xiàn)一下查詢: 1)求選修了高等數(shù)學(xué)的學(xué)生學(xué)號和姓名; select t.sno,t.Sname from Student t join SC s on s.Sno=t.Sno join Course c on o=o and ame=高等數(shù)學(xué) 2)求0001 課程的成績高于張三的學(xué)生學(xué)號和成績; select sc.sno,score
43、from SC where cno=0001 and score>(select score from sc,student s where cno=0001 and sname=張三 and sc.sno=s.sno) 3)求其他專業(yè)中比計算機應(yīng)用專業(yè)某一學(xué)生年齡小的學(xué)生信息(即求其它系中年齡小于計算機應(yīng)用專業(yè)年齡最大者的學(xué)生); select * from student where Sage < (select max(Sage) from student where sdept = 計算機學(xué)院)and sdept <> 計算機學(xué)院 4)求其他系中比計算機應(yīng)
44、用專業(yè)學(xué)生年齡都小的學(xué)生信息; select * from student where Sage < (select min(Sage) from student where sdept = 計算機學(xué)院) and sdept <> 計算機學(xué)院; 5)求選修了0002 課程的學(xué)生姓名; SELECT sname FROM Student JOIN SC ON Student.Sno = SC.Sno and cno=0002 6)求沒有選修0002 課程的學(xué)生姓名; SELECT sno,sname FROM student WHERE NOT EXI
45、STS (SELECT * FROM SC WHERE sno=student.sno AND cno=0002) 7)查詢選修了全部課程的學(xué)生的姓名; select Sname from Student s where not exists (select c.* from Course c where not exists (select * from SC where Sno=S.Sno and Cno=C.Cno)) 8)求至少選修了學(xué)號為“20100102”的學(xué)生所選修的全部課程的學(xué)生學(xué)號和姓名。 select Sno from SC where Cno in
46、(select Cno from SC where Sno=20100102) group by Sno having count(*)=(select count(*) from SC where Sno=20100102) select distinct scx.sno,sname from sc scx,student where scx.sno =student.sno and not exists (select * from sc scy,student where sno =20100102and scy.sno =student.sno and not exis
47、ts (select * from sc scz where scx.sno =scz.sno and o =o)) with t as ( select num=count(1),a.SNO from Sc a,Sc b where a.CNO=b.CNO and b.SNO=20100102 group by a.SNO) select t.SNO,sname from t,student s where num>=(select num from t where SNO=20100102) and t.sno=s.sno 實驗九 使用子
48、句的SELECT語句 一. 實驗?zāi)康? 1. 熟練掌握數(shù)據(jù)查詢中的分組、統(tǒng)計、計算和組合的操作方法。 2. 進一步掌握SQL Server 查詢分析器的使用,加深對SQL 語言的嵌套查詢語句的理解。 二. 實驗準(zhǔn)備 1. 了解SELECT語句的GROUP BY和ORDER BY子句的作用。 2. 了解統(tǒng)計函數(shù)和分組統(tǒng)計函數(shù)的使用方法。 3. 熟悉查詢分析器的運行環(huán)境。 三. 實驗要求 1. 在實驗之前做好準(zhǔn)備。 2. 完成實驗,并驗收實驗結(jié)果提交實驗報告。 四. 實驗內(nèi)容 所有查詢都全部用SQL語句實現(xiàn) 1. 在數(shù)據(jù)庫EDUC中實現(xiàn)如下查詢 1)求學(xué)生的總
49、人數(shù)。 select count(*) from student 2)求選修了課程的學(xué)生人數(shù)。 select count(distinct sno) from sc 3)求課程的課程號和選修該課程的人數(shù)。 select cno,count(*) from sc group by cno 4)求選修課超過3 門課的學(xué)生學(xué)號 SELECT sno FROM sc GROUP BY sno HAVING COUNT(*)>3 2. 提高操作實驗 建立“圖書_讀者”數(shù)據(jù)庫及如下3個表,并輸入實驗數(shù)據(jù),用SQL語句實現(xiàn)如下五個查詢: 1)查找這樣的圖書類別:
50、要求類別中最高的圖書定價不低于全部按類別分組的圖書的平均定價的2 倍。 select A.類別from 圖書as A group by A.類別having max(A.定價)>=ALL(select 2*avg(B.定價) from 圖書as B group by B.類別) 2)求機械工業(yè)出版社出版的各類圖書的平均定價,分別用GROUP BY 和GROUP BY ALL 表示。 select distinct 類別, avg(定價) 平均定價 from 圖書where 出版社=機械工業(yè)出版社 group by 類別 3)列出計算機類圖書的書號、名稱及價格,最后求出冊數(shù)和總價
51、格。 SELECT 書號,書名,定價FROM 圖書WHERE 類別=計算機 COMPUTE SUM(定價),COUNT(書號) 4)列出計算機類圖書的書號、名稱及價格,并求出各出版社這類書的總價格,最后求出全部冊書和總價格。 SELECT 書號,書名,定價FROM 圖書WHERE 類別=計算機 ORDER BY 出版社COMPUTE COUNT(書號),SUM(定價) BY 出版社 COMPUTE COUNT(書號),SUM(定價) 5)查詢計算機類和機械工業(yè)出版社出版的圖書。 select 書號,書名from 圖書where 類別=計算機and 出版社=機械
52、工業(yè)出版社 表結(jié)構(gòu)如下: 圖書: 列名 類型 長度 是否可為空 書號 char 10 類別 char 12 是 出版社 char 50 作者 char 20 是 書名 char 50 定價 money 8 是 讀者: 列名 類型 長度 是否可為空 編號 char 10 姓名 char 8 單位 char 50 是 性別 char 2 是 電話 char 15 是 借閱: 列名 類型 長度 是否可為空 串號 char 10 書號 char 10
53、讀者編號 char 10 借閱日期 datetime 8 要求: ①圖書表:書號為主碼 ②讀者表:編號為主碼; 性別只能是“男”或“女”的CHECK 約束 ③借閱表:串號為主碼; 書號為外碼,參照表、列是圖書表的書號列; 讀者編號為外碼,參照表、列是讀者表的編號列; 書號和讀者編號的聯(lián)合UNIQUE 約束 實驗數(shù)據(jù): 圖書: 書號 類別 出版社 作者 書名 定價 1001 計算機 機械工業(yè)出版社 王民 數(shù)據(jù)結(jié)構(gòu) 80 1002 計算機 機械工業(yè)出版社 張建平 計算機應(yīng)用 20 1003 計算機 電子工業(yè)出版社 王
54、敏 數(shù)據(jù)庫技術(shù) 15 1004 計算機 電子工業(yè)出版社 譚浩強 C 語言 25 1005 英語 中國人民大學(xué)出版社 張錦芯 應(yīng)用文寫作 25 1006 管理 高等教育出版社 Robison 管理學(xué) 15 1007 管理 機械工業(yè)出版社 Fayol 工業(yè)管理 70 1008 數(shù)學(xué) 機械工業(yè)出版社 李平 線性代數(shù) 50 1009 管理 機械工業(yè)出版社 Durark 公司的概念 14 1010 數(shù)學(xué) 機械工業(yè)出版社 徐新國 統(tǒng)計學(xué) 15 讀者: 編號 姓名 單位 性別 電話 1001 丁一 數(shù)學(xué)
55、院 男 81234567 1002 趙二 經(jīng)濟學(xué)院 男 82234567 1003 張三 管理學(xué)院 女 83234567 1004 李四 文學(xué)院 男 84234567 1005 王五 歷史文化學(xué)院 女 85234567 1006 孫六 物理學(xué)院 男 86234567 1007 周七 生命科學(xué)院 女 87234567 1008 徐八 化學(xué)院 男 88234567 1009 宋九 信息學(xué)院 女 89234567 1010 劉十 計算機學(xué)院 女 80234567 借閱: 串號 書號 讀者編號 借閱
56、日期 01 1001 1003 2000-1-1 02 1002 1005 2002-3-5 03 1003 1008 1998-6-18 04 1004 1003 1997-12-8 05 1005 1010 2001-5-4 06 1006 1001 2005-7-25 07 1007 1010 997-11-3 08 1008 1009 2004-2-1 09 1009 1004 1996-9-1 10 1010 1008 2000-6-4 insert into 圖書values(1001,計算機,機
57、械工業(yè)出版社,王民,數(shù)據(jù)結(jié)構(gòu),80) insert into 圖書values(1002,計算機,機械工業(yè)出版社,張建平,計算機應(yīng)用,20) insert into 圖書values(1003,計算機,電子工業(yè)出版社,王敏,數(shù)據(jù)庫技術(shù),15) insert into 圖書values(1004,計算機,電子工業(yè)出版社,譚浩強,C 語言,25) insert into 圖書values(1005,英語,中國人民大學(xué)出版社,張錦芯,應(yīng)用文寫作,25) insert into 圖書values(1006,管理,高等教育出版社,Robison,管理學(xué),15) insert into 圖書v
58、alues(1007,管理,機械工業(yè)出版社,Fayol,工業(yè)管理,70) insert into 圖書values(1008,數(shù)學(xué),機械工業(yè)出版社,李平,線性代數(shù),50) insert into 圖書values(1009,管理,機械工業(yè)出版社,Durark,公司的概念,14) insert into 圖書values(1010,數(shù)學(xué),機械工業(yè)出版社,徐新國,統(tǒng)計學(xué),15) insert into 讀者values(1001,丁一,數(shù)學(xué)院,男,81234567) insert into 讀者values(1002,趙二,經(jīng)濟學(xué)院,男,82234567) insert int
59、o 讀者values(1003,張三,管理學(xué)院,女,83234567) insert into 讀者values(1004,李四,文學(xué)院,男,84234567) insert into 讀者values(1005,王五,歷史文化學(xué)院,女,85234567) insert into 讀者values(1006,孫六,物理學(xué)院,男,86234567) insert into 讀者values(1007,周七,生命科學(xué)院,女,87234567) insert into 讀者values(1008,徐八,化學(xué)院,男,88234567) insert into 讀者values(1009
60、,宋九,信息學(xué)院,女,89234567) insert into 讀者values(1010,劉十,計算機學(xué)院,女,80234567) insert into 借閱values(01,1001,1003,2000-1-1) insert into 借閱values(02,1002,1005,2002-3-5) insert into 借閱values(03,1003,1008,1998-6-18) insert into 借閱values(04,1004,1003,1997-12-8) insert into 借閱values(05,1005,1010,2001-5-4
61、) insert into 借閱values(06,1006,1001,2005-7-25) insert into 借閱values(07,1007,1010,997-11-3) insert into 借閱values(08,1008,1009,2004-2-1) insert into 借閱values(09,1009,1004,1996-9-1) insert into 借閱values(10,1010,1008,2000-6-4) 實驗十 創(chuàng)建視圖 一. 實驗?zāi)康? 1.掌握創(chuàng)建視圖的SQL語句的用法。 2.掌握使用企業(yè)管管理器創(chuàng)建視圖的方法。 3.掌握使用創(chuàng)建
62、視圖向?qū)?chuàng)建視圖的方法。 4.掌握查看視圖的系統(tǒng)存儲過程的用法。 5.掌握修改視圖的方法。 二. 實驗準(zhǔn)備 1.了解創(chuàng)建視圖方法。 2.了解修改視圖的SQL語句的語法格式。 3.了解視圖更名的系統(tǒng)存儲過程的用法。 4.了解刪除視圖的SQL語句的用法。 三. 實驗要求 1. 用不同的方法創(chuàng)建視圖。 2. 提交實驗報告,并驗收實驗結(jié)果。 四. 實驗內(nèi)容 1. 創(chuàng)建視圖 (1) 使用SSMS創(chuàng)建視圖 ① 在EDUC庫中以“student”表為基礎(chǔ),建立一個名為“V_計算機系學(xué)生”的視圖。在使用該視圖時,將顯示“student”表中的所有字段. crea
63、te view V_計算機系學(xué)生as select * from student where sdept=計算機學(xué)院 (2) 使用SQL語句創(chuàng)建視圖 ① 在查詢分析器中建立一個每個學(xué)生的學(xué)號、姓名、選修的課名及成績的視圖S_C_GRADE; create view S_C_GRADE as select s.sno,sname,cname,score from student s,course c,sc where s.sno=sc.sno and o=o ②建立一個所有計算機系學(xué)生的學(xué)號、選修課程號以及平均成績的視圖COMPUTE_AVG_GRADE; create vie
64、w COMPUTE_AVG_GRADE as select s.sno,cno,avg(score) as pjcj from student s,sc where s.sno=sc.sno and sdept=計算機學(xué)院 group by s.sno,cno 2. 修改視圖 (1) 使用SSMS修改視圖 在SSMS中將視圖COMPUTE_AVG_GRADE中改成建立在數(shù)學(xué)系的學(xué)生學(xué)號、選修課程號以及平均成績的視圖。 (2) 使用SQL語句修改視圖 ① 在查詢分析器中使用更改視圖的命令將上面建立的視圖“V_計算機系學(xué)生”更名為“V_計算機系男生”。 EXEC sp_rename V_計算機系學(xué)生, V_計算機系男生 3. 刪除視圖 (1) 使用SSMS刪除視圖 用SSMS刪除視圖“V_計算機系學(xué)生” (2) 使用SQL語句刪除視圖 用SQL語句刪除視圖COMPUTE_AVG_GRADE; drop view COMPUTE_AVG_GRADE 實驗十一 使用視圖 一. 實驗?zāi)康? 1. 熟悉和掌握對數(shù)據(jù)表中視圖的查詢操作和SQL命令的使用; 2. 熟悉和掌握對數(shù)據(jù)表中視圖的更新操作和SQL命令的使用,并注意視圖更新與基本表更新的區(qū)別與聯(lián)系 3.
- 溫馨提示:
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)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。