|
| 1 | +-- Employees Table |
| 2 | +CREATE TABLE employees ( |
| 3 | + id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, |
| 4 | + name VARCHAR2(255) NOT NULL, |
| 5 | + email VARCHAR2(255) NOT NULL, |
| 6 | + department VARCHAR2(255) NOT NULL |
| 7 | +); |
| 8 | + |
| 9 | +-- Insert 50 records in 'employees' table |
| 10 | +INSERT INTO employees (name, email, department) VALUES ( 'John Doe', '[email protected]', 'Sales'); |
| 11 | +INSERT INTO employees (name, email, department) VALUES ( 'Jane Smith', '[email protected]', 'Marketing'); |
| 12 | +INSERT INTO employees (name, email, department) VALUES ( 'Bob Johnson', '[email protected]', 'Finance'); |
| 13 | +INSERT INTO employees (name, email, department) VALUES ( 'Mary Brown', '[email protected]', 'Human Resources'); |
| 14 | +INSERT INTO employees (name, email, department) VALUES ( 'David Lee', '[email protected]', 'Engineering'); |
| 15 | +INSERT INTO employees (name, email, department) VALUES ( 'Sarah Green', '[email protected]', 'Sales'); |
| 16 | +INSERT INTO employees (name, email, department) VALUES ( 'Mike Davis', '[email protected]', 'Marketing'); |
| 17 | +INSERT INTO employees (name, email, department) VALUES ( 'Karen Wilson', '[email protected]', 'Finance'); |
| 18 | +INSERT INTO employees (name, email, department) VALUES ( 'Tom Johnson', '[email protected]', 'Human Resources'); |
| 19 | +INSERT INTO employees (name, email, department) VALUES ( 'Lisa Chen', '[email protected]', 'Engineering'); |
| 20 | +INSERT INTO employees (name, email, department) VALUES ( 'David Davis', '[email protected]', 'Sales'); |
| 21 | +INSERT INTO employees (name, email, department) VALUES ( 'Michelle Rodriguez', '[email protected]', 'Marketing'); |
| 22 | +INSERT INTO employees (name, email, department) VALUES ( 'Christopher Smith', '[email protected]', 'Finance'); |
| 23 | +INSERT INTO employees (name, email, department) VALUES ( 'Samantha Brown', '[email protected]', 'Human Resources'); |
| 24 | +INSERT INTO employees (name, email, department) VALUES ( 'Charles Kim', '[email protected]', 'Engineering'); |
| 25 | +INSERT INTO employees (name, email, department) VALUES ( 'Alexandra Taylor', '[email protected]', 'Sales'); |
| 26 | +INSERT INTO employees (name, email, department) VALUES ( 'Richard Wilson', '[email protected]', 'Marketing'); |
| 27 | +INSERT INTO employees (name, email, department) VALUES ( 'Jennifer Lee', '[email protected]', 'Finance'); |
| 28 | +INSERT INTO employees (name, email, department) VALUES ( 'Matthew Jones', '[email protected]', 'Human Resources'); |
| 29 | +INSERT INTO employees (name, email, department) VALUES ( 'Ava Chen', '[email protected]', 'Engineering'); |
| 30 | +INSERT INTO employees (name, email, department) VALUES ( 'William Davis', '[email protected]', 'Sales'); |
| 31 | +INSERT INTO employees (name, email, department) VALUES ( 'Natalie Nguyen', '[email protected]', 'Marketing'); |
| 32 | +INSERT INTO employees (name, email, department) VALUES ( 'Joseph Garcia', '[email protected]', 'Finance'); |
| 33 | +INSERT INTO employees (name, email, department) VALUES ( 'Rachel Martin', '[email protected]', 'Human Resources'); |
| 34 | +INSERT INTO employees (name, email, department) VALUES ( 'Christian Kim', '[email protected]', 'Engineering'); |
| 35 | +INSERT INTO employees (name, email, department) VALUES ( 'Hannah Rodriguez', '[email protected]', 'Sales'); |
| 36 | +INSERT INTO employees (name, email, department) VALUES ( 'Anthony Johnson', '[email protected]', 'Marketing'); |
| 37 | +INSERT INTO employees (name, email, department) VALUES ( 'Sophia Wilson', '[email protected]', 'Finance'); |
| 38 | +INSERT INTO employees (name, email, department) VALUES ( 'Ethan Chen', '[email protected]', 'Human Resources'); |
| 39 | +INSERT INTO employees (name, email, department) VALUES ( 'Madison Smith', '[email protected]', 'Engineering'); |
| 40 | +INSERT INTO employees (name, email, department) VALUES ( 'Oliver Davis', '[email protected]', 'Sales'); |
| 41 | +INSERT INTO employees (name, email, department) VALUES ( 'Grace Nguyen', '[email protected]', 'Marketing'); |
| 42 | +INSERT INTO employees (name, email, department) VALUES ( 'Daniel Garcia', '[email protected]', 'Finance'); |
| 43 | +INSERT INTO employees (name, email, department) VALUES ( 'Isabella Martin', '[email protected]', 'Human Resources'); |
| 44 | +INSERT INTO employees (name, email, department) VALUES ( 'Mia Kim', '[email protected]', 'Engineering'); |
| 45 | +INSERT INTO employees (name, email, department) VALUES ( 'Lucas Rodriguez', '[email protected]', 'Sales'); |
| 46 | +INSERT INTO employees (name, email, department) VALUES ( 'Victoria Johnson', '[email protected]', 'Marketing'); |
| 47 | +INSERT INTO employees (name, email, department) VALUES ( 'David Wilson', '[email protected]', 'Engineering'); |
| 48 | +INSERT INTO employees (name, email, department) VALUES ( 'Steven Nguyen', '[email protected]', 'Marketing'); |
| 49 | +INSERT INTO employees (name, email, department) VALUES ( 'Amy Kim', '[email protected]', 'Engineering'); |
| 50 | +INSERT INTO employees (name, email, department) VALUES ( 'Anna Martinez', '[email protected]', 'Sales'); |
| 51 | +INSERT INTO employees (name, email, department) VALUES ( 'Kevin Kim', '[email protected]', 'Marketing'); |
| 52 | +INSERT INTO employees (name, email, department) VALUES ( 'Catherine Davis', '[email protected]', 'Finance'); |
| 53 | +INSERT INTO employees (name, email, department) VALUES ( 'Robert Nguyen', '[email protected]', 'Human Resources'); |
| 54 | +INSERT INTO employees (name, email, department) VALUES ( 'Karen Clark', '[email protected]', 'Engineering'); |
| 55 | +INSERT INTO employees (name, email, department) VALUES ( 'Mike Wilson', '[email protected]', 'Sales'); |
| 56 | +INSERT INTO employees (name, email, department) VALUES ( 'Rachel Lee', '[email protected]', 'Marketing'); |
| 57 | +INSERT INTO employees (name, email, department) VALUES ( 'Thomas Johnson', '[email protected]', 'Finance'); |
| 58 | +INSERT INTO employees (name, email, department) VALUES ( 'Emily White', '[email protected]', 'Human Resources'); |
| 59 | +INSERT INTO employees (name, email, department) VALUES ( 'Brian Brown', '[email protected]', 'Engineering'); |
| 60 | +commit; |
| 61 | + |
| 62 | +-- Procedure to Generate Sample Data |
| 63 | +CREATE OR REPLACE PROCEDURE add_employees ( |
| 64 | + n IN NUMBER |
| 65 | +) |
| 66 | +AS |
| 67 | + departments employees.department%TYPE := 'Sales,Marketing,Finance,Human Resources,Engineering'; |
| 68 | +BEGIN |
| 69 | + FOR i IN 1..n LOOP |
| 70 | + INSERT INTO employees (name, email, department) |
| 71 | + VALUES ('Employee ' || i, 'employee' || i || '@example.com', REGEXP_SUBSTR(departments,'[^,]+',1,ROUND(DBMS_RANDOM.VALUE(1,5)))); |
| 72 | + END LOOP; |
| 73 | + COMMIT; |
| 74 | +END; |
| 75 | +/ |
| 76 | + |
| 77 | +-- Generate Sample Employee Data |
| 78 | +BEGIN |
| 79 | + add_employees(50); |
| 80 | +END; |
| 81 | +/ |
| 82 | + |
| 83 | +-- Employees Salary Table |
| 84 | +CREATE TABLE employees_salary ( |
| 85 | + id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, |
| 86 | + employee_id NUMBER NOT NULL, |
| 87 | + salary NUMERIC(10, 2) NOT NULL, |
| 88 | + start_date DATE NOT NULL, |
| 89 | + end_date DATE NOT NULL, |
| 90 | + bonus FLOAT NOT NULL |
| 91 | + ); |
| 92 | + |
| 93 | +-- Procedure to Generate Sample Data |
| 94 | +CREATE OR REPLACE PROCEDURE generate_employees_salary(n IN NUMBER) AS |
| 95 | +BEGIN |
| 96 | + FOR i IN 1..n LOOP |
| 97 | + INSERT INTO employees_salary (employee_id, salary, start_date, end_date, bonus) |
| 98 | + VALUES (FLOOR(DBMS_RANDOM.VALUE(1, 10)), -- generate random employee_id between 1 and 10 |
| 99 | + ROUND(DBMS_RANDOM.VALUE(50000, 100000), 2), -- generate random salary between 50000 and 100000 with 2 decimal places |
| 100 | + TRUNC(SYSDATE - DBMS_RANDOM.VALUE(1, 365)), -- generate random start_date between 1 and 365 days ago |
| 101 | + TRUNC(SYSDATE + DBMS_RANDOM.VALUE(1, 365)), -- generate random end_date between today and 365 days from now |
| 102 | + ROUND(DBMS_RANDOM.VALUE(5000, 15000), 2)); -- generate random bonus between 5000 and 15000 with 2 decimal places |
| 103 | + END LOOP; |
| 104 | + COMMIT; |
| 105 | +END; |
| 106 | +/ |
| 107 | + |
| 108 | +-- Generate Sample Employee Salary Data |
| 109 | +BEGIN |
| 110 | + generate_employees_salary(50); -- generate 50 random records |
| 111 | +END; |
| 112 | +/ |
| 113 | + |
| 114 | +-- Cleanup |
| 115 | +-- drop table employees; |
| 116 | +-- drop table employees_salary; |
| 117 | +-- drop procedure generate_employees_salary; |
| 118 | +-- drop procedure add_employees; |
0 commit comments