You are on page 1of 2

create user u identified by p;

create user u1 identified by p;


create user u2 identified by p;
create user u3 identified by p;
grant dba to u;
grant dba to u1;
grant dba to u2;
grant dba to u3;
conn u/p;
create table levels(level_id number(1),level_name varchar2(20),constraint levels
_pk primary key (level_id));
create table departments(
department_id number(1)
,department_name varchar2(30)
,constraint departments_pk primary key (department_id)
);
create table years(year_id number(4),year_status number(1),constraint year_pk pr
imary key (year_id));
create table students(
year_id number(4)
,student_no number(4)
,student_name varchar2(20)
,department_id number(1) not null
,level_id number(1)
,constraint students_pk primary key (year_id,student_no)
,constraint students_level_fk foreign key (level_id) references levels (level_id
)
,constraint students_department_fk foreign key (department_id) references depart
ments (department_id)
,constraint students_year_fk foreign key (year_id) references years (year_id));
insert
insert
insert
insert
insert

into
into
into
into
into

levels(level_id,level_name)
levels(level_id,level_name)
levels(level_id,level_name)
levels(level_id,level_name)
levels(level_id,level_name)

values
values
values
values
values

(1,'primary');
(2,'first');
(3,'second');
(4,'major');
(5,'final');

insert into departments(department_id,department_name) values (1,'civil');


insert into departments(department_id,department_name) values (2,'electric');
insert into departments(department_id,department_name) values (3,'architecture')
;
insert into years(year_id,year_status) values (2010,1);
insert into years(year_id,year_status) values (2011,2);
insert into students(student_no,year_id,student_name,department_id,level_id)
ues(1,2010,'mohamed',1,1);
insert into students(student_no,year_id,student_name,department_id,level_id)
ues(2,2010,'ali',2,1);
insert into students(student_no,year_id,student_name,department_id,level_id)
ues(1,2011,'salem',1,2);
insert into students(student_no,year_id,student_name,department_id,level_id)
ues(2,2011,'sami',1,2);

val
val
val
val

create or replace view v_departments1 as select * from departments where departm


ent_id=1 with check option;

create or replace view v_departments2 as select * from departments where departm


ent_id=2 with check option;
create or replace view v_departments3 as select * from departments where departm
ent_id=3 with check option;
create or replace view v_students1 as select * from students where department_id
=1 with check option;
create or replace view v_students2 as select * from students where department_id
=2 with check option;
create or replace view v_students3 as select * from students where department_id
=3 with check option;

conn u1/p
create synonym levels for u.levels;
create synonym departments for u.v_departments1;
create synonym students for u.v_students1;
conn u2/p
create synonym levels for u.levels;
create synonym departments for u.v_departments2;
create synonym students for u.v_students2;
conn u3/p
create synonym levels for u.levels;
create synonym departments for u.v_departments3;
create synonym students for u.v_students3;
conn u/p
insert into (select * from departments where department_id<5 with check option)
values (7,'test');
insert into (select * from departments where department_id<5 with read only) val
ues (7,'test');
select * from departments;
select * from students;
insert into students(student_no,year_id,student_name,department_id,level_id) val
ues(6,2010,'mohamed',3,1);
insert into students(student_no,year_id,student_name,department_id,level_id) val
ues(7,2010,'abdo',2,1);

You might also like