Oracle考试题作业
新建一张学员信息表(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考试题作业的更多相关文章
- ORACLE 创建作业JOB例子
--1.plsql中学习job --学习job --建表 create table test_job(para_date date); commit; insert into test ...
- Oracle数据库作业-6 查询成绩比该课程平均成绩低的同学的成绩表
33. 查询成绩比该课程平均成绩低的同学的成绩表. select * from score a where a.degree between 0 and( select avg(degree) fro ...
- 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 ...
- Oracle数据库作业-6 查询“张旭“教师任课的学生成绩。
23.查询"张旭"教师任课的学生成绩. select * from score s where cno in ( select cno from course where tno ...
- Oracle数据库作业-5 查询
14.查询所有学生的Sname.Cno和Degree列. select t.sname,c.cno,c.degree from student t inner join score c on t.sn ...
- Oracle数据库作业-4 查询
9. 查询"95031"班的学生人数.
- Oracle数据库作业-3 查询
1. 查询Student表中的所有记录的Sname.Ssex和Class列.
- Oracle数据库作业-2 添加主键 外键
一.在表student中添加主键sno
- Oracle数据库作业-1
设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表 ...
随机推荐
- bootstrap3-iframe-modal子页面在父页面显示模态框
本文灵感来自:http://www.cnblogs.com/chengxuyuanzhilu/p/5132328.html 子页面内容 //打开模态框 function openMySelectMod ...
- 修改Linux用户配置之后先验证再退出
在服务器上更改完zsh.SSH连接属性.用户密码之后,我们可能想退出重新登录查看是否配置生效.这时,有一个注意事项:不要关闭旧窗口,而是重新打开一个新窗口尝试登录.否则,如果配置改错了,自己就再也没有 ...
- TensorFlow精选Github开源项目
转载于:http://www.matools.com/blog/1801988 TensorFlow源码 https://github.com/tensorflow/tensorflow 基于Tens ...
- C# Cache缓存读取设置
先创建一个CacheHelper.cs类,代码如下: using System; using System.Web; using System.Collections; using System.We ...
- PCB特征阻抗计算
见教程:链接:https://pan.baidu.com/s/1V4UbEoKfMD1bilwu-Qwdyg 密码:ml6t
- 关于网站中引用COM组件的部署问题
网站中引用了(PPT V14.0,即部署的服务器需要安装Office2010的)COM组件, 因此该功能对服务器有一定的环境要求: 1.安装Office2010,并激活. 2.配置: 1)开始-运行- ...
- [Linux]linux下取消用户名和密码直接登录
假定目前只有root用户,则有如下两种方式可直接登录系统: 方式一: 1. passwd -d root 2. 修改/lib/systemd/system/serial-getty\@.service ...
- sfc /scannow命令如何能用虚拟光驱完成修复?(xp下的办法)
我们先光盘文件或用WinRAR压缩软件将ISO文件解压缩到本地磁盘某目录下,如e:\winxp: 在ISO文件上右击,在弹出的菜单中选择“解压到”: 文件较多,久等一会解压完成后文件夹下有很多 ...
- KM算法小结
最近有一个需求,主要内容如下: APP一般刷新一次,会返回6个Item(6可能会变),每个Item都要展示一个广告,其中每个Item会发送一个请求,返回的结果是一个广告数组,比如[ad1, ad2, ...
- hdoj:2058
#include <iostream> #include <cmath> #include <vector> using namespace std; stru ...