新建一张学员信息表(student),要求:
1. 字段如下:学号(sid),姓名(name),性别(sex),年龄(age),地址(address).
2. 分别为字段添加约束:学号为主键,姓名为非空,性别为检查约束,年龄为检查约束,地址为默认约束.
3. 创建序列插入学号(sid)列, 建议初始值从为1001, 增量为1.
4. 插入记录.

create table student(sid int, name char(1), sex char(2), age int, address varchar2(20));

alter table student modify sid primary key;

alter table student modify name not null;

alter table student modify sex check(sex='m' or sex='w');

alter table student modify age check(age between 10 and 100);

alter table student modify address varchar2(500) default'20';

create sequence student_sid start with 1001 increment by 1;

insert into student(sid,name,sex,age,address) values(student_sid.nextval,'1', 'w', 16, 'china');

insert into student values(student_sid.nextval, 2, 'm', 18, 'china'); insert into student values(student_sid.nextval, 3, 'm', 19, 'china');

commit;

新建一张课程表(course),要求:
1. 字段如下:课程编号(cid),课程名称(subject).
2. 分别为字段添加约束:课程编号为主键,课程名称为非空
3. 创建序列插入课程编号列(cid), 建议初始值从为1, 增量为1.
4. 插入记录.

create table course(cid int, subject char(20));

alter table course modify cid primary key;

alter table course modify subject not null;

create sequence course_cid start with 1 increment by 1;

insert into course values(course_cid.nextval,'yuwen', 'shuxue', 'yingyu');

commit;

新建一张学员考试成绩表(grade),要求:
1. 字段如下:成绩编号(gid),学号(sid),课程编号(cid),考试成绩(score).
2. 分别为字段添加约束:成绩编号为主键,学号为外键,课程编号为外键,考试成绩为非空.
3. 创建序列插入成绩编号列(gid), 建议初始值从为101, 增量为1.
4. 插入记录.

create table grade(gid int, sid int, cid int, score int);

alter table grade modify gid primary key;

alter table grade add constraint fk_grade_sid foreign key(sid) references student(sid);

alter table grade add constraint fk_grade_cid foreign key(cid) references student(cid);

create sequence grade_gid start with 101 increment by 1;

insert into grade values(grade_gid.nextval,1001,1,50);

insert into grade values(grade_gid.nextval,1001,2,90);

insert into grade values(grade_gid.nextval,1001,3,80);

insert into grade values(grade_gid.nextval,1002,1,50);

insert into grade values(grade_gid.nextval,1002,2,70);

insert into grade values(grade_gid.nextval,1002,3,80);

insert into grade values(grade_gid.nextval,1003,1,50);

insert into grade values(grade_gid.nextval,1003,2,59);

insert into grade values(grade_gid.nextval,1003,3,70);

select * from grade;

commit;

针对以上三张表,要求完成如下:
1. 按照课程编号分组并求出每一组的平均分数(每门课程的平均分)
2. 按照课程编号分组并求出每一组及格人数(grade >= 60)的平均分数(每门课程的及格人数的平均分)
3. 求每个学员所有的课程的平均分
4. 求每个学员所有的(考试成绩)及格课程的平均分
5. 每次内部测试不同学员的平均成绩(每个学员的每门课程的平均分)
6. 查询补考过的学员的平均成绩(求出学员的课程编号(cid)在分组内出现过一次以上)(每个学员的每门课
程的课程编号出现过一次以上)
7. 使用多表内连接查询,求出学员的学号,姓名,考号,科目和成绩
8. 建立一张视图,包含学员的学号,姓名,考号,科目,成绩这些字段

1. select cid,avg(score) from grade group by cid;

2. select cid,avg(score) from grade where score>=60 group by cid;

3. select sid, avg(score) from grade group by sid;

4. select sid,avg(score) from grade where score>=60 group by sid;

5. select cid,sid,avg(score) from grade group by sid,cid order by sid;

6. select sid,avg(score) from grade where sid in(select sid from grade group by sid,cid having count(cid)>1) group by sid;

插入一条补考过得记录:insert into grade values(grade_gid.nextval,1003,2,70);

7.Select s.sid ,s.name,g.gid,c.cid,g.score
form student s,course c,grade g
where s.sid=g.sid
and c.cid=g.cid;

8. create or replace view score as
Select s.sid, s.name, g.gid, c.cid, g.score
from student s, course c, grade g
where s.sid=g.sid and c.cid=g.cid;

Oracle考试题作业的更多相关文章

  1. ORACLE 创建作业JOB例子

    --1.plsql中学习job   --学习job  --建表  create table test_job(para_date date);  commit;    insert into test ...

  2. Oracle数据库作业-6 查询成绩比该课程平均成绩低的同学的成绩表

    33. 查询成绩比该课程平均成绩低的同学的成绩表. select * from score a where a.degree between 0 and( select avg(degree) fro ...

  3. Oracle数据库作业-6 29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。 select tname,prof from teacher where depart = '计算机系' and prof not in ( select prof from teacher where depart 。

    29.查询选修编号为"3-105"课程且成绩至少高于选修编号为"3-245"的同学的Cno.Sno和Degree,并按Degree从高到低次序排序. selec ...

  4. Oracle数据库作业-6 查询“张旭“教师任课的学生成绩。

    23.查询"张旭"教师任课的学生成绩. select * from score s where cno in ( select cno from course where tno ...

  5. Oracle数据库作业-5 查询

    14.查询所有学生的Sname.Cno和Degree列. select t.sname,c.cno,c.degree from student t inner join score c on t.sn ...

  6. Oracle数据库作业-4 查询

    9. 查询"95031"班的学生人数.

  7. Oracle数据库作业-3 查询

    1. 查询Student表中的所有记录的Sname.Ssex和Class列.

  8. Oracle数据库作业-2 添加主键 外键

    一.在表student中添加主键sno

  9. Oracle数据库作业-1

    设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表 ...

随机推荐

  1. Android BLE蓝牙详细解读

    代码地址如下:http://www.demodashi.com/demo/15062.html 随着物联网时代的到来,越来越多的智能硬件设备开始流行起来,比如智能手环.心率检测仪.以及各式各样的智能家 ...

  2. manjaro折腾手记

    以前装过Arch,有点折腾,写了个hello world就卸载了.没用过AUR,甚至也没去了解. 听说manjaro继承Arch,几乎开箱即用,对硬件支持非常好,源里面的软件更新非常快.但是没有装中文 ...

  3. Linux 互斥锁

    互斥的概念 在多线程编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性. 每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻, 只能有一个线程访问该 ...

  4. H+ 添加(新增)Tab选项卡

    //注:在contabs.js文件中 $(function () { }); 方法外 加入//注: data-name="' + menuName + '" 这句是加入的自定义属性 ...

  5. 时间序列分解算法:STL

    1. 详解 STL (Seasonal-Trend decomposition procedure based on Loess) [1] 为时序分解中一种常见的算法,基于LOESS将某时刻的数据\( ...

  6. 下载Chrome商店和Youtube资源

    下载chrome浏览器插件 站点:http://cooal.cn/crx.php 操作步骤: 1.打开扩展介绍页面 (在 三道杠图标>工具>扩展程序 里相应扩展的"访问网站&qu ...

  7. 【iCore4 双核心板_ARM】例程二十八:FSMC实验——读写FPGA

    实验现象: 1.先烧写FPGA程序,再烧写ARM程序,ARM程序烧写完毕后即开始读写RAM测试,测试成功,绿色ARM·LED亮,测试失败,红色ARM·LED闪烁. 2.测试成功,ARM通过映射寄存器来 ...

  8. go语言关键字图示

    Go语言一共有25个关键字,除了select,上文基本上已经一网打尽了.为了加深印象,我们用一张结构图来说明一下: 这张图如果看不清的话,我们将其拆成两张图,再注掉分支流程那部分的局部图: 分支流程部 ...

  9. Vuex详解

    一.什么是Vuex 官网解释如下: Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex ...

  10. 非root用户在80端口运行nginx

    一般情况下没有这种需求,但对于强迫症患者来说,还是完整的走了一把. 普通用户是不允许使用1024以下端口的,所以此次操作仍然需要root权限来进行配置.而且由于使用了root安装,因此nginx用户仍 ...