《2015年数据库实验报告.pdf》由会员分享,可在线阅读,更多相关《2015年数据库实验报告.pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 数据库原理上机实验报告姓 名:李仕雄学 号:学1210402104班 级:测控121指导老师:杨_ _ 彪_昆 明 理 工 大 学 信 息 工 程 与 自 动 化 学 院2014年 12月一、实验目的与要求:熟练使用SQL定义子语言、操纵子语言命令语句 掌握关系模型上的完整性约束机制 掌握一定的数据库管理技术能 完成简单的数据库应用开发二、实验内容及学时安排(总学时:14)(-)数据定义子语言实验(2 学时)实验1:利用SQL语句创建Employee数据库代 码:create database employee;运行结果:(!KI ir,口-y .|J 三 i 1C t f t aL*a50
2、)Null,Fact As Base+Bonus,Mon int,Foreign key(P_no)References person(P_no);create table deptDeptno Char(4)Not Null primary key,Dname Varchar(lO)Not Null,);运行结果:De-ptrvo Char(4)Kot Kull primary ky,Di、w e Varch&r(10)Wot K ull,)./co a t ta b ic pvrffvnP _ g Char.0)1 1 4 Jul 1 primacy key.P_mM 0i Vnrclia
3、r IO FM-I fvd I,Sex Char 21 IIptno Chni 4 nd K I i,E oreicn key Pwptno)R eferences dopt DeptnoLLL舁今已崂功支阈表 2 salary表结构字段名数据类型字段长度允许空否字段说明P_noChar6Not Null工号,主键,外键(参照person表)BaseDec5Null基本工资BonusDec5Null奖金,要求 50FactDec5Null实发工资=基本工资+奖金MonthInt2Not Null月份birthdate batotimo Null4Prof Va&charGO)Null*Lept
4、no Char(4)Not Nu 1 1 (Fovaign key(beptne)R*fdvenefiff d6pt(口 6Pltne);/craata t able salaryP_no Chm m N Nu I i pt imAi y kny,Dasfi bee(6/Hu11Monuft D,5 B Ch*k BQ)!;salary和 dept中插入数据。要求:按表4、表5、表6中的数据插入。代码:P e r s o n表的数插入:in s e r t in t o p e r s o n(P _n o,P _n a m e,S e x,B ir t h d a t e,P r o f,D
5、 e p t n o)v a l u e s (r 0 0 0 0 0 f 王云,男,1 9 7 3-4-7 ,中级,0 0 0 1 );in s e r t in t o p e r s o n(P _n o,P _n a m e,S e x,B ir t h d a t e,P r o f,D e p t n o)v a l u e s C 0 0 0 0 0 2,谢志文,男,1 9 7 5-2-1 4 ,中级,0 0 0 1 );in s e r t in t o p e r s o n(P _n o,P _n a m e,S e x,B ir t h d a t e,P r o f,D
6、 e p t n o)v a l u e s C 0 0 0 0 0 3 ,李浩然,男,1 9 7 0-8-2 5,中级,0 0 0 1 );in s e r t in t o p e r s o n(P _n o,P _n a m e,S e x,B ir t h d a t e,P r o f,D e p t n o)v a l u e s C 0 0 0 0 0 4 5,廖小玲,女,1 9 7 9-8-6 ,高级,0 0 0 2 );in s e r t in t o p e r s o n(P _n o,P _n a m e,S e x,B ir t h d a t e,P r o f
7、,D e p t n o)v a l u e s (0 0 0 0 0 5),梁玉琼,女,1 9 7 0-8-2 5 ,初级,0 0 0 2 );in s e r t in t o p e r s o n(P _n o,P _n a m e,S e x,B ir t h d a t e,P r o f,D e p t n o)v a l u e s C 0 0 0 0 0 6 罗向东,男,1 9 7 9-5 T 1 ,初级,0 0 0 3 );in s e r t in t o p e r s o n (P _n o,P _n a m e,S e x,B ir t h d a t e,P r
8、o f,D e p t n o)v a l u e s (0 0 0 0 0 7 ,肖家庆,男,1 9 6 3-7-1 4 ,高级,0 0 0 3 );s a l a r y表的数插入:in s e r t in t o s a l a r yv a l u e s C 0 0 0 0 0 2 1 0 0,,3 0 0 ,T);in s e r t in t o s a l a r yv a l u e s (0 0 0 0 0 2 ,1 8 0 0 ,3 0 0 ,1 );in s e r t in t o s a l a r yv a l u e s (0 0 0 0 0 3 ,2 8 0
9、 0 ,2 8 0 ,1 );in s e r t in t o s a l a r yv a l u e s (0 0 0 0 0 4 ,2 5 0 0 ,2 5 0 ,1 );in s e r t in t o s a l a r yv a l u e s (0 0 0 0 0 5 ,2 3 0 0 ,2 7 5 ,T);in s e r t in t o s a l a r yv a l u e s (0 0 0 0 0 6 17501 3 0 1 );in s e r t in t o s a l a r yv a l u e s (0 0 0 0 0 7,2 4 0 0 2 1 0
10、,T);d e p t表的数插入:in s e r t in t o d e p t (D e p t n o,D n a m e)v a l u e s (J O O O T ,*人事部);in s e r t in t o d e p t (D e p t n o,D n a m e)v a l u e s (0 0 0 2 ,财务部);in s e r t in t o d e p t (D e p t n o,D n a m e)v a l u e s (0 0 0 3 ,市场部);表 4表 person中的数据P_noP_nameSexBirthDateProfDeptno00000
11、1王云男1973-4-7中级0001000002谢志文男1975-2-14中级0001000003李浩然男1970-8-25高级0002000004廖小玲女1979-8-6初级0002000005梁玉琼女1970-8-25中级0003000006罗向东男1979-5-11初级0003000007肖家庆男1963-7-14高级0003in s e r t m t o dept(Deptno,Dnante)v a lu e s C 0003*,市场百阴).*/in se r t in t o pe r s on(P-_no,Pname.S ex.B ir t hdat e P rof.Dept n
12、o 1v a lu e s C 0000U 1 .,王 有,19 7 3 7-T J 中 级.J 0001,):in s e r t in t o person iP no.P name Sex.B xrth dat e.Pro.Dept no 1v a lu e s C 000002,.iQ I 1 19 75-2-M .f r in ixnser t in t o person(P no.P Sex.B irth d a te.P rof.Deptno,v a lu e s C 000003,率f J I 9 7 0-8-2 5,中 级”,0001,in se rt m t o perso
13、n(P no,P-name.Sex.B irth d a te.Pro.Dept no)v a lu e s Sex.B irthdate Pro,D eptno)v a lu e s J 000005 J-C i r .-97O-8-25,.y 77 J 1 00021in s e r t in t o person );in s e r t in t o person(P_no.P riame.Sex.B irth d a te.Pro,f.Deptno,v a lu e s 00007 内密 庆 ,F”,1963 7-14.高 00口3);表 5表 salary中的数据P_noBaseB
14、onusFactS_month00000121003001000002180030010000032800280100000425002501000005230027510000061750130100000724002101I n s e r t I w t e s*l*ir yv x l u e?r(*o o o o o r ,#2 1 0 0 ,*3 O O *r):in s e c t i n t o s a l a c yv a l u e sC 000002,1 8 00,3 00二r):i n f i c r t i n t o s a l a r yv a l u e s C
15、000003*J 2 8 00r/2 8 0r,ri n f i o r t i n t o s a l a r yv a l u e s O O WM J 2 3 00 J 2WTlr);r;i n s e r t i n t o s a l a r yv .h i r r r J i nr):i n右 白/I i n t ov a l u o c i/000006,*1 7 50*1 3 0 fr):i n s e r t i n t o n l a r yv k i u e (o o o o t r r2 a o 丁2 1(r/JJLr):表 6 表 d e p t 中的数据Deptno
16、Dname0001人事部0002财务部0003市场部Ba s e De c (5)Nu l LBo n u s De c(5)Ch e c k (Bo n u s 50)Ku l l,Fa c t As Ba s e+Bo n u s,M o n m t,Fo r e i g n k e y(P _ n。)Re f e r e n c e s p e r s o n(P-n o):*/insert into dept(Deptno,Dname)values/DOOT f 人事豺);i n s e r t i n t o d e p t (De p t n Oj Dn a m ev a l u
17、e s (0002,财务和):i n s e r t i n t o d e p t(Dc p t n o,Dn a m c)v a l u e s(*0003*,古扬却):实验4:(1)利用SQL语句修改表中的数据。要求:将 salary表中工号为000006的员工工资增加为1800元,奖金增加为160兀。代码:update salaryset Base=1800,Bonus=160where P_no=,000006,;运行结果:v a l u e s C 000002,/1 8 00,/3 001/Ii n s e r t i n t o s a l a r yv a l u e s C
18、DOOODl-/2 8 0D*/2 8 T/IMU e xt i n t o s a l o xj rshiM v n n n n r wrw n nr/外1/il o r n l i i i l u g a l a xyv s l ye?C 000005,/2 3 0 0*/2 7 5*/Ii i u c i t i n t o s a l a r yv i l u wC 000006*/1 7 8 0*/1 3 0*/1i n s e n i n i o s a l a r yv a k w(,000DQ 7,/2 1 00,/2 l 0,lupdate salftcyset】wlu,Bt
19、twriwv h e r e P.n o=*000006,;dT;i:):):):);“(2)利 用SQL语句删除表中的数据。要求:删除person表中工号为000007的员工数据。代码:deletefrom personwhere P_no=000007,;运行结果:冲突出错(3)利 用SQL语句查询person表中的所有数据。代码:select*from person;运行结果:update salaryset Base=1800,Bonus=160where P_no=,000006;Id elete from personwhere P_no=7 000007*;*/se le c t
20、*from person;j rnoP name王云B irth d ateProf Deptno23456T)000002谢志文000003李浩然男男男1973-04-07 00:00:00.0001975-02-14 00:00:00.0001970-08-25 00:00:00.000中 级 0001中 级 0001中 级 0001I 000004廖小玲000005梁玉琼000006罗向东1000007肖家庆1979-08-06 00:00:00.000 高级1970-08-25 00:00:00.000 初级1979-05-11 00:00:00.000 初级1963-07-14 00
21、:00:00.000 高级0002000200030003实验5:条件查询要求:(1)查询person表中所有不重复的职称。代码:select distinct Proffrom person;运行结果:(2)查询person表中职称为中级的所有员工数据。update salaryset Base-1800,Bonus=160where P.no=000006:delete fron personwhere P_no=000007*:|select#from person;*/select distinct Proffroa person;000002 and P_no 000002 a n
22、d P _ n o ap iary,uI-I J L74i5实 验8:利 用SQL语句查询人事部所有员工信息。代码:select*from deptwhere Dname=人事部运行结果:Miete:P=:naiw=王去 ot Paji8二 济志丈。匕 二 8二 职同案.select*fro 篇 sal aryvhere P_JIO 000002 and P_no000002 and P_n.o&se.Bonu-rf t on e a la ry -:ocn P_n。pezsn.P.no1 :210O 3002 1闷。3003 26-00 28。Q .2Mo 2505:i00 STS6 J I
23、MO 3601 2400 210实验1 L子查询:要求:利用SQL语句查询比工号为000005的员工实发工资高的所有员工信息。代码如下:select*from person,salarywhere Fact(select Factfrom salarywhere P_no=,000005,);运行结果where Dname人事部;select*from personwhere Prof=中级:select salary,base,Bonusfrom salary left outer join person on(salary.P_no=person.P_no);/select from pe
24、rson,salarywhere Fact(select Factfrom salarywhere P_no=,000005,):P name Sex Birthdate Prof Deptno P no Base Bonus Fact Mon1 J 000001 Z z:2 1000002谢志文3 j 000003李浩然4 J 000004廖小玲5 梁玉琼6 j 000006罗向东7 000007肖家庆8 000001 王云9 J 000002谢志文10 J 000003李浩然11 i 000004廖小玲竺000005梁玉琼13 J 000006罗向东14 000007肖家庆15 j 000
25、001 王云16 000002谢志文H j 000003李浩然18 j 000004廖小玲19 J 000005梁玉琼20 J 000006罗向东21 000007肖家庆男男男女女男男男男男女女男男男男男女女男男1973-04-07 00:00:00.0001975-02-14 00:00:00.0001970-08-25 00:00:00.0001979-08-06 00:00:00.0001970-08-25 00:00:00.0001979-05-11 00:00:00.0001963-07-14 00:00:00.0001973-04-07 00:00:00.0001975-02-14
26、 00:00:00.0001970-08-25 00:00:00.0001979-08-06 00:00:00.0001970-08-25 00:00:00.0001979-05-11 00:00:00.0001963-07-14 00:00:00.0001973-04-07 00:00:00.0001975-02-14 00:00:00.0001970-08-25 00:00:00.0001979-08-06 00:00:00.0001970-08-25 00:00:00.0001979-05-11 00:00:00.0001963-07-14 00:00:00.0001111223311O
27、OOOOOOOOOOOOOOOOOOOOOOOOOO000003 2800 280 3080 1000003 2800 280 3080 1000003 2800 280 3080 1000003 2800 280 3080 1000003 2800 280 3080 1000003 2800 280 3080 1000003 2800 280 3080 1000004 2500 250 2750 1000004 2500 250 2750 10001 000004 2500 250 2750 10002 000004 2500 250 2750 10002 000004 2500 250 2
28、750 10003000004 2500 2502750 10003000004 2500 2502750 10001000007 2400 2102610 10001000007 2400 2102610 10001000007 2400 2102610 10002000007 2400 2102610 10002000007 2400 2102610 10003000007 2400 2102610 10003000007 2400 2102610 1(三)数据完整性实验(1学时)实 验 13:测试对主表进行插入、更新及删除操作时的影响。(请写明原因)要求:(1)向表dept中插入一行数据
29、(0004,研发部),测试是否影响从表。代码:insert into dept(Deptno,Dname)values(0004;研发部);S ELECT *FROM p e r s o n,s a l a r ywh e r e Fa c t(s e l e c t Fa c tf r o m s a l a r ywh e r e P _ n o=,000005*);*/i n s e r t i n t o d e p t(De p t n o,Dn a m e)v a l u e s C 0004,研发都);(se le c t Factfro n s a la ryvhere P_n
30、o=*000D05)in se c t in to dept(Deptno*Dnane)v aiu csC )/:e le c t from d e p t.P-p tn o Dng|1 J 0001 人部?i 0002 财务部三0003 市场部4 10004 册发酢tro n y le t*jo in p-eeron c-n(r a lir y.F no=p er s on.;SELECT fFftOJl person,sal a ryuh”。Fact(s e le c t Paetfro m r U a r ywhere P_no=*000005-).in.5 0 it in to dop
31、t(&cptno Dnaw?)s J g W F O M 的发Bl .le ct f t cm dep./v f t an poraon,I“iP yaf SP4ptno|1973-O4-0T OOsOOsOO.OOO197tr-O2-ll OOiOOsOO.OOO1970-08-25 00:00:00.000以7 9 F 8-此 O OIO OIOO.OOO!9?D-O8-2ti DO:OD:OU.U(JO00010001000100020002oooooi王云1 9 7 9 m l甲中午鬲000002诩古文000003邛港他MOOM fifed的UOOOOb织玉源000 006竽 向 东W
32、C 00007冉 厚 庆aoo;oo$oo.ooo00;ODfiOO,OQO00030903S E IK I-FM.).M ssn lsrywh*re y*c t*,(s e le c t F a ct zor*e e l Tiyw lm fc P no*5 UUUODti*)ifts e r t,八 d e p t(D ffptnfi,DnaA)v.U=g w,),SF 1 ne t f ro n d e p t:a*1 oc*fk o n po 二o n./a e l ect f io n s a la ryPwb*coBonusP dex Neri10000012 IM300240。i2
33、000002i&003002100 i3,0000032 KOO2803080 1q:oooooa2&ao2B0276。16:aooooti 2 51102702O?b 11000006l&OO1601960 17OOOO7 24 DO 210201D 1(2)将表dept中的部门号0003改为0006,测试是否影响从表。代码:update deptset Deptno=,0003,where Deptno=,0006,;在将表dept中的部门号0003改为0006后,查找出从表的所有内容的运行结果为:a *q c I Yg ia四 林口.(relert Factfroa ral arywhe
34、re-0 6 ).insert into dop*valuer(0。04,,开友虬);celect f ran dept;(*tonffelert f ron salary/update dopt t Dipt no mi 八 厂uher Dpt no 0O6|fro it salarywhere P _ M 000005):in se rt in to dept(Deptno,Dnante)values(0004 7 讲发配):select*fro n deptselect*froxi person;select fro n salary;update deptset Deptno=*000
35、3,where Deptno=0 0 0 6;/select fro u person;“1P no P naue Sex B irthdateProf Deptno123456T000001王云000002谢志文000003李浩然0000060000071973-04-07 00:00:00.000 中级1975-02-14 00:00:00.000 中级1970-08-25 00:00:00.000 中级1979-08-06 00:00:00.000 高级女 1970-08-26 00:00:00.000 初级罗向东 男1979-05-11。0:0。:00.0 00初级肖冢庆男 1963-
36、07T4 00:00:00.000 高级0001000100010002000200030003where F_no=uuiJOUb).ihQe 出pi(Deptn。,Ong。)火式口”。0口 皿 J i升友加);loci frort:select,tron prrsoriselect fron 2laryupdate doptDept ha?*0003,vhen ieptno*OOOe.select fron person 7,书lost 7lry.(P.no B.霖 P S e x,B r th d a*e,P r e f,D e p tn o)vU uo s (,0 0 0 0 1 2
37、*礼.F.I08df.梅坦 D O g );J r l e trf r“*i fiitgannvh e tr P _r i o-l l l l!?0 0 f i */o o l o c t f r o n d o p t.6 D h Mci i T o o I 人-都2 1 0 0 0 2 配药部3 1 0 0 0 3 布场都4 1 0 0 0 4 掰虫邮deletefron personwhere P_no 000005*.select froa dept./select x from person;P no P n se Sex BirthdirteProf Deptn。000001王云0
38、00003李浩然000004廖小玲男男男女女1973-04-07 00:00:00.000 中级 00011975-02-14 00:00:00.000 中级 00011970-08-25 00:00:00.000 中蛆 00011979-08-06 00:00:00.000 高级 00021970-08-25 00:00:00.000 初级 0002uh.es e P_no=000005.select fron dept;select fron person:/select*fron salary;1P.noBase Bonus Fact Hon1000001 2100 3002400 12
39、000002 1800 3002100!3000003 2800 2803080 14 000004 25D0 2502750 I5|000005 2300 2752575!6000006 1800 160I960 11 000007 2400 2102610 1(四)用 Microsoft Access设计Employee数据库系统(5 学时)要求:创建表忱 B3,二 F ,-二 :*A,金 ”I曲 1 视圉 里 贴 板 a 字体土 口格式文本 记录所有表 person 公麴 person:表sarlaryI sarlarv:表二 dept 二 sarlary 23 personD e p
40、tn oD n a m e ,添加新字段人财市DpHPnp言口二 dept 1 口 sarlary 口 personP_noBase Bonus Fact S-month 森加新字段21003001000002180030010000032800280100000425002501000005230027510000061750130100000724002101印.dept 与 sarlary 口 personP_no P_name Sex Birthday Prof Deptno 繇邠新字段1 /.iH f王云1973/4/7 中级0001000002谢志文1975/2/14 中级0001
41、000003李浩然1970/8/25 高级0002000004廖小玲1979/8/6 初级0002000005梁玉琼1970/8/25 中级0003000006罗向东1979/5/11 初级0003000007肖家庆1963/7/11 高级0003创建关联用查询设计工具创建查询000001000002000003000004000005000006000007文然玲琼陈庆云志洁小玉同冢王谢李廖梁罗肖M.00000000005000陋21182825231724MseaBa清确定直尚中使用些字段可从多个寰螃 溜中选取。表 但 询 9sWlZG 3可用竽收;才 回Bastn选定字段6)取消 下一步
42、国不 完成9创建简单的窗体personP_no:000003P_name:李 浩 然Sex:男Birthday:1970/8/25Prof:高 级Deptno:0002p r o f及及及及及及及幺幺-幺,幺-幺,幺-中中高初中初高P_no P_name Sex Birthday 1000001王云1973/4/7000002谢志文1975/2/14000003李浩然1970/8/25000004廖小玲1979/8/6i000005梁玉琼1970/8/25000006罗向东1979/5/11000007肖家庆1963/7/11 Deptno 00010001000200020003000300
43、03创建基本报表七 d ep t 3 person 司 person S i 图 person person口 p pe er rs so on n2iP_noP_nameSexBirthday ProfDeptno000001王云男1973/4/7 中级0001000002谢志文里1975/2/14 中级0001000003李浩然里1970/8/25 高级0002000004廖小玲女1979/8/6 初级0002000005梁玉琼女1970/8/25 中级0003000006罗向东男1979/5/11 初级0003000007肖家庆男1963/7/11 高级0003三,总结体会通过一个学期对数据库系统概论的学习以及这几次的上机试验,让我对这门课程以及SQL有了相当深刻的认识,能利用SQL语言操作数据库,这让我受益匪浅。其实一开始的时候我还不懂得如何去操作SQL语言以及数据库,后来通过同学们的帮助以及自己的努力才开始有了效果,慢慢的知道如何去操作了。不懂的东西就要不断学习请教,这是一种收获。多学会一门技术就是为以后多一种选择。