Sei sulla pagina 1di 13

Experiment Name: Create a table where student table delete

E-R Diagram

Input Code:create table product


(
product_no varchar2(6),
product_name varchar2(15) not null,
units char(2),
unit_price number(9,2) not null,
qty_on_hand number(5) default 0,
unit_cost number(5),
constraint pk_product_1
primary key(product_no),
constraint ck_product_3
check(units in('pc','kg')),

constraint ck_product_6
check(unit_cost<unit_price)
);

select * from tab;

drop table product;

desc product;

create table salesman


(
salesman_id varchar2(6),
salesman_name varchar2(15) not null,
s_address varchar2(15) not null,
sex char(1),
m_s char(1),
d_o_b date,
constraint pk_salesman_1
primary key(salesman_id),
constraint ck_salesman_4
check(sex in('M','F')),
constraint ck_salesman_5
check(m_s in('S','M'))
);

create table customer


(
customer_no varchar2(6),
customer_name varchar2(15) not null,
c_address varchar2(15) not null,
constraint pk_customer_1
primary key(customer_no)
);

create table sales


(
order_no varchar2(6),
order_date date default sysdate,
salesman_id varchar2(6),
customer_no varchar2(6),
constraint pk_sales_1
primary key(order_no),
constraint fk_sales_3
foreign key(salesman_id) references salesman(salesman_id),
constraint fk_sales_4
foreign key(customer_no) references customer(customer_no)
);

create table sales_details

(
order_no varchar2(6),
product_no varchar2(6),
sold_qty number(5) default 0,
constraint pk_sales_details_12
primary key(order_no,product_no),
constraint fk_sales_details_1
foreign key(order_no) references sales(order_no),
constraint fk_sales_details_2
foreign key(product_no) references product(product_no)
);

create trigger product_sales


after insert or update or delete
on sales_details for each row
begin
if inserting then
update product
set qty_on_hand=qty_on_hand-:new.sold_qty
where product.product_no=:new.product_no;
elseif updating then
update product
set qty_on_hand=qty_on_hand+:old.sold_qty
where product.product_no=:old.product_no;
update product
set qty_on_hand=qty_on_hand-:new.sold_qty

where product.product_no=:new.product_no;
elseif deleting then
update product
set qty_on_hand=qty_on_hand+:old.sold_qty
where product.product_no=:old.product_no;
end if;
end;
/

drop trigger product_sales;

begin
insert into product
values('p00001','Monitor(LG44i)','pc',5000,50,4500);
insert into product
values('p00002','KB(Mitsumi)','pc',200,100,150);
insert into product
values('p00003','MB(Asus)','pc',2500,30,2000);
insert into product
values('p00004','Mouse','pc',100,100,80);
insert into product
values('p00005','Speaker','pc',750,20,600);
insert into product
values('p00006','Processor','pc',2500,50,2100);
end;
/

select * from product;

begin
insert into salesman
values('s00001','Shafiq','Dhaka','M','S','12-Jan-75');
insert into salesman
values('s00002','Rana','Dhaka','M','S','23-Jul-77');
insert into salesman
values('s00003','Rajib','Comilla','M','S','08-Mar-78');
insert into salesman
values('s00004','Rakib','Comilla','M','S','26-Feb-74');
insert into salesman
values('s00005','Nafis','Dhaka','M','M','10-Feb-69');
insert into salesman
values('s00006','Nazim','Dhaka','M','M','05-Jan-67');
end;
/

select * from salesman;

begin
insert into customer
values('c00001','Asraf','Dhaka');
insert into customer
values('c00002','Raju','Dhaka');

insert into customer


values('c00003','Rumi','Munshiganj');
insert into customer
values('c00004','Asma','Rajshahi');
end;
/

select * from customer;

begin
insert into sales
values('o00001','12-Mar-99','s00006','c00001');
insert into sales
values('o00002','14-Mar-99','s00003','c00002');
insert into sales
values('o00003','14-Mar-99','s00003','c00003');
insert into sales
values('o00004','15-Mar-99','s00002','c00004');
end;
/

select * from sales;

begin
insert into sales_details
values('o00001','p00006',1);

insert into sales_details


values('o00002','p00006',5);
insert into sales_details
values('o00003','p00005',10);
insert into sales_details
values('o00004','p00001',4);
end;
/

alter trigger product_sales disable;

create table Student


(
ID varchar2(7),
Name varchar2(15),
Mobile number(11),
constraint pk_s
primary key(ID)
);

insert into student


values('C113001','Karim',01813187081);

insert into student


values('C113005','Rahim',01712635374);

insert into student


values('C113006','Malek',01827864866);

alter table student


modify(ID varchar2(7));

update student
set Mobile='01710200333'
where ID='C113007';

create table Course


(
CID varchar2(7),
CName varchar2(35),
Credit number(2,1),
constraint pk_c
primary key(CID)
);

insert into Course


values('CSE2405','Computer Algorithm',3);

insert into Course

values('CSE2407','Assembly Language',1);

insert into Course


values('CSE2409','Database System',3);
insert into Course
values('CSE2410','Database System Sessional',1.5);

insert into Course


values('CSE2411','Programming with Java',2);

insert into Course


values('CSE2412','Programming with Java Sessional',1);

create table Result


(
ID varchar2(7),
CID varchar2(7),
Grade char(2),
D_O_R Date,
constraint fk_R_1
foreign key(ID) references student,
constraint fk_R_2
foreign key(CID) references Course

);

insert into Result


values('C113006','CSE2411','A',sysdate);

insert into Result


values('C113006','CSE2407','C',sysdate);

insert into Result


values('C113006','CSE2405','F',sysdate);

insert into Result


values('C113006','CSE2409','A+',sysdate);

insert into Result


values('C113006','CSE2410','B-',sysdate);

create or replace trigger stu


after delete
on student for each row
begin
insert into s_del values(:OLD.ID, :OLD.Name,:OLD.Mobile);
end;
/

drop trigger stu;

delete from Result


where CID='2411';

create trigger stu


after delete
on Result for each row
begin
if deleting then
update Student
set ID=ID+:old.CID
where Student.ID=:old.ID;
end if;
end;

Potrebbero piacerti anche