oracle数据库.docx

上传人:b****5 文档编号:5650758 上传时间:2022-12-30 格式:DOCX 页数:10 大小:17.77KB
下载 相关 举报
oracle数据库.docx_第1页
第1页 / 共10页
oracle数据库.docx_第2页
第2页 / 共10页
oracle数据库.docx_第3页
第3页 / 共10页
oracle数据库.docx_第4页
第4页 / 共10页
oracle数据库.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

oracle数据库.docx

《oracle数据库.docx》由会员分享,可在线阅读,更多相关《oracle数据库.docx(10页珍藏版)》请在冰豆网上搜索。

oracle数据库.docx

oracle数据库

 

课程名称Oracle11g

实验序号实验三

实验项目数据库对象管理

(一)

实验地点综B—504

实验学时2实验类型操作性

指导教师侯睿实验员

专业计算机科学与技术班级09级计本7班

学号2009324705姓名陈小妹

 

2012年4月28日

成绩:

教师评语

 

指导教师签名:

批阅日期:

一、实验目的及要求

通过上机实践加强理解Oracle11g数据库的体系结构。

二、实验原理与内容

(1)使用SQL语句创建表

①创建学生表student(Sno,Sname,Ssex,Sage,Sclass),定义Sno为主键,添加约束:

对列Ssex的取值为男和女,Sage的取值为18到24。

②创建课程表course(Cno,Cname,Ccredit),定义Cno为主键。

③创建选修表SC(Sno,Cno,grade),Sno和cno为主键,Sno为外键,Cno为外键。

④使用insert语句向以上三个表插入以下数据。

student表

Sno

Sname

Ssex

Sage

Sclass

410601

李军

18

计算机科学与技术

410602

王红

18

计算机科学与技术

410603

赵平

19

计算机科学与技术

520801

张强

19

网络工程

520802

孙兰

18

网络工程

course表

Cno

Cname

Ccredit

1

C程序设计

3

2

数据结构

4

3

数据库原理及应用

4

4

操作系统

4

 

 

SC表

Sno

Cno

Grade

410601

2

85

410601

3

88

410601

4

82

410602

3

75

410603

3

90

410603

4

81

520801

3

88

 

三、实验软硬件环境

多媒体计算机,oralce软件

四、实验过程(实验步骤、记录、数据、分析)

1、启动:

程序——oracle——OraDb11g_home1——配置和移植工具NetManage,修改主机名

2、启动:

运行——输入cmd进入DOS界面;

3、在SQL后输入“netstartoracleserviceorcl”并按下enter键;

4、在SQL后输入“sqlplussys/sysassysdba”并按下enter键,方可在SQL后输入命令

以下是本次实验的操作结果

(1)使用SQL语句创建表

1、创建学生表student(Sno,Sname,Ssex,Sage,Sclass),定义Sno为主键,添加约束:

对列Ssex的取值为男和女,Sage的取值为18到24。

SQL>createtablestudent(

2snonumber(20)primarykey,

3snamevarchar2(20),

4ssexchar(10),

5check(ssexin('男','女')),

6sagenumber(10),

7check(sagebetween18and24),

8sclassvarchar2(30)

9);

表已创建。

2、创建课程

表course(Cno,Cname,Ccredit),定义Cno为主键。

SQL>createtablecourse(

2cnonumber(10)primarykey,

3cnamevarchar(20),

4ccreditnumber(20)

5);

表已创建。

3、创建选修表SC(Sno,Cno,grade),Sno和cno为主键,Sno为外键,Cno为外键。

SQL>createtablesc(

2snonumber(16),

3cnonumber(6),

4gradenumber(30),

5primarykey(sno,cno),

6constraintsc_studentforeignkey(sno)referencesstudent(sno),

7constraintsc_courseforeignkey(cno)referencescourse(cno),

8);

表已创建。

4、使用insert语句向以上三个表插入数据。

Student表:

SQL>insertintostudent(sno,sname,ssex,sage,sclass)

2values(410601,'李军','男',18,'计算机科学与技术');

已创建1行。

SQL>insertintostudent(sno,sname,ssex,sage,sclass)

2values(410602,'王红','女',18,'计算机科学与技术');

已创建1行。

SQL>insertintostudent(sno,sname,ssex,sage,sclass)

2values(410603,'赵平','女',19,'计算机科学与技术');

已创建1行。

SQL>insertintostudent(sno,sname,ssex,sage,sclass)

2values(520801,'张强','男',19,'网络工程');

已创建1行。

SQL>insertintostudent(sno,sname,ssex,sage,sclass)

2values(520802,'孙兰','女',18,'网络工程');

已创建1行。

Course表:

SQL>insertintocourse(cno,cname,ccredit)

2values(1,'C程序设计',3);

已创建1行。

SQL>insertintocourse(cno,cname,ccredit)

2values(2,'数据结构',4);

已创建1行。

SQL>insertintocourse(cno,cname,ccredit)

2values(3,'数据库原理及应用',4);

已创建1行。

SQL>insertintocourse(cno,cname,ccredit)

2values(4,'操作系统',4);

已创建1行。

SC表:

SQL>insertintosc(sno,cno,grade)

2values(410601,2,85);

已创建1行。

SQL>insertintosc(sno,cno,grade)

2values(410601,3,88);

已创建1行。

SQL>insertintosc(sno,cno,grade)

2values(410601,4,82);

已创建1行。

SQL>insertintosc(sno,cno,grade)

2values(410602,3,75);

已创建1行。

SQL>insertintosc(sno,cno,grade)

2values(410603,3,90);

已创建1行。

SQL>insertintosc(sno,cno,grade)

2values(410603,4,81);

已创建1行。

SQL>insertintosc(sno,cno,grade)

2values(520801,3,88);

已创建1行。

(2)用SQL语句实现如下的查询。

1查询性别为女生的平均成绩

代码如下:

SQL>selectavg(grade)fromsc,student

2wheresc.sno=student.snoandssex='女';

AVG(GRADE)

----------

82

2查询选修了课程号为3的所有学生的姓名

代码如下:

SQL>selectcno,snamefromsc,student

2wheresc.sno=student.snoandcno=3;

CNOSNAME

------------------

3李军

3王红

3赵平

3张强

3查询既选修了课程2又选修了课程3的学生姓名和学号

代码如下:

SQL>selectsname,student.snofromsc,student

2wheresc.sno=student.snoandcno=2

3intersect

4selectsname,student.snofromsc,student

5wheresc.sno=student.snoandcno=3;

SNAMESNO

------------------

李军410601

4查询与“孙兰”在同一个系学习的学生

代码如下:

SQL>selectsnamefromstudent

2wheresclass=(selectsclassfromstudentwheresname='孙兰');

SNAME

--------------------

张强

孙兰

(3)使用SQL语句创建student表基于姓名字段的索引,索引名为index_stu_name

代码如下:

SQL>createindexindex_stu_name

2onstudent(sname);

3tablespacemyspace;

索引已创建。

(4)使用SQL语句创建视图:

建立网络工程2班学生所选修的课程名称,视图名称为v_net_cname;并查询该视图

代码如下:

SQL>createviewv_net_cname

2as

3selectstudent.sno,sname,sclass,cname

4fromstudent,course,sc

5wherestudent.sno=sc.snoandsclass='网络工程'andcou

视图已创建。

SQL>SELECT*FROMv_net_cname;

SNOSNAMESCLASSCNAME

--------------------------------------------------------------------

520801张强网络工程数据库原理及应用

(5)创建视图v_net_cname的同义词vnc并使用同义词进行查询。

代码如下:

SQL>createsynonymvncforv_net_cname;

同义词已创建。

SQL>SELECT*FROMv_net_cname;

SNOSNAMESCLASSCNAME

--------------------------------------------------------------------

520801张强网络工程数据库原理及应用

(6)在学生表student2中增加列sid,创建名称为seq_stu_id序列,序列的初值为1,增长值为1,最小值为1,最大值为9999,当向表student2插入数据时,sid列的取值为序列seq_stu_id。

并向student2表中插入一行数据(411605,'王强','男',20,'计算机科学与技术42',seq_stu_id.nextval)。

代码如下:

SQL>altertablestudentaddsidnumber(4);

表已更改。

SQL>createSEQUENCEseq_stu_id

2startwith1

3incrementby1

4minvalue1

5maxvalue9999;

序列已创建。

SQL>insertintostudent(sno,sname,ssex,sage,sclass,sid)

2values(411605,'王强','男',20,'计算机科学与技术',seq_stu_id.nextval);

已创建1行。

SQL>selectsno,sname,ssex,sage,sclass,sidfromstudent;

SNOSNAMESSSAGESCLASSSID

-----------------------------------------------------------------

410601李军男18计算机科学与技术

410602王红女18计算机科学与技术

410603赵平女19计算机科学与技术

520801张强男19网络工程

520802孙兰女18网络工程

已选择5行。

五、测试/调试及实验结果分析

实验分析:

从以上实验截图和代码可以看出已经顺利完成本次实验,并清楚地看到它们的执行结果。

六、实验结论与体会

通过上机实践熟悉Oracle11g的对象管理。

通过这次的实验课初步掌握了创建表、视图、序列等,查询表、视图等操作。

2012年4月28日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1