四川師范大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)原理實(shí)驗(yàn)報(bào)告_第1頁
四川師范大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)原理實(shí)驗(yàn)報(bào)告_第2頁
四川師范大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)原理實(shí)驗(yàn)報(bào)告_第3頁
四川師范大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)原理實(shí)驗(yàn)報(bào)告_第4頁
四川師范大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)原理實(shí)驗(yàn)報(bào)告_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余32頁可下載查看

下載本文檔

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

文檔簡介

1、四川師范大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)報(bào)告冊課程名稱:實(shí)驗(yàn)學(xué)期數(shù)據(jù)庫原理概論2014 年至 2015 年第一學(xué)期專業(yè)班級(jí):軟件工程4班姓名:劉世麟學(xué)號(hào):2013110424指導(dǎo)教師:俞曉院系名稱:計(jì)算機(jī)科學(xué)學(xué)院實(shí)驗(yàn)最終成績:實(shí)驗(yàn)一熟悉SQL SERVE的環(huán)境(驗(yàn)證型實(shí)驗(yàn)2學(xué)時(shí))1. 目的要求:1) 了解 SQL Server management studio的使用2. 實(shí)驗(yàn)內(nèi)容: 回答下面每一個(gè)問題,寫出實(shí)驗(yàn)步驟1)在 “已注冊服務(wù)器窗口”中注冊 sql server 數(shù)據(jù)庫服務(wù)器展開【 數(shù)據(jù)庫引擎】 節(jié)點(diǎn), 右擊 Local Server Group 節(jié)點(diǎn), 選擇【新建服務(wù)器注冊】 命令,設(shè)置相應(yīng)屬性

2、,單擊【保存】即可。2)在“對(duì)象資源管理器”中創(chuàng)建名字為 sc 的數(shù)據(jù)庫 展開節(jié)點(diǎn),右擊【數(shù)據(jù)庫】節(jié)點(diǎn),選擇【新建數(shù)據(jù)庫】命令,在【數(shù)據(jù)庫名稱】后填寫 sc,設(shè)置相應(yīng)屬性,單擊【確定】即可。3)在 sc 數(shù)據(jù)庫中創(chuàng)建一個(gè)名字為 student 的基本表 展開【數(shù)據(jù)庫】節(jié)點(diǎn),選擇數(shù)據(jù)庫并展開,右擊表節(jié)點(diǎn),選擇【新建表】命令,設(shè)置行 列信息,保存即可。4)在查詢窗口中里創(chuàng)建名為S C的數(shù)據(jù)庫CREATE DATABASE S_C5)在查詢窗口中使用sql 語言創(chuàng)建名字為 course 的基本表CREATE TABLE course3. 主要設(shè)備及軟件 1) PC2) Microsoft SQL S

3、erver 2005實(shí)驗(yàn)二建立表格,并插入若干記錄驗(yàn)證型實(shí)驗(yàn)2 學(xué)時(shí))1. 目的要求: 1) 學(xué)會(huì)使用 Create Table 和 Insert 語句2. 實(shí)驗(yàn)內(nèi)容1) 使用 sql 語言建立 student,course 和 sc 共三張表格 (包括主鍵 ,外碼的指定) ,分析具體情 況適當(dāng)給出一些用戶自定義的約束 .CREATE TABLE Student (Sno char(9) PRIMARY KEY,Sn ame char(20) NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sde pt char(20);CREATE TABLE Course(Cno

4、char(4) P RIMARY KEY,Cn ame char(14),Cpno char(4),Ccredit smalli nt,FOREIGN KEY(C pno) REFERENCES Course(C no), );CREATE TABLE SC(Sno char(9),Cno char(4),Grade small int,P RIMARY KEY(S no,C no),FOREIGN KEY(S no) REFERENCES Stude nt(S no),FOREIGN KEY(C no) REFERENCES Course(C no), );2)使用Insert語句向這三張表

5、格里添加至少10條記錄(數(shù)據(jù)如教材56頁所示),如果出現(xiàn)錯(cuò)VALUES('95OO1','李勇','男',20,'CS');VALUES('95OO2','劉晨','女',20,'IS');VALUES('95003','王敏','女',20,'MA'); VALUES('95004','張立','男',20 ,'IS');誤,分析錯(cuò)誤原因I

6、NSERTINTO StudentINSERTINTO StudentINSERTINTO StudentINSERTINTO Student SELECT* FROM Student ;SnoIIIIlliIII 131 III,SnameSsexSageSdepl李翼臭20CS劉晨立2&IS&5003王皺巒MA&5004張立215UP DATE Course SETC pno ='5' WHERE Cno= '1'INSERTINTO CourseINSERTINTO CourseINSERTINTO CourseINSERTINTO

7、 CourseINSERTINTO CourseINSERTINTO CourseINSERTINTO Course(Cno(Cno(Cno(Cno(Cno(Cno (Cno,Cn ame ,Cn ame ,Cn ame ,Cn ame ,Cn ame ,Cn ame ,Cn ame,Ccredit ,Ccredit ,Ccredit ,Ccredit ,Ccredit ,Ccredit ,Ccredit)VALUES('1','數(shù)據(jù)庫',4);)VALUES('2','數(shù)學(xué)',2);)VALUES('3',信息系

8、統(tǒng))VALUES('4','操作系統(tǒng))VALUES('5','數(shù)據(jù)結(jié)構(gòu))VALUES('6','數(shù)據(jù)處理',4);',3);',4);',2);)VALUES('7','PASCAL 語言',4);UP DATE CourseUP DATE Course UP DATE Course UP DATE Course SELECT* FROMSETC pnoSETC pnoSETC pno SETC pno Course ;='1'= '6

9、'= '7'= '6'WHERE CnoWHERE CnoWHERE CnoWHERE Cno=3;= '4'= '5'= '7'CrioCnameCpnoCcjieditrriIIIbI _ Jill d數(shù)據(jù)庫542埶學(xué)NULL23僖薜編14A操作系纟克535埶據(jù)結(jié)枸74£埶據(jù)處理NULL27PASCAL語言64INSERTINTO SC VALUES('95OO1' ,'1',92);INSERTINTO SC VALUES('95001' ,&

10、#39;2',85);INSERTINTO SC VALUES('95001' ,3,88);INSERTINTO SC VALUES('95002' ,'2',90);INSERTINTO SC VALUES('95002' ,3,80); SELECT* FROM SC;SndCnoGradeIIIIII ±11111350011 132 I95001“ 205350013as95M32M3關(guān)展開【數(shù)據(jù)庫】節(jié)點(diǎn),單擊【表】節(jié)點(diǎn),選擇【新建表】,填入如下數(shù)據(jù)數(shù)據(jù)糞型筑祥Mil值Snoch目咋)Snamechar

11、po)恥Xch噸)HSagesmallirrLH H HBIII IIHBI IBHII I ch咻)iHIlIBHBIIIHIIIB « IIIHII IIHBIII IM“ if0保存的時(shí)候保存為Student就行了展開【數(shù)據(jù)庫】節(jié)點(diǎn),單擊【表】節(jié)點(diǎn),選擇【新建表】,填入如下數(shù)據(jù)3)在“對(duì)象資源管理器”中實(shí)現(xiàn) (1)題中的三張表教據(jù)類型? Cnocharts)Cramechaf(14) ; 5oc har(4)CcneditSTTialint保存的時(shí)候保存為Course設(shè)置外鍵如圖所示S 擁曰表紐列覬范艸境基表CourseCno知唯一婕基表Course主/BSTg列Cno展開【數(shù)

12、據(jù)庫】節(jié)點(diǎn),單擊【表】節(jié)點(diǎn),選別名數(shù)據(jù)類型 Snodhar也)咎Cno匚 hai)Gradesmallint保存的時(shí)候保存為Course設(shè)置外鍵如圖所示3的列瞬5匚Sno Cno卻唯一纏SC主/唯一釜藥一Snci, Cno1 r |»0111|歹腹基專SC陶列Cno主/睢一理基表Course主/唯一避列Cno【新建表】允許NlJI值允許Nd值,填入如下數(shù)據(jù)4)在“對(duì)象資源管理器”中向這(1)題中的三張表添加至少10條記錄(數(shù)據(jù)如教材56頁所示)如果岀現(xiàn)錯(cuò)誤,分析錯(cuò)誤原因第一張表中插入數(shù)據(jù)Sno5 nameSsexSage£dept95C01李勇禺30匚S95W2劉晨女19b

13、95C03王a立IBMA.79W04張Hs19日NULLNULLMULLNULLMULL第二張表中插入數(shù)據(jù)匚no卜,2Cnrne數(shù)庫信息系統(tǒng) 換作系統(tǒng) 數(shù)擁結(jié)構(gòu) 數(shù)粥處理 PASCALCpnQ5匚 credit4第三張表插入數(shù)據(jù)SroSRKT1阿*CnoGrade929500135350Q1as9500 Z905500Z503.主要設(shè)備及軟件1) PC2) Microsoft SQL Server 2005實(shí)驗(yàn)三 修改表格結(jié)構(gòu),修改和刪除表格中的數(shù)據(jù)(驗(yàn)證型實(shí)驗(yàn)4學(xué)時(shí))1. 目的要求:1)用ALTER語句修改表結(jié)構(gòu):添加列,修改列定義,刪除列。使用UP DATE和DELETE 語句修改和刪除S

14、tudent,sc, course表格中的數(shù)據(jù)。2. 實(shí)驗(yàn)內(nèi)容如下所示,創(chuàng)建表 S,并完成隨后的操作Create table s(s no char(2) p rimary key,s name char(10);1)向表中添加屬性列status,數(shù)據(jù)類型為intALTERTABLE s ADD status int ;2)向表中添加屬性列 city, 數(shù)據(jù)類型為 varchar(20), 并限定其取值范圍為“上海”,“北京”,“天津”之一ALTER tables ADD city varchar (20);Alter tables add constraint CK_city check (

15、 city ='上海' or city ='北京 ' or city ='3)4)5)天津' );ALTER tableALTER tableALTER table修改屬性列 status 的數(shù)據(jù)類型為 smallints ALTER COLUMN status smallint刪除( 3)題中取值范圍的約束s DROPCK_city ;刪除屬性列 statuss DROPCK_city ;如教材 85 頁所示,建立 student, sc, course等表 , 并插入若干數(shù)據(jù),完成如下操作:列出沒有成績的學(xué)生的學(xué)號(hào)和課程號(hào)SELECT Sno

16、, Cno FROMsc WHEREGrade IS NULL;列出 2 號(hào)課程成績在 70 分到 80 分學(xué)生的學(xué)號(hào)SELECT Sno FROMsc WHEREGrade = 2 AND Grade between 70 AND80 ;查詢所有 2005 級(jí)的學(xué)生的姓名,性別和所在系SELECT Sname, Ssex, Sdept FROMstudent WHERESno LIKE '2005%' ;查詢計(jì)科系 2004 級(jí)全體學(xué)生的所有信息SELECT* FROMstudent WHERESdept = 'js' ANDSno LIKE '200

17、4%' ;查詢計(jì)科系 2006 級(jí) 3 班和 4 班學(xué)生的姓名和性別SELECTSname,SsexFROMstudent WHERESdept ='js' AND( Sno LIKE '2006_3%' ORSnoLIKE '2006_4%' );查詢數(shù)學(xué)系所有學(xué)生的姓名,性別和出生年份SELECT Sname, Ssex, 2012- Sage FROMstudent WHERESdept ='math' ;將course表中名為PASCAL語言的課程更名為“ C語言”UPDATECourse SET Cname =

18、'C 語言' WHERECname = 'PASCAL' ; 將所有課程的學(xué)分增加 1 分UPDATECourse SET Ccredit = Ccredit +1;刪除沒有選課成績的選課記錄DELETE FROMsc WHEREGrade IS NULL;刪除“ IS ”系的所有學(xué)生信息DELETE FROMstudent WHERESdept ='IS' ;刪除所有的課程信息DELETE FROMCourse ;3. 主要設(shè)備及軟件 1) PC2) Microsoft SQL Server 2005實(shí)驗(yàn)四 查詢(多表查詢,嵌套查詢,分組查詢)

19、驗(yàn)證型實(shí)驗(yàn)12 學(xué)時(shí))1. 目的要求:1) 實(shí)現(xiàn)單表和多表的普通查詢和嵌套查詢。包括返回單值的子查詢和返回多值的子查詢。 使用 5個(gè)聚合函數(shù)以及 GROUP BY 子句和 HAVING 子句實(shí)現(xiàn)分組查詢 .2. 實(shí)驗(yàn)內(nèi)容有如下關(guān)系模式,分析每個(gè)關(guān)系模式的主碼,外碼,完成后面的查詢職員表:Emp( eid:i nteger;e name:stn ng,salary:real)咅部門表:Dep t(did:i nteger,d name:stn ng,ma nagend:i ntegerflo orn um:i nteger)職員與部分的關(guān)系表:Works(eid:i nteger,did:i n

20、teger)Works表表示:一個(gè)職員可以在多個(gè)部門工作,一個(gè)部門有多個(gè)職員De pt表中man agerid可以取值n ull,表示尚未任命部門經(jīng)理,floornum 可以取值n ull ,表 示尚未分配工作地點(diǎn)用單表查詢完成如下操作:1)輸出所有員工的姓名和工資SELECT ename , salary fflianws 盤 ary1 歐陽頁丹4CHXK) IM liar監(jiān)陽紅梅 2陽青青 朱凌云 朱凌霄朱棣 薛程 向羞 向香FROM Emp;2)3)4)245'&7aJMMIWXMXJlEHODOllfXHX)4&M04EMXH3101113131415劉麗 Sa

21、ntd白域 白云 田昕 界芝 姓fft雅BWOaoooTWDO3M00 ora 50000輸出薪水少于SELECT ename100 000的雇員的名字10 000或者大于FROM Emp WHERE salary < 10000 or salary > 10000012345ename IIHIIBIHBIII rHBIIIHII IIHnil i歐州青青j薛程 劃麗 SarTti輸出所有姓“歐陽SELECT ename ,”,且全名為四個(gè)字的雇員的姓名和工資salary FROM Emp WHERE ename LIKE '歐陽ename salary-r ! f 0

22、1 in Ti 1- 1 歐陽罰40000kllB-IIBIUJIlBL LIIIIIIUP2 K陽a梅250岡3 聊晴青9000輸出薪水在20 000和50 000之間的雇員的名字SELECT ename FROM Emp WHERE salary BETWEEN 20000 AND 500005)6)7)8)1345ename rwiBiiimi iirBniiBi 日夏丹i、 . . H 4晩理梅向羞白云喬乏輸出部門名字中含有“的所有部門的名字和樓層號(hào)SELECT dn ame , floor numFROM Dept WHERE dn ame LIKE '%_%'dna

23、meflcwmumI Illi 1媒體策劃血買92硏究-容戶規(guī)劃9查詢公司的員工數(shù)SELECT COUNT(*) FROM Emp;I'1 M丁!查詢所有還沒有部門經(jīng)理的部門的名字和編號(hào)SELECT dname , did FROM Dept WHERE managerid is NULL;dPiamt iddiddnamemana廬ridfloatTiLin1麗j1 H . H J宮戶管理1MJ592902倉憶服務(wù)100593取3煤體策劃英買1()0594904硏穽車戶觀劃1M695M5美術(shù)1財(cái)9M6101297W7果1W339510011M41021002人事1WJ41010100

24、3財(cái)經(jīng)100410111004新聞100410查詢所有已分配樓層的部門的所有信息SELECT * FROM De pt WHERE floornum is NOT NULL;ESCAPE ''7 3 o 1 T JI T JI i1MM1004IMM1M41剛1WJ41W)71010ia101010la用連接查詢完成如下操作:查詢“電視”部門的職工人數(shù)SELECT COUNT( did ) FROM WorksWHERE dname ='電視');1)WHERE Works . did=(SELECT didFROM Dept2)氏列名) llkll klllB

25、iM Illi i*l I I V1ie i"H IIH輸出每個(gè)部門的名字和平均工資selectdname , avg ( salary ) fromand dept . did =works . did group b1dnarrte(無列庠) KMXHJO2僅媒r j3創(chuàng)意朋務(wù)4電視476« «66eW6ft75廣告IfflXMX)>&海外10W007技術(shù)lOOMX)a喜戶管理G72509媒體第劃買65250'emp, dept , worksdn ame ;where emp. eid=works . eid3)1Q|7775011A&

26、#165;lOWTO12社埶lOWffi'13糖果235W14fit具6S25C15文SlOOOM'16薊聞imoo17研究占戶規(guī)劃S275018資源100TOQ查詢每個(gè)部門的部門編號(hào),及其擁有的雇員的人數(shù)select Dept . did , Cou nt ( eid ) from De pt , Works WHERE Dep t . did GRO UP BY De pt . did ;=Works . did1 i、,3301 49024344454|g47W74|31W139100(331'J3111004312&3131006311OT73151儷3

27、11剛3173IB10116查詢在第10層工作,SELECT DISTINCT Works.did=Dept4)did同時(shí)薪水少于Y 50000的所有雇員的名字ename FROM Emp, Dept , Works WHEREEmp. eid =Works . eid AND :.did AND De pt . floornum = 10 AND salary > 50000;ename準(zhǔn)雅i X薛程朱棣5)輸岀同時(shí)管理三個(gè)或者更多部門的管理者的名字3)select en ame from dep t,e mp where dep t.ma nagend=e mp .eid grou

28、p by man ageride namehav ing cou nt(did)>=3;erame1丨來叢云I2 未黃脅6)輸岀管理在同一層上10個(gè)以上部門的所有管理者的名字SELECTS name FROM)e pt , Emp WHER Emp. eid = Dept . man agerid grou p by man agerid ,floornum , ename having COUNgid ) > 10 ;ename7)輸岀雇員“劉麗”工作的部門的名字SELECTdname FROMEmp, Dept, Works WHER Emp ename ='劉麗

29、9;ANDEmp eid = Works . eidANDWorks . did = Dept . did ;dname1I就* IIIHII IIIWII !用嵌套查詢完成如下操作:1)查詢工資最高的雇員的名字SELECT enameFROM EmpWHEREsalary =( SELECT MAsalary ) FROM Emp;ename lO li薜程2)查詢工資最低的雇員的名字及其所在部門的編號(hào)和名字SELECTename, Dept. did , dname FROM:mp Dept, Works WHEREalary = (SELECTMIN( salary )FROMEmp)

30、ANDEmp. eid = Works . eid ANDWorks . did = Dept . did ;erame; L-1 II I t i劃麗i Ihtllllll-llll HW lllllSantaSdntadid10119011011dname電視容戶管理電視輸岀與Santa工作部門相同的所有雇員的所有信息SELECTE mp. eid , en ame, salary FROMEm p, De pt, Works WHER Emp. eid = Works . eid AND9)Works. did=De pt. did ANDDe pt. did in( SELECTdid

31、 FROMWorks WHEREeid = (SELECTeidWHEREname ='Sa nta');eidenamesalary1 ' I I I rLH IIIi 1M5 j朱凌肓11'Oi2一而亍SantagMO310'13白域TEHXH)410'17姓成雅WMW51W7薛程mm霜lO'IO劃麗ftMO11W1歐陽夏丹+EHKK)£1011Santaa31014白云iWDO1010'17ft®雅FROME mp4)找岀薪水在20 000以上,并且在電視部門或者玩具部門工作的雇員的名字SELECTDIS

32、TINCT ename FROMEmp. Dept, Works WHER Emp eid = Works. eidANDWorks . did5)=Dept . did ANDsalary > 20000 ANDdname in (SELECTdname FROMDept電視'or dname='玩具');2345enameIIHJII ILHIII BliH HJBIII i首云、H H歐陽紅梅日夏舟薜程輸岀與劉麗在同一層工作的雇員的名字WHEREname='234575ANDWorks . didSELECTDISTINCT ename FROMEm

33、p, Dept, Works WHER Emp eid = Works. eid=Dept . did ANDfloornum in (SELECTDISTINCT floornumFROMDept , EmpWorks WHEREDept. did = Works . did ANDWorks . eid = Emp. eid ANDEmp. ename ='劉麗');ename|l Ulli SantaI H H H -自云劉麗7)8)SELECTDISTINCT ename FROMEmp, Dept, Works WHEREsalary > All( SELECT

34、salary FROMEmp Dept WHEREmp. eid = Dept . managerid ANDEmp. eid = Works . eid ANDWorks . didDe pt. did ANDe name in( SELECTe name FROMEmp);enarrre1 BAM伯域3、空34必畑aM丹5喬芝£田昕7向£3向香9姓僦w薛程11弓&蕓凡121314未凌云輸岀滿足如下條件的各個(gè)部門的名字:經(jīng)理的姓為張,同時(shí)他的薪水既不是本部門最高也不是最低SELECTDISTINCT dname FROMWorks , Dept, emp wher

35、e Dept . managerid =emp eid and enamelike '張%' ANDsalary <( select max( salary ) FROM?mp WHEREid IN( SELECTeidworks , De pt WHERWorks . did =De pt. did) ANDsalary >( SELECT mi n( salary ) fromwhere eid in( select eid from works where works . did =dept. did );輸岀比“玩具”部門所有職工工資都高的雇員的姓名FROM

36、empSELECTe name FROME mp WHEREalary > (SELECTmaX salary ) FROME mp Works, De ptEmp eid = Works . eid ANDWorks . did = Dept . did ANDDept . dname='玩具');輸岀比“電視”部門職工平均工資高的雇員的姓名SELECTe name FROME mp WHEREalary >( SELEcT AV(G salary ) FROME mp, Works, De ptWHEREWHEREEmp eid = Works . eid AN

37、DWorks . did =Dept. did ANDDept . dname ='電視'GROUPBYDe pt. did );2345£1£SenameI ari rTiiBii r - 朱彖云宋棣10)找岀所有有職工的部門的名字和樓層號(hào)薛程 張蔓凡 白誡 田昕 養(yǎng)壬12)SELECT dn ame, floor num FROM Dept WHEREdid in( SELECT DISTINCT did FROM Works);dname|. *«. . . ILH III待金理floorriLun311)查詢所有沒有職工的部門編號(hào)和名字SE

38、LECT did , dnameFROM Dept WHEREdid not in( SELECT DISTINCT didFROM Works);did dname輸岀同時(shí)在玩具部門和糖果部門工作的雇員的名字和薪水SELECTDISTINCT en ame, salary FROME mp , Works, De pt WHER Emp. eid=Works. eid ANDWorks. eid in (SELECTeid FROMWorks, De pt WHER Works. did = De pt. didANDDept. dname='玩具')ANDWorks . e

39、id in ( SELECTeid FROMWorks , Dept WHERWorks . did = Dept . didANDDept . dname='糖果');2e側(cè)券9媒體莆劃顯買34硏兗_畧戶規(guī)劃95美術(shù)997糠果53109A¥TQ10ly經(jīng)1011wo1012葺外1D13社教TD14U15廣告1D16W17借媒TD1B電視Wena salaryI !-'Fl1 ii 25M0n.X. _ ujir2 思夏舟 4j3. 主要設(shè)備及軟件1) PC2) Microsoft SQL Server 2005實(shí)驗(yàn)五為表格建立約束,修改約束和查詢約束(驗(yàn)證型

40、實(shí)驗(yàn)4學(xué)時(shí))1. 目的要求: 1)使用ALTER語句和CREATE語句建立、修改、刪除和查詢約束2. 實(shí)驗(yàn)內(nèi)容: 執(zhí)行以下SQL語句,完成隨后的操作,若有錯(cuò)誤,分析錯(cuò)誤原因并改正錯(cuò)誤: create table student(sno char(9) not null , sname char(10),ssex char(2),sage tinyint,sdept varchar(40);create table course(c no char(4) not nu II, cn ame varchar(30),c pno char(4),credit tinyint)create table

41、 sc(s no char(9),char(5),grade nu menc(3,1);出錯(cuò)第三句改為create table sc(s no char(9), eno char(5), grade nu menc(3,1)1)在student表中,使sdept只能取值“計(jì)算機(jī)科學(xué)學(xué)院”,“數(shù)軟學(xué)院”,“電子工程學(xué) 院”,“化學(xué)與材料科學(xué)學(xué)院”Alter table student add constraintCK_sdept check (sdept ='計(jì)算機(jī)科學(xué)學(xué)院or sdept ='數(shù)軟學(xué)院or sdept -電子工程學(xué)院or sdept ='化學(xué) 與材料科學(xué)

42、學(xué)院);2)在student 表中sage有默認(rèn)值183)為 student表建立主鍵ALTER TABLE studentADD PRIMARY KEY( Sno) ;4)為 course表建立主鍵和外鍵,其中外鍵約束名為 C_FK_CPNOALTERTABLE course ADD primary key ( cno), C_FK_CPNOCHAR( 4) FOREIGNKEY( cpno)REFERENCEScourse ( cno);5)為 course表建立檢查約束,限定 credit 的取值只能取 3, 2, 4, 5;ALTER TABLE courseADD CHECK( cr

43、editin( '3' , '2' , '4' , '5' );6)為 course表建立唯一約束,確保每們課程名字唯一ALTER TABLE courseADD UNIQUE( cname);7)為 sc 表建立主鍵和外鍵,并給出相應(yīng)的約束名ALTER TABLE sc ADD constraint PK_sno_cno PRIMARY KEY( sno, cno), FK_sno CHAR( 9)FK_cno CHAR( 4) FOREIGN KEY( cno)FOREIGN KEY( sno) REFERENCESstude

44、nt ( sno),REFERENCEScourse ( cno);8)在 course 表中插入元組 (1, 數(shù)據(jù)庫,5,4) 和 (2, 數(shù)學(xué), null,2),若不能正確插入,分析原因,給出解決辦法不能正確插入,因?yàn)閿?shù)據(jù)類型不對(duì),更改方案INSERT INTO course (cno, cname, cpno, creditVALUES( '1', ' 數(shù)據(jù)庫 ' ,'5',4);INSERT INTO Course ( cno, cname, cpno, creditVALUES( '2', ' 數(shù)學(xué)' ,

45、null,2);若前面的題中建立了約束關(guān)系,那刪掉9)在 sc 表中插入元組( 95001,1,92)和( 95001,3,88),若不能正確插入,分析原因,給出解決辦法INSERT INTO Course ( cno, cpno, credit ) VALUES( 95001, 1, 92);INSERT INTO Course ( cno, cpno, credit ) VALUES( 95001, 3, 88);等對(duì)約束進(jìn)行查詢和管理若前面的題中建立了約束關(guān)系,那刪掉使用系統(tǒng)存儲(chǔ)過程, sp_help, sp_helpconstraint1)查閱聯(lián)機(jī)幫助文檔,選中“索引”選項(xiàng)卡,分別輸入

46、sp_help,sp_helpconstraint ,閱讀其幫助信息。使 SC 數(shù)據(jù)庫成為當(dāng)前數(shù)據(jù)庫,執(zhí)行如下命令,簡要解釋執(zhí)行結(jié)果Exec sp_helpsp_help 過程僅在當(dāng)前數(shù)據(jù)庫中查找對(duì)象。Exec sp_help student列出 student 中所有對(duì)象的對(duì)象名稱、所有者和對(duì)象類型。Exec sp_help course列出 course 中所有對(duì)象的對(duì)象名稱、所有者和對(duì)象類型。Exec sp_helpconstaint scExec sp_helpconstraint student3)對(duì)存儲(chǔ)過程 sp_help 和 sp_helpconstraint 進(jìn)行總結(jié),簡要解釋

47、其用途sp_help :報(bào)告有關(guān)數(shù)據(jù)庫對(duì)象( sys.sysobjects 兼容視圖中列出的所有對(duì)象)、用戶定義數(shù)據(jù)類型或 SQL Server 2008 提供的數(shù)據(jù)類型的信息。sp_helpconstraint :返回一個(gè)列表, 其內(nèi)容包括所有約束類型、 約束類型的用戶定義或系統(tǒng)提供的名稱、定義約束類型時(shí)用到的列,以及定義約束的表達(dá)式(僅適用于DEFAULT 和CHECK 約束)。修改約束:關(guān)閉和打開某個(gè)約束。1)在 course 表中插入元組( 4, 數(shù)據(jù)結(jié)構(gòu), 6, 4),能夠插入嗎?為什么?不能,首先數(shù)據(jù)格式不定,其次 6 不符合外鍵約束2)禁用約束C_FK_CPNO再次插入元組(4,

48、數(shù)據(jù)結(jié)構(gòu),6, 4),能夠插入嗎?為什么?可以插入,因?yàn)榧s束已經(jīng)刪除3)重新啟用約束 C_FK_CPNOALTER TABLEcourse check constraintFK_course_C_FK_CPN_0F975522;3. 主要設(shè)備及軟件 1) PC2) Microsoft SQL Server 20051. 目的要求:實(shí)驗(yàn)六 Sql Server驗(yàn)證型實(shí)驗(yàn)數(shù)據(jù)庫安全管理4 學(xué)時(shí))1) 建立用戶,為用戶賦權(quán)限,收回權(quán)限,建立角色,給用戶賦角色2. 實(shí)驗(yàn)內(nèi)容:分別在對(duì)象資源管理器和查詢窗口中完成下列操作創(chuàng)建建登錄帳號(hào) john, 并使其成為固定服務(wù)器角色 dbcreator 的一個(gè)成員

49、 CREATE LOGIN john WITH PASSWORD = '123456' ;1)2)授予 john 服務(wù)器權(quán)限: alter any login , create any database 張開 grant系統(tǒng)數(shù)據(jù)庫】節(jié)點(diǎn),選擇【 masteralter any login , create any】數(shù)據(jù)庫,新建查詢執(zhí)行 database to john ;3)John 可以,因?yàn)樯项}已經(jīng)賦予了CREATE LOGIN mary WITH PASSWORD = '123456'可以創(chuàng)建登錄帳號(hào)嗎?為什么?,若能,alter any login創(chuàng)建安

50、全登錄帳號(hào)帳戶的權(quán)限Mary4)創(chuàng)建用戶 Mary123, 使用安全登錄帳號(hào) Mary5)6)7)8)9)10)展開【系統(tǒng)數(shù)據(jù)庫】節(jié)點(diǎn),選擇【 master 】數(shù)據(jù)庫,新建查詢執(zhí)行 GRANT ALTER ANY LOGIN TO mary ;create user Mary123 for login授予帳戶 Mary123 查詢和修改 student GRANT SELECT , ALTER on studentMary ;表的權(quán)限TO Mary123 ;創(chuàng)建角色 teachers, 拒絕 teachers 修改 student 表 CREATE ROLE teachers ;DENY SE

51、LECT ON OBJECT : studentTO teachers使帳戶 Mary123 成為 teachers 的一個(gè)成員, Mary123 能夠查詢和修改 student 表嗎?為 什么?EXEC sp_addrolemember 'teachers' , 'Mary123'能,因?yàn)?teachers 具有查詢和修改的權(quán)限;而 Mary123 是 teachers 的一員。如果希望角色 teachers 能夠修改 student 表,應(yīng)該怎么做? GRANT ALTER ON student TO teachers ;授予帳戶 Mary123 在數(shù)據(jù)庫 sc 中創(chuàng)建表和創(chuàng)建視圖的權(quán)限GRANT ALTER ON schema : dbo TO mary123 GRANT CREATE TABLE , CREATE VIEW To Mary123 ;若 mary123 分別是固定數(shù)據(jù)庫角色 d

溫馨提示

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

評(píng)論

0/150

提交評(píng)論