數(shù)據(jù)庫原理本科實驗指導(dǎo)綜合_第1頁
數(shù)據(jù)庫原理本科實驗指導(dǎo)綜合_第2頁
數(shù)據(jù)庫原理本科實驗指導(dǎo)綜合_第3頁
數(shù)據(jù)庫原理本科實驗指導(dǎo)綜合_第4頁
數(shù)據(jù)庫原理本科實驗指導(dǎo)綜合_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

《數(shù)據(jù)庫原理》實驗指導(dǎo)書3/33《數(shù)據(jù)庫原理》實驗指導(dǎo)書實驗一建立數(shù)據(jù)庫一、實驗?zāi)康?.了解SQLServer2000;2.掌握SQLServer2000數(shù)據(jù)庫的建立和刪除。二、實驗內(nèi)容1.查看SQLServer2000的所有組件2.使用服務(wù)管理器3.使用企業(yè)管理器4.使用查詢分析器5.在企業(yè)管理器中建立和刪除數(shù)據(jù)庫6.在查詢分析器中建立和刪除數(shù)據(jù)庫三、實驗步驟1.SQLServer2000的組件(9個)(1)查詢分析器: 執(zhí)行輸入的SQL語句并顯示結(jié)果。(2)導(dǎo)入和導(dǎo)出數(shù)據(jù): SQLServer2000與其他數(shù)據(jù)庫系統(tǒng)進(jìn)行相互轉(zhuǎn)換。(3)服務(wù)管理器: 管理SQLServer2000的各種服務(wù)。(4)服務(wù)器網(wǎng)絡(luò)實用工具: 管理和配置服務(wù)器網(wǎng)絡(luò)。(5)客戶端網(wǎng)絡(luò)實用工具: 管理和配置客戶端網(wǎng)絡(luò)。(6)聯(lián)機叢書: 幫助系統(tǒng)。(7)企業(yè)管理器: 對本地或遠(yuǎn)程SQLServer2000服務(wù)器進(jìn)行管理。(8)事件探查器: 監(jiān)視SQLServer2000執(zhí)行的SQL語句。(9)在IIS中配置SQLXML支持: 配置對IIS對XML的支持。2.服務(wù)管理器啟動、暫停和停止指定服務(wù)器上的SQLServer2000的服務(wù)。(1)Server:指定服務(wù)器(2)Services:選擇管理的4種服務(wù)①SQLServer:數(shù)據(jù)庫引擎。②SQLServerAgent:自動化工作代理服務(wù)。③MSSearch:文本查詢服務(wù)④DistributedTransactionCoordinator:分布式事務(wù)處理控制器。(3)Start/Continue:啟動選定的服務(wù)(4)Pause:暫停選定的服務(wù)(5)Stop:停止選定的服務(wù)。(6)“當(dāng)啟動OS時自動啟動服務(wù)”復(fù)選框。3.企業(yè)管理器對本地或者遠(yuǎn)程服務(wù)器進(jìn)行管理操作。1)管理服務(wù)器:(1)服務(wù)器服務(wù):①Database:數(shù)據(jù)庫(master、tempdb、msdb、model)②DataTransformationServices:轉(zhuǎn)移③Management:管理(Agent、Backup、Activity、Plans、logs)④Replication:復(fù)制⑤Security:安全(logins、ServerRoles、LinkedServers、RemoteServers)⑥SupportServices:支持(DTC、Serch、Mail)⑦M(jìn)etaDataServices:元數(shù)據(jù)(2)服務(wù)器分組:將多服務(wù)器分組(top組或sub組),默認(rèn)組為SQLServerGroup(3)服務(wù)器注冊:①選擇服務(wù)器:自動檢測,手工添加②選擇驗證方式:Windows驗證和SQLServer驗證③選擇服務(wù)器組:AddSQLServerGroup或CreateNewtopGroup2)管理數(shù)據(jù)庫(1)自動建立的數(shù)據(jù)庫(6個)①master:主數(shù)據(jù)庫,記錄登錄和用戶,系統(tǒng)配置設(shè)置,其他數(shù)據(jù)庫包括數(shù)據(jù)庫文件的位置等。②tempdb:臨時數(shù)據(jù)庫。保存所有臨時表和臨時存儲過程。③msdb:任務(wù)代理數(shù)據(jù)庫。供SQLServerAgent服務(wù)完成自動化工作使用。④model:模板數(shù)據(jù)庫。⑤Northwind:銷售范例數(shù)據(jù)庫⑥pubs:書籍出版范例數(shù)據(jù)庫。(2)數(shù)據(jù)庫對象(10個)每個數(shù)據(jù)庫中有10個目錄結(jié)構(gòu),稱之為數(shù)據(jù)庫對象。①關(guān)系圖(Digram)②表(Table)③視圖(View)④存儲過程(StoredProcedure)⑤用戶(User)⑥角色(Role)⑦規(guī)則(Ruler)⑧默認(rèn)(Default)⑨用戶定義的數(shù)據(jù)類型(UserDefinedDataType)⑩用戶定義的函數(shù)(Function)4.查詢分析器執(zhí)行輸入的SQL語言。查詢分析器是SQLServer的交互界面,接受SQL語句,檢查語法錯誤,執(zhí)行語句,返回執(zhí)行結(jié)果。查詢分析器是學(xué)習(xí)數(shù)據(jù)庫操作的主要工具。5.企業(yè)管理器中建立和刪除數(shù)據(jù)庫(1)建立數(shù)據(jù)庫打開企業(yè)管理器,在數(shù)據(jù)庫上選擇菜單NewDatabase或CreateDatabaseWizard,主要參數(shù):數(shù)據(jù)庫名:name主數(shù)據(jù)文件.mdf:每一個數(shù)據(jù)庫對應(yīng)的文件,包括邏輯名、物理位置、物理文件次數(shù)據(jù)文件.ndf:包括邏輯名、物理位置、物理文件日志文件.ldf:每個數(shù)據(jù)庫必須至少有一個日志文件,包括邏輯名、物理位置、物理文件文件屬性:自動擴展及其擴展方式和最大空間(2)刪除數(shù)據(jù)庫選擇要刪除的數(shù)據(jù)庫,選擇菜單上的刪除命令。6.查詢分析器中建立和刪除數(shù)據(jù)庫(1)建立數(shù)據(jù)庫以mydb為例CREATEDATABASEmydb --數(shù)據(jù)庫名ON --數(shù)據(jù)文件( NAME=pmydb, --主數(shù)據(jù)文件 FILENAME='D:\MSSQLDATA\mydb.mdf', --物理文件及位置 SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1MB --初始大小、最大值、增長),( NAME=nmydb, --次數(shù)據(jù)文件 FILENAME='D:\MSSQLDATA\mydb.ndf', --物理文件及位置 SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1MB --初始大小、最大值、增長)LOGON --日志文件( NAME=logmydb, FILENAME='E:\MSSQLLOG\mydb.ldf', --物理文件及位置 SIZE=100MB,MAXSIZE=1000MB,FILEGROWTH=10MB --初始大小、最大值、增長);(2)刪除數(shù)據(jù)庫DROPDATABASEmydb;四、實驗小結(jié)1.本次實驗的心得和體會。2.本次實驗的注意事項。3.本次實驗中遇到的問題和解決方法。4.小結(jié)CREATEDATABASE語句的基本語法格式。

實驗二建立表一、實驗?zāi)康?.掌握表的建立和刪除2.掌握完整性規(guī)則的設(shè)置二、實驗內(nèi)容1.建立dept表,并設(shè)置完整性規(guī)則(2+3)2.建立student表,并設(shè)置完整性規(guī)則(5+7)3.建立course表,并設(shè)置完整性規(guī)則(4+6)4.建立study表,并設(shè)置完整性規(guī)則(3+3)5.刪除建立的表。三、實驗步驟運行實驗1的SQL語句。1.建立dept表,并設(shè)置完整性規(guī)則CREATETABLEdept( dno CHAR(2), dname VARCHAR(20) NOTNULL, CONSTRAINTdept_pkPRIMARYKEY(dno), CONSTRAINTdept_ukUNIQUE(dname));2.建立student表,并設(shè)置完整性規(guī)則CREATETABLEstudent( sno CHAR(2), sname VARCHAR(20) NOTNULL, ssex CHAR(2) NOTNULL, sage INT NOTNULL, dno CHAR(10) NOTNULL, CONSTRAINTstudent_pkPRIMARYKEY(sno), CONSTRAINTstudent_fkFOREIGNKEY(dno)REFERENCESdept(dno) ONDELETECASCADEONUPDATECASCADE, CONSTRAINTstudent_ckCHECK(ssexin('男','女')));3.建立course表,并設(shè)置完整性規(guī)則CREATETABLEcourse( cno CHAR(2), cname VARCHAR(20) NOTNULL, pcno CHAR(2) NULL, credit INT NOTNULL, CONSTRAINTcourse_pkPRIMARYKEY(cno), CONSTRAINTcourse_fkFOREIGNKEY(pcno)REFERENCEScourse(cno), CONSTRAINTcourse_ukUNIQUE(cname), CONSTRAINTcourse_ckCHECK(credit>0));4.建立study表,并設(shè)置完整性規(guī)則CREATETABLEstudy( cno CHAR(2), cno CHAR(2), grade INT NULL, CONSTRAINTstudy_pkPRIMARYKEY(sno,cno), CONSTRAINTstudy_fk_snoFOREIGNKEY(sno)REFERENCESstudent(sno), CONSTRAINTstudy_fk_cnoFOREIGNKEY(cno)REFERENCEScourse(cno));5.刪除建立的4個表。DROPTABLEdept;DROPTABLEstudent;DROPTABLEcourse;DROPTABLEstudy;思考:刪表能順利進(jìn)行嗎?為什么?四、實驗小結(jié)1.小結(jié)CREATETABLE語句的基本語法格式。2.小結(jié)SQLserver2000基本數(shù)據(jù)類型(20種)3.小結(jié)SQLserver2000完整性定義方法(5種)

實驗三數(shù)據(jù)更新一、實驗?zāi)康?.掌握數(shù)據(jù)的增刪改操作2.進(jìn)一步掌握完整性規(guī)則二、實驗內(nèi)容1.對dept表進(jìn)行數(shù)據(jù)增刪改,并檢查完整性規(guī)則2.對student表進(jìn)行數(shù)據(jù)增刪改,并檢查完整性規(guī)則3.對course表進(jìn)行數(shù)據(jù)增刪改,并檢查完整性規(guī)則4.對study表進(jìn)行數(shù)據(jù)增刪改,并檢查完整性規(guī)則三、實驗步驟運行實驗1、2的SQL語句。1.對dept表進(jìn)行數(shù)據(jù)增刪改,并檢查完整性規(guī)則完整性規(guī)則如下:dno CHAR(2) PRIMARYKEYdname VARCHAR(20) NOTNULL,UNIQUE(1)增加數(shù)據(jù)INSERTINTOdeptVALUES('D1','計科系');正常插入INSERTINTOdeptVALUES('D2','電信系');正常插入INSERTINTOdeptVALUES(NULL,'機械系');違反dno的主鍵(NOTNULL)規(guī)則INSERTINTOdeptVALUES('D2','機械系');違反dno的主鍵(UNIQUE)規(guī)則INSERTINTOdeptVALUES('D3',NULL);違反dname的NOTNULL規(guī)則INSERTINTOdeptVALUES('D3','計科系');違反dname的UNIQUE規(guī)則INSERTINTOdeptVALUES('D3','機械系');正常插入(2)刪除數(shù)據(jù)DELETEFROMdeptWHEREdno='D3';正常刪除(3)修改數(shù)據(jù)UPDATEdeptSETdname='計算機科學(xué)系'WHEREdno='D1';正常修改UPDATEdeptSETdname='電信系'WHEREdno='D1';違反dname的UNIQUE規(guī)則UPDATEdeptSETdname=NULLWHEREdno='D1';違反dname的NOTNULL規(guī)則UPDATEdeptSETdno='D4'WHEREdno='D1';測試DBMS是否允許修改主鍵?UPDATEdeptSETdno='D2'WHEREdno='D1';違反dno的主鍵(UNIQUE)規(guī)則UPDATEdeptSETdno=NULLWHEREdno='D1';違反dno的主鍵(NOTNULL)規(guī)則dept操作后的數(shù)據(jù)維持為:dnodnameD1計科系D2電信系2.對student表進(jìn)行數(shù)據(jù)增刪改,并檢查完整性規(guī)則完整性規(guī)則如下:sno CHAR(2) PRIMARYKEYsname VARCHAR(20) NOTNULL,ssex CHAR(2) NOTNULL,CHECK(ssexin('男','女'))sage INT NOTNULL,dno CHAR(2) NOTNULL,FOREIGNKEYREFERENCESdept(dno) ONDELETECASCADEONUPDATECASCADE(1)增加數(shù)據(jù)INSERTINTOstudentVALUES('S1','張剛','男',20,'D2');正常插入INSERTINTOstudentVALUES('S2','李梅','女',21,'D2');正常插入INSERTINTOstudentVALUES('S2','吳敏','男',20,'D1');違反sno的主鍵(UNIQUE)規(guī)則INSERTINTOstudentVALUES(NULL,'吳敏','男',20,'D1');違反sno的主鍵(NOTNULL)規(guī)則INSERTINTOstudentVALUES('S3','吳敏','男',NULL,'D1');違反sage的NOTNULL規(guī)則INSERTINTOstudentVALUES('S3','吳敏','M',20,'D1');違反ssex的CHECK規(guī)則INSERTINTOstudentVALUES('S3','吳敏','男',20,'D3');違反dno的外鍵規(guī)則INSERTINTOstudentVALUES('S3','吳敏','男',20,'D1');正常插入(2)刪除數(shù)據(jù)DELETEFROMstudentWHEREsno='S3';(3)修改數(shù)據(jù)UPDATEstudentSET sname='趙強',dno='D1'WHEREsno='S1'正常修改UPDATEstudentSET sname=NULLWHEREsno='S1'違反sname的NOTNULL規(guī)則UPDATEstudentSET ssex='F'WHEREsno='S1'違反ssex的CHECK規(guī)則UPDATEstudentSETsno='S2'WHEREsno='S1';違反sno的主鍵(UNIQUE)規(guī)則UPDATEstudentSETsno=NULLWHEREsno='S1';違反sno的主鍵(NOTNULL)規(guī)則UPDATEstudentSET dno='D3'WHEREsno='S1'違反dno的外鍵規(guī)則UPDATEdeptSETdno='D3'WHEREdno='D1'檢查dno的外鍵ONUPDATE規(guī)則DELETEFROMdeptWHEREdno='D2'檢查dno的外鍵ONDELETE規(guī)則student操作后的數(shù)據(jù)保持為:snosnamessexsagednoS1趙強男20D1S2李梅女21D23.對course表進(jìn)行數(shù)據(jù)增刪改,并檢查完整性規(guī)則完整性規(guī)則如下:cno CHAR(2) PRIMARYKEYcname VARCHAR(20) NOTNULL,UNIQUEpcno CHAR(2) NULL,FOREIGNKEYREFERENCEScourse(cno)credit INT NOTNULL,CHECK(credit>0)(1)增加數(shù)據(jù)INSERTINTOcourseVALUES('C1','操作系統(tǒng)',NULL,3);正常插入INSERTINTOcourseVALUES('C2','數(shù)據(jù)庫原理','C1',4);正常插入INSERTINTOcourseVALUES(NULL,'計算機網(wǎng)絡(luò)','C1',3);違反cno的主鍵(NOTNULL)規(guī)則INSERTINTOcourseVALUES('C2','計算機網(wǎng)絡(luò)','C1',3);違反cno的主鍵(UNIQUE)規(guī)則INSERTINTOcourseVALUES('C3',NULL,'C1',3);違反cname的NOTNULL規(guī)則INSERTINTOcourseVALUES('C3','數(shù)據(jù)庫原理','C1',3);違反cname的UNIQUE規(guī)則INSERTINTOcourseVALUES('C3','數(shù)據(jù)庫原理','C4',3);違反pcno的外鍵規(guī)則INSERTINTOcourseVALUES('C3','計算機網(wǎng)絡(luò)','C1',NULL);違反credit的NOTNULL規(guī)則INSERTINTOcourseVALUES('C3','計算機網(wǎng)絡(luò)','C1',0);違反credit的CHECK規(guī)則INSERTINTOcourseVALUES('C3','計算機網(wǎng)絡(luò)','C1',3);正常插入(2)刪除數(shù)據(jù)DELETEFROMcourseWHEREcno='C3';正常刪除(3)修改數(shù)據(jù)UPDATEcourseSETcname='操作系統(tǒng)原理'WHEREcno='C1';正常修改(再次修改為'操作系統(tǒng)')UPDATEcourseSETcname='數(shù)據(jù)庫原理'WHEREcno='C1';違反cname的UNIQUE規(guī)則UPDATEcourseSETcname=NULLWHEREcno='C1';違反cname的NOTNULL規(guī)則UPDATEcourseSETpcno='C4'WHEREcno='C1';違反pcno的外鍵規(guī)則UPDATEcourseSETcredit=NULLWHEREcno='C1';違反credit的NOTNULL規(guī)則UPDATEcourseSETcredit=-3WHEREcno='C1';違反credit的CHECK規(guī)則UPDATEcourseSETcno='C2'WHEREcno='C1';違反cno的主鍵(UNIQUE)規(guī)則UPDATEcourseSETcno=NULLWHEREcno='C1';違反cno的主鍵(NOTNULL)規(guī)則course操作后的數(shù)據(jù)維持為:cnocnamecreditC1操作系統(tǒng)3C2數(shù)據(jù)庫原理44.對study表進(jìn)行數(shù)據(jù)增刪改,并檢查完整性規(guī)則cno CHAR(2) FOREIGNKEYcno CHAR(2) FOREIGNKEYgrade INT NULLPRIMARYKEY(sno,cno)(1)增加數(shù)據(jù)INSERTINTOstudyVALUES('S1','C1',100);正常插入INSERTINTOstudyVALUES('S1','C2',90);正常插入INSERTINTOstudyVALUES('S2','C1',80);正常插入INSERTINTOstudyVALUES('S2','C1',70);違反(cno,sno)的主鍵(UNIQUE)規(guī)則INSERTINTOstudyVALUES('S2',NULL,70);違反(cno,sno)的主鍵(NULL)規(guī)則INSERTINTOstudyVALUES('S3','C1',70);違反sno的外鍵規(guī)則INSERTINTOstudyVALUES('S2','C3',70);違反cno的外鍵規(guī)則INSERTINTOstudyVALUES('S2','C2',70);正常插入(2)刪除數(shù)據(jù)DELETEFROMstudyWHERE(sno='S2'ANDcno='C2');正常刪除(3)修改數(shù)據(jù)UPDATEstudySETgrade=95WHERE(sno='S1'ANDcno='C1')正常修改UPDATEstudySETcno='C2'WHERE(sno='S1'ANDcno='C1');違反(sno,cno)的主鍵(UNIQUE)規(guī)則UPDATEstudySETcno=NULLWHERE(sno='S1'ANDcno='C1');違反(sno,cno)的主鍵(NOTNULL)規(guī)則UPDATEstudentSETsno='S3'WHEREsno='S1'檢查sno的外鍵ONUPDATE規(guī)則DELETEstudentWHEREdno='S1'檢查sno的外鍵ONDELETE規(guī)則UPDATEcourseSETcno='C3'WHEREcno='C1'檢查cno的外鍵ONUPDATE規(guī)則DELETEcourseWHEREcno='C1'檢查cno的外鍵ONDELETE規(guī)則study操作后的數(shù)據(jù)保持為:snocnogradeS1C195S1C290S2C180四、實驗小結(jié)1.本次實驗的心得和體會。2.本次實驗的注意事項。3.本次實驗中遇到的問題和解決方法。4.小結(jié)INSERT、DELETE、UPDATE語句的基本語法格式。

實驗四數(shù)據(jù)查詢一、實驗?zāi)康恼莆諗?shù)據(jù)查詢語句SELECT。二、實驗內(nèi)容1.單表查詢2.集合查詢3.連接查詢4.嵌套查詢?nèi)?、實驗步驟運行實驗1、2、3的SQL語句,參考如下:CREATEDATABASEmydbON( NAME=pmydb, FILENAME='D:\MSSQLDATA\mydb.mdf',SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1MB)LOGON( NAME=logmydb, FILENAME='D:\MSSQLDATA\mydb.ldf',SIZE=100MB,MAXSIZE=1000MB,FILEGROWTH=10MB)gousemydbCREATETABLEdept( dno CHAR(2), dname VARCHAR(20) NOTNULL, CONSTRAINTdept_pkPRIMARYKEY(dno), CONSTRAINTdept_ukUNIQUE(dname));CREATETABLEstudent( sno CHAR(2), sname VARCHAR(20) NOTNULL, ssex CHAR(2) NOTNULL, sage INT NOTNULL, dno CHAR(2) NOTNULL, CONSTRAINTstudent_pkPRIMARYKEY(sno), CONSTRAINTstudent_fkFOREIGNKEY(dno)REFERENCESdept(dno) ONDELETECASCADEONUPDATECASCADE, CONSTRAINTstudent_ckCHECK(ssexin('男','女')));CREATETABLEcourse( cno CHAR(2), cname VARCHAR(20) NOTNULL, pcno CHAR(2) NULL, credit INT NOTNULL, CONSTRAINTcourse_pkPRIMARYKEY(cno), CONSTRAINTcourse_fkFOREIGNKEY(pcno)REFERENCEScourse(cno), CONSTRAINTcourse_ukUNIQUE(cname), CONSTRAINTcourse_ckCHECK(credit>0));CREATETABLEstudy( sno CHAR(2), cno CHAR(2), grade INT NULL, CONSTRAINTstudy_pkPRIMARYKEY(sno,cno), CONSTRAINTstudy_fk_snoFOREIGNKEY(sno)REFERENCESstudent(sno), CONSTRAINTstudy_fk_cnoFOREIGNKEY(cno)REFERENCEScourse(cno));INSERTINTOdeptVALUES('D1','計科系');INSERTINTOdeptVALUES('D2','電信系');INSERTINTOdeptVALUES('D3','機械系');INSERTINTOstudentVALUES('S1','張剛','男',20,'D2');INSERTINTOstudentVALUES('S2','李梅','女',21,'D2');INSERTINTOstudentVALUES('S3','吳敏','男',20,'D1');INSERTINTOcourseVALUES('C1','操作系統(tǒng)',NULL,3);INSERTINTOcourseVALUES('C2','數(shù)據(jù)庫原理','C1',4);INSERTINTOcourseVALUES('C3','計算機網(wǎng)絡(luò)','C1',3);INSERTINTOstudyVALUES('S1','C1',100);INSERTINTOstudyVALUES('S1','C2',90);INSERTINTOstudyVALUES('S2','C1',80);INSERTINTOstudyVALUES('S2','C2',70);1.單表查詢[19](1)投影查詢[8]:指定列、所有列;表示式列、常量列、函數(shù)列;使用DISTINCT、列別名;表別名和表.字段①SELECTsno,snameFROMstudent;②SELECT*FROMstudent;③SELECTsno,sname,2011-sageFROMstudent;④SELECTsno,'sname'FROMstudent;⑤SELECTcount(*)FROMstudent;⑥SELECTDISTINCTdnoFROMstudent;⑦SELECTsno學(xué)號,sname姓名FROMstudent;⑧SELECTs.sno,s.snameFROMstudents;(2)條件查詢[6]:比較、邏輯、范圍、集合、匹配、空值①SELECTsno,snameFROMstudentWHEREsage>20;②SELECTsno,snameFROMstudentWHERE(dno='D1')AND(sage>20);③SELECTsno,snameFROMstudentWHEREsageBEWEEN20AND23;④SELECTsno,snameFROMstudentWHEREdnoIN('D1','D2');⑤SELECTsno,snameFROMstudentWHEREsnameLIKE'張%';⑥SELECTsno,cnoFROMstudyWHEREgradeISNULL;(3)排序查詢[3]:單列、多列;升序與降序①SELECT*FROMstudentORDERBYsnoASC;②SELECT*FROMstudentORDERBYsnameDESC;③SELECT*FROMstudentORDERBYdnoDESC,snoASC;(4)分組查詢[2]:分組、分組條件①SELECTcno,AVG(grade)FROMstudyGROUPBYcno;②SELECTsno,AVG(grade)FROMstudyGROUPBYsnoHAVING(AVG(grade)>=80);2.集合查詢[3](1)并UNION[1]SELECTsno,sname,ssexFROMstudentWHEREdno='D1'UNIONSELECTsno,sname,ssexFROMstudentWHEREdno='D2';(2)交INTERSECT[1]SELECTsnoFROMstudyWHEREcno='C1'INTERSECTSELECTsnoFROMstudyWHEREcno='C2';(3)差EXCEPT[1]SELECTsnoFROMstudyWHEREcno='C1'EXCEPTSELECTsnoFROMstudyWHEREcno='C2';3.連接查詢[8](1)交叉連接[1]SELECTsno,sname,cno,cname FROMstudentcourse;(2)自然連接[3]:兩表、多表;連接條件、復(fù)合條件①SELECTs.sno,s.sname,o,d.grade FROMstudents,studyd; WHEREs.sno=d.sno②SELECTs.sno,sname,cname,grade FROMstudents,coursec,studyd; WHERE(s.sno=d.sno)AND(o=o)③SELECTs.sno,s.sname,o,d.grade FROMstudents,studyd; WHERE(s.sno=d.sno)AND(s.dno='D1')(3)外連接[3]:全外連接、左外連接、右外連接①SELECTdname,sname FROMdeptd FULLOUTERJOINstudentsON(s.dno=d.dno);②SELECTdname,sname FROMdeptd LEFTOUTERJOINstudentsON(s.dno=d.dno);③SELECTdname,sname FROMdeptd RIGHTOUTERJOINstudentsON(s.dno=d.dno);(4)自連接[1]SELECTo,b.pcno FROMcoursea,courseb, WHEREa.pcno=o;4.嵌套查詢[6](1)單值嵌套[1]SELECTsno,grade FROMstudy WHEREcno=(SELECTcnoFROMcourseWHEREcname='C語言程序設(shè)計');(2)多值嵌套[4]:[NOT]IN、ANY、ALL、[NOT]EXISTSSELECTsname FROMstudent WHEREsnoIN(SELECTsnoFROMstudyWHEREcno='C1');SELECTsno,sname FROMstudent WHEREsage>ANY(SELECTDISTINCTsageFROMstudentWHEREdno='D1');SELECTsno,sname FROMstudent WHEREsage<ALL(SELECTDISTINCTsageFROMstudentWHEREdno='D1');SELECTsname,sage FROMstudent WHEREEXISTS(SELECT*FROMstudentWHEREsage>=30);(3)相關(guān)子查詢[1]:SELECTsno,cno FROMstudys WHEREgrade>(SELECTAVG(grade)FROMstduydWHERE(d.sno=s.sno)四、實驗小結(jié)1.本次實驗的心得和體會。2.本次實驗的注意事項。3.本次實驗中遇到的問題和解決方法。4.小結(jié)SELECT語句的基本語法格式。

實驗五視圖操作一、實驗?zāi)康恼莆找晥D的操作。二、實驗內(nèi)容1.建立視圖:檢查、行列、連接、計算、分組5種視圖。2.查詢視圖:查詢所建5個視圖。3.更新視圖:更新所建5個視圖。4.刪除視圖:刪除所建5個視圖。三、實驗步驟運行實驗1、2、3、4的SQL語句。1.建立視圖①建立的檢查視圖view1:CREATEVIEWview1AS SELECTsno,sname,dnoFROMstudentWHEREssex='男'WITHCHECKOPTION②建立的行列視圖view2:CREATEVIEWview2AS SELECTsno,sname,ssexFROMstudentWHEREdno='CS'③建立的連接視圖view3:CREATEVIEWview3AS SELECTsno,sname,dnameFROMstudents,deptdWHEREs.dno=d.dno④建立的計算視圖view4:CREATEVIEWview4AS SELECTsno,sname,2010-sagesbirthFROMstudent⑤建立的分組視圖view5:CREATEVIEWview5AS SELECTsno,AVG(grade)avggradeFROMstudyGROUPBYsno2.查詢視圖①查詢視圖view1:SELECT*FROMview1 WHEREdno='CS';②查詢視圖view2:SELECT*FROMview2 WHEREdno='男';③查詢視圖view3:SELECT*FROMview3 WHEREsno='S01';④查詢視圖view4:SELECT*FROMview4 WHEREsbirth>1990;⑤查詢視圖view5:SELECT*FROMview5 WHEREavggrade>80;3.更新視圖①增刪改視圖view1:INSERTINTOview1(sno,sname,dno)VALUES('S01','張三','CS');DELETEFROMview1WHEREsno='S02';UPDATEview1SETsname='張山'WHEREsno='S01';②增刪改視圖視圖view2:INSERTINTOview2(sno,sname,ssex)VALUES('S02','李四','男');DELETEFROMview2WHEREsno='S03';UPDATEview2SETsname='李肆'WHEREsno='S02';③增刪改視圖視圖view3:INSERTINTOview3(sno,sname,dname)VALUES('S03','王五','CS');DELETEFROMview3WHEREsno='S04';UPDATEview3SETdname='IS'WHEREsno='S03';④增刪改視圖視圖view4:INSERTINTOview4(sno,sname,sbirth)VALUES('S04','趙陸',1990);DELETEFROMview4WHEREsno='S05';UPDATEview4SETsbirth=1989WHEREsno='S04';⑤增刪改視圖視圖view5:INSERTINTOview5(sno,avggrade)VALUES('S05',90);DELETEFROMview5WHEREsno='S06';UPDATEview5SETavggrade=80WHEREsno='S05';4.刪除視圖①刪除視圖view1:DROPVIEWVIEW1;②刪除視圖view2:DROPVIEWVIEW2;③刪除視圖view3:DROPVIEWVIEW3;④刪除視圖view4:DROPVIEWVIEW4;⑤刪除視圖view5:DROPVIEWVIEW5;四、實驗小結(jié)1.本次實驗的心得和體會。2.本次實驗的注意事項。3.本次實驗中遇到的問題和解決方法。

實驗六安全管理一、實驗?zāi)康?.掌握登錄操作2.掌握用戶操作3.掌握角色操作二、實驗內(nèi)容1.建立/刪除登錄(包括Windows/SQLServer兩種)、授予/回收登錄的服務(wù)器角色,列出服務(wù)器角色名稱和作用(8個)。2.創(chuàng)建/刪除用戶,授予/回收用戶的權(quán)限(包括語句權(quán)限、對象權(quán)限兩類),列出語句權(quán)限的名稱和作用(8個),列出各種對象(TABLE&VIEW/PROCEDURE兩類)的權(quán)限。3.創(chuàng)建/刪除數(shù)據(jù)庫角色,授予/回收數(shù)據(jù)庫角色的權(quán)限,授予/回收用戶的數(shù)據(jù)庫角色,列出標(biāo)準(zhǔn)數(shù)據(jù)庫角色的名稱和作用(10個)。三、實驗步驟1.建立/刪除登錄、授予/回收登錄的服務(wù)器角色,列出服務(wù)器角色名稱和作用。(1)建立和刪除登錄打開企業(yè)管理器和查詢分析器,以超級登錄sa連接SQLServer服務(wù)器,sa建立和刪除登錄。①建立Windows登錄(查詢Windows的機器名windows-pc和Windows用戶名userw)sp_grantlogin'windows-pc\userw'②刪除Windows登錄sp_revokelogin'windows-pc\userw'③建立SQLServer登錄,并設(shè)置口令sp_addlogin'loginsql','passwd'④刪除SQLServer登錄sp_droplogin'loginsql'(2)授予/回收登錄的服務(wù)器角色sa重建loginsql登錄,授予和回收登錄的服務(wù)器角色,設(shè)置服務(wù)器為MixedModeAuthencation驗證方式。打開另一個查詢分析器,以loginsql登錄連接服務(wù)器,測試服務(wù)器權(quán)限。①授予登錄的服務(wù)器角色sp_addsrvrolemember'loginsql','dbcreator'②回收登錄的服務(wù)器角色sp_dropsrvrolemember'loginsql','dbcreator'(3)列出服務(wù)器角色名稱和作用服務(wù)器角色名服務(wù)器權(quán)限sysadmin系統(tǒng)登錄在SQLServer中進(jìn)行任何活動。securityadmin管理服務(wù)器登錄。serveradmin配置服務(wù)器范圍的設(shè)置。setupadmin添加和刪除鏈接服務(wù)器。processadmin管理在SQLServer實例中運行的進(jìn)程。diskadmin管理磁盤文件。dbcreator創(chuàng)建和改變數(shù)據(jù)庫。bulkadmin執(zhí)行BULKINSERT語句。2.創(chuàng)建/刪除用戶,授予/回收用戶的權(quán)限,列出語句權(quán)限的名稱和作用,列出各種對象的權(quán)限。(1)創(chuàng)建/刪除用戶sa建立數(shù)據(jù)庫,進(jìn)入數(shù)據(jù)庫,建立和刪除用戶。CREATEDATABASEdbstudentUSEdbstudentloginsql登錄測試能否使用數(shù)據(jù)庫①建立用戶userasp_adduser'loginsql','usera'②刪除用戶sp_dropuser'usera'(2)授予/回收用戶的權(quán)限sa重建用戶usera,建立表對象,授予和回收權(quán)限。CREATETABLEtbstudent( sno int, sname varchar(10));loginsql登錄進(jìn)入dbstudent(usera用戶),測試權(quán)限。①授予/回收用戶的語句權(quán)限GRANTCREATETABLETOuseraREVOKECREATETABLEFROMusera②授予和回收用戶的對象權(quán)限GRANTSELECTONtbstudentTOuseraREVOKESELECTONtbstudentFROMuseraGRANTINSERTONtbstudentTOuseraREVOKEINSERTONtbstudentFROMusera(3)列出語句權(quán)限的名稱和作用語句權(quán)限名說明BACKUPDATABASE允許用戶執(zhí)行BACKUPDATABASE語句(備份數(shù)據(jù)庫)BACKUPLOG允許用戶BACKUPLOG語句(備份日志)CREATEDATABASE允許用戶CREATEDATABASE語句(建立數(shù)據(jù)庫)CREATEDEFAULT允許用戶CREATEDEFAULT語句(建立默認(rèn)規(guī)則)CREATEPROCEDURE允許用戶CREATE

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論