--创建用户及授权
create user student identified by student;
grant connect,resource to student;

--drop user student cascade  

/*
    connect resource权限;
    grant connect,resource to student;
    后用户包括的权限:
    CONNECT角色: --是授予最终用户的典型权利,最基本的
    ALTER SESSION --修改会话
    CREATE CLUSTER --建立聚簇
    CREATE DATABASE LINK --建立数据库链接
    CREATE SEQUENCE --建立序列
    CREATE SESSION --建立会话
    CREATE SYNONYM --建立同义词
    CREATE VIEW --建立视图
    RESOURCE角色: --是授予开发人员的
    CREATE CLUSTER --建立聚簇
    CREATE PROCEDURE --建立过程
    CREATE SEQUENCE --建立序列
    CREATE TABLE --建表
    CREATE TRIGGER --建立触发器
    CREATE TYPE --建立类型

*/

--创建学生信息表
create table stuInfo(
       stuNo number not null primary key,
       stuName varchar2(50) not null,
       stuAge number not null,
       stuID number null,
       stuSeat number not null
)

--查看学生信息表
select * from stuInfo

--插入学生信息表序列号
create sequence seq_stuInfo
     increment by 1   -- 自增步长 这里设置为1     
     start with 1     -- 计数起点 这里设置为1     
     nomaxvalue       -- 不设置最大值 可选项 maxvalue|minvalue     
     nocycle          -- 一直累加,不循环       
     cache 10;  

--插入学生信息表数据
insert into stuinfo
  (stuno, stuname, stuage, stuid, stuseat)
values
  (seq_stuInfo.Nextval, '景临境', 23, null, 1);
insert into stuinfo
  (stuno, stuname, stuage, stuid, stuseat)
values
  (seq_stuInfo.Nextval, '左阻', 21, null, 2);
insert into stuinfo
  (stuno, stuname, stuage, stuid, stuseat)
values
  (seq_stuInfo.Nextval, '车行径', 25, null, 3);
insert into stuinfo
  (stuno, stuname, stuage, stuid, stuseat)
values
  (seq_stuInfo.Nextval, '吴天先', 22, null, 4);
insert into stuinfo
  (stuno, stuname, stuage, stuid, stuseat)
values
  (seq_stuInfo.Nextval, '落月清', 20, null, 5);
  
--创建科目表
create table subject(
       id number not null primary key,
       name varchar2(50) not null
)

--查看科目表
select id, name from subject

--插入科目表序列号
create sequence seq_subject
     increment by 1   -- 自增步长 这里设置为1     
     start with 1     -- 计数起点 这里设置为1     
     nomaxvalue       -- 不设置最大值 可选项 maxvalue|minvalue     
     nocycle          -- 一直累加,不循环       
     cache 10;  
     
--插入科目表数据
insert into subject
  (id, name)
values
  (seq_subject.nextval, 'java');
insert into subject
  (id, name)
values
  (seq_subject.nextval, 'C#');
insert into subject
  (id, name)
values
  (seq_subject.nextval, '.net');
insert into subject
  (id, name)
values
  (seq_subject.nextval, 'PHP');
insert into subject
  (id, name)
values
  (seq_subject.nextval, 'JSP');
  
--创建成绩表
create table result(
       id number not null primary key,
       subjectId number not null,
       score number not null,
       studentId number not null,
       foreign key(subjectId) references subject(id),
       foreign key(studentId) references stuInfo(stuNo)
)

--插入科目表序列号
create sequence seq_result
     increment by 1   -- 自增步长 这里设置为1     
     start with 1     -- 计数起点 这里设置为1     
     nomaxvalue       -- 不设置最大值 可选项 maxvalue|minvalue     
     nocycle          -- 一直累加,不循环       
     cache 10;  

--查看科目表
select * from result

--插入科目表数据
insert into result
  (id, subjectid, score, studentid)
values
  (seq_result.nextval, 2, 88, 2);
insert into result
  (id, subjectid, score, studentid)
values
  (seq_result.nextval, 2, 89, 3);
insert into result
  (id, subjectid, score, studentid)
values
  (seq_result.nextval, 3, 90, 3);
insert into result
  (id, subjectid, score, studentid)
values
  (seq_result.nextval, 2, 93, 4);
insert into result
  (id, subjectid, score, studentid)
values
  (seq_result.nextval, 4, 94, 5);