版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
..本科實驗報告課程名稱:數(shù)據(jù)庫系統(tǒng)概論實驗工程:交互式SQL、數(shù)據(jù)完整性、用戶鑒別與數(shù)據(jù)控制實驗地點:致遠樓B503專業(yè)班級:軟件12班學號:20120058學生:王者清風指導教師:雪梅2014年3月18日一、實驗目的和要求熟悉通過SQL對數(shù)據(jù)庫進展操作。二、實驗容和原理1.在RDBMS中建立一個學生-課程數(shù)據(jù)庫,進展實驗所要求的各種操作,所有的SQL操作均在此建立的新庫里進展。2.根據(jù)以下要求認真進展實驗,記錄所有的實驗用例及執(zhí)行結(jié)果。數(shù)據(jù)定義:根本表的創(chuàng)立、修改及刪除;索引的創(chuàng)立和刪除。數(shù)據(jù)操作:完成各類查詢操作(單表查詢,連接查詢,嵌套查詢,集合查詢);完成各類更新操作(插入數(shù)據(jù),修改數(shù)據(jù),刪除數(shù)據(jù))。視圖的操作:視圖的定義(創(chuàng)立和刪除),查詢,更新(注意更新的條件)。主要儀器設備操作系統(tǒng):Windows7。數(shù)據(jù)庫管理系統(tǒng):SQLServer2008。四、操作方法與實驗步驟實驗數(shù)據(jù)記錄實驗結(jié)果(一)數(shù)據(jù)定義:一.根本表的操作1.建立根本表1)創(chuàng)立學生表Student,由以下屬性組成:學號Sno(char型,長度為9,主碼),Sname(char型,長度為20,唯一),性別Ssex(char型,長度為2),年齡(smallint),所在系(char型,長度為20)。createtableStudent(Snochar(9)primarykey,Snamechar(20)unique,Ssexchar(2),Sagesmallint,Sdeptchar(20));2〕創(chuàng)立課程表Course,由以下屬性組成:課程號o(char型,主碼,長度為4),課程名ame(char型,長度為40),先行課Cpno(char型,長度為4,外碼),學分Ccredit(smallint)。createtableCourse(ochar(4)primarykey,amechar(40),Cpnochar(4),Ccreditsmallint);假設設置Cpno外碼,插入數(shù)據(jù)時會提示違反外碼約束。3)創(chuàng)立學生選課表SC,由以下屬性組成:學號Sno(char型,長度為9),課程號o(char型,長度為4),成績Grade(smallint),其中Sno和o構(gòu)成主碼。createtablesc(Snochar(9),ochar(4),Gradesmallint,primarykey(Sno,o),foreignkey(Sno)referencesstudent(Sno),foreignkey(o)referencescourse(o));2.修改根本表:1)向Student表增加"入學時間列〞,其數(shù)據(jù)類型為日期型。altertableStudentaddS_entrancedate;2)將年齡的數(shù)據(jù)類型由字符型(假設原來的數(shù)據(jù)類型是字符型)改為整數(shù)。altertableStudentaltercolumnSageint;3)增加課程名稱必須取唯一值的約束條件。altertableCourseaddunique(ame);注意:修改表構(gòu)造后,再次查看表,注意觀察變化。3.刪除根本表:1)在所有的操作完畢后刪除Student表。droptableStudent;2)在所有的操作完畢后刪除Course表。droptableCourse;3)在所有的操作完畢后刪除SC表。droptableSC;思考:刪除表時,不同的刪除順序會有不同結(jié)果,為什么??注意錯誤提示。二.索引操作1.建立索引1)為學生—課程數(shù)據(jù)庫中的Student,Course,SC3個表建立索引。其中Student表按學號升序建唯一索引,Course表按課程號升序建唯一索引,SC表按學號升序和課程號降序建唯一索引。createuniqueindexStusnoonStudent(Sno);createuniqueindexCouoonCourse(o);createuniqueindexSoonSC(SnoASC,oDESC);2.刪除索引1)刪除Student表的Stusname索引。dropindexstudent.Stusname;已建立已建立已刪除已刪除(二)數(shù)據(jù)操作一.更新操作1,插入數(shù)據(jù)1)在Student表中插入以下數(shù)據(jù):200215121,勇,男,20,CS200215122,晨,女,19,CS200215123,王敏。女,18,MA200215125,立,男,19,ISinsertintostudent(Sno,Sname,Ssex,Sage,Sdept)values('200215121','勇','男',20,'CS');insertintostudent(Sno,Sname,Ssex,Sage,Sdept)values('200215122','晨','女',19,'CS');insertintostudent(Sno,Sname,Ssex,Sage,Sdept)values('200215123','王敏','女',18,'MA');insertintostudent(Sno,Sname,Ssex,Sage,Sdept)values('200215125','立','男',19,'IS')2)在Course表中插入以下數(shù)據(jù):1,數(shù)據(jù)庫,5,42,數(shù)學,null,26,數(shù)據(jù)處理,null,24,操作系統(tǒng),6,37,PASCAL語言,6,45,數(shù)據(jù)構(gòu)造,7,41,數(shù)據(jù)庫,5,43,信息系統(tǒng),1,4insertintocourse(o,ame,Cpno,Ccredit)values('1','數(shù)據(jù)庫','5',4);insertintocourse(o,ame,Ccredit)values('2','數(shù)學',2);insertintocourse(o,ame,Ccredit)values('6','數(shù)據(jù)處理',2);insertintocourse(o,ame,Cpno,Ccredit)values('4','操作系統(tǒng)','6',3);insertintocourse(o,ame,Cpno,Ccredit)values('7','PASCAL語言','6',4);insertintocourse(o,ame,Cpno,Ccredit)values('5','數(shù)據(jù)構(gòu)造','7',4);insertintocourse(o,ame,Cpno,Ccredit)values('1','數(shù)據(jù)庫','5',4);insertintocourse(o,ame,Cpno,Ccredit)values('3','信息系統(tǒng)','1',4);3)在SC表中插入以下數(shù)據(jù):200215121,1,92200215121,2,85200215121,3,88200215122,2,90200215122,3,80insertintosc(Sno,o,Grade)values('200215121','1',92);insertintosc(Sno,o,Grade)values('200215121','2',85;insertintosc(Sno,o,Grade)values('200215121','3',88);insertintosc(Sno,o,Grade)values('200215122','2',90);insertintosc(Sno,o,Grade)values('200215122','3',80);4)將一個新學生元祖(學號:200215128;:冬;性別:男;所在系:IS;年齡:18歲)插入到Student表中。insertintostudent(Sno,Sname,Ssex,Sdept,Sage)values('200215128','冬','男','IS',18);〔已做〕5)將學生成民的信息插入到Student表中。insertintostudentvalues('200215126','成民','男',18,'CS');〔已做〕6)插入一條選課記錄:(‘200215128’,‘1’)。insertintosc(Sno,o)values('200215128','1');〔已做〕7)對每一個系,求學生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫。createtableDept_age(Sdeptchar(15),Avg_agesmallint);insertintoDept_age(Sdept,Avg_age)selectSdept,avg(Sage)fromstudentgroupbySdept;2.修改數(shù)據(jù)1)將學生200215121的年齡改為22歲。updatestudentsetSage=22whereSno='200215121';2)將所有學生的年齡增加一歲。updatestudentsetSage=Sage+1;3)將計算機科學系全體學生的成績置零。updatescsetGrade=0where'CS'=(selectSdeptfromstudentwherestudent.Sno=sc.Sno);3.刪除數(shù)據(jù)1)刪除學號為200215128的學生記錄。deletefromstudentwhereSno='200215128';2)刪除所有學生的選課記錄。deletefromsc;3)刪除計算機科學系所有學生的選課記錄。deletefromscwhere'CS'=(selectSdeptfromstudentwherestudent.Sno=SC.Sno);查詢操作1.單表查詢查詢?nèi)w學生的、學號、所在系。selectsno,sname,sdeptfromStudent;5)查詢?nèi)w學生的、出生年份和所在院系,要求用小寫字母表示所有系名。selectsname,2013-sagebirth,lower(sdept)sdeptfromStudent;10)查詢年齡在20-23歲(包括20歲和23歲)之間的學生的、系別和年齡。selectsname,sdept,sagefromStudentwheresagebetween20and2312)查詢計算機科學系(CS)、數(shù)學系(MA)、和信息系(IS)學生的和性別。selectsname,ssexfromStudentwhereSdeptin('cs','ma','is')查詢所有姓的學生的、學號和性別。selectsname,Sno,ssexfromStudentwheresnamelike'%'查詢DB_Design課程的課程號和學分。selecto,Ccreditfromcoursewhereamelike'DB\_Design'escape'\';查詢計算機科學系年齡在20歲以下的學生。selectsnamefromstudentwheresdept='cs'andsage<20計算1號課程的學生平均成績。selectAVG(grade)no1fromscwhereo='1'求各個課程號及相應的選課人數(shù)。selecto,COUNT(sno)numberfromscgroupbyo2.連接查詢1)查詢每個學生及其選修課程的情況。selectStudent.*,sc.*fromsc,Studentwheresc.Sno=Student.Sno對上個題用自然連接完成。selectstudent.Sno,Sname,Sage,Ssex,Sdept,o,Gradefromsc,Studentwheresc.Sno=Student.Sno查詢每一門課的間接先修課(即先修課的先修課)。selectfirst.o,second.cpnofromCoursefirst,Coursesecondwherefirst.Cpno=second.o查詢每個學生及其選修課程的情況,用外連接來完成selectstudent.Sno,Sname,Ssex,Sage,Sdept,o,Gradefromstudentleftouterjoinscon(student.Sno=sc.Sno);查詢選修2號課程且成績在90分以上的所有學生。selectstudent.Sno,Snamefromstudent,scwherestudent.Sno=sc.Snoandsc.o='2'andsc.Grade>90;查詢每個學生的學號、、選修的課程名及成績。selectstudent.Sno,Sname,ame,Gradefromstudent,sc,coursewherestudent.Sno=sc.Snoandsc.o=course.o;3.嵌套查詢1)查詢與"晨〞在同一個系學習的學生。selectSno,Sname,SdeptfromStudentwhereSdeptin(selectSdeptfromStudentwhereSname='晨');2)查詢選修了課程名為"信息系統(tǒng)〞的學生學號和。selectSno,SnamefromstudentwhereSnoin(selectSnofromscwhereoin(selectofromcoursewhereame='信息系統(tǒng)'));找出每個學生超過他選修課程平均成績的課程號。selectofromscxwheregrade>(selectAVG(Grade)fromscywherex.sno=y.snogroupbySno);查詢其他系中比計算機科學系某一學生年齡小的學生和年齡。selectsname,SagefromStudentwhereSage<=any(selectsagefromstudentwhereSdept='cs')andSdept<>'cs';查詢其他系中比計算機科學系所有學生年齡小的學生和年齡。selectsname,SagefromStudentwhereSage<=all(selectsagefromstudentwhereSdept='cs')andSdept<>'cs';6)查詢選修了1號課程的學生。selectSnamefromstudentwhereexists(select*fromscwhereSno=student.Snoando='1');查詢沒有選修1號課程的學生。selectSnamefromstudentwherenotexists(select*fromscwhereSno=student.Snoando='1');查詢選修了全部課程的學生。selectSnamefromstudentwherenotexists(select*fromCoursewherenotexists(select*fromscwhereSno=student.Snoando=course.o));查詢至少選修了學生200215121選修的全部課程的學生。selectdistinctSnofromscscxwherenotexists(select*fromscscywherescy.Sno='200215122'andnotexists(select*fromscsczwherescz.Sno=scx.Snoandscz.o=scx.o));4.集合查詢1)查詢計算機科學系的學生及年齡不大于19歲的學生。select*fromstudentwhereSdept='CS'unionselect*fromstudentwhereSage<=19;查詢選修了課程1或課程2的學生。selectSnofromscwhereo='1'unionselectSnofromscwhereo='2';查詢計算機科學系的學生與年齡不大于19歲的學生的交集。select*fromstudentwhereSdept='CS'intersectselect*fromstudentwhereSage<=19;查詢既選修了課程1又選修了課程2的學生。selectSnofromscwhereo='1'intersectselectSnofromscwhereo='2';查詢計算機科學系的學生與年齡不大于19歲的學生的差集。select*fromstudentwhereSdept='CS'exceptselect*fromstudentwhereSage<=19三、視圖操作1.建立視圖1)建立信息系學生的視圖。createviewIS_StudentasselectSno,Sname,SagefromstudentwhereSdept='IS';2)建立信息系學生的視圖,并要求進展修改和插入操作時仍需保證該視圖只有信息系的學生。createviewIS_StudentasselectSno,Sname,SagefromstudentwhereSdept='IS'withcheckoption;建立信息系選修了1號課程的學生的視圖。createviewIS_S1(Sno,Sname,Grade)asselectstudent.Sno,Sname,Gradefromstudent,scwhereSdept='IS'andstudent.Sno=sc.Snoandsc.o='1';建立信息系選修了1號課程且成績在90分以上的學生的視圖。createviewIS_S2(Sno,Sname,Grade)asselectSno,Sname,GradefromIS_S1whereGrade>=90;5)定義一個反響學生出生年份的視圖。createviewBT_S(Sno,Sname,Sbirth)asselectSno,Sname,2004-Sagefromstudent;將學生的學號及他的平均成績定義為一個視圖。createviewS_G(Sno,Gavg)asselectSno,avg(Grade)fromscgroupbySno;將Student表中所有女生記錄定義為一個視圖。createviewF_Student(F_sno,name,sex,age,dept)asselect*fromstudentwhereSsex='女';2.刪除視圖:1)刪除視圖BT_S:3.查詢視圖:1)在信息系學生的視圖中找出年齡小于20歲的學生。selectSno,SagefromIS_StudentwhereSage<=20;查詢選修了1號課程的信息系學生。selectIS_Student.Sno,SnamefromIS_Student,scwhereIS_Student.Sno=sc.Snoandsc.o='1';在S_G視圖中查詢平均成績在80分以上的學生學號和平均成績。select*fromS_GwhereGavg>=80;4.更新視圖:1)將信息系學生視圖IS_Student中學號為200215125的學生改為"辰〞。updateIS_StudentsetSname='辰'whereSno='200215125';原視圖原視圖2)向信息系學生視圖IS_Student中插入一個新的學生記錄,其中學號為200215129,為新,年齡為20歲。insertintoIS_Studentvalues('200215129','新',20,'IS');刪除信息系學生視圖IS_Student中學號為200215129的記錄。deletefromIS_StudentwhereSno='200215129';一、實驗目的和要求〔1〕了解SQLSerer數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)完整性控制的根本方法〔2〕熟練掌握常用CREATE或ALTER在創(chuàng)立或修改表時設置約束〔3〕了解觸發(fā)器的機制和使用〔4〕驗證數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)完整性控制二、實驗容和原理結(jié)合ST數(shù)據(jù)庫中的各個表,設置相關(guān)的約束,要求包括主鍵約束、外鍵約束、唯一約束、檢查約束、非空約束等,掌握各約束的定義方法。設置一個觸發(fā)器,實現(xiàn)學生選課總學分的完整性控制,了解觸發(fā)器的工作機制。設計一些例如數(shù)據(jù),驗證完整性檢查機制。要求包括如下方面的容:3.1使用SQL語句設置約束使用CREATE或ALTER語句完成如下的操作,包括:1.設置各表的主鍵約束2.設置相關(guān)表的外鍵3.設置相關(guān)屬性的非空約束、默認值約束、唯一約束4.設置相關(guān)屬性的CHECK約束3.2使用觸發(fā)器創(chuàng)立一個觸發(fā)器,實現(xiàn)如下的完整性約束:當向SC表中插入一行數(shù)據(jù)時,自動將學分累加到總學分中。記錄修改學分的操作。3.4檢查約束和觸發(fā)器分別向相關(guān)表插入假設干條記錄,檢查你設置的完整性約束是否有效:1.插入假設干條包含正確數(shù)據(jù)的記錄,檢查插入情況2.分別針對設置的各個約束,插入違反約束的數(shù)據(jù),檢查操作能否進展3.向SC表插入假設干行數(shù)據(jù),檢查觸發(fā)器能否實現(xiàn)其數(shù)據(jù)一致性功能。三、主要儀器設備使用SQLServer數(shù)據(jù)庫管理系統(tǒng)提供的SSMS和查詢編輯器實驗容實驗結(jié)果與分析創(chuàng)立學生選課數(shù)據(jù)庫TEST,包括三個根本表,其中Student表保存學生根本信息,Course表保存課程信息,SC表保存學生選課信息,其構(gòu)造如下表:CREATETABLEStudent(SnoCHAR(8)PRIMARYKEY,SnameCHAR(8)NOTNULL,SsexCHAR(2)CHECK(Ssexin('男','女')),SageSMALLINT,SdeptCHAR(20),SclassCHAR(4)NOTNULL,StotalsmallintDEFAULT0);CREATETABLECourse(oCHAR(4)CONSTRAINTFK_CoursePRIMARYKEY,ameCHAR(40),CpnoCHAR(4),CcreditSMALLINT);CREATETABLESC(SnoCHAR(8)FOREIGNKEY(Sno)REFERENCESStudent(Sno),oCHAR(4),GradeSMALLINTCONSTRAINTSC_CHECKCHECK(Grade>0ANDGrade<100),PRIMARYKEY(Sno,o),CONSTRAINTFK_SCFOREIGNKEY(o)REFERENCESCourse(o));插入數(shù)據(jù)INSERTINTOstudentVALUES('20100001','勇','男',20,'CS','1001',0)INSERTINTOStudentVALUES('20100002','晨','女',19,'CS','1001',0)INSERTINTOStudentVALUES('20100021','王敏','女',18,'MA','1002',0)INSERTINTOStudentVALUES('20100031','立','男',19,'IS','1003',0)INSERTINTOStudentVALUES('20100003','洋','女',NULL,NULL,'1001',0)INSERTINTOStudentVALUES('20100010','斌','男',19,'IS','1005',0)INSERTINTOStudentVALUES('20100022','明明','男',19,'CS','1002',0)INSERTINTOCourse(o,ame,Cpno,Ccredit)VALUES('1','數(shù)據(jù)庫系統(tǒng)原理','5',4)INSERTINTOCourse(o,ame,Cpno,Ccredit)VALUES('2','高等數(shù)學',null,2)INSERTINTOCourse(o,ame,Cpno,Ccredit)VALUES('3','管理信息系統(tǒng)','1',4)INSERTINTOCourse(o,ame,Cpno,Ccredit)VALUES('4','操作系統(tǒng)原理','6',3)INSERTINTOCourse(o,ame,Cpno,Ccredit)VALUES('5','數(shù)據(jù)構(gòu)造','7',4)INSERTINTOCourse(o,ame,Cpno,Ccredit)VALUES('6','數(shù)據(jù)處理',null,2)INSERTINTOCourse(o,ame,Cpno,Ccredit)VALUES('7','C語言',null,4)INSERTINTOSCVALUES('20100001','1',92)INSERTINTOSCVALUES('20100001','2',85)INSERTINTOSCVALUES('20100001','3',88)INSERTINTOSCVALUES('20100002','1',90)INSERTINTOSCVALUES('20100002','2',80)INSERTINTOSCVALUES('20100003','1',null)INSERTINTOSCVALUES('201000010','3',null)修改約束對數(shù)據(jù)庫中已經(jīng)存在的表,可對其增加約束或修改已存在的約束:添加約束ALTERTABLECourseADDUNIQUE(ame)ALTERTABLECourseADDFOREIGNKEY(Cpno)REFERENCESCourse(o)掌握如何添加約束掌握如何聲明唯一約束修改約束ALTERTABLESCDROPCONSTRAINTSC_CHECKALTERTABLESCADDCONSTRAINTSC_CHECKCHECK(Grade>=0ANDGrade<=100)掌握如何修改約束理解命名約束的優(yōu)點二、檢查完整性約束通過修改數(shù)據(jù)庫中的數(shù)據(jù)檢查完整性約束條件的作用。1.檢查主鍵約束〔1〕執(zhí)行下面的語句修改Student表,觀察語句能否正確運行,解釋為什么?INSERTINTOStudentVALUES('20100101','斌','男',20,'CS','1001',0)INSERTINTOStudentVALUES('20100001','斌','男',20,'CS','1001',0)消息2627,級別14,狀態(tài)1,第1行違反了PRIMARYKEY約束'PK__Student__DDDF64467F60ED59'。不能在對象'dbo.Student'中插入重復鍵。語句已終止?!惨驗閟no為主鍵不能有重復,所以無法運行〕UPDATEStudentSETSno='20100021'WHERESname='立'消息2627,級別14,狀態(tài)1,第1行違反了PRIMARYKEY約束'PK__Student__DDDF64467F60ED59'。不能在對象'dbo.Student'中插入重復鍵。語句已終止。〔立要修改的學跟王敏的學號重復了,由于學號是學生表的主鍵,不可以重復,所以無法運行〕〔2〕執(zhí)行下面的語句修改SC表,觀察語句能否正確運行,解釋為什么?INSERTINTOSCVALUES('20100001','1',78)INSERTINTOSCVALUES('20100001',null,78)2.檢查唯一約束執(zhí)行下面的語句修改Course表,觀察語句能否正確運行,解釋為什么?INSERTINTOCourseVALUES('8','JAVA',7,3)INSERTINTOCourseVALUES('9','數(shù)據(jù)構(gòu)造',7,3)3.檢查默認值、允許空值列運行如下的語句:INSERTINTOStudent(Sno,Sname,Ssex,Sclass)VALUES('20100102','盛','男','1008')觀察插入數(shù)據(jù)行的數(shù)值SELECT*FROMStudentWHereSno='20100102'4.檢查非空約束下面的語句包含空值,檢查運行結(jié)果,解釋為什么?INSERTINTOStudent(Sno,Sname,Ssex,Sclass)VALUES('20100103','盛','男',NULL)INSERTINTOStudent(Sno,Sname,Ssex)VALUES('20100104','盛','男')5.檢查CHECK約束執(zhí)行下面的語句,解釋其運行結(jié)果。INSERTINTOSCVALUES('20100001','4',95)INSERTINTOSCVALUES('20100001','4',102)INSERTINTOStudent(Sno,Sname,Ssex,Sclass)VALUES('20100103','盛','男','1008')INSERTINTOStudent(Sno,Sname,Ssex,Sclass)VALUES('20100104','盛','','1008')6.檢查外鍵約束〔1〕執(zhí)行下面的語句檢查外鍵約束的作用INSERTINTOSCVALUES('20100301','1',95)INSERTINTOSCVALUES('20100001','10',95)UPDATESCSETo='10'Whereo='1'UPDATECourseSETo='10'Whereo='3'〔2〕執(zhí)行下面的語句檢查對被引用表的約束Student表:DELETEStudentWHERESno='20100021'DELETEStudentWHERESno='20100001'UPDATECourseSETo='10'WHEREame='數(shù)據(jù)庫系統(tǒng)原理'三、觸發(fā)器的定義及使用1.定義觸發(fā)器〔1〕定義一個觸發(fā)器,實現(xiàn)有關(guān)學分的完整性約束:當向SC表插入一行選課記錄時,自動將該課程的學分累加到該學生的總學分中。CREATETRIGGERtr_INSERTONSCFORINSERTAS--聲明變量DECLAREsnochar(8)DECLAREcriditintDECLAREochar(4)--提取插入的數(shù)據(jù)SELECTsno=Sno,o=oFROMinserted--提取學生的總學分SELECTcridit=CcreditFROMSCjoinCourseON(SC.o=Course.o)WHERESC.o=o--更新總學分UPDATEStudentSETStotal=Stotal+criditWHERESno=snoGO〔2〕定義一個觸發(fā)器,實現(xiàn)對SC表的操作登記:當用戶向SC表插入或修改時,記錄該操作到數(shù)據(jù)庫中。創(chuàng)立日志登記表:CREATETABLELOG_TABLE(usernamechar(10),--操作人員datedatetime,--修改時間Snochar(8),--學生學號ochar(4)--課程號)創(chuàng)立日志登記觸發(fā)器:CREATETRIGGERtr_UPDATEONSCFORINSERT,UPDATEASDECLAREsnochar(8)DECLAREochar(4)DECLAREnewsmallintSELECTsno=Sno,o=oFROMinsertedINSERTINTOLOG_TABLEVALUES(CURRENT_USER,getdate(),Sno,o);GO執(zhí)行插入操作,觸發(fā)觸發(fā)器:INSERTINTOSCVALUES('20100001','6',95)驗證觸發(fā)器是否觸發(fā)select*fromstudentselect*fromLOG_TABLE1、實驗目的〔1〕了解SQLSerer數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)訪問控制的根本方法〔2〕了解使用SSMS如何給用戶授權(quán)〔3〕熟練掌握常用GRANT和REVOKE進展權(quán)限控制〔4〕驗證數(shù)據(jù)庫系統(tǒng)的訪問控制2、實驗平臺使用SQLServer數(shù)據(jù)庫管理系統(tǒng)提供的SSMS。3實驗容及要求實驗應包括如下方面的容:創(chuàng)立新的數(shù)據(jù)庫用戶對上一實驗建立的表進展權(quán)限設置檢查數(shù)據(jù)庫用戶的權(quán)限撤銷用戶權(quán)限4實驗報告要求寫出實驗的根本過程。參考例如:在SQLServer中,對用戶訪問數(shù)據(jù)庫的權(quán)限管理可以使用兩種方式,一種是使用SSMS的圖形界面進展管理,一種是使用SQL語句。3.1使用SSMS的圖形界面創(chuàng)立用戶并授權(quán)創(chuàng)立一個數(shù)據(jù)庫用戶:明,授予他可以查詢Student表的權(quán)限。1.使用SSMS的圖形界面創(chuàng)立登錄名在快捷菜單中選擇"新建登錄名〞:進入"登錄名〞窗口,輸入登錄信息:明123456782.使用SSMS的圖形界面創(chuàng)立數(shù)據(jù)庫用戶選擇"ST〞數(shù)據(jù)庫,在快捷菜單中選擇"新建登錄名〞:3.使用SSMS的圖形界面進展授權(quán),設置用戶對對象的訪問權(quán)限展開ST數(shù)據(jù)庫的"平安性〞下的"用戶〞,選擇"明db〞。翻開用戶屬性窗口:3.2使用SQL語句創(chuàng)立用戶并授權(quán)在ST或TEST數(shù)據(jù)庫中,使用SQL語句創(chuàng)立兩個數(shù)據(jù)庫用戶,對數(shù)據(jù)庫中的Student、SC、和Course表,分別對其授予不同的訪問權(quán)限,如下表。表3.1授予用戶權(quán)限1.創(chuàng)立登錄名用戶要訪
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石灰石熱分解動力學研究考核試卷
- 四年級數(shù)學(四則混合運算)計算題專項練習與答案
- 牛的飼養(yǎng)保險制度設計方法探討考核試卷
- 畜牧機械牧場自動喂食系統(tǒng)考核試卷
- 2024年度廣西壯族自治區(qū)國家保安員資格考試真題練習試卷B卷附答案
- 血氣分析及臨床應用六步法
- 助理工程師轉(zhuǎn)正述職報告
- 2025版環(huán)保節(jié)能產(chǎn)品推廣跟投施工合同3篇
- DB33 768.3-2013 安全技術(shù)防范系統(tǒng)建設技術(shù)規(guī)范 第3部分 汽車站與客運碼頭
- 2025年NDC-4長鏈烷烴脫氫催化劑合作協(xié)議書
- 安徽省合肥市蜀山區(qū)2024-2025學年七年級上學期地理期末模擬練習(含答案)
- 2024年游艇俱樂部會員專屬活動策劃與執(zhí)行合同3篇
- 《項目管理培訓課程》課件
- 2024年企業(yè)團購:銷售合作協(xié)議3篇
- 2024-2025學年八年級語文上學期期末真題復習 專題06 文言文閱讀
- 2024秋國開《管理學基礎(chǔ)》形考任務(1234)試題及答案
- 叉車安全管理
- 制藥課程設計三廢處理
- 期末測試卷(試題)-2024-2025學年北師大版數(shù)學五年級上冊
- 考試安全保密培訓
- 關(guān)于培訓的課件
評論
0/150
提交評論