You are on page 1of 6

DROP TABLE CUSTOMER;

DROP TABLE REGION;


DROP TABLE EMPLOYEES;
DROP TABLE PROJECT;
DROP TABLE PROJECTSCHEDULE;
DROP TABLE ASSIGNMENT;
DROP TABLE BILL;
DROP TABLE SKILL;
DROP TABLE PROJECTTASKSKILLS;

CREATE TABLE Region


(
"ID" VARCHAR(10),
"RegionName" VARCHAR(255),
PRIMARY KEY ("ID")
);

insert into Region values ('NW', 'Northwest');


insert into Region values ('SW', 'Southwest');
insert into Region values ('MN', 'Midwest North');
insert into Region values ('MS', 'Midwest South');
insert into Region values ('NE', 'Norteast');
insert into Region values ('SE', 'Southeast');

CREATE TABLE Customer


(
"ID" INT NOT NULL ,
"FirstName" VARCHAR(255) ,
"LastName" VARCHAR(255) ,
"PhoneNumber" VARCHAR(255) ,
"RegionID" VARCHAR(10),
PRIMARY KEY ("ID")
);

insert into Customer values ('001', 'Fatima', 'Mosquito', '00022233344', 'NW');


insert into Customer values ('002', 'Carmina', 'Adorna', '11133344455', 'SW');
insert into Customer values ('003', 'So', 'Francis', '22244455566', 'SE');
insert into Customer values ('004', 'Ong', 'Anton', '33355566677', 'MS');

ALTER TABLE Customer


ADD CONSTRAINT "Region_Customer_RegionID" FOREIGN KEY ("RegionID")
REFERENCES Region ("ID");

CREATE TABLE Employees


(
"ID" INT NOT NULL,
"RegionID" VARCHAR(10),
"LastName" VARCHAR(255),
"FirstName" VARCHAR(255),
"DateofHire" VARCHAR(255),
PRIMARY KEY ("ID")
);

insert into Employees values ('111', 'NW', 'Seaton', 'Amy', '12-JAN-2003');


insert into Employees values ('112', 'SW', 'Williams', 'Josh', '12-FEB-2003');
insert into Employees values ('113', 'MN', 'Underwood', 'Trish', '12-MARCH-2003');
insert into Employees values ('114', 'MS', 'Craig', 'Brett', '12-APRIL-2003');
insert into Employees values ('115', 'NE', 'Swell', 'Beth', '12-MAY-2003');
insert into Employees values ('116', 'SE', 'Robinsons', 'Erin', '12-JUN-2003');
insert into Employees values ('117', 'NW', 'Bush', 'Emily', '12-JUL-2003');
insert into Employees values ('118', 'SW', 'Zebras', 'Steve', '12-AUG-2003');
insert into Employees values ('119', 'MN', 'Chandler', 'Joseph', '12-SEP-2003');
insert into Employees values ('120', 'MS', 'Burklow', 'Shane', '12-OCT-2003');
insert into Employees values ('121', 'NE', 'Yarbough', 'Peter', '12-NOV-2003');
insert into Employees values ('122', 'SE', 'Smith', 'Mary', '12-DEC-2003');
insert into Employees values ('123', 'NW', 'Pascoe', 'Jonathan', '12-JAN-2004');
insert into Employees values ('124', 'SW', 'Kattan', 'Chris', '12-FEB-2004');
insert into Employees values ('125', 'MN', 'Ephanor', 'Victor', '12-MARCH-2004');
insert into Employees values ('126', 'MS', 'Summers', 'Anna', '12-APRIL-2004');
insert into Employees values ('127', 'NE', 'Ellis', 'Maria', '12-MAY-2004');
insert into Employees values ('128', 'SE', 'Batts', 'Melissa', '12-JUNE-2004');
insert into Employees values ('129', 'NW', 'Cope', 'Leslie', '12-JULY-2004');
insert into Employees values ('130', 'SW', 'Rogers', 'Adam', '12-AUG-2004');
insert into Employees values ('131', 'MN', 'Smith', 'Jose', '12-SEP-2004');
insert into Employees values ('132', 'MS', 'Bible', 'Hanah', '12-OCT-2004');
insert into Employees values ('133', 'NE', 'Newton', 'Christopher', '12-NOV-2004');
insert into Employees values ('134', 'SE', 'Duarte', 'Miriam', '12-DEC-2004');
insert into Employees values ('135', 'NW', 'Bush', 'Emily', '12-JAN-2005');
insert into Employees values ('136', 'SW', 'Kilby', 'Surgena', '12-FEB-2005');
insert into Employees values ('137', 'MN', 'Bender', 'Larry', '12-MARCH-2005');
insert into Employees values ('138', 'MS', 'Paine', 'Brad', '12-APRIL-2005');
insert into Employees values ('139', 'NE', 'Mudd', 'Roger', '12-MAY-2005');
insert into Employees values ('140', 'SE', 'Kenyon', 'Tiffany', '12-JUN-2005');
insert into Employees values ('141', 'NW', 'Connor', 'Sean', '12-JUL-2005');

ALTER TABLE Employees


ADD CONSTRAINT "Region_Employees_RegionID" FOREIGN KEY ("RegionID")
REFERENCES Region ("ID");

CREATE TABLE Project


(
"ID" INT NOT NULL,
"Description" VARCHAR(255),
"ContractDate" VARCHAR(255),
"StartDate" VARCHAR(255),
"EndDate" VARCHAR(255),
"Budget" INT,
"ActualStartDate" VARCHAR(255),
"ActualEndDate" VARCHAR(255),
"ActualCost" INT,
"EmployeeID" INT,
"CustomerID" INT,
PRIMARY KEY ("ID"),
CONSTRAINT proj_dates_CK CHECK ("StartDate" < "EndDate"),
CONSTRAINT proj_desc_CK CHECK ("Description" IS NOT NULL)
);

insert into Project values ('101', 'Sales Management System', '12-FEB-2018', '1-
MAR-2018', '6-MAR-2018', '10000', '1-MAR-2018', '6-MAR-2018', '5000', '111',
'001');
insert into Project values ('102', 'Sales Management System', '13-FEB-2018', '2-
MAR-2018', '7-MAR-2018', '11000', '2-MAR-2018', '7-MAR-2018', '5100', '112',
'002');

ALTER TABLE Project


ADD FOREIGN KEY ("CustomerID")
REFERENCES Customer ("ID");

ALTER TABLE Project


ADD CONSTRAINT "Employees_Project_EmployeeID" FOREIGN KEY ("EmployeeID")
REFERENCES Employees ("ID");

CREATE TABLE ProjectSchedule


(
"ID" INTEGER NOT NULL ,
"ProjectID" INTEGER,
"BriefDescription" VARCHAR(255) ,
"StartDate" VARCHAR(255) ,
"EndDate" VARCHAR(255),
PRIMARY KEY ("ID"),
CONSTRAINT projschedule_dates_CK CHECK ("StartDate" < "EndDate")
);

insert into ProjectSchedule values ('301', '101', 'Initial interview', '1-MAR-


2018', '6-MAR-2018');
insert into ProjectSchedule values ('302', '102', 'Database design', '2-MAR-2018',
'7-MAR-2018');

ALTER TABLE ProjectSchedule


ADD CONSTRAINT "Project_ProjectSchedule_ProjectID" FOREIGN KEY ("ProjectID")
REFERENCES Project ("ID");

CREATE TABLE Assignment


(
"ID" INT NOT NULL,
"EmployeeID" INT,
"ProjectScheduleID" INT,
"StartDate" VARCHAR(255) DEFAULT 'J',
"EndDate" VARCHAR(255) DEFAULT 'J',
PRIMARY KEY ("ID"),
CONSTRAINT assign_dates_CK CHECK ("StartDate" < "EndDate")
);

insert into Assignment values ('401', '111', '301', '1-APRIL-2018', '6-APRIL-


2018');
insert into Assignment values ('402', '112', '302', '2-APRIL-2018', '8-APRIL-
2018');

ALTER TABLE Assignment


ADD CONSTRAINT "Employees_Assignment_EmployeeID" FOREIGN KEY ("EmployeeID")
REFERENCES Employees ("ID");

ALTER TABLE Assignment


ADD CONSTRAINT "ProjectSchedule_Assignment_ProjectID" FOREIGN KEY
("ProjectScheduleID")
REFERENCES ProjectSchedule ("ID");

CREATE TABLE Bill


(
"ID" INT NOT NULL,
"TotalHours" INT NOT NULL,
PRIMARY KEY ("ID")
);
insert into Bill values ('501', '8');
insert into Bill values ('502', '8');
insert into Bill values ('503', '8');
insert into Bill values ('504', '8');
insert into Bill values ('505', '8');
insert into Bill values ('506', '8');
insert into Bill values ('507', '8');
insert into Bill values ('508', '8');
insert into Bill values ('509', '8');
insert into Bill values ('510', '8');
insert into Bill values ('511', '8');
insert into Bill values ('512', '8');
insert into Bill values ('513', '8');
insert into Bill values ('514', '8');
insert into Bill values ('515', '8');
insert into Bill values ('516', '8');
insert into Bill values ('517', '8');
insert into Bill values ('518', '8');
insert into Bill values ('519', '8');
insert into Bill values ('520', '8');
insert into Bill values ('521', '8');
insert into Bill values ('522', '8');
insert into Bill values ('523', '8');

CREATE TABLE Skill


(
"ID" INT NOT NULL,
"BillID" INT NOT NULL,
"Description" VARCHAR(255),
"EmployeeID" VARCHAR(255),
"PayRate" INT NOT NULL,
PRIMARY KEY ("ID")
);
insert into Skill values ('601', '501', 'Data Entry I', '111, 112, 113', '800');
insert into Skill values ('602', '502', 'Data Entry II', '111, 112', '900');
insert into Skill values ('603', '503', 'Systems Analyst I', '114, 115, 116, 117',
'600');
insert into Skill values ('604', '504', 'Systems Analyst II', '116, 119, 120',
'700');
insert into Skill values ('605', '505', 'DB Designer I', '121, 122', '1000');
insert into Skill values ('606', '506', 'DB Designer II', '121, 123', '1300');
insert into Skill values ('607', '507', 'Java I', '124, 125, 126, 127', '1200');
insert into Skill values ('608', '508', 'Java II', '124, 125, 128', '1200');
insert into Skill values ('609', '509', 'C++ I', '129, 130, 131', '600');
insert into Skill values ('610', '510', 'C++ II', '130, 132', '900');
insert into Skill values ('611', '511', 'Python I', '118, 127 ', '800');
insert into Skill values ('612', '512', 'Python II', '118, 133', '500');
insert into Skill values ('613', '513', 'ColdFusion I', '134, 135', '1000');
insert into Skill values ('614', '514', 'ColdFusion II', '133, 135', '1200');
insert into Skill values ('615', '515', 'ASP I', '134, 135', '900');
insert into Skill values ('616', '516', 'ASP II', '133, 134', '800');
insert into Skill values ('617', '517', 'Oracle DBA', '123, 131,', '600');
insert into Skill values ('618', '518', 'SQL Server DBA', '121, 131', '700');
insert into Skill values ('619', '519', 'Network Engineer I', '117, 122', '800');
insert into Skill values ('620', '520', 'Network Engineer II', '117, 122', '500');
insert into Skill values ('621', '521', 'Web Administrator', '117, 122, 133',
'1200');
insert into Skill values ('622', '522', 'technical Writer', '136, 137', '1100');
insert into Skill values ('623', '523', 'Project Manager', '138, 139, 140, 141',
'1300');

CREATE TABLE ProjectTaskSkills


(
"ID" INT NOT NULL,
"QuantityRequired" VARCHAR(255),
"SkillID" INT,
"ProjectScheduleID" INT,
PRIMARY KEY ("ID")
);

insert into ProjectTaskSkills values ('701', '1', '601', '301');


insert into ProjectTaskSkills values ('702', '1', '602', '302');

ALTER TABLE ProjectTaskSkills


ADD FOREIGN KEY ("SkillID")
REFERENCES Skill ("ID");

ALTER TABLE ProjectTaskSkills


ADD FOREIGN KEY ("ProjectScheduleID")
REFERENCES ProjectSchedule ("ID");

SELECT * FROM PROJECT;


SELECT * FROM EMPLOYEES;
SELECT * FROM CUSTOMER;
SELECT * FROM REGION;
SELECT * FROM PROJECTSCHEDULE;
SELECT * FROM ASSIGNMENT;
SELECT * FROM BILL;
SELECT * FROM SKILL;
SELECT ("TotalHours" * "PayRate") AS TotalPay
FROM Bill, Skill;

CREATE OR REPLACE PROCEDURE


get_emp_rec ("EmpID" IN NUMBER, "EmpFirstName" OUT VARCHAR, "EmpLastName" OUT
VARCHAR, "DateofHired" OUT DATE) AS
BEGIN
SELECT "FirstName", "LastName", "DateofHire"
INTO "EmpFirstName", "EmpLastName", "DateofHired"
FROM Employees
WHERE "ID" = "EmpID";
END;
/
CREATE OR REPLACE PROCEDURE
get_cust_rec ("CustID" IN NUMBER, "CustFirstName" OUT VARCHAR, "CustLastName" OUT
VARCHAR) AS
BEGIN
SELECT "FirstName", "LastName"
INTO "CustFirstName", "CustLastName"
FROM Customer
WHERE "ID" = "CustID";
END;
/
create table Payment (Pay varchar2(20), date_added varchar2(20));

create or replace trigger add_Pay


before insert on Payment
for each row
begin
:new.date_added :=TO_CHAR(CURRENT_DATE, 'DD-MM-YYYY HH:MI:SS');
end;
/

insert into Payment(Pay) values('800');


insert into Payment(Pay) values('800');
SELECT * FROM Payment;

CREATE VIEW NorthWest Employees


AS SELECT "FirstName", "LastName", "DateofHire"
FROM Employees
WHERE "RegionID" = 'NW';

You might also like