CREATE TABLE jobs (
job_id VARCHAR2(10) PRIMARY KEY,
job_title VARCHAR2(50),
min_salary NUMBER,
max_salary NUMBER
);
INSERT INTO jobs VALUES ('J101', 'Software Engineer', 50000, 100000);
INSERT INTO jobs VALUES ('J102', 'Data Analyst', 45000, 90000);
INSERT INTO jobs VALUES ('J103', 'Project Manager', 60000, 120000);
INSERT INTO jobs VALUES ('J104', 'System Administrator', 40000, 85000);
INSERT INTO jobs VALUES ('J105', 'QA Engineer', 42000, 80000);
INSERT INTO jobs VALUES ('J106', 'HR Specialist', 35000, 70000);
INSERT INTO jobs VALUES ('J107', 'Business Analyst', 48000, 95000);
INSERT INTO jobs VALUES ('J108', 'DevOps Engineer', 55000, 105000);
INSERT INTO jobs VALUES ('J109', 'UI/UX Designer', 47000, 92000);
INSERT INTO jobs VALUES ('J110', 'Database Admin', 50000, 98000);
==========================================================================================
CREATE TABLE employee (
employee_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
email VARCHAR2(100),
phone_number VARCHAR2(20),
hire_date DATE,
job_id VARCHAR2(10),
salary NUMBER,
manager_id NUMBER,
department_id NUMBER,
FOREIGN KEY (job_id) REFERENCES jobs(job_id),
FOREIGN KEY (manager_id) REFERENCES employee(employee_id),
FOREIGN KEY (department_id) REFERENCES departments(department_id)
);
INSERT INTO employee VALUES (105, 'John', 'Doe', 'john.doe@example.com', '9876543210', TO_DATE('2019-01-10', 'YYYY-MM-DD'), 'J101', 90000, NULL, 10);
INSERT INTO employee VALUES (110, 'Ayesha', 'Khan', 'ayesha.k@example.com', '9876543211', TO_DATE('2020-03-20', 'YYYY-MM-DD'), 'J102', 88000, NULL, 20);
INSERT INTO employee VALUES (115, 'Michael', 'White', 'michael.w@example.com', '9876543212', TO_DATE('2018-05-25', 'YYYY-MM-DD'), 'J103', 91000, NULL, 30);
INSERT INTO employee VALUES (107, 'Neha', 'Reddy', 'neha.r@example.com', '9876543213', TO_DATE('2021-06-15', 'YYYY-MM-DD'), 'J104', 60000, 105, 40);
INSERT INTO employee VALUES (118, 'Ravi', 'Verma', 'ravi.v@example.com', '9876543214', TO_DATE('2021-07-12', 'YYYY-MM-DD'), 'J105', 62000, 110, 50);
INSERT INTO employee VALUES (113, 'Sneha', 'Iyer', 'sneha.i@example.com', '9876543215', TO_DATE('2022-01-10', 'YYYY-MM-DD'), 'J106', 59000, 115, 60);
INSERT INTO employee VALUES (109, 'Karan', 'Shah', 'karan.s@example.com', '9876543216', TO_DATE('2022-03-14', 'YYYY-MM-DD'), 'J107', 64000, 105, 70);
INSERT INTO employee VALUES (106, 'Fatima', 'Ansari', 'fatima.a@example.com', '9876543217', TO_DATE('2023-02-20', 'YYYY-MM-DD'), 'J108', 67000, 110, 80);
INSERT INTO employee VALUES (114, 'Daniel', 'Fernandes', 'daniel.f@example.com', '9876543218', TO_DATE('2021-10-01', 'YYYY-MM-DD'), 'J109', 70000, 115, 90);
INSERT INTO employee VALUES (111, 'Pooja', 'Deshmukh', 'pooja.d@example.com', '9876543219', TO_DATE('2023-04-18', 'YYYY-MM-DD'), 'J110', 69000, 110, 100);
INSERT INTO employee VALUES (119, 'Arjun', 'Nair', 'arjun.n@example.com', '9876543220', TO_DATE('2022-11-05', 'YYYY-MM-DD'), 'J101', 65000, 105, 10);
INSERT INTO employee VALUES (117, 'Linda', 'Thomas', 'linda.t@example.com', '9876543221', TO_DATE('2022-12-22', 'YYYY-MM-DD'), 'J105', 61000, 110, 50);
INSERT INTO employee VALUES (108, 'Raj', 'Kapoor', 'raj.k@example.com', '9876543222', TO_DATE('2020-08-30', 'YYYY-MM-DD'), 'J106', 63000, 115, 60);
INSERT INTO employee VALUES (120, 'Deepika', 'Joshi', 'deepika.j@example.com', '9876543223', TO_DATE('2023-03-01', 'YYYY-MM-DD'), 'J107', 66000, 105, 70);
INSERT INTO employee VALUES (116, 'Zara', 'Sheikh', 'zara.s@example.com', '9876543224', TO_DATE('2021-09-09', 'YYYY-MM-DD'), 'J108', 68000, 110, 80);
==========================================================================================
CREATE TABLE regions (
region_id NUMBER PRIMARY KEY,
region_name VARCHAR2(50)
);
INSERT INTO regions VALUES (1, 'Europe');
INSERT INTO regions VALUES (2, 'Americas');
INSERT INTO regions VALUES (3, 'Asia');
INSERT INTO regions VALUES (4, 'Africa');
INSERT INTO regions VALUES (5, 'Middle East');
INSERT INTO regions VALUES (6, 'Oceania');
INSERT INTO regions VALUES (7, 'South America');
INSERT INTO regions VALUES (8, 'Central America');
INSERT INTO regions VALUES (9, 'Caribbean');
INSERT INTO regions VALUES (10, 'Antarctica');
==========================================================================================
CREATE TABLE countries (
country_id VARCHAR2(2) PRIMARY KEY,
country_name VARCHAR2(50),
region_id NUMBER,
FOREIGN KEY (region_id) REFERENCES regions(region_id)
);
INSERT INTO countries VALUES ('DE', 'Germany', 1);
INSERT INTO countries VALUES ('FR', 'France', 1);
INSERT INTO countries VALUES ('US', 'United States', 2);
INSERT INTO countries VALUES ('CA', 'Canada', 2);
INSERT INTO countries VALUES ('IN', 'India', 3);
INSERT INTO countries VALUES ('CN', 'China', 3);
INSERT INTO countries VALUES ('NG', 'Nigeria', 4);
INSERT INTO countries VALUES ('ZA', 'South Africa', 4);
INSERT INTO countries VALUES ('AU', 'Australia', 6);
INSERT INTO countries VALUES ('NZ', 'New Zealand', 6);
==========================================================================================
CREATE TABLE locations (
location_id NUMBER PRIMARY KEY,
street_address VARCHAR2(100),
postal_code VARCHAR2(20),
city VARCHAR2(50),
state_province VARCHAR2(50),
country_id VARCHAR2(2),
FOREIGN KEY (country_id) REFERENCES countries(country_id)
);
INSERT INTO locations VALUES (100, 'Kurfürstendamm 1', '10117', 'Berlin', 'Berlin', 'DE');
INSERT INTO locations VALUES (200, '5th Avenue', '10001', 'New York', 'NY', 'US');
INSERT INTO locations VALUES (300, '1 Place Charles de Gaulle', '75008', 'Paris', 'Île-de-France', 'FR');
INSERT INTO locations VALUES (400, 'Bay Street', 'M5J2N8', 'Toronto', 'Ontario', 'CA');
INSERT INTO locations VALUES (500, 'MG Road', '560001', 'Bangalore', 'Karnataka', 'IN');
INSERT INTO locations VALUES (600, 'Zhongguancun St', '100080', 'Beijing', 'Beijing', 'CN');
INSERT INTO locations VALUES (700, 'Awolowo Rd', '101233', 'Lagos', 'Lagos', 'NG');
INSERT INTO locations VALUES (800, 'Long St', '8001', 'Cape Town', 'Western Cape', 'ZA');
INSERT INTO locations VALUES (900, 'George St', '2000', 'Sydney', 'NSW', 'AU');
INSERT INTO locations VALUES (1000, 'Queen St', '6011', 'Wellington', 'Wellington', 'NZ');
==========================================================================================
CREATE TABLE departments (
department_id NUMBER PRIMARY KEY,
department_name VARCHAR2(50),
location_id NUMBER,
FOREIGN KEY (location_id) REFERENCES locations(location_id)
);
INSERT INTO departments VALUES (10, 'Accounting', 100);
INSERT INTO departments VALUES (20, 'Research', 200);
INSERT INTO departments VALUES (30, 'Sales', 300);
INSERT INTO departments VALUES (40, 'Operations', 400);
INSERT INTO departments VALUES (50, 'IT Support', 500);
INSERT INTO departments VALUES (60, 'Human Resources', 600);
INSERT INTO departments VALUES (70, 'Marketing', 700);
INSERT INTO departments VALUES (80, 'Logistics', 800);
INSERT INTO departments VALUES (90, 'Legal', 900);
INSERT INTO departments VALUES (100, 'Administration', 1000);
==========================================================================================
CREATE TABLE dependents (
dependent_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
relationship VARCHAR2(30),
employee_id NUMBER,
FOREIGN KEY (employee_id) REFERENCES employee(employee_id)
);
INSERT INTO dependents VALUES (201, 'Aryan', 'Kumar', 'Son', 105);
INSERT INTO dependents VALUES (208, 'Neha', 'Kumar', 'Daughter', 105);
INSERT INTO dependents VALUES (215, 'Riya', 'Khan', 'Spouse', 110);
INSERT INTO dependents VALUES (223, 'Ayaan', 'Khan', 'Son', 110);
INSERT INTO dependents VALUES (232, 'Zara', 'White', 'Daughter', 115);
INSERT INTO dependents VALUES (219, 'Rakesh', 'Shah', 'Father', 109);
INSERT INTO dependents VALUES (211, 'Sunita', 'Reddy', 'Spouse', 107);
INSERT INTO dependents VALUES (226, 'Mehul', 'Verma', 'Brother', 118);
INSERT INTO dependents VALUES (237, 'Fatima', 'Ansari', 'Mother', 106);
INSERT INTO dependents VALUES (240, 'Leela', 'Iyer', 'Spouse', 113);