欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据库原理实验报告.doc

    • 资源ID:24287350       资源大小:1.39MB        全文页数:56页
    • 资源格式: DOC        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库原理实验报告.doc

    广州大学学生实验报告开课学院及实验室:计算机学院 年 月 日 学 院计算机学院年级、专业、班姓名学号实验课程名称数据库原理成绩实验项目名称SQL语言指 导 教 师注:实验要求与说明(1) 切忌抄袭实验手册任何内容;(2) 切忌抄袭任何其他同学实验报告,包括实验截图等;(3) 每次实验正式进行之前,请仔细阅读实验手册。遇到问题请先自行翻阅实验手册;(3) 请严格按照以下7个大标题填写实验内容;(4) 每一次实验都必须要有截图,以说明本次实验操作得当与否、成功与否。截图必须清晰、大小适当、有正确的先后顺序;每一张图都必须要有题注以说明该图的内容。(截图方法:同时按住ALT和PrtSc,即将当前窗口复制到了系统剪贴板中,再粘贴到实验报告中即可)实验1-1数据库及数据表的创建与删除一、 实验目的掌握利用Oracle Database Configuration Assistant工具来创建和删除Oracle数据库,掌握Oracle中的用Create命令定义表的方法,以及表的完整性定义,并掌握Oracle中的用Alter命令 和Drop命令对表的修改和删除。二、 实验原理基于数据库系统概论,熟悉实验环境,熟悉基本表等本次实验的基本概念,了解创建数据表及其相关操作的语法。根据要求,编写相应的SQL代码,并运行、记录和分析结果,测试所编写代码是否满足步骤要求,完成实验。三、 使用仪器、材料Oracle 11g,windows10;四、 实验步骤1. 创建以下数据表(Student(主码为SNO)、Course(主码为CNO)、SC(主码为(SNO、CNO),其中SNO引用Student的SNO属性,CNO引用Course的CNO属性)2. 向三个表格中插入3条数据,数据内容自编。3. 修改Student表格,用SQL语句为Student表格添加一个“入学时间”属性,属性名为Senrollment。4. 限定Ssex的值只能为“男”或者“女”。5. 修改Course表格,用SQL语句为Course表格添加一个“说明”属性,属性名为“Cdesc”,类型为varchar2,长度为200。6. 更改Course表格的Cdesc属性,使其长度变为500。7. 删除刚建立的属性Cdesc。8. 修改Course表的CPNO,使其为外码,引用Course表的CNO属性。Student表。属性名类型长度是否空含义SNOvarchar217主码(非空)学生编号Snamevarchar210否姓名Sageinteger年龄Ssexvarchar22性别Sdeptvarchar220所在系Course表属性名类型长度是否空含义CNOvarchar25主码(非空)课程编号Cnamevarchar220否课程名CPNOvarchar25先修课程Ccreditinteger学分SC表属性名类型长度是否空含义SNOvarchar217主属性(非空)学生编号CNOvarchar25主属性(非空)课程编号Gradenumeric5,2成绩五、 实验过程原始记录(实验过程、数据、图表、计算等)create table Student( Sno varchar2(17) PRIMARY key, Sname VARCHAR2(10) not null UNIQUE, Sage INT, Ssex VARCHAR2(3) check(Ssex IN('男','女'), Sdept VARCHAR2(20);create table Course( CNO VARCHAR2(5) PRIMARY KEY, Cname VARCHAR2(20) not null, CPNO VARCHAR2(5), Ccredit INT);1.create table SC( Grade numeric(5,2), Sno varchar2(17), Cno varchar2(5), PRIMARY KEY(Sno,Cno), FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno);insert into Student(sname,ssex,sno, sage, sdept) values('李勇','男','200215121',20,'CS');/*插入student表数据*/insert into Student(sname,ssex,sno, sage, sdept) values('刘晨','女','200215122',19,'CS');insert into Student(sname,ssex,sno, sage, sdept) values('王敏','女','200215123',18,'MA');insert into Student(sname,ssex,sno, sage, sdept) values('张立','男','200215125',19,'IS'); insert into course(CNO,) values('6','数据处理',null,2);insert into course values('2','数学',null,2);insert into course values('7','PASCAL 语言','6',4);insert into course values('5','数据结构','7',4);insert into course values('1','数据库','5',4);insert into course values('3','信息系统','1',4);insert into course values('4','操作系统','6',3); insert into sc(Sno,Cno,Grade) values('200215121','1',92);insert into sc(Sno,Cno,Grade) values('200215121','2',85);insert into sc(Sno,Cno,Grade) values('200215121','3',88);insert into sc(Sno,Cno,Grade) values('200215122','2',90);insert into sc(Sno,Cno,Grade) values('200215122','3',80);2.3.在student表格中添加“入学时间”属性,属性名为Senrollmentalter table Student ADD Senrollment date;4. 限定Ssex的值只能为“男”或者“女”答:在创建student基本表时已先行进行了检查。5.在course表格添加“说明”属性alter table Course ADD Cdesc VARCHAR2(200);6.修改Cdese长度变为500alter table Course MODIFY Cdesc VARCHAR2(500);7. 删除刚建立的属性Cdescalter table Course DROP COLUMN Cdesc;8. 修改Course表的CPNO,使其为外码,引用Course表的CNO属性。alter table course add constraint fk1 foreign key(CPno) references course(Cno);六、实验结果及分析实验结果截图,对实验进行说明和分析。1、Course表:SC表:Student表:2、Course表数据:SC表数据:Student表数据:3、4、student表的约束条件总Ssex检查男女。5、6、7、8、七、实验报告思考题 无。八、实验心得体会本次实验主要有以下收获和体会:1、首次使用oracle11g进行数据库实验,基本了解了oracle11g的基本语句和使用方法。2、通过本次实验,对基本表的创建,修改和删除有了实际上的应用,加深了对课本知识的理解,增强了操作能力。3、从实验中总体上增强了对SQL语言的运用和对oracle11g的可视化操作能力,更深层次的了解了SQL的使用方法和oracle11g界面操作。实验1-2 SQL语言一、实验目的熟悉并掌握创建表,插入记录,查询记录,删除记录,修改记录。创建索引,删除索引。创建视图,使用视图,删除视图。二、实验原理。三、使用仪器、材料Oracle 11g,windows10;四、实验步骤现有一个单位内部的小型图书借阅系统,假设每本图书的数量无限制,并且可以借给任何单位成员,每个单位成员可以借多本书,单位成员与图书的关系是多对多的关系。假设系统中仅有三个关系模式。数据表结构Reader表属性名类型长度是否空含义RNOvarchar24员工编号(主码)Rnamevarchar210否员工姓名Rsexvarchar22性别Rageintegerinteger年龄Rbossvarchar210直接上司Raddressvarchar230办公地点Book表属性名类型长度是否空含义BNOvarchar24书本编号(主码)Bnamevarchar250否书名Bauthorvarchar250作者Bpressvarchar250出版社Bpricevarchar2numeric(6,2)价格RB表属性名类型长度是否空含义RNOvarchar24员工编号BNOvarchar24书本编号RBdatedate借阅日期1、 创建新的用户并授权:2、 以用户CC的身份建立连接,并在此连接下执行后面的操作;3、 拷贝代码运行,删去旧的同名数据表:4、 建立表格Reader5、 拷贝代码运行,向Reader表格中插入十条数据6、 查询记录:在Reader表中查询直接上司是“李四”的员工的名字7、 修改记录:在Reader表中把直接上司是“李四”的员工的办公地点统一改为“420”8、 删除记录:在Reader表中把直接上司未赋值(NULL)是记录删去9、 删去数据表:把整个Reader表删去10、 重新执行第一、二步,即建立数据表、插入数据。11、 创建表格Reader2,比较Reader2和Reader中的记录和结构是否相同12、 分别执行下面的每行语句,查看语句是否执行成功,分析为什么?13、 删除Reader2表格;14、 拷贝代码运行,建立表格Bookcreate table Book( BNOvarchar2(4), Bnamevarchar2(50) not null, Bauthorvarchar2(50), Bpressvarchar2(50), Bpricenumeric(6,2), primary key(BNO);15、 拷贝代码运行,向Book表格中插入5条数据insert into book (BNO,Bauthor,Bname, bpress, bprice) values('B001','严蔚敏','数据结构','清华大学出版社',null);insert into book (BNO,Bauthor,Bname, bpress, bprice) values('B002','唐发根','数据结构','北航出版社',24);insert into book (BNO,Bauthor,Bname, bpress, bprice) values('B003','王珊','数据库原理','高等教育出版社',40);insert into book (BNO,Bauthor,Bname, bpress, bprice) values('B004','张飞','数据库原理','清华大学出版社',30);insert into book (BNO,Bauthor,Bname, bpress, bprice) values('B005','王珊','数据库原理','清华大学出版社',null);16、 拷贝代码运行,建立表格RBcreate table RB( RNO varchar2(4), BNO varchar2(4), RBdate date default sysdate, primary key(RNO,BNO), foreign key (RNO) references Reader(RNO), foreign key (BNO) references Book(BNO);17、 拷贝代码运行,向RB表格中插入13条数据;insert into RB (RNO,BNO) values ('R001','B001');insert into RB (RNO,BNO) values ('R001','B002');insert into RB (RNO,BNO) values ('R001','B004');insert into RB (RNO,BNO) values ('R002','B001');insert into RB (RNO,BNO) values ('R003','B001');insert into RB (RNO,BNO) values ('R004','B001');insert into RB (RNO,BNO) values ('R004','B002');insert into RB (RNO,BNO) values ('R005','B001');insert into RB (RNO,BNO) values ('R006','B001');insert into RB (RNO,BNO) values ('R006','B003');insert into RB (RNO,BNO) values ('R006','B005');insert into RB (RNO,BNO) values ('R006','B002');insert into RB (RNO,BNO) values ('R006','B004');初始数据reader表RNORNAMERSEXRAGERBOSSRADDRESSR001张三男20李四416R002张三女35417R003李四男30416R004王五男20417R005马六男40416R006刘三男20417R007王四男40李四416R008李小龙男20李四417R009王小倩男40李四416R010王一小男20李四417book表中数据BNOBNAMEBAUTHORBPRESSBPRICEB002数据结构唐发根北航出版社24B003数据库原理王珊高等教育出版社40B004数据库原理张飞清华大学出版社30B005数据库原理王珊清华大学出版社B001数据结构严蔚敏清华大学出版社RB表中数据RNOBNORBDATE(实验时间)R001B001插入数据时的系统时间R001B002R001B004R002B001R003B001R004B001R004B002R005B001R006B001R006B003R006B005R006B002R006B004以下为查询READER表中创建的约束类型,其中constraint_type为约束类型,该属性值的取值Type Code如下表所示。(可以根据上课所讲的实体完整性、参照完整性、用户自定义完整性理解以下约束类型;直接在SQL DEVELOPER中双击表格也可以查看在表上所建立的约束)select table_name,constraint_name,constraint_type from user_constraints where table_name ='READER'Type CodeType DescriptionActs On LevelCCheck on a tableColumnORead Only on a viewObjectPPrimary KeyObjectRReferential AKA Foreign KeyColumnUUnique KeyColumnVCheck Option on a viewObject1、 执行insert into RB(RNO,BNO) values('R010','B005');2、 写出删除Reader表格中编号为R010的员工,如果执行错误,分析错误原因。3、 想办法删除Reader中的R010员工;方法一:先把RB中所有R010的借书记录都删掉方法二:修改数据表READER的结构,允许级联删除(注:ORACLE不支持级联更新)。4、 为Reader表添加一个属性列“出生年份”,名为Rbirthday,整数;5、 对于Reader表格,员工编号可以确定年龄,年龄又可以确定出生年份,因此存在传递函数依赖关系,删除Rbirthday列,使关系模式符合第三范式要求;6、 修改Reader表格的Raddress属性,使其长度为50,数据类型不变;7、 修改book表的Bprice属性,使其值得范围在10到100之间;8、 修改Reader表的Rage属性,使其值得范围为16到60之间。9、 试试是否可以删除Reader表,使用CASCADE是否可以删除?10、 删除Reader、Book和RB表。索引的建立与删除1、 重新执行前面的代码创建三个数据表并插入数据;2、 为Reader表格的Rname建立UNIQUE索引如何修改表格数据,再建索引?3、 删除索引。视图1、 如果上面的运行是在CC的连接中,则需要回到在sysdba 的连接中,执行:grant resource, connect, DBA to cc;否则系统显示没有创建视图的权限。执行完之后再回到CC的连接:在ORACLE SQL Developer 的左上方: 2、 建立在416办公室工作的视图V416,视图包括员工的编号、姓名、年龄等信息3、 从V416中查询年龄大于30的员工信息4、 向视图V416中插入一条新的员工记录,然后从V416中查找该条记录,测试是否可以找到;插入成功了吗?为什么通过视图插入的纪录在视图中看不见?5、 建立在417办公室工作的视图V417,视图包括员工的编号、姓名、性别、年龄等信息,视图定义带with check option选项;6、 向视图V417中插入一条新的员工记录,然后从V417中查找该条记录,测试是否可以找到;7、 通过视图删除刚插入的员工记录,在基本表Reader中查看是否已经删除成功?8、 在视图V417上建立所有女员工信息的视图FV417,查询视图结果9、 删除视图V417中没有借阅图书的员工信息10、 建立视图GV,数据包括每本图书的编号及其借阅数量。思考是否可以向GV中插入数据,为什么?11、 删除视图V417五、实验过程原始记录(实验过程、数据、图表、计算等)1,2连接数据库按指导书代码执行完毕。3、删除同名数据库按指导书书代码执行完毕,问:为何要先删去RB?能不能先删去READER?答:因为RB引用了READER的RNO作为外码,所以,要先删去RB,才能删去READER。create table Reader( RNOvarchar2(4) primary key, Rnamevarchar2(10) not null, Rsexvarchar2(2), Rageinteger, Rbossvarchar2(10), Raddressvarchar2(30) ;4、insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R001','张三',20,'男','李四','416');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R002','张三',35,'女',null,'417');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R003','李四',30,'男',null,'416');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R004','王五',20,'男',null,'417');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R005','马六',40,'男',null,'416');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R006','刘三',20,'男',null,'417');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R007','王四',40,'男','李四','416');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R008','李小龙',20,'男','李四','417');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R009','王小倩',40,'男','李四','416');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R010','王一小',20,'男','李四','417');5、select Rnamefrom readerwhere (rboss='李四');6、UPDATE readerset Raddress='420'where rboss='李四'7、DELETE FROM readerWHERE rboss is NULL;8、DROP TABLE Reader;9、10、create table Reader( RNO varchar2(4) primary key, Rname varchar2(10) not null, Rsex varchar2(3), Rage integer, Rboss varchar2(10), Raddress varchar2(30);insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R001','张三',20,'男','李四','416');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R002','张三',35,'女',null,'417');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R003','李四',30,'男',null,'416');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R004','王五',20,'男',null,'417');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R005','马六',40,'男',null,'416');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R006','刘三',20,'男',null,'417');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R007','王四',40,'男','李四','416');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R008','李小龙',20,'男','李四','417');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R009','王小倩',40,'男','李四','416');insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R010','王一小',20,'男','李四','417');create table reader2 as select * from reader;desc reader; desc reader2;11、12、update reader set RNO='R001' where Rname='张三'update reader2 set RNO='R001' where Rname='张三'*/insert into reader2(RNO,Rname,Rsex,Rage,Rboss, Raddress) values(null,'lisi',null,null,null,null);drop table reader2;13、create table Book( BNOvarchar2(4), Bnamevarchar2(50) not null, Bauthorvarchar2(50), Bpressvarchar2(50), Bpricenumeric(6,2), primary key(BNO);14、insert into book (BNO,Bauthor,Bname, bpress, bprice) values('B001','严蔚敏','数据结构','清华大学出版社',null);insert into book (BNO,Bauthor,Bname, bpress, bprice) values('B002','唐发根','数据结构','北航出版社',24);insert into book (BNO,Bauthor,Bname, bpress, bprice) values('B003','王珊','数据库原理','高等教育出版社',40);insert into book (BNO,Bauthor,Bname, bpress, bprice) values('B004','张飞','数据库原理','清华大学出版社',30);insert into book (BNO,Bauthor,Bname, bpress, bprice) values('B005','王珊','数据库原理','清华大学出版社',null);15、create table RB( RNO varchar2(4), BNO varchar2(4), RBdate date default sysdate, primary key(RNO,BNO), foreign key (RNO) references Reader(RNO), foreign key (BNO) references Book(BNO);16、17、insert into RB (RNO,BNO) values ('R001','B001');insert into RB (RNO,BNO) values ('R001','B002');insert into RB (RNO,BNO) values ('R001','B004');insert into RB (RNO,BNO) values ('R002','B001');insert into RB (RNO,BNO) values ('R003','B001');insert into RB (RNO,BNO) values ('R004','B001');insert into RB (RNO,BNO) values ('R004','B002');insert into RB (RNO,BNO) values ('R005','B001');insert into RB (RNO,BNO) values ('R006','B001');insert into RB (RNO,BNO) values ('R006','B003');insert into RB (RNO,BNO) values ('R006','B005');insert into RB (RNO,BNO) values ('R006','B002');insert into RB (RNO,BNO) values ('R006','B004');初始化三个表后:delete from reader where RNO='R010'1、delete from reader where RNO='R010'2、delete from RB where RNO='R010'delete from reader where RNO='R010'3、alter table reader add Rbirthday integer;4、alter table reader drop column Rbirthday;5、alter table reader modify Raddress varchar2(50);6、alter table book add constraint ck_bprice check (bprice between 10 and 100);7、alter table Reader add constraint ck_Rage check(Rage between 16 and 60);8、drop table reader cascade 9、drop table reader cascade constraints;drop table book cascade constraints;drop table rb cascade constraints;10、索引的建立与删除create table Reader( RNO varchar2(4) primary key, Rname varchar2(10) not null, Rsex varchar2(2), Rage integer, Rboss varchar2(10), Raddress varchar2(30);1、create table Book( BNO varchar2(4) primary key, Bname varchar2(50) not null, Bauthor varchar2(50), Bpress varchar2(50), Bprice nu

    注意事项

    本文(数据库原理实验报告.doc)为本站会员(暗伤)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开