77范文网 - 专业文章范例文档资料分享平台

oracle实验指导书之全本(6)

来源:网络收集 时间:2019-04-23 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

create table sc( sno varchar2(10), cno varchar2(10), score number(4,2), primary key (sno,cno) );

3) 为各表输入数据。代码如下: /*******初始化学生表的数据******/

insert into student values ('s001','张三',23,'男'); insert into student values ('s002','李四',23,'男'); insert into student values ('s003','吴鹏',25,'男'); insert into student values ('s004','琴沁',20,'女'); insert into student values ('s005','王丽',20,'女'); insert into student values ('s006','李波',21,'男'); insert into student values ('s007','刘玉',21,'男'); insert into student values ('s008','萧蓉',21,'女'); insert into student values ('s009','陈萧晓',23,'女'); insert into student values ('s010','陈美',22,'女'); commit;

/******************初始化教师表***********************/ insert into teacher values ('t001', '刘阳'); insert into teacher values ('t002', '谌燕'); insert into teacher values ('t003', '胡明星'); commit;

/***************初始化课程表****************************/ insert into course values ('c001','J2SE','t002'); insert into course values ('c002','Java Web','t002'); insert into course values ('c003','SSH','t001'); insert into course values ('c004','Oracle','t001');

insert into course values ('c005','SQL SERVER 2005','t003'); insert into course values ('c006','C#','t003');

insert into course values ('c007','JavaScript','t002'); insert into course values ('c008','DIV+CSS','t001'); insert into course values ('c009','PHP','t003'); insert into course values ('c010','EJB3.0','t002'); commit;

/***************初始化成绩表***********************/ insert into sc values ('s001','c001',78.9); insert into sc values ('s002','c001',80.9); insert into sc values ('s003','c001',81.9); insert into sc values ('s004','c001',60.9); insert into sc values ('s001','c002',82.9); insert into sc values ('s002','c002',72.9); insert into sc values ('s003','c002',81.9);

insert into sc values ('s001','c003','59'); commit;

4) 查询每门课程被选修的学生数。代码如下: SELECT cno,count(sno) FROM sc GROUP BY cno Order by cno;

5) 查询出只选修了一门课程的全部学生的学号和姓名。代码如下: SELECT sc.sno,student.sname FROM sc,student Where sc.sno= student.sno

GROUP BY sc.sno,student.sname HAVING count(cno)=1 ; 6) 查询男生、女生人数。代码如下: SELECT ssex,COUNT(SSEX) FROM STUDENT GROUP BY SSEX;

7) 查询姓“张”的学生名单。代码如下: Select sname From student

Where sname like ’张%’;

8) 查询同名同姓学生名单,并统计同名人数。代码如下:

select sname,count(*) from student

group by sname having count(*)>1;

9) 查询1981 年出生的学生名单。代码如下:

Select sname From student

where to_char(sysdate,'yyyy')-sage =1981;

10) 查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,

按课程号降序排列。代码如下: Select cno,cname, (select Avg(Score) From sc

Where cno=course.cno) 平均成绩 From course

Order by 平均成绩,cno Desc;

11) 查询平均成绩大于85 的所有学生的学号、姓名和平均成绩。代码如下:

select st.sno,st.sname,avg(score) from student st left join sc on sc.sno=st.sno

group by st.sno,st.sname having avg(score)>85;

12) 统计每门课程的学生选修人数(超过10 人的课程才统计)。要求输出课

程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。代码如下:

Select distinct cno, Count sno From sc

Group by cno having count(sno)>10 Order by 2,cno desc;

13) 查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最

低分。代码如下: Select cno,

(Select Max(Score) From sc Where sc.cno= Course.cno ) 最高分, (Select Min(Score) From sc Where sc.cno=course.cno ) 最低分 From Course;

14) 按各科平均成绩从低到高和及格率的百分数从高到低顺序。代码如下:

select cno,avg(score),sum(case when score>=60 then 1 else 0 end)/count(*)*100||'%'as 及格率 from sc

group by cno

order by abg(score),及格率 desc; 15) 统计各科分数段人数,请以下列格式显示:

课程ID,课程名称, [100-85],[85-70],[70-60],[ <60]。

代码如下:

Select sc.cno,c.cname,

sum(case when score between 85 and 100 then 1 else 0 end) AS \

sum(case when score between 70 and 85 then 1 else 0 end) AS \

sum(case when score between 60 and 70 then 1 else 0 end) AS \

sum(case when score <60then 1 else 0 end) AS \ from sc,course c where sc.cno=c.cno

group by sc.cno,c.cname;

小结:

通过这次上机实验,我有以下收获:

对表的创建有了更深层次的了解,知道如何创建表,对表的查询

等操作更加熟悉,另外,Oracle的相关查询操作和SQL语句大同小异,很容易理解,对格式的要求更加精简。

但是还上机操作过程中还存在以下几个方面的不足:

语句调试过程中出现了很多类似的错误,select语句没写完就接了

下个语句,符号经常中英文混淆,基本函数不了解,比如调用系统时间年份的sysdate等,以后要加强对细节的注意,细节决定成败。

指导老师评议:

成绩: 指导老师签名:

年 月 日

实 验 报 告

实验名称:PL/SQL编程 实验课时:4课时 实验地点:

实验时间: 年 月 日 星期 第 周 实验目的及要求:

1) 熟练掌握PL/SQL程序设计的基本知识。

2) 熟练掌握PL/SQL中控制结构的使用。具体包括选择结构语句(IF语句和

CASE语句),循环结构(四种循环结构)。 3) 熟练使用PL/SQL中系统函数。 4) 掌握PL/SQL中异常处理语句的使用

5) 掌握PL/SQL中SELECT语句和DML语句的综合运用。

实验环境:

1) 硬件设备:PC机一台 2) 操作系统:Windows XP 3) 应用工具:Oracle 10g

实验内容:(算法、程序、步骤和方法)

1) 2)

以SYS用户登录系统。代码如下:

Sqlplus sys/123 as sysdba

创建用户,指定密码、表空间。用户名命名以本人姓名的缩写+‘_’+学号最后两位。代码如下: Create user ty_06 identified by 123

default tablespace users temporary tablespace temp;

为该用户授予sysdba、connect、resource权限。代码如下:

Grant sysdba to ty_06; Grant connect to ty_06; Grant resource to ty_06;

以自己的用户身份登录。代码如下:

Connect ty_06/123 as sysdba

在本用户方案中创建表departments, 并为该表输入若干数据。

3)

4)

5)

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库oracle实验指导书之全本(6)在线全文阅读。

oracle实验指导书之全本(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/621297.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: