SQL Queries and Answers
1. Primary Key in EMPLOYEE table: E_NO
2. Primary Key in DEPT table: D_CODE
3. Degree and Cardinality of EMPLOYEE table: Degree = 6, Cardinality = 6
4. Degree and Cardinality of DEPT table: Degree = 3, Cardinality = 5
SQL Queries:
-- Insert new rows in EMPLOYEE table
INSERT INTO EMPLOYEE (E_NO, NAME, DOJ, DOB, GENDER, D_CODE, Salary)
VALUES
(1006, 'Rahul', '2019-11-06', '1992-01-04', 'MALE', 'D003', 156000),
(1008, 'Sonam', '2022-01-06', '1991-04-06', 'FEMALE', 'D005', 167000);
-- Display E_NO, NAME, GENDER in descending order
SELECT E_NO, NAME, GENDER FROM EMPLOYEE ORDER BY E_NO DESC;
-- Display NAME of 'FEMALE' employees
SELECT NAME FROM EMPLOYEE WHERE GENDER = 'FEMALE';
-- Employees born between '1987-01-01' and '1991-12-01'
SELECT E_NO, NAME FROM EMPLOYEE WHERE DOB BETWEEN '1987-01-01' AND '1991-12-01';
-- Employees in 'MEDIA' or 'FINANCE' department
SELECT EMPLOYEE.NAME, DEPT.CITY FROM EMPLOYEE
JOIN DEPT ON EMPLOYEE.D_CODE = DEPT.D_CODE
WHERE DEPT.D_NAME IN ('MEDIA', 'FINANCE');
-- Employees whose name starts with 'R'
SELECT NAME FROM EMPLOYEE WHERE NAME LIKE 'R%';
-- Employees whose name contains 'n'
SELECT NAME FROM EMPLOYEE WHERE NAME LIKE '%n%';
-- Employees with exactly 5-letter names
SELECT NAME FROM EMPLOYEE WHERE LENGTH(NAME) = 5;
-- Departments ending with 'G' and city 'DELHI'
SELECT D_NAME, CITY FROM DEPT WHERE D_NAME LIKE '%G' AND CITY = 'DELHI';
-- Maximum SALARY of EMPLOYEE table
SELECT MAX(SALARY) AS MAX_SALARY FROM EMPLOYEE;
-- Delete employees younger than 25
DELETE FROM EMPLOYEE WHERE YEAR(CURDATE()) - YEAR(DOB) < 25;
-- Update SALARY to 230000 for E_NO = 1004
UPDATE EMPLOYEE SET SALARY = 230000 WHERE E_NO = 1004;
-- Move DOB column before DOJ
ALTER TABLE EMPLOYEE MODIFY DOB DATE BEFORE DOJ;
-- Add MOBILE column before SALARY
ALTER TABLE EMPLOYEE ADD MOBILE INT(20) BEFORE SALARY;
-- Set SALARY to 300000 for NULL age
UPDATE EMPLOYEE SET SALARY = 300000 WHERE DOB IS NULL;
-- Increase SALARY of all employees by 30000
UPDATE EMPLOYEE SET SALARY = SALARY + 30000;
-- Display average SALARY
SELECT AVG(SALARY) AS AVERAGE_SALARY FROM EMPLOYEE;
-- Employees with SALARY > 200000 in ascending order
SELECT NAME FROM EMPLOYEE WHERE SALARY > 200000 ORDER BY NAME ASC;
-- Department-wise average salary
SELECT D_CODE, AVG(SALARY) AS AVG_SALARY FROM EMPLOYEE GROUP BY D_CODE;
-- Total number of departments
SELECT COUNT(*) AS TOTAL_DEPARTMENTS FROM DEPT;
-- Delete employees whose D_CODE is not 'D001'
DELETE FROM EMPLOYEE WHERE D_CODE <> 'D001';
-- Employees who don't live in 'DELHI'
SELECT E_NO, NAME, SALARY FROM EMPLOYEE
JOIN DEPT ON EMPLOYEE.D_CODE = DEPT.D_CODE
WHERE DEPT.CITY <> 'DELHI';