Skip to content

Commit 45da131

Browse files
[ADD] Employees DB
1 parent ced4c6e commit 45da131

File tree

2 files changed

+210
-0
lines changed

2 files changed

+210
-0
lines changed

resources/07-employee-structure.sql

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
CREATE TABLE regions (
2+
region_id INT PRIMARY KEY,
3+
region_name VARCHAR (25) DEFAULT NULL
4+
);
5+
6+
CREATE TABLE countries (
7+
country_id CHAR (2) PRIMARY KEY,
8+
country_name VARCHAR (40) DEFAULT NULL,
9+
region_id INT NOT NULL,
10+
FOREIGN KEY (region_id) REFERENCES regions (region_id) ON DELETE CASCADE ON UPDATE CASCADE
11+
);
12+
13+
CREATE TABLE locations (
14+
location_id INT PRIMARY KEY,
15+
street_address VARCHAR (40) DEFAULT NULL,
16+
postal_code VARCHAR (12) DEFAULT NULL,
17+
city VARCHAR (30) NOT NULL,
18+
state_province VARCHAR (25) DEFAULT NULL,
19+
country_id CHAR (2) NOT NULL,
20+
FOREIGN KEY (country_id) REFERENCES countries (country_id) ON DELETE CASCADE ON UPDATE CASCADE
21+
);
22+
23+
CREATE TABLE jobs (
24+
job_id INT PRIMARY KEY,
25+
job_title VARCHAR (35) NOT NULL,
26+
min_salary DECIMAL (8, 2) DEFAULT NULL,
27+
max_salary DECIMAL (8, 2) DEFAULT NULL
28+
);
29+
30+
CREATE TABLE departments (
31+
department_id INT PRIMARY KEY,
32+
department_name VARCHAR (30) NOT NULL,
33+
location_id INT DEFAULT NULL,
34+
FOREIGN KEY (location_id) REFERENCES locations (location_id) ON DELETE CASCADE ON UPDATE CASCADE
35+
);
36+
37+
CREATE TABLE employees (
38+
employee_id INT PRIMARY KEY,
39+
first_name VARCHAR (20) DEFAULT NULL,
40+
last_name VARCHAR (25) NOT NULL,
41+
email VARCHAR (100) NOT NULL,
42+
phone_number VARCHAR (20) DEFAULT NULL,
43+
hire_date DATE NOT NULL,
44+
job_id INT NOT NULL,
45+
salary DECIMAL (8, 2) NOT NULL,
46+
manager_id INT DEFAULT NULL,
47+
department_id INT DEFAULT NULL,
48+
FOREIGN KEY (job_id) REFERENCES jobs (job_id) ON DELETE CASCADE ON UPDATE CASCADE,
49+
FOREIGN KEY (department_id) REFERENCES departments (department_id) ON DELETE CASCADE ON UPDATE CASCADE,
50+
FOREIGN KEY (manager_id) REFERENCES employees (employee_id)
51+
);
52+
53+
CREATE TABLE dependents (
54+
dependent_id INT PRIMARY KEY,
55+
first_name VARCHAR (50) NOT NULL,
56+
last_name VARCHAR (50) NOT NULL,
57+
relationship VARCHAR (25) NOT NULL,
58+
employee_id INT NOT NULL,
59+
FOREIGN KEY (employee_id) REFERENCES employees (employee_id) ON DELETE CASCADE ON UPDATE CASCADE
60+
);

0 commit comments

Comments
 (0)