Oracle做学生信息系统的脚本
程序员文章站
2022-05-09 09:24:18
...
Oracle做学生信息系统的脚本 无 要求的约束条件有: 主键是学号;入学日期必须大于出生日期;总分必须在0到700之间;学号和姓名不能为空create table student (sid number not null primary key,name nvarchar2(10) not null,birthday date,sdate date,addres
Oracle做学生信息系统的脚本要求的约束条件有: 主键是学号;入学日期必须大于出生日期;总分必须在0到700之间;学号和姓名不能为空 create table student ( sid number not null primary key, name nvarchar2(10) not null, birthday date, sdate date, address nvarchar2(20), mark number, constraint ck_sdate check(sdate>birthday), constraint ck_mark check(mark>=0 and mark计算出学生总数; select count(1) as 学生总数 from student; 查询出姓名中第二个字符为“三”而且不姓张的学生; select * from student where name like '_三%' and name not like '张%'; 查询出在1982-1-1和1984-1-1之间出生的学生的姓名; select name,birthday from student where birthday between to_date('1982-1-1','yyyy-MM-dd') and to_date('1984-1-1','yyyy-MM-dd'); 查询出年龄最小的学生; select * from student where birthday in (select max(birthday) from student); 查询出在学校待的时间最长的学生; select * from student where sdate in (select min(sdate) from student); 计算出所有学生总分的平均分; select avg(mark) as 平均分 from student; 显示总分最高的学生的总分和姓名; select name,mark from student where mark in (select max(mark) from student); 删除总分在600以下的学生,然后进行回滚; delete from student where markid(编号) sid(学生编号) testtype(考试类型) score(分数) 1 1001 期中 580 2 1001 期末 590 3 1002 期中 570 4 1002 期末 595 5 1003 期中 570 6 1003 期末 565 create table score ( id number not null, sid number not null, testtype nvarchar2(10), score number );用OEM界面给score创建一个外键,对应student的主键,然后在sql*plus中用sql语句删除此外键,再用sql语句为score创建一个外键; alter table score drop constraint SCORE_FK21245050242859; alter table score add (constraint fk_sid foreign key(sid) references student(sid));select sid,name,address from student where mark>610 and sid in (select sid from score where testtype='期末' and score>=590);update score set score=score+10 where testtype='期末' and sid in (select sid from student where mark>=600);select * from student where sid not in (select sid from score);