数据库上机实验报告_第1页
数据库上机实验报告_第2页
数据库上机实验报告_第3页
数据库上机实验报告_第4页
数据库上机实验报告_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库上机实验网络10023100610055一、实验目的通过上机操作,加深对数据库理论知识的理解。通过使用具体的微机DBMS〔SQLServer〕,了解一种实际的数据库管理系统,并掌握其操作技术。通过实际题目的上机实验,提高动手能力,提高分析问题和解决问题的能力。二﹑实验题目某供给商〔S〕供给〔SPJ〕某种零件〔P〕给某个工程工程〔J〕,其中一个供给商可以供给多个工程零件,而每个工程可以使用多个供给商供给的零件,每种零件可由不同供给商供给,S﹑P﹑J﹑SPJ的数据见附表1。三、实验报告实验报告按照各实验的实验报告内容来整理。实验报告提交地址:〔在“up”文件夹里的“《数据库系统原理A》上机实验”文件夹中找到班级文件夹〕用户名:nianyi密码:123456实验报告命名规那么:班级+学号+姓名,如“软件080101王鹏晓”。四、考核上机实验采用书面分析、平时实验和最后抽查考核相结合的方法评定成绩。实验一数据库的定义和建立一、实验目的要求学生熟练掌握和使用T-SQL﹑SQLServer对象资源管理器创立数据库﹑根本表和修改表结构,及向数据库输入数据的操作,学会创立和使用表的主码、外码和约束。二、实验内容1﹑利用SQLServer对象资源管理器创立数据库和查看数据库属性;2﹑利用T-SQL创立根本表﹑确定表的主码、外码和相应的约束;3﹑利用SQLServer对象资源管理器创立表之间的关系图;4﹑利用T-SQL向数据库输入数据。三、考前须知1﹑输入数据时要注意数据类型、主码和数据约束的限制。2﹑注意数据库的主码﹑外码和数据约束的定义。3、注意参照表和被参照表之间的关系,主码和外码间的关系。四、实验报告内容1﹑创立根本表〔包括表的主码、外码和相应的约束〕的SQL语句;3﹑输入数据的SQL语句。createtables(snochar(8)primarykey,snamechar(20)unique,statusssmallint,citychar(20));createtablep(pnochar(8)primarykey,pnamechar(20),colorchar(8),weighttsmallint);createtablej(jnochar(8)primarykey,jnamechar(20),citychar(20));createtablespj(snochar(8),pnochar(8),jnochar(8),qtysmallint,primarykey(sno,pno,jno),foreignkey(sno)referencess(sno),foreignkey(pno)referencesp(pno),foreignkey(jno)referencesj(jno));insertintosvalues('s1','精益','20','天津');insertintosvalues('s2','盛锡','10','北京');insertintosvalues('s3','东方红','30','北京');insertintosvalues('s4','丰泰盛','20','天津');insertintosvalues('s5','为民','30','上海');select*froms;insertintopvalues('p1','螺母','红','12');insertintopvalues('p2','螺栓','绿','17');insertintopvalues('p3','螺丝刀','蓝','14');insertintopvalues('p4','螺丝刀','红','14');insertintopvalues('p5','凸轮','蓝','40');insertintopvalues('p6','齿轮','红','30');select*fromp;insertintojvalues('j1','三建','北京');insertintojvalues('j2','一汽','长春');insertintojvalues('j3','弹簧厂','天津');insertintojvalues('j4','造船厂','天津');insertintojvalues('j5','机车厂','唐山');insertintojvalues('j6','无线电厂','常州');insertintojvalues('j7','半导体厂','南京');select*fromj;insertintospjvalues('s1','p1','j1','200');insertintospjvalues('s1','p1','j3','100');insertintospjvalues('s1','p1','j4','700');insertintospjvalues('s1','p2','j2','100');insertintospjvalues('s2','p3','j1','400');insertintospjvalues('s2','p3','j2','200');insertintospjvalues('s2','p3','j4','500');insertintospjvalues('s2','p3','j5','400');insertintospjvalues('s2','p5','j1','400');insertintospjvalues('s2','p5','j2','100');insertintospjvalues('s3','p1','j1','200');insertintospjvalues('s3','p3','j1','200');insertintospjvalues('s4','p5','j1','100');insertintospjvalues('s4','p6','j3','300');insertintospjvalues('s4','p6','j4','200');insertintospjvalues('s5','p2','j4','100');insertintospjvalues('s5','p3','j1','200');insertintospjvalues('s5','p6','j2','200');insertintospjvalues('s5','p6','j4','500');select*fromspj;2﹑表之间的关系图;4、总结实验过程中遇到的问题及解决。第一次上机不知道如何下手。经过请教老师,熟悉了如何使用该软件。2〕Smallint是短整形,写SQL语句时候不了解。后来在书上找到了相关例子。3〕语句执行成功后,不能再次重复执行4〕没有select*froms;这个语句,无法显示出执行的结果实验二数据查询及更新一﹑实验目的要求学生掌握T-SQL语言的使用方法,熟练掌握和使用查询操作和插入、删除、修改等更新操作。二﹑实验内容用T-SQL语言完成以下操作:1.找出所有供给商的姓名和所在城市;2.找出所有零件的名称、颜色、重量;3.找出使用供给商S1所供给零件的工程号码;4.找出工程工程J2使用的各种零件的名称及其数量;5.找出上海厂商供给的所有零件号码;6.找出使用上海产的零件的工程名称;7.找出没有使用天津产的零件的工程号码;8.把全部红色零件的颜色改成蓝色;9.由S5供给J4的零件P6改为由S3供给,请作必要的修改;10.从供给商关系中删除S2的记录,并从供给情况关系中删除相应的记录;11.请将〔S2,J6,P4,200〕插入供给情况关系。12.查询至少用了供给商S1所供给的全部零件的工程号JNO。〔选作〕三、考前须知输入SQL语句时应注意,语句中均使用西文操作符号。数据修改时要注意外码约束。数据删除时要注意外码约束。四、实验报告内容1﹑实验内容中各操作的SQL语句;2﹑实验内容中各操作的执行结果;1.找出所有供给商的姓名和所在城市;SELECTSNAME,CITYFROMS;2.找出所有零件的名称、颜色、重量;SELECTPNAME,COLOR,WEIGHTTFROMP;3.找出使用供给商S1所供给零件的工程号码;SELECTDISTINCTJNOFROMSPJWHERESNO='S1';4.找出工程工程J2使用的各种零件的名称及其数量;SELECTPNAME,QTYFROMSPJ,PWHEREP.PNO=SPJ.PNOANDSPJ.JNO='J2';5.找出上海厂商供给的所有零件号码;SELECTPNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDS.CITY='上海';6.找出使用上海产的零件的工程名称;SELECTJNAMEFROMSPJ,S,JWHERES.SNO=SPJ.SNOANDS.CITY='上海'ANDJ.JNO=SPJ.JNO;7.找出没有使用天津产的零件的工程号码;SELECTDISTINCTJNOFROMSPJWHEREJNONOTIN(SELECTDISTINCTJNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDS.CITY='天津');8.把全部红色零件的颜色改成蓝色;UPDATEPSETCOLOR='蓝'WHERECOLOR='红'SELECT*FROMP;9.由S5供给J4的零件P6改为由S3供给,请作必要的修改;UPDATESPJSETSNO='S3'WHERESNO='S5'ANDJNO='J4'ANDPNO='P6'SELECT*FROMSPJ;10.从供给商关系中删除S2的记录,并从供给情况关系中删除相应的记录;DELETEFROMSWHERESNO='S2'SELECT*FROMSDELETEFROMSPJWHERESNO='S2'SELECT*FROMSPJ;此处是复原s2记录的代码INSERTINTOSvalues('s2','盛锡','10','北京');SELECT*FROMS;INSERTINTOSPJvalues('s2','p3','j1','400');insertintospjvalues('s2','p3','j2','200');insertintospjvalues('s2','p3','j4','500');insertintospjvalues('s2','p3','j5','400');insertintospjvalues('s2','p5','j1','400');insertintospjvalues('s2','p5','j2','100');SELECT*FROMSPJ;11.请将〔S2,J6,P4,200〕插入供给情况关系。INSERTINTOSPJVALUES('S2','P4','J6','200')SELECT*FROMSPJ;3﹑总结实验过程中遇到的问题及解决。1〕因为用了输入法,标点符号导致不能运行,后来发现该问题,重新输入标点,结果就可以执行出来了2〕这个实验中第10题和11题的联系,第10题中删除S2的所有记录,而11题插入一个S2的记录不能执行。后来在S表中插入S2纪录,在spj表也参加S2记录,以到达恢复的目的,在运行11题的语句,就得出结果实验三数据库的平安性一﹑实验目的要求学生熟练使用和掌握数据库的存取控制操作,包括新建登录,新建数据库用户,给用户授权以及用户权限的撤销。二﹑实验内容利用SQLServer对象资源管理器新建登录〔包含用户名:U1、U2,口令,默认访问的数据库〕;利用SQLServer对象资源管理器在数据库中新建数据库用户U1和U2;利用T-SQL给用户U1授权〔用户U1具有对SPJ表的所有权力,并具有给用户U2授权的权力〕,;利用T-SQL验证对用户U1的授权是否生效;撤销用户U1的权限并利用T-SQL验证。三、考前须知对用户U1的授权是在用系统管理员身份〔Administrator或sa〕登录后进行,对用户U2的授权是在用U1用户身份登录后进行。用户U1的权限可以通过查询、插入、修改、删除以及给用户U2授权等操作来验证。验证用户U1的权限,必须先用U1登录,再进行相关操作。用户U1给用户U2授权前后,请查看用户U2的权限变化。用户U2获得授权后,也必须先用U2登录,再进行相关操作。四、实验报告内容1﹑给用户U1授权的SQL语句;grantallprivilegesonspjtou1withgrantoption;2、验证用户U1权限的SQL语句及执行结果〔查询、插入、修改、删除以及给用户U2授权〕;给U2授权语句grantallprivilegesonspjtou2验证U1查询权限SELECTJNOFROMSPJWHERESNO='S1';验证U1插入权限insertintospjvalues('s3','p2','j2','200')select*fromspj;验证U1修改权限UPDATESPJSETSNO='S4'WHERESNO='S5'ANDJNO='J2'ANDPNO='P6'SELECT*FROMSPJ;验证U1删除权限DELETEFROMSPJWHERESNO='S3'SELECT*FROMSPJ;3、验证用户U2权限的SQL语句及执行结果;验证U2查询权限SELECTJNOFROMSPJWHERESNO='S5';验证U2插入权限insertintospjvalues('s3','p2','j2','200')select*fromspj;验证U2修改权限UPDATESPJSETSNO='S3'WHERESNO='S5'ANDJNO='J1'ANDPNO='P3'SELECT*FROMSPJ;验证U2删除权限DELETEFROMSPJWHERESNO='S2'SELECT*FROMSPJ;4、撤销用户U1、U2权限的SQL语句;先在U1界面撤销U1对U2的授权revokeallprivilegesonspjfromu2;再在sa界面撤销sa对U1的授权,cascade是撤销所有U1的联级revokeallprivilegesonspjfromu1cascade;撤销权限后验证SELECTJNOFROMSPJWHERESNO='S1';上两幅图是撤销U1和U2权限后,验证得到的5﹑总结实验过程中遇到的问题及解决。对于新建用户后,验证权限时没有理清得到授权用户登录的顺序,后来请教同学,理解了授权验证的意思。revokeallprivilegesonspjfromu2;原来是onspjtable就无法执行,去掉table实验四数据库的完整性一﹑实验目的熟练掌握和使用T-SQL定义和验证数据库完整性的方法。二﹑实验内容实体完整性的验证〔S表主码SNO〕;实体完整性的验证〔P表主码PNO〕;实体完整性的验证〔J表主码JNO〕;实体完整性的验证〔SPJ表主码〔SNO,PNO,JNO〕〕;参照完整性的验证〔SPJ表外码SNO〕;参照完整性的验证〔SPJ表外码PNO〕;参照完整性的验证〔SPJ表外码JNO〕;用T-SQL实现用户定义的完整性〔SPJ表中供给量QTY必须大于0〕;用户定义的完整性的验证。三﹑考前须知实体完整性主要通过对表的插入操作,针对主码的唯一性和非空,来验证完整性的定义是否有效。参照完整性主要通过对表的插入、删除和修改操作,来验证完整性的定义是否有效。用户定义的完整性主要通过对表的插入和修改操作,来验证完整性的定义是否有效。四、实验报告内容1﹑验证S表主码SNO的SQL语句及执行结果〔插入操作〕;insertintoS(SNO)values('s1')insertintoS(SNO)values(NULL)2、验证P表主码PNO的SQL语句及执行结果〔插入操作〕;insertintoP(PNO)values('P2')insertintoP(PNO)values(NULL)3、验证J表主码JNO的SQL语句及执行结果〔插入操作〕;insertintoJ(JNO)values('J7')insertintoJ(JNO)values(NULL)4﹑验证SPJ表主码〔SNO,PNO,JNO〕的SQL语句及执行结果〔插入操作〕;insertintoSPJ(SNO,PNO,JNO)values('S4','P5','J1')insertintoSPJ(SNO)values(NULL)5、验证SPJ表外码SNO的SQL语句及执行结果〔插入、删除和修改操作〕;insertintoSPJ(SNO,PNO,JNO,QTY)values('S6','P4','J7','200')UPDATEsSETsno='s8'WHEREsno='s1'DELETEFROMsWHERESNO='s2'UPDATEspjSETsno='s8'WHEREsno='s2'6、验证SPJ表外码PNO的SQL语句及执行结果〔插入、删除和修改操作〕;INSERTINTOSPJ(SNO,PNO,JNO,QTY)VALUES('S1','p8','J1','100')UPDATEpSETpno='p8'WHEREpno='p2'DELETEFROMpWHEREpno='p3'UPDATEspjSETpno='p9'WHEREpno='p3'7、验证SPJ表外码JNO的SQ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论