/*

-- Re-enable the following 4 lines if you are dropping and refreshing the sample-data tables

DROP TABLE employee_skill;

DROP TABLE skill;

DROP TABLE employee;

DROP TABLE department;

*/

 

-- Create tables

CREATE TABLE department (

     department_id        NUMBER(8,0)  PRIMARY KEY,

     department_name      VARCHAR2(25) NOT NULL

     )

;

 

CREATE TABLE employee (

     employee_id          NUMBER(8,0)  PRIMARY KEY,

     last_name            VARCHAR2(20) NOT NULL,

     first_name           VARCHAR2(15) NOT NULL,

     hire_date            DATE         NOT NULL,

     department_id        NUMBER(8,0)  NOT NULL,

     salary               NUMBER(8,2)  NOT NULL

     )

;

 

CREATE TABLE skill (

     skill_code           VARCHAR2(8)  PRIMARY KEY,

     skill_full_name      VARCHAR2(30) NOT NULL

     )

;

 

CREATE TABLE employee_skill (

     employee_id          NUMBER(8,0) NOT NULL,

     skill_code           VARCHAR2(8) NOT NULL,

     skill_level          NUMBER(1,0) NOT NULL

                             CHECK (skill_level BETWEEN 1 AND 5)

     )

;

 

ALTER TABLE employee_skill

ADD PRIMARY KEY (employee_id, skill_code)

;

 

ALTER TABLE employee

ADD FOREIGN KEY (department_id) REFERENCES department

;

 

ALTER TABLE employee_skill

ADD FOREIGN KEY (employee_id) REFERENCES employee

;

 

ALTER TABLE employee_skill

ADD FOREIGN KEY (skill_code) REFERENCES skill

;

 

-- Populate tables

/*

DELETE FROM employee_skill;

DELETE FROM skill;

DELETE FROM employee;

DELETE FROM department;

*/

 

INSERT INTO department VALUES (1, 'Sales');

INSERT INTO department VALUES (2, 'Research and Development');

INSERT INTO department VALUES (3, 'Information Technology');

INSERT INTO department VALUES (4, 'Maintenance');

 

INSERT INTO employee VALUES (1001, 'Haupt', 'Joseph', '30-JUN-1972', 3, 65000);

INSERT INTO employee VALUES (1002, 'Avila', 'Arnold', '29-OCT-1988', 4, 50000);

INSERT INTO employee VALUES (1003, 'Gutwirth', 'David', '30-JUN-2002', 1, 75000);

INSERT INTO employee VALUES (1004, 'Rusch', 'Grace', '28-JUL-1999', 2, 80000);

INSERT INTO employee VALUES (1005, 'Zuckerman', 'John', '29-OCT-2001', 3, 95000);

 

INSERT INTO skill VALUES ('SALES', 'Selling Techniques');

INSERT INTO skill VALUES ('ACCTG', 'Accounting');

INSERT INTO skill VALUES ('C', 'C Programming');

INSERT INTO skill VALUES ('DBA', 'Database Administrator');

INSERT INTO skill VALUES ('DEV', 'Oracle Developer');

INSERT INTO skill VALUES ('DA', 'Data Architecture');

INSERT INTO skill VALUES ('SI', 'Systems Integration');

INSERT INTO skill VALUES ('JAVA', 'Java Programming');

INSERT INTO skill VALUES ('HM', 'Humorous in Meetings');

 

INSERT INTO employee_skill VALUES (1005, 'DEV', 5);

INSERT INTO employee_skill VALUES (1005, 'DBA', 4);

INSERT INTO employee_skill VALUES (1005, 'DA', 5);

INSERT INTO employee_skill VALUES (1004, 'DEV', 4);

INSERT INTO employee_skill VALUES (1004, 'DA', 2);

INSERT INTO employee_skill VALUES (1004, 'HM', 5);

INSERT INTO employee_skill VALUES (1002, 'SI', 5);

INSERT INTO employee_skill VALUES (1002, 'DA', 1);

INSERT INTO employee_skill VALUES (1001, 'SALES', 4);

 

COMMIT;

 

alter table employee

add (profit_sharing_indicator Number (1,0) NULL

constraint between_0_and_1 check (

profit_sharing_indicator between 0 and 1));

 

COMMIT;

Hosted by www.Geocities.ws

1