还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
华北电力大学科技学院实验报告实验名称学生选课数据库的设计与管理课程名称Oracle数据库系统应用专业班级软件10K2学生姓名李运学号成绩指导教师:实验日期2013年5月10日SQL select*fron teacherwhere tnoin select2tno from sele groupby tnohauingcountdistinct cno=2;34TNO TNAMETAGE TSEX95001359500341SQL显示所有教师信息(一部分):Set serueroutputonDeclarecursor my_cursor isselect*From teacherBeginfor current_cursor in ny_loopdbns.output.put_line cursordbns_output.put_linedbns_output.put_line一名icurrent_cursor.tno;师dbns_output-put_line叫别逐!current_cursor.tnane;师end loop;年性师师\\current_cursor.tage;师End;师师!!current_cursor.tsex;师师师师名龄艳工别丰师名龄燕师别涛师名龄艳萌师别海富师名龄萌巩师娄萌师蕖年王孤性口师男萌讼年师喘性口系年性口证年性用临时变量查询某个学生信息:321098765432/II9:9:9:9:235rrrrrrrirru—rr—rrurr1rFIrrurrkrr■■■■■■11,select sname「sage,sno输fron student where sno=temp;原temp的值10001新值1select snane,sageJ.SROj.fttemp原值新值1select sname-sage「sno.10001值2from student where sno=tenpNAME SAGESNO10001苗小龙2210001100012from studentinhere sno=10001返回某门课学生的平均成绩:SQLSQL createor replace procedure search_augin_con insele.cnoztype2as3out_grade int;4Begin5select auggrade into out_grade6fron sele^.course7vihere sele.cno=course.eno andcnane=in_con;8dbms_output.put_line•学生平均成绩—!!out_grade;9End scareh_aug;10/k程已创建SQL execute search_aug〈音乐》;学生平均成绩少6PL/SQL过程己成功完成显示某位教师所教的学生:QL Setserueroutput onQLQLcreate01*veplace procedurenysei*achpi*einnumber*3select snosname,sagec lll*S o1*|Tl*/_Clll*SOl*is4msele;-ssex fromstudent vjheresno in〈select;snofi*whei*e tno=pre2as6foi*current_cui*soi*inny_loopCLUSOl7dbms_output.put_1inedbms_o ut生性别8;put.put_linedbms_output.put_1inecuiient_CLii*soi*.sno9;生口;dbms_output.put_lineend loop■cui*i*ent_cui*soi.sname10生蕖名nyserach;!i cui*rent_cui*soi*.sage;11生年龄;12!cui*i*ent cursor.ssex13End14Begin过程己创建-si:*II:::一吉95001J溟名李年龄二性别男二二名二建曾》QaHHzzHH L
444444.h-lfa-ufa-u,0xe:1:1C
五、讨论与结论.通过这次对学生选课数据库的设计,以及对数据库的安装和配置,sql的基本应用以及PL/SQL的应用我对oracle有了更深的理解对于oracle的配置也有了了解学习到了如何在数据库中管理表对象,管理表中的数据以及根据系统业务规则处理表中的数据在以后的学习中应当更加努力44441J1444444U1U11U1LL114Lil1Li1111L.:1:1:1:1(实验报告如打印,纸张用A4,左装订;页边距上下
2.5cm,左
2.9cm,右
2.1cm;字体宋体小四号,
1.25倍行距)验证性、综合性实验报告应含的主要内容
一、实验目的及要求
二、所用仪器、设备
三、实验原理
四、实验方法与步骤
五、实验结果与数据处理
六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见)
七、所附实验输出的结果或数据设计性实验报告应含的主要内容
一、设计要求
二、选择的方案
三、所用仪器、设备
四、实验方法与步骤
五、实验结果与数据处理
六、结论(依据“设计要求”)
七、所附实验输出的结果或数据*封面左侧印痕处装订
一、实验目的及要求熟悉ORACLE的环境
二、所用仪器、设备PC机和oracle编译软件
三、实验方法与步骤用户管理创建用户和用户授权create userliyunl identifiedby liyunl;grant sysdbato liyunl;grant create session to liyunl;创建表
1.创建教师表:在教师表中,教师的tno号是唯一确定一位教师的,因此在表中设置为主键教师表中包含教师的一些基本信息,教师号,教师名字,教师年龄,教师性别create tableteacher tno varchar220primary key,tname varchar220not null,tage varchar210,tsex varchar25check tsexin男女’;插入教师数据insert intoteacher values95001,李云,35,男’;insert intoteacher values95002,‘巩俐,32,女;insert intoteacher values95003,‘王涛,41,男;insert intoteacher valuesC95004,刘备,35,男);insert intoteacher values(95005,‘张菲,40,女);insert intoteacher values(95006,胖大海‘,‘39,男);insert intoteacher values(95007,许攸,48,女);insert intoteacher valuesC95008,‘关羽‘,‘51,男);insert intoteacher values(95009,‘张三‘,35,‘女);insert intoteacher values(95010,林云‘,37,‘女’);
2.创建学生表学生表中的学生号也是唯一雪顶一位学生的,因此也将学生号设置成为主键,该学生表中有学生号,学生姓名,学生年龄,学生性别属性create tablestudent snovarchar
(20)primary key,sname varchar
(20)not null,ssex varchar
(5)check(ssex in(男,女))sage varchar
(10),values50008i;nsert intocourseCinsert intocourse values50009插入学生数据:insert intocourse valuesC50010,insert intostudent丫@1皿$(10001,‘利好,22,男);丫Cinsert intocourse values5001Tinsert intostudent@1g5(10002,曹操,23,男);valuesinsert intocourse values50012insert intostudent(10003,‘三毛,21,男);values(Cinsert intocourse values50013insert intostudent10004,李宁,22,女);values(insert intostudent10005,司马光‘,‘24,男);values(insert intostudent10006,潘长江,20,女);valuesinsert intostudent(10007,‘黄云,23,男);valuesinsert intostudent(10008,‘力高‘,21,男);values(insert intostudent10009阿里24,男);values(10010,insert intostudent周杰伦‘,’25男);values(10011,‘大insert intostudent大,’22女);values(10012,‘娜insert intostudent迦,23,女);
3.创建课程表:课程表中课程号唯一确定课程,设置为主键,课程表中有课程的号码,课程的名字,课程的上课时间和上课地点create tablecourse(eno varchar
(20)primary key,cnamevarchar
(20)not null,ctime varchar
(10),cplace varchar
(50));插入课程数据:insert intocourse values(50001,数据库管理’21教3_301);insert intocourse valuesC50002,面向对象设计‘,’23,教3_211);insert intocoursevalues(50003,人工智能,‘41,教4_31T);insert intocoursevalues(50004,计算机英语‘,44,教4_313,);insert intocoursevalues(50005,软件工程,‘13,教3_305,);insert intocoursevalues(50006,跆拳道,H,体育馆);insert intocoursevalues(50007,古希腊文化‘,‘54,教3321);中国历史‘,‘52,教3」01;舞蹈‘,‘34,音乐管;音乐,‘31,音乐馆;C++,32,教3_205,;sql语言‘,‘14,教3」02;网页设计,22,教3」06;
4.创建关系表:在关系表中设置的是以上三个表的关系,在关系表中学生号,教师号,课程号,都设置为外键,以用来连接几个表同时关系表中还有学生的课程成绩create tableselesno varchar20,eno varchar20,tnovarchar220,grade int,foreign keysno referencesstudent sno,foreign keyeno referencescourse eno,foreign keytno referencesteachertno;插入关系数据insert intosele50003,95001,’80;Cvalues lOOOT,insert intosele valuesC100015,50006,95002,’58;insert intosele values10002,50002,95001,’89;insert intosele values10002,50003,95005,100insert intosele values10002,50001,95001,’95;insert intosele valuesC100045,50009,95009,,’83;insert intosele values10004,50010,95010,’76;insert intosele values10004,50011,95003,66;insert intosele values10005,50008,95004,’57;insert intosele values10005,50001,95001,’59;insert intosele valuesC10006,,50010,95010,75;insert intosele values10006,50012,95007,72;insert intosele values10008,50007,95001,72;insert intosele values10008,50003,95005,’91;insert intosele values10009,50003,95005,’88;insert intosele valuesC10009,,50005,95006,,93;insert intosele valuesC10010,,50001,95001,66;insert intosele values10010,50004,95003,’92;insert intosele values10010,50006,95002,’77;insert intosele C50009,95009,’75;values1001r,insert intosele values10012,50013,95008,,100insert intosele values10012,50007,95001,’82;insert intosele values10012,50010,95010,’78;对库进行一些关系查询
1.用SQL语句查询至少教两门课的教师信息;用临时变量查询某个学生信息查询至少教两门课的教师信息select*from teacherwheretno inselecttno fromselegroup bytnohaving countdistinct eno=2;查询某个学生信息select sname,sage,sno,temp fromstudentwheresno=temp;
2.显示所有教师的信息Set serveroutputonDeclarecursor my_cursor isselect*from teacher;Beginfor current_cursor inmy_cursor loopdbms_output.put_line,教师号||current_cursor.tno|教师姓名||current_Cursor.tname||教师年龄||current_cursor.tage||教师性另U:|cuirent_cursor.tsex;end loop;End;/
3.过程实现如下功能返回某门课学生的平均成绩该课名称由参数传递Set serveroutputoncreate orreplace proceduresearch_avgin_con insele.cno%typeas outgradeint;Beginselect avggradeinto out_gradefrom sele,coursewhere sele.cno=course.eno andcname=in_con;dbms output.put_line,学生平均成绩||out_grade;End searchavg;调用过程executesearch_avg5音乐’;
4.设计过程显示某位教师所教的学生(该教师名通过参数进行传递)Set serveroutputoncreate orreplaceproceduremyserachpre innumber ascursormy_cursor isselectsno,sname,sage,ssex fromstudentwheresno inselect snofromsele wheretno=pre;Beginfor current_cursor inmy_cursorloopdbms_output.put_line C学生号:,||current_cursor・sno;dbms_output.put_line C学生姓名:,||current_cursor・sname;dbms_output.put_line,学生年龄:,||current_cursor・sage;dbms_output.put lineC学生性另ll:||current_cursor.ssex;end loop;End myserach;调用过程:execute myserach95001,;删除过程drop proceduremyserach;
四、实验结果与数据处理用户创建和授权:SQL ci*eate userliyunl identif iedby lii/unl;娜迦10012用户己创建r己选择12行SQL grantsysdha toliyunl;卜权成功课程表(一部分):SQL grantcreatesessiontoliyunl;授权成功关系表:SQL教师表:SNO CNOTNO GRADETNAMETAGE TSEX之玲丰35燕涛艳32大晓大41唯心海40巩王冯39胖王李48霞51女35女371000150003950018010001500069500258学生表:SNO SNAMESAGE SSEX10001龙伟光鸿湛尘10002心比宁10003马多飞10004马高杰10005小李10006科李司10007钱周10008小100091001010011SNAMESNO1000250002950018910002500039500510010002500019500195100045000995009831000450010950107610004500119500366100055000195001591000650010950107510006500129500772SNO CNOTNO GRADE^|^2254130421322222222222210008500079500172100085000395005911000950003950058810009500059500693100105000195001661001050004950039210010500069500277100115000995009751001250013950081001001250007950018210012500109501078查询至少教两门课的教师信息。