太原理工大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告概要_第1頁(yè)
太原理工大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告概要_第2頁(yè)
太原理工大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告概要_第3頁(yè)
太原理工大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告概要_第4頁(yè)
太原理工大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告概要_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

TAIYUANUNIVEftSIIYOFTECHNOLOGY本科實(shí)驗(yàn)報(bào)告課程名稱(chēng):數(shù)據(jù)庫(kù)系統(tǒng)概論實(shí)驗(yàn)項(xiàng)目:交互式SQL、數(shù)據(jù)完整性、用戶(hù)鑒別與數(shù)據(jù)控制實(shí)驗(yàn)地點(diǎn):致遠(yuǎn)樓B503專(zhuān)業(yè)班級(jí):軟件1229班學(xué)號(hào):2012005829學(xué)生姓名:田亞鵬指導(dǎo)教師:李雪梅2014年3月18日一、實(shí)驗(yàn)?zāi)康暮鸵笫煜ねㄟ^(guò)SQL對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。二、實(shí)驗(yàn)內(nèi)容和原理1.在RDBMS中建立一個(gè)學(xué)生-課程數(shù)據(jù)庫(kù),進(jìn)行實(shí)驗(yàn)所要求的各種操作,所有的SQL操作均在此建立的新庫(kù)里進(jìn)行。2.根據(jù)以下要求認(rèn)真進(jìn)行實(shí)驗(yàn),記錄所有的實(shí)驗(yàn)用例及執(zhí)行結(jié)果。數(shù)據(jù)定義:基本表的創(chuàng)建、修改及刪除;索引的創(chuàng)建和刪除。數(shù)據(jù)操作:完成各類(lèi)查詢(xún)操作(單表查詢(xún),連接查詢(xún),嵌套查詢(xún),集合查詢(xún));完成各類(lèi)更新操作(插入數(shù)據(jù),修改數(shù)據(jù),刪除數(shù)據(jù))。視圖的操作:視圖的定義(創(chuàng)建和刪除),查詢(xún),更新(注意更新的條件)。三、主要儀器設(shè)備操作系統(tǒng):Windows7。數(shù)據(jù)庫(kù)管理系統(tǒng):SQLServer2008。四、操作方法與實(shí)驗(yàn)步驟實(shí)驗(yàn)數(shù)據(jù)記錄實(shí)驗(yàn)結(jié)果(一)數(shù)據(jù)定義:一.基本表的操作1.建立基本表1)創(chuàng)建學(xué)生表Student,由以下屬性組成:學(xué)號(hào)Sno(char型,長(zhǎng)度為9,主碼),姓名Sname(char型,長(zhǎng)度為20,唯一),性別Ssex(char型,長(zhǎng)度為2),年齡(smallint),所在系(char型,長(zhǎng)度為20)。createtableStudent(Snochar(9)primarykey,Snamechar(20)unique,Ssexchar(2),Sagesmallint,Sdeptchar(20));2)創(chuàng)建課程表Course,由以下屬性組成:課程號(hào)Cno(char型,主碼,長(zhǎng)度為4),課程名Cname(char型,長(zhǎng)度為40),先行課Cpno(char型,長(zhǎng)度為4,外碼),學(xué)分Ccredit(smallint)。createtableCourse(Cnochar(4)primarykey,Cnamechar(40),Cpnochar(4),Ccreditsmallint);若設(shè)置Cpno外碼,插入數(shù)據(jù)時(shí)會(huì)提示違反外碼約束。3)創(chuàng)建學(xué)生選課表SC,由以下屬性組成:學(xué)號(hào)Sno(char型,長(zhǎng)度為9),課程號(hào)Cno(char型,長(zhǎng)度為4),成績(jī)Grade(smallint),其中Sno和Cno構(gòu)成主碼。

createtablesc(Snochar(9),Cnochar(4),Gradesmallint,primarykey(Sno,Cno),foreignkey(Sno)referencesstudent(Sno),foreignkey(Cno)referencescourse(Cno));2.修改基本表:|Schoola舞庫(kù)關(guān)垂圉曰|Schoola舞庫(kù)關(guān)垂圉曰口表scj至統(tǒng)表田二dbo,CourseS口dbo.Ec13dbo.Student國(guó)口視圖?口同文詞?口可編程性?口ServiceErok^r國(guó)口存睹S口妄全性altertableStudentaddS_entrancedate;0二dbo.Student日口列?Sno(PK,char(9),notnull]圍Sname[char(20],null)FlSsex(char(2),null)圍Sage(smallintnull)圍Sdept(char(2£l),null)|T|S_entrance(date,null]將年齡的數(shù)據(jù)類(lèi)型由字符型(假設(shè)原來(lái)的數(shù)據(jù)類(lèi)型是字符型)改為整數(shù)。altertableStudentaltercolumnSageint;日口dbo.Student日口列?Sno(PK,char(9),notnull)圍Sname(char(20),null)FlSsex(char(2),null)圍Sage(smallintnull)圍Sdept(char(20),null]圍S_entrance田毗巳null)增加課程名稱(chēng)必須取唯一值的約束條件。altertableCourseaddunique(Cname);3:二dbo.Course田口列曰口迪7PK_Course_ClFE&373D60DE

.jUQ_Course_9F5E029&0EA3;注意:修改表結(jié)構(gòu)后,再次查看表,注意觀察變化。

3.刪除基本表:1)在所有的操作結(jié)束后刪除Student表。droptableStudent;2)在所有的操作結(jié)束后刪除Course表。droptableCourse;3)在所有的操作結(jié)束后刪除SC表。droptableSC;思考:刪除表時(shí),不同的刪除順序會(huì)有不同結(jié)果,為什么??注意錯(cuò)誤提示。二.索引操作1.建立索引1)為學(xué)生—課程數(shù)據(jù)庫(kù)中的Student,Course,SC3個(gè)表建立索引。其中Student表按學(xué)號(hào)升序建唯一索引,Course表按課程號(hào)升序建唯一索引,SC表按學(xué)號(hào)升序和課程號(hào)降序建唯一索引。createuniqueindexStusnoonStudent(Sno);createuniqueindexCoucnoonCourse(Cno);createuniqueindexSCnoonSC(SnoASC,CnoDESC);日口日口索引土Coucno〔唯一r非濟(jì)集)爲(wèi)PK_Course_ClFE6373O6OEJiUQ_jCourse_9F5E029&0EA日口索引、孤PK_.Student_CAlFE4647F6OED±Stusno儺一r非果集]JlUQ_Student_52723D27023D5日口乘I,PK_.sc_E600025309DE7BCtSCno〔唯一「非象集)2.刪除索引1)刪除Student表的Stusname索引。dropindexstudent.Stusname;日口索引、亂PK_Student_CAlFE4&47F6OED59Stusname〔唯一r非聚集)已建立±Stuano儺一「非第集)啟UQ_Student_52723D27O23D5AO0口索引、為PK_Student_CAlFE4&47F60ED5i出皈訪o]唯一「非韓已刪除五UQ_Student_52723D27023D5Al(二)數(shù)據(jù)操作一.更新操作T瑋>jfefrbg.插入數(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')SnoSnameSsexSageSdept12U0215121李勇男24CS22U0215122劃晨女21CS3200215123王敏女20MA4200215125張立男21IS5200215126張成民20CS62flO21512B陳冬20IS2)在Course表中插入以下數(shù)據(jù):數(shù)據(jù)庫(kù),5,4數(shù)學(xué),null,2數(shù)據(jù)處理,null,2操作系統(tǒng),6,3PASCAL語(yǔ)言,6,4數(shù)據(jù)結(jié)構(gòu),7,41,數(shù)據(jù)庫(kù),5,4信息系統(tǒng),1,4insertintocourse(Cno,Cname,Cpno,Ccredit)values('1','數(shù)據(jù)庫(kù)','5',4);insertintocourse(Cno,Cname,Ccredit)values(2,'數(shù)學(xué)',2);insertintocourse(Cno,Cname,Ccredit)values('6','數(shù)據(jù)處理',2);insertintocourse(Cno,Cname,Cpno,Ccredit)values('4','操作系統(tǒng)',6,3);insertintocourse(Cno,Cname,Cpno,Ccredit)values('7','PASCAL語(yǔ)言','6',4);insertintocourse(Cno,Cname,Cpno,Ccredit)values('5','數(shù)據(jù)結(jié)構(gòu);'7',4);insertintocourse(Cno,Cname,Cpno,Ccredit)values('1','數(shù)據(jù)庫(kù)','5',4);insertintocourse(Cno,Cname,Cpno,Ccredit)values('3','信息系統(tǒng);T,4);CnoCnameCpnoCcredit1數(shù)據(jù)庫(kù)5422數(shù)學(xué)NULL233信息系統(tǒng)1444操作系統(tǒng)6355敎據(jù)結(jié)枸7466埶據(jù)處理NULL277PASCAL語(yǔ)言643)在SC表中插入以下數(shù)據(jù):200215121,1,92200215121,2,85200215121,3,88200215122,2,90200215122,3,80insertintosc(Sno,Cno,Grade)values('200215121','1',92);insertintosc(Sno,Cno,Grade)values('200215121','2',85;insertintosc(Sno,Cno,Grade)values('200215121','3',88);insertintosc(Sno,Cno,Grade)values('200215122','2',90);insertintosc(Sno,Cno,Grade)values('200215122','3',80);將一個(gè)新學(xué)生元祖(學(xué)號(hào):200215128;姓名:陳冬;性別:男;所在系:IS;年齡:18歲)插入到Student表中。insertintostudent(Sno,Sname,Ssex,Sdept,Sage)values('200215128','陳冬','男','IS',18);(已做)將學(xué)生張成民的信息插入到Student表中。insertintostudentvalues('200215126','張成民','男',18,'CS');(已做)插入一條選課記錄:(‘200215128',‘1')。insertintosc(Sno,Cno)values('200215128','1');(已做)對(duì)每一個(gè)系,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫(kù)。createtableDept_age(Sdeptchar(15),Avg_agesmallint);insertintoDept_age(Sdept,Avg_age)selectSdept,avg(Sage)fromstudent日Udbo.Dept_age日口列圍Sdept(char(15),null)圍Avg_age(smallintnull]groupbySdept;2.修改數(shù)據(jù)1)將學(xué)生200215121的年齡改為22歲。updatestudentsetSage=22whereSno='200215121';2)將所有學(xué)生的年齡增加一歲。updatestudentsetSage=Sage+1;3)將計(jì)算機(jī)科學(xué)系全體學(xué)生的成績(jī)置零。updatescsetGrade=0where'CS'=(selectSdeptfromstudentwherestudent.Sno=sc.Sno);3.刪除數(shù)據(jù)1)刪除學(xué)號(hào)為200215128的學(xué)生記錄。deletefromstudentwhereSno='200215128';2)刪除所有學(xué)生的選課記錄。deletefromsc;3)刪除計(jì)算機(jī)科學(xué)系所有學(xué)生的選課記錄。deletefromscwhere'CS'=(selectSdeptfromstudentwherestudent.Sno=SC.Sno);二.查詢(xún)操作1.單表查詢(xún)2)查詢(xún)?nèi)w學(xué)生的姓名、學(xué)號(hào)、所在系。selectsno,sname,sdeptfromStudent;snosnamesdept1200215121李勇CS22CD215122劃晨CS32CD215123王敏MA42CD215125張立IS52CD215126張成民CS62UK1512B陳冬IS查詢(xún)?nèi)w學(xué)生的姓名、出生年份和所在院系,要求用小寫(xiě)字母表示所有系名。selectsname,2013-sagebirth,lower(sdept)sdeptfromStudent;10)查詢(xún)年齡在20-23歲(包括20歲和23歲)之間的學(xué)生的姓名、系別和年齡。selectsname,sdept,sagefromStudentwheresagebetween20and23呂仃amesdeptsage1劃晨CS212王敏MA203張立IS214張成民CS205陳冬IS2012)查詢(xún)計(jì)算機(jī)科學(xué)系(CS)、數(shù)學(xué)系(MA)、和信息系(IS)學(xué)生的姓名和性別。selectsname,ssexfromStudentwhereSdeptin('cs','ma','is')呂namessex1李勇男2劉晨女3王敏女4張立男5張成民男6陳冬男15)查詢(xún)所有姓劉的學(xué)生的姓名、學(xué)號(hào)和性別。selectsname,Sno,ssexfromStudentwheresnamelike'劉%'snamessex1⑶晨?2C3215122女19)查詢(xún)DB_Design課程的課程號(hào)和學(xué)分。selectCno,CcreditfromcoursewhereCnamelike'DB\_Design'escape'\';23)查詢(xún)計(jì)算機(jī)科學(xué)系年齡在20歲以下的學(xué)生姓名。selectsnamefromstudentwheresdept='cs'andsage<20sname28)計(jì)算1號(hào)課程的學(xué)生平均成績(jī)。selectAVG(grade)no1fromscwhereCno='1'

31)求各個(gè)課程號(hào)及相應(yīng)的選課人數(shù)。selectCno,COUNT(sno)numberfromscgroupbyCno2.連接查詢(xún)1)查詢(xún)每個(gè)學(xué)生及其選修課程的情況selectStudent.*,sc.*fromsc,Studentwheresc.Sno=Student.SnoSnoSnameSsexSageSdeptSnoCnoGrade2W215121李勇男24CS20021512119222DD215121李勇男24CS2002151212B532DD215121李勇男24CS2002151213BB4200215122劉晨女21CS20021512229052^215122劃晨女21CS20021512238062^21512B陳冬20IS2002151281NULL2)對(duì)上個(gè)題用自然連接完成。selectstudent.Sno,Sname,Sage,Ssex,Sdept,Cno,Gradefromsc,Studentwheresc.Sno=Student.SnoSnoSnameSageSsexSdeptCnoGrade2M215121李勇24CS19220215121李勇24男CS2S53200215121李勇24男CS3SS42CD215122劉晨21女CS29052CD215122劉晨21女CS3SO62CD21512B陳冬20男IS1NULL3)查詢(xún)每一門(mén)課的間接先修課(即先修課的先修課)。o,second.cpnofromCoursefirst,Coursesecondwherefirst.Cpno=second.Cno4)查詢(xún)每個(gè)學(xué)生及其選修課程的情況,用外連接來(lái)完成selectstudent.Sno,Sname,Ssex,Sage,Sdept,Cno,Gradefromstudentleftouterjoinscon(student.Sno=sc.Sno);SnoSnameSnoSname12D0215121李費(fèi)22^215122劉15)查詢(xún)選修2號(hào)課程且成績(jī)?cè)?0分以上的所有學(xué)生。selectstudent.Sno,Snamefromstudent,scwherestudent.Sno=sc.Snoandsc.Cno='2'andsc.Grade>90;6)查詢(xún)每個(gè)學(xué)生的學(xué)號(hào)、姓名、選修的課程名及成績(jī)。selectstudent.Sno,Sname,Cname,Gradefromstudent,sc,coursewherestudent.Sno=sc.Snoandsc.Cno=course.Cno;SnoSnameCnameGrade124HJ21512B陳冬數(shù)據(jù)庫(kù)NULL22DD215121李勇數(shù)據(jù)庫(kù)9232DD215121李勇數(shù)學(xué)B542DD215121李勇信息系統(tǒng)BB5200215122劃晨數(shù)學(xué)906200215122劃晨信息系統(tǒng)303.嵌套查詢(xún)1)查詢(xún)與“劉晨”在同一個(gè)系學(xué)習(xí)的學(xué)生。selectSno,Sname,SdeptfromStudentwhereSdeptin(selectSdeptfromStudentwhereSname='劉晨');2)查詢(xún)選修了課程名為“信息系統(tǒng)”的學(xué)生學(xué)號(hào)和姓名。selectSno,SnamefromstudentwhereSnoin(selectSnofromscwhereCnoin(selectCnofromcoursewhereCname='信息系統(tǒng)'));3)找出每個(gè)學(xué)生超過(guò)他選修課程平均成績(jī)的課程號(hào)selectcno

fromscxwheregrade>(selectAVG(Grade)fromscywherex.sno=y.snogroupbySno);查詢(xún)其他系中比計(jì)算機(jī)科學(xué)系某一學(xué)生年齡小的學(xué)生姓名和年齡selectsname,SagefromStudentwhereSage<=any(selectsagefromstudentwhereSdept='cs')andSdept<>'cs';5)查詢(xún)其他系中比計(jì)算機(jī)科學(xué)系所有學(xué)生年齡小的學(xué)生姓名和年齡。selectsname,SagefromStudentwhereSage<=all(selectsagefromstudentwhereSdept='cs')andSdept<>'cs';查詢(xún)選修了1號(hào)課程的學(xué)生姓名。selectSnamefromstudentwhereexists(select*fromscwhereSno=student.SnoandCno='1');查詢(xún)沒(méi)有選修1號(hào)課程的學(xué)生姓名。selectSnamefromstudentwherenotexists(select*fromscwhereSno=student.SnoandCno='1');Snsme查詢(xún)選修了全部課程的學(xué)生姓名。selectSnamefromstudentwherenotexistsSnsme(select*fromCoursewherenotexists(select*fromscwhereSno=student.SnoandCno=course.Cno));9)查詢(xún)至少選修了學(xué)生200215121選修的全部課程的學(xué)生號(hào)碼selectdistinctSnofromscscxwherenotexists(select*fromscscywherescy.Sno='200215122'andnotexists(select*fromscsczwherescz.Sno=scx.Snoandscz.Cno=scx.Cno));4.集合查詢(xún)1)查詢(xún)計(jì)算機(jī)科學(xué)系的學(xué)生及年齡不大于19歲的學(xué)生。select*fromstudentwhereSdept='CS'unionselect*fromstudentwhereSage<=19;2)查詢(xún)選修了課程1或課程2的學(xué)生。selectSnofromscwhereCno='1'unionselectSnofromscwhereCno='2';3)查詢(xún)計(jì)算機(jī)科學(xué)系的學(xué)生與年齡不大于19歲的學(xué)生的交集select*fromstudentwhereSdept='CS'.SnaSnameSsex.SageSdeptintersectselect*fromstudentwhereSage<=19;查詢(xún)既選修了課程1又選修了課程2的學(xué)生。selectSnofromsc

whereCno='1'intersectselectSnofromscwhereCno='2';5)查詢(xún)計(jì)算機(jī)科學(xué)系的學(xué)生與年齡不大于19歲的學(xué)生的差集。SnoSnameSsexSageSdept1|2W21&121|李勇男24CS22M215122劉晨21CS32M215126兆成民20CSselect*fromstudentwhereSdept='CS'exceptselect*fromstudentwhereSage<=19三、視圖操作1.建立視圖建立信息系學(xué)生的視圖createviewIS_StudentasselectSno,Sname,SagefromstudentwhereSdept='IS';日[」School0口諏搖■陣關(guān)系圖田口表日口視冒0口盂締視圖@因dbo」S_£tuamnthF后K/荷□[JSchool□[JSchool田口站庫(kù)關(guān)縈囹田□表0口視圉0EJ票張喟日邸dbo.IS_£l

日口列PHSno-[dhar(9^notnull)FlSname(char{2t01null]圍Grade(smallintnull)createviewIS_S2(Sno,Sname,Grade)asselectSno,Sname,GradefromIS_S1whereGrade>=90;0因Jdbo.I£_£2日口列IlSno(char(^),netnull)J]Sname(char[20),null)圍Grade{smallint,null)pin麒芳器2)建立信息系學(xué)生的視圖,并要求進(jìn)行修改和插入操作時(shí)仍需保證該視圖只有信息系的學(xué)生。createviewIS_StudentasselectSno,Sname,SagefromstudentwhereSdept='IS'withcheckoption;建立信息系選修了1號(hào)課程的學(xué)生的視圖。createviewIS_S1(Sno,Sname,Grade)asselectstudent.Sno,Sname,Gradefromstudent,scwhereSdept='IS'andstudent.Sno=sc.Snoandsc.Cno='1';4)建立信息系選修了1號(hào)課程且成績(jī)?cè)?0分以上的學(xué)生的視圖。

定義一個(gè)反應(yīng)學(xué)生出生年份的視圖。createviewBT_S(Sno,Sname,Sbirth)asselectSno,Sname,2004-Sagefromstudent;(3因.dbo.BT_S日EJ列圍Sno(char^),not_|]Sname(char[20).HSbirth(inLnull)將學(xué)生的學(xué)號(hào)及他的平均成績(jī)定義為一個(gè)視圖。createviewS_G((3因.dbo.BT_S日EJ列圍Sno(char^),not_|]Sname(char[20).HSbirth(inLnull)fromscgroupbySno;日因Jdbo.S_G日口列_BSno(cliarf^jnotnulf)SJGavg(intnulljoa臉詐7)將Student表中所有女生記錄定義為一個(gè)視圖。日因Jdbo.S_G日口列_BSno(cliarf^jnotnulf)SJGavg(intnulljoa臉詐fromstudentwhereSsex='女';□因db&.F_Studerit□因db&.F_Studerit日口列圍F_&no(char(9^notnull)IIname[char(20).null)[DsexCchar[2),null][T|age(smallintjnull)圍deptCchsr(20),null)団鹵団鹵Efflfl鹵田田田田田田1)刪除視圖BT_S:日口視圏G口烝褪喟dbo.BT_.Sdbo.F_Studentdbo.IS_Sldbo.IS_S2dbo.IS_Studentdbo.S_G日口視囹?口垂鋼嘰圉田[H]Jdbo,F_StudentQ回dbo,IS_Sl田口1db&,IS_S2田[H]Jdbo.IE_£tudent田因]db&,&_G3.查詢(xún)視圖:在信息系學(xué)生的視圖中找出年齡小于20selectSno,SagefromIS_StudentwhereSage<=20;查詢(xún)選修了1號(hào)課程的信息系學(xué)生。selectIS_Student.Sno,SnamefromIS_Student,scwhereIS_Student.Sno=sc.Snoandsc.Cno='1';3)在S_G視圖中查詢(xún)平均成績(jī)?cè)?0分以上的學(xué)生學(xué)號(hào)和平均成績(jī)。select*fromS_GwhereGavg>=80;SnaSna5nama120021512521220021512&4.更新視圖:1)將信息系學(xué)生視圖IS_Student中學(xué)號(hào)為200215125的學(xué)生姓名改為“劉辰”。updateIS_StudentsetSname='劉辰'whereSno='200215125';SnoSnameSage1200215125張立21220[)21512B陳冬20原視圖2)向信息系學(xué)生視圖IS_Student中插入一個(gè)新的學(xué)生記錄,其中學(xué)號(hào)為200215129,姓名為趙新,年齡為20歲。insertintoIS_Studentvalues('200215129','趙新',20,'IS');SnoSnameSagesdept20021512520021512552110215129TOC\o"1-5"\h\z張立2120021512520021512552110215129陳冬20IS趙新20IS3)刪除信息系學(xué)生視圖IS_Student中學(xué)號(hào)為200215129的記錄。deletefromIS_StudentwhereSno='200215129';SnoSnameSagesdept1j2M215125張立21IS22CK1512S陳冬卻IS

(1)了解SQLSerer數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)完整性控制的基本方法(2)熟練掌握常用CREATE或ALTER在創(chuàng)建或修改表時(shí)設(shè)置約束(3)了解觸發(fā)器的機(jī)制和使用(4)驗(yàn)證數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)完整性控制二、實(shí)驗(yàn)內(nèi)容和原理結(jié)合ST數(shù)據(jù)庫(kù)中的各個(gè)表,設(shè)置相關(guān)的約束,要求包括主鍵約束、外鍵約束、唯一約束、檢查約束、非空約束等,掌握各約束的定義方法。設(shè)置一個(gè)觸發(fā)器,實(shí)現(xiàn)學(xué)生選課總學(xué)分的完整性控制,了解觸發(fā)器的工作機(jī)制。設(shè)計(jì)一些示例數(shù)據(jù),驗(yàn)證完整性檢查機(jī)制。要求包括如下方面的內(nèi)容:3.1使用SQL語(yǔ)句設(shè)置約束使用CREATE或ALTER語(yǔ)句完成如下的操作,包括:1.設(shè)置各表的主鍵約束2.設(shè)置相關(guān)表的外鍵3.設(shè)置相關(guān)屬性的非空約束、默認(rèn)值約束、唯一約束4.設(shè)置相關(guān)屬性的CHECK約束3.2使用觸發(fā)器創(chuàng)建一個(gè)觸發(fā)器,實(shí)現(xiàn)如下的完整性約束:SC學(xué)計(jì)010001上林SC學(xué)計(jì)010001上林7010002程明3010003E玉民4Slndent學(xué)U課程號(hào)成績(jī)學(xué)分010001106803010001206904010002106703當(dāng)向SC表中插入一行數(shù)據(jù)時(shí),自動(dòng)將學(xué)分累加到總學(xué)分中。記錄修改學(xué)分的操作。3.4檢查約束和觸發(fā)器分別向相關(guān)表插入若干條記錄,檢查你設(shè)置的完整性約束是否有效1.插入若干條包含正確數(shù)據(jù)的記錄,檢查插入情況2.分別針對(duì)設(shè)置的各個(gè)約束,插入違反約束的數(shù)據(jù),檢查操作能否進(jìn)行3.向SC表插入若干行數(shù)據(jù),檢查觸發(fā)器能否實(shí)現(xiàn)其數(shù)據(jù)一致性功能。三、主要儀器設(shè)備使用SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)提供的SSMS和查詢(xún)編輯器創(chuàng)建學(xué)生選課數(shù)據(jù)庫(kù)TEST,包括三個(gè)基本表,其中Student表保存學(xué)生基本信息,Course表保存課程信息,SC表保存學(xué)生選課信息,其結(jié)構(gòu)如下表:0L_jTEST?口數(shù)搞庫(kù)關(guān)系囹田口表m1~..TH!PEH表1.Student表結(jié)構(gòu)列名彌用途類(lèi)型長(zhǎng)度備注Sno■?'-J'字符S主鍵Snamc姓名字符S非空Ssex性別字符2湧,女}Sage年齡整型Sdept所在系字符20Sclass班級(jí)字符4非空Stotdl總學(xué)分默認(rèn)値0CREATETABLEStudent(SnoCHAR(8)PRIMARYKE,SnameCHAR(8)NOTNULL,SsexCHAR(2)CHECK(Ssexin('男',女')),SageSMALLINT,SdeptCHAR(20),SclassCHAR(4)NOTNULL,StotalsmallintDEFAULT0表2.Course表結(jié)構(gòu)列名稱(chēng)川途類(lèi)型氏度約束備注Cno課稈號(hào)字符斗主鍵Cname課程名字符4fl非空,唯一Cpno先修課程號(hào)字符4外鍵屮用本聶的CnoCcredit學(xué)分整型);CREATETABLECourse(CnoCHAR(4)CONSTRAINTFK_CoursePRIMARYKE,CnameCHAR(40),CpnoCHAR(4),CcreditSMALLINT);3.SC結(jié)構(gòu)列名稱(chēng)類(lèi)型長(zhǎng)度約束備注Sno學(xué)號(hào)字符8L何屈4仁外魏引用Student的SnoCno課程號(hào)字符4L閔屈件?外鍵引用Course的CnoGrade成績(jī)U<=成績(jī)€=100CREATETABLESC(SnoCHAR(8)FOREIGNKEY(Sno)REFERENCESStudent(Sno),CnoCHAR(4),GradeSMALLINTCONSTRAINTSC_CHECKCHECK(Grade>0ANDGrade<100),PRIMARYKEY(Sno,Cno),CONSTRAINTFK_SCFOREIGNKEY(Cno)REFERENCESCourse(Cno));插入數(shù)據(jù)INSERTINTOstudentVALUES('20100001','李勇','男',20,'CS','1001',0)INSERTINTOStudentVALUES('20100002','劉晨','女',19,'CS','1001',0)INSERTINTOStudentVALUES('20100021','王敏','女',18,'MA','1002',0)INSERTINTOStudentVALUES('20100031','張立','男',19,TS','1003',0)INSERTINTOStudentVALUES('20100003','劉洋','女',NULL,NULL,'1001',0)INSERTINTOStudentVALUES('20100010','趙斌','男',19,TS','1005',0)INSERTINTOStudentVALUES('20100022','張明明','男',19,'CS','1002',0)sno呂仃amessexsagesdeptsclassstat曰I2D1DDDD1李勇卑2DCS1DD1D2201000D2劉晨女19CS1DD1D3卻壯麗陽(yáng)劉洋女NULLNULL1DD1D4卻1麗加D19IS1OT5D5卻1麗睦1王敏女1SMA1002D6卻価D22張明明卑19CS1002D720100331張立卑19IS1DD3DINSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES(T,'數(shù)據(jù)庫(kù)系統(tǒng)原理','5',4)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES('2','高等數(shù)學(xué);null,2)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES('3','管理信息系統(tǒng)',T,4)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES('4','操作系統(tǒng)原理','6',3)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES('5','數(shù)據(jù)結(jié)構(gòu);'7',4)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES('6','數(shù)據(jù)處理',null,2)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES('7','C語(yǔ)言',null,4)OnoCnameCpnoCoedit1數(shù)據(jù)庫(kù)系統(tǒng)原理5422高等數(shù)學(xué)NULL233管理信息系統(tǒng)1444換作系統(tǒng)原理£355數(shù)據(jù)結(jié)枸74£6數(shù)據(jù)處理NULL277匸語(yǔ)言NULL4■SnciOnoGrade124TDPDD119222S532010(X)013S34301OTME19(}530KWM122SO6301000031NULL7aO1{HM1D3NULLINSERTINTOSCVALUES('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)修改約束對(duì)數(shù)據(jù)庫(kù)中已經(jīng)存在的表,可對(duì)其增加約束或修改已存在的約束:(1)添加約束ALTERTABLECourseADDUNIQUE(Cname)ALTERTABLECourseADDFOREIGNKEY(Cpno)REFERENCESCourse(Cno)掌握如何添加約束掌握如何聲明唯一約束(2)修改約束ALTERTABLESCDROPCONSTRAINTSC_CHECKALTERTABLESCADDCONSTRAINTSC_CHECKCHECK(Grade>=0ANDGrade<=100)掌握如何修改約束理解命名約束的優(yōu)點(diǎn)二、檢查完整性約束通過(guò)修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)檢查完整性約束條件的作用。1.檢查主鍵約束(1)執(zhí)行下面的語(yǔ)句修改Student表,觀察語(yǔ)句能否正確運(yùn)行,解釋為什么?INSERTINTOStudentVALUES('20100101','李斌','男',20,'CS','1001',0)呂no呂namessexsageadeptsdassstotal1李勇20CS1DD1D2西1麗陽(yáng)2劉晨女19CS1DD1D3西壯麗昭劉洋女NULLNULL1DD1D42D100D1D男19IS1005D52D100K1王敏女1SMA1DD2D6201^022味明明男19CS1DD2D7201^331味立男19IS1DD3DB2D1UD1D1男20CS1DD1INSERTINTOStudentVALUES('2O100001','李斌','男',20,'CS','1001',0)消息2627,級(jí)別14,狀態(tài)1,第1行違反了PRIMARYKEY約束'PK_Student_DDDF64467F60ED59'。不能在對(duì)象’dbo.Student'中插入重復(fù)鍵。語(yǔ)句已終止。(因?yàn)閟no為主鍵不能有重復(fù),所以無(wú)法運(yùn)行)UPDATEStudentSETSno='20100021'WHERESname='張立'消息2627,級(jí)別14,狀態(tài)1,第1行違反了PRIMARYKEY約束'PK_Student_DDDF64467F60ED59'。不能在對(duì)象'dbo.Student'中插入重復(fù)鍵。語(yǔ)句已終止。(張立要修改的學(xué)跟王敏的學(xué)號(hào)重復(fù)了,由于學(xué)號(hào)是學(xué)生表的主鍵,不可以重復(fù),所以無(wú)法運(yùn)行)(2)執(zhí)行下面的語(yǔ)句修改SC表,觀察語(yǔ)句能否正確運(yùn)行,解釋為什么?INSERTINTOSCVALUES('20100001','1',78)泊息£違反了曲工皿RYKZY約束1EK_SC_E^00023307020F21'o不能在對(duì)象1dho.SC中插入重復(fù)鍵。語(yǔ)句已終止。INSERTINTOSCVALUES('20100001',null,78)消息313,級(jí)別“,狀態(tài)S第1行不能將值NU1工插入列TCn°T.表^EST-dho-SC列不允許有Null值。INSERT失畋語(yǔ)句已終止。2.檢查唯一約束執(zhí)行下面的語(yǔ)句修改Course表,觀察語(yǔ)句能否正確運(yùn)行,解釋為什么?INSERTINTOCourseVALUES('8','JAVA',7,3)INSERTINTOCourseVALUES(9,'數(shù)據(jù)結(jié)構(gòu)',7,3)違反了UNIQUEK3Y約束'UQ3cu£se_9F5ZO2990CEAE8771c不能在對(duì)象'dho.Course'中插入重復(fù)鍵語(yǔ)句已終止。3.檢查默認(rèn)值、允許空值列運(yùn)行如下的語(yǔ)句:INSERTINTOStudent(Sno,Sname,Ssex,Sclass)VALUES('20100102','張盛','男','1008')觀察插入數(shù)據(jù)行的數(shù)值SELECT*FROMStudentWHereSno='20100102'呂no呂仃amessexsageadeptschssstat曰I1」201DD1D2j弓編卑NULLNULL1008D4.檢查非空約束下面的語(yǔ)句包含空值,檢查運(yùn)行結(jié)果,解釋為什么?INSERTINTOStudent(Sno,Sname,Ssex,Sclass)VALUES('20100103','張盛','男;NULL)消息三不能將值MULL插入列'scl-ss'表'IZST.^b^.S-tudenf列不允許有Null值。INSERT失敗。語(yǔ)句已終止。INSERTINTOStudent(Sno,Sname,Ssex)VALUES('20100104','張盛','男')消息三不能將值NULL插入列'sclass',表'IZST.dho.Student1j列不允許有Null值。INSERT失敗語(yǔ)句已終止。5.檢查CHECK約束執(zhí)行下面的語(yǔ)句,解釋其運(yùn)行結(jié)果。INSERTINTOSCVALUES('20100001','4',95)

違反了FHXARYKZY違反了FHXARYKZY約束1EK_SC_ZS00025307020F211o不能在對(duì)象1dha.SC1中插入重復(fù)鍵■=語(yǔ)句已終止。INSERTINTOStudent(Sno,Sname,Ssex,Sclass)VALUES('20100103','張盛','男','1008')snosnamessexsageadeptsdassstotal2D1DDDD1李勇卑20CS1DD1D2201^^2劉晨女19CS1DD1D3201^^3劉洋女NULLNULL1DD1D4201髭31D卑19IS1005D5201^K1王鎖女1BMA1002D62D10DD22張明明卑19CS1DD2D72D100331卑19IS1003DB2D10D1D1李斌20CS1DD1D920100102張盛男NULLNULL1008DW201001103張盛NULLNULL1008DVINSERTINTOStudent(Sno,Sname,Ssex,Sclass)VALUES('20100104','張盛',”,'1008')■CHECKStudent_ssex_014935CB,f/^^該沖突岌生于數(shù)據(jù)庫(kù)卄TEST",^,rdho..Student11Tcolumn1ssex消息347,■CHECKStudent_ssex_014935CB,f/^^該沖突岌生于數(shù)據(jù)庫(kù)卄TEST",^,rdho..Student11Tcolumn1ssex6.檢查外鍵約束(1)執(zhí)行下面的語(yǔ)句檢查外鍵約束的作用INSERTINTOSCVALUES('20100301','1',95)INSERTINTOSCVALUES('20100001','10',95)UPDATESCSETCno='10'WhereCno='1'UPDATECourseSETCno='10'WhereCno='3'消息347,純別g狀態(tài)。,第1行TOC\o"1-5"\h\zINSERT語(yǔ)句與F3ECII2NK3Y約束"FK_SC_Stic_08EA5"93,r沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù),rIZSI,r^表,rdho.Student,rrcolumn1sno語(yǔ)句已終止。-消息347,級(jí)別嗎狀態(tài)。,第2行INSERT語(yǔ)苛與FOREIGNKEY約束nrFK_SC,''沖孌口謫沖字右生于數(shù)扌居庫(kù)1RTEST,F,表irdho-Course11xcolumn1Cno1c.語(yǔ)句已終止。-消息347,級(jí)別氐狀態(tài)。,第3行UPDAIZ語(yǔ)句與FOREISNKST約束,rFK_SC'r沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù),rIZSI'r,表”dhn-Course1*,cdlumnTCno1o語(yǔ)句已終止?!鱿?47,純別g狀態(tài)。,第4行UPDAIZ語(yǔ)句與REFERENCE約束,rFK_S2,r沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù),rIZSI,r^表,rdh:c.S2,rrcolumn'Cno'o語(yǔ)句已終止。2)執(zhí)行下面的語(yǔ)句檢查對(duì)被引用表的約束

Student表:snosnamessexsageadeptadassstat曰I12D1DDDD1李勇男2DCS1DD1D220100002劃晨女19CS1DD1D32010DOT3劃洋女NULLNULL1DD1D42010001019IS1DQ5D52010M21王敏女1SMA1M2D62D1CDD22張明明男19CS1M2D720100031張立男19IS1D03DB20100101男2DCS1DD1D920100102張盛男NULLNULL10D8D1020100103張盛男NULLNULL10D8DDELETEStudentWHERESno='20100021'snosnamessexsage1201DDDD1李勇snosnamessexsage1201DDDD1李勇男20220100002劃晨女19320100003劃洋女NULL420100010趙斌男1952D1CDD22張明明男19620100031張立男19720100101男2DB20100102張盛男NULL920100103張盛男NULLadeptsclassstotalCS1DD1DCS1DD1DNULL1陽(yáng)1DNULLW昭DNULLW昭DIS1DQ5CS1DG2IS1DTOCS1D01日日二dbo.SCO□列oE□鑒QCJ釣康曰口槪器辺trJNSERT田口案引Q口統(tǒng)計(jì)信息DELETEStudentWHERESno='20100001'消息347,級(jí)別血狀態(tài)0,第1行^DZLZIZ語(yǔ)句與2EFZRENCE約束"FK_SC_Snc_03EA5793,r沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù)"TEST",表,rdhc.SC,rrcclumnrSnc語(yǔ)句已終止。UPDATECourseSETCno='10'WHERECname='數(shù)據(jù)庫(kù)系統(tǒng)原理'消息三;UPDATZ語(yǔ)句與REFERENCE約束irFK_SC,r)中突。該沖突發(fā)生于數(shù)據(jù)庫(kù)"TMST",表,rdhc.SC,rrcolumn1Cnu語(yǔ)句已終止。三、觸發(fā)器的定義及使用1.定義觸發(fā)器(1)定義一個(gè)觸發(fā)器,實(shí)現(xiàn)有關(guān)學(xué)分的完整性約束:當(dāng)向SC表插入一行選課記錄時(shí),自動(dòng)將該課程的學(xué)分累加到該學(xué)生的總學(xué)分中CREATETRIGGERtr_INSERTONSCFORINSERTAS--聲明變量DECLARE@snochar(8)DECLARE@criditintDECLARE@cnochar(4)--提取插入的數(shù)據(jù)SELECT@sno=Sno,@cno=CnoFROMinserted--提取學(xué)生的總學(xué)分SELECT@cridit=CcreditFROMSCjoinCourseON(SC.Cno=Course.Cno)WHERESC.Cno=@cno--更新總學(xué)分UPDATEStudentSETStotal=Stotal+@criditWHERESno=@snoGO(2)定義一個(gè)觸發(fā)器,實(shí)現(xiàn)對(duì)SC表的操作登記:當(dāng)用戶(hù)向SC表插入或修改時(shí),記錄該操作到數(shù)據(jù)庫(kù)中。創(chuàng)建日志登記表:CREATETABLELOG_TABLE(usernamechar(10),datedatetime,Snochar(8),Cnochar(4))創(chuàng)建日志登記觸發(fā)器:CREATETRIGGERtr_UPDATEONSCFORINSER,UPDATEASDECLARE@snochar(8)DECLARE@cnochar(4)DECLARE@newsmallintSELECT@sno=Sno,@cno=CnoFROMinsertedINSERTINTOLOG_TABLEVALUES(CURRENT_USER,getdate(),@Sno,@Cno);GO(3)執(zhí)行插入操作,觸發(fā)觸發(fā)器:INSERTINTOSCVALUES('20100001','6',95)--操作人員--修改時(shí)間--學(xué)生學(xué)號(hào)--課程號(hào)iJI連罔trJMSERTdoc.SCdhe.StLiderit□.jTESTtr_4)驗(yàn)證觸發(fā)器是否觸發(fā)select*fromstudentsno呂仃amessexsagesdeptsclassstat曰12D1DDDD1李勇卑2DCS1DD122卻1麗陽(yáng)2劉晨女19CS1DD1D3卻匕麗陽(yáng)劉洋玄NULLNULL1DD1D4卻匕陽(yáng)1D19IS1OT5D5卻価D22張明明卑19CS1002D62O1C0331張立卑19IS1DD3D72O1CD1D1卑20CS1DD1D2O1M1O2張盛卑NULLNULL1008D9201001103張盛卑NULLNULL1008Dselect*fromLOG_TABLEusemamedateSnaCna1?dboI2D13-D4-251S:4S:D6.5?2010MM161、實(shí)驗(yàn)?zāi)康模?)了解SQLSerer數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)訪問(wèn)控制的基本方法(2)了解使用SSMS如何給用戶(hù)授權(quán)(3)熟練掌握常用GRANT和REVOKE進(jìn)行權(quán)限控制(4)驗(yàn)證數(shù)據(jù)庫(kù)系統(tǒng)的訪問(wèn)控制2、實(shí)驗(yàn)平臺(tái)使用SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)提供的SSMS。3實(shí)驗(yàn)內(nèi)容及要求實(shí)驗(yàn)應(yīng)包括如下方面的內(nèi)容:創(chuàng)建新的數(shù)據(jù)庫(kù)用戶(hù)對(duì)上一實(shí)驗(yàn)建立的表進(jìn)行權(quán)限設(shè)置檢查數(shù)據(jù)庫(kù)用戶(hù)的權(quán)限撤銷(xiāo)用戶(hù)權(quán)限4實(shí)驗(yàn)報(bào)告要求寫(xiě)出實(shí)驗(yàn)的基本過(guò)程。參考示例:在SQLServer中,對(duì)用戶(hù)訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限管理可以使用兩種方式,一種是使用SSMS的圖形界面進(jìn)行管理,一種是使用SQL語(yǔ)句。3.1使用SSMS的圖形界面創(chuàng)建用戶(hù)并授權(quán)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)用戶(hù):張明,授予他可以查詢(xún)Student表的權(quán)限。1.使用SSMS的圖形界面創(chuàng)建登錄名在快捷菜單中選擇“新建登錄名”:

2.使用SSMS的圖形界面創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)選擇“ST”數(shù)據(jù)庫(kù),在快捷菜單中選擇“新建登錄名”:曰J田口數(shù)據(jù)庫(kù)關(guān)罷圖田一J表田一i視囹田一J局義詞?一J可編程性田!__|ServiceBroker田一J存儲(chǔ)□_J寶牡田口用戶(hù)田口坤色數(shù)垢庫(kù)用戶(hù)-新建迭擇頁(yè)雪常規(guī)雪安全對(duì)象圏擴(kuò)展屬性壓腳本▼於幫助用戶(hù)容(U):毬:登錄容(!):證書(shū)容稱(chēng)(C):密鑰容稱(chēng)(K):無(wú)登錄容3)默認(rèn)架構(gòu)00:此用戶(hù)擁有的架構(gòu)(D):理自的架構(gòu);db_acceEEailriin連接服務(wù)器:rgj-PC\SQL2008連接:聲杳看i車(chē)櫬國(guó)件進(jìn)度就緒□□□□□□db_backupoperatcrdbd:atai-eaderdb-datawritmrdbdillaidniindb_denydat:ireader數(shù)據(jù)庫(kù)角色成員身份(M):角色成員db_accesE:=LilnirLdb_backiipoperatofdb_dadb_datawritdb_dillaidniindb_denydatareaderdb_denydat:鈿■fitefAKrii±iTl確定取消3.使用SSMS的圖形界面進(jìn)行授權(quán),設(shè)置用戶(hù)對(duì)對(duì)象的訪問(wèn)權(quán)限

展開(kāi)ST數(shù)據(jù)庫(kù)的“安全性”下的“用戶(hù)”,選擇“張明db”。打開(kāi)用戶(hù)屬性窗口:3.2使用SQL語(yǔ)句創(chuàng)建用戶(hù)并授權(quán)在ST或TEST數(shù)據(jù)庫(kù)中,使用SQL語(yǔ)句創(chuàng)建兩個(gè)數(shù)據(jù)庫(kù)用戶(hù),對(duì)數(shù)據(jù)庫(kù)中的StudentSC、和Course表,分別對(duì)其授予不同的訪問(wèn)權(quán)限,如下表。表3.1授予用戶(hù)權(quán)限

衣3.1授予用戶(hù)權(quán)限用戶(hù)數(shù)據(jù)庫(kù)對(duì)象權(quán)限資詢(xún)插入修改刪除王明StudentJCourseSC李剛StudentJ77JCourseJ7SC1.創(chuàng)建登錄名用戶(hù)要訪問(wèn)數(shù)據(jù)庫(kù),必須首先登錄到服務(wù)器上。因此,首先需要為用戶(hù)創(chuàng)建登錄名。以系統(tǒng)管理員賬戶(hù)登錄,進(jìn)入數(shù)據(jù)庫(kù)服務(wù)器,執(zhí)行以下的操作。A消息命令已成功完成(A消息命令已成功完成CREATELOGIN王明WITHpassword='123456'CREATELOGIN李剛WITHpassword='123456'0口寶牡日口轄名S_PolicyEventPro?##MS_PolicyTsqIExecutNTAUTHOR]TY\NETWtNTAUTHORJTV\SYSTErNTSERV1:CE\MSSQL$S(NTSERVl:CE\SQLAgent!rgy-PC\rgy李剛王明張明2.創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)用戶(hù)登錄服務(wù)器后,要進(jìn)入某一數(shù)據(jù)庫(kù)訪問(wèn),需要為登錄用戶(hù)在該數(shù)據(jù)庫(kù)中建立一個(gè)數(shù)據(jù)庫(kù)用戶(hù)名。對(duì)創(chuàng)建的兩個(gè)登錄名,在TEST數(shù)據(jù)庫(kù)分別為其創(chuàng)建兩個(gè)數(shù)據(jù)庫(kù)用戶(hù):(1)切換到TEST數(shù)據(jù):USETEST(2)創(chuàng)建登錄名在TEST數(shù)據(jù)庫(kù)中的用戶(hù):CREATEUSER王明dbFORLOGIN王明CREATEUSER李剛FORLOGIN李剛BLjTEST田口數(shù)搞庫(kù)關(guān)票圖E)□表田口視圖田口同義詞田口可褊程性0口ServiceBrokerF田口勰日口寶鋰日口用戶(hù)?邑dbo萇guestINFORMAT[ON_SC'A李剛強(qiáng)王明日b授權(quán)在數(shù)據(jù)庫(kù)中添加新用戶(hù)后,新用戶(hù)沒(méi)用訪問(wèn)數(shù)據(jù)庫(kù)中數(shù)據(jù)的權(quán)限,需要數(shù)據(jù)庫(kù)管理人員給其授予相關(guān)的權(quán)限后,才能執(zhí)行相應(yīng)的操作。按照表3.1,授權(quán)如下:(1)授予王明權(quán)限GRANTSELECTONStudentTO王明db(2)授予李剛權(quán)限GRANTSELECTONStudentTO李剛GRANTINSER,UPDAT,DELETEONStudentTO李剛GRANTSELECTONCourseTO李剛3.3檢查權(quán)限控制分別以?xún)蓚€(gè)登錄名登錄數(shù)據(jù)庫(kù),執(zhí)行一些對(duì)數(shù)據(jù)庫(kù)的操作,檢查用戶(hù)否允許執(zhí)行相關(guān)的操作。1.檢查王明的權(quán)限以用戶(hù)“王明”登錄,執(zhí)行如下的操作,檢查能否正確的運(yùn)行:SELECT*FROMStudentsnosnamessexsageadeptsclassstotal12D1DDDD1李勇男20CS1DD1222D1000D2劃晨女19CS1DD1D32D1000D3劃洋女NULLNULL1DD1D4EDITED趙斌男19IS1DD5D5測(cè)陽(yáng)D22兆明明19CS1DD2D6匹1麗阿1兆立19IS1DD3D7匹1陽(yáng)1D1李誡男20CS1DD1DS2D10D1D2張盛男NULLNULL1008D92D10D1D3張盛男NULLNULL1008DINSERTINTOStudent(Sno,Sname,Sclass)VALUES('20101101,'高志','1008')消息’拒緬了對(duì)對(duì)象1Studen

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論