华北电力大学科技学院
实 验 报 告
实验名称 学生选课数据库的设计与管理
课程名称 Oracle 11g 数据库应用
专业班级:软件09k2 学生姓名: 闫雪峰
学 号: 成 绩:
指导教师:黄建才 实验日期: 2012-5-30
实验目的及要求
熟悉ORACLE的环境
用SQL PLUS创建用户,并赋予其管理员权限。
登陆创建的用户
设计教师表、课程表、学生表,及其建立各个表之间的约束
用数据定义语言建立三个表及其约束
运用SQL,对上述三个表插入一定数量的记录(至少每个表要求插入
10条记录)
用SQL语句查询至少教两门课的教师信息;用临时变量查询某个学生信息。
用 PL/SQL,显示所有教师的信息。
将上面的所有的插入操作和查询操作按照不同的内容放到到不同的文件中,当到某个操作时,在SQL PLUS下运行该文件即可。
分别设计函数和过程均实现如下功能:返回某门课学生的平均成绩(该课名称由参数传递)
设计过程显示某位教师所教的学生(该教师名通过参数进行传递)。
所用仪器、设备
Oracle11g数据库,SQL PLUS运行环境,文本文档做脚本文件。
实验方法与步骤
自己下载并安装了oracle最新版本,配置好环境后,启动服务开始进行实验。
为解决每次开启服务困难问题,编写了启动/停止oracle服务 + sqlplus托管环境一站式颜海镜Oracle 11g Manger2.0beta版。
实现功能:集成sqlplus在托管环境,彩屏宽屏多屏显示,多数据库智能切换,智能记录帐号密码,智能感知错误,多主机智能登录,深度集成颜海镜UI设计理念,为oracle11g量身定做全新一站式平台,化繁为简完美解决oracle的操作复杂性。所做实验全部在此环境中。
实验代码实现及结果输出
实验代码及输出:
(1)创建用户语句(在脚本中):
create user yan
identified by yan123
default tablespace users
temporary tablespace temp;
(2)为用户赋予权限并切换到当前用户。
grant create session, dba to yan;
connect yan/yan123;
(3)表的结构设计及约束设计代码:
Course表:
create table course
(
Cno number(5) primary key,
Cname varchar2(20),
Ccredit number(2)
);
运行结果:
Student表:
create table student(
Sno number(5) ,
Sname varchar2(8),
Ssex char(2),
Sage number(3),
Sdept varchar2(4),
Cno number(5),
constraint sc foreign key (Cno) references course (Cno),
Grade number(3) );
结果:
Teacher表:
create table teacher(
Tno number(5) not null,
Tname varchar2(8),
Tsex char(2),
Tage number(3),
Cno number(5),
constraint tc foreign key (Cno) references course (Cno) );
结果:
(3)表中数据的插入代码
Course表:
insert into course values(1,'数据库',2);
insert into course values(2,'高数',3);
insert into course values(3,'信息系统',1);
insert into course values(4,'操作系统',4);
insert into course values(5,'数据结构',3);
insert into course values(6,'计算机网络',2);
insert into course values(7,'法语',2);
insert into course values(8,'软件体系结构',3);
insert into course values(9,'编程语言',4);
insert into course values(10,'大学写作',1);
运行结果:
Student表:
insert into xx.student1(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade)
values(95001,'李勇','男',20,'CS',1,90);
insert into xx.student1(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade)
values(95001,'李勇','男',20,'CS',2,90);
insert into xx.student1(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade)
values(95001,'李勇','男',20,'CS',3,90);
insert into xx.student1(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade)
values(95002,'李白','男',20,'CS',4,59);
insert into xx.student1(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade)
values(95003,'刘琛','男',20,'CS',5,90);
insert into xx.student1(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade)
values(95002,'李白','男',20,'CS',1,50);
insert into xx.student1(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade)
values(95004,'王敏','女',19,'CS',6,92);
insert into xx.student1(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade)
values(95005,'章立','男',21,'CS',1,90);
insert into xx.student1(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade)
values(95006,'杨国','男',20,'CS',9,80);
insert into xx.student1(Sno,Sname,Ssex,Sage,Sdept,Cno,Gra