Qn2 Database
Qn2 Database
a. employees Table
Once this table is successfully created, you can proceed to create the employees table that
references it. Here's the updated SQL for the employees table to match this structure:
sql
Copy code
CREATE TABLE employees (
employeeId INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
address VARCHAR(255) NOT NULL,
departmentId INT NOT NULL,
FOREIGN KEY (departmentId) REFERENCES departments(departmentId)
);
c. projects Table
d. employeeProjects Table
sql
Copy code
CREATE TABLE employeeProjects (
employeeId INT NOT NULL,
projectId INT NOT NULL,
hoursWorked INT NOT NULL,
PRIMARY KEY (employeeId, projectId),
FOREIGN KEY (employeeId) REFERENCES employees(employeeId),
FOREIGN KEY (projectId) REFERENCES projects(projectId)
);
3. Insert Data
USE employeemanagement;
INSERT INTO departments (departmentName, managerName, managerContact)
VALUES
('HR', 'John White', '123-456-7890'),
('IT', 'Mark Brown', '987-654-3210');
USE employeemanagement;
INSERT INTO employees (name, address, departmentId)
VALUES
('Alice Smith', 'NY, USA', 1),
('Bob Johnson', 'LA, USA', 2);
USE employeemanagement;
INSERT INTO projects (projectCode, projectName)
VALUES
('P101', 'Recruitment'),
('P102', 'Training'),
('P103', 'System Upgrade');
sql
Copy code
INSERT INTO employeeProjects (employeeId, projectId, hoursWorked)
VALUES
(1, 1, 10),
(1, 2, 15),
(2, 3, 20);
a. View Employees
sql
Copy code
SELECT * FROM employees;
b. View Departments
sql
Copy code
SELECT * FROM departments;
c. View Projects
sql
Copy code
SELECT * FROM projects;
sql
Copy code
SELECT * FROM employeeProjects;
To view employee details along with their projects and hours worked, run:
use employeemanagement;
SELECT
e.name AS EmployeeName,
d.departmentName AS Department,
p.projectName AS Project,
ep.hoursWorked AS HoursWorked
FROM
employeeProjects ep
JOIN
employees e ON ep.employeeId = e.employeeId
JOIN
projects p ON ep.projectId = p.projectId
JOIN
departments d ON e.departmentId = d.departmentId;
Final Result: