Defence Management System
Defence Management System
);
RANK VARCHAR(50),
AGE INT,
JOINING_DATE DATE,
DEPT_ID INT,
);
RANK VARCHAR(50),
AGE INT,
DATE_OF_JOINING DATE,
DEPT_ID INT,
);
RANK VARCHAR(50),
AGE INT,
JOINING_DATE DATE,
DEPT_ID INT,
RANK VARCHAR(50),
AGE INT,
JOINING_DATE DATE,
DEPT_ID INT,
);
2. Find all personnel with names that having second letter as 'A'.
mysql> SELECT * FROM PERSONNEL
-> WHERE NAME LIKE '_A%';
+----+------------------+-------------------+------+---------+--------------+----------+
| ID | NAME | RANK | AGE | DEPT_ID | JOINING_DATE | BRANCH |
+----+------------------+-------------------+------+---------+--------------+----------+
| 3 | Rajendra Singh | Admiral | 50 | 103 | 1990-07-20 | Navy |
| 6 | Karambir Singh | Vice Admiral | 48 | 103 | 1995-11-18 | Navy |
| 7 | Sam Manekshaw | Field Marshal | 50 | 101 | 1973-03-20 | Army |
| 8 | Rakesh Sharma | Squadron Leader | 38 | 102 | 1984-09-01 | Airforce |
| 9 | Harita Kaur Deol | Flight Lieutenant | 26 | 104 | 1994-05-15 | Airforce |
+----+------------------+-------------------+------+---------+--------------+----------+
5 rows in set (0.00 sec)
10. Find personnel who belong to the department with the highest number of
members.
mysql> SELECT *
-> FROM PERSONNEL
-> WHERE DEPT_ID = (
-> SELECT DEPT_ID
-> FROM PERSONNEL
-> GROUP BY DEPT_ID
-> ORDER BY COUNT(*) DESC
-> LIMIT 1
-> );
+----+----------------------+-----------------+------+---------+--------------+----------+
| ID | NAME | RANK | AGE | DEPT_ID | JOINING_DATE | BRANCH |
+----+----------------------+-----------------+------+---------+--------------+----------+
| 2 | Arjan Singh | Marshal | 45 | 102 | 1985-04-14 | Airforce |
| 4 | Abhinandan Varthaman | Wing Commander | 35 | 102 | 2004-01-15 | Airforce |
| 8 | Rakesh Sharma | Squadron Leader | 38 | 102 | 1984-09-01 | Airforce |
+----+----------------------+-----------------+------+---------+--------------+----------+
3 rows in set (0.00 sec)
11. Create a view to list all personnel and their department names.
mysql> CREATE VIEW PersonnelWithDept AS
-> SELECT P.ID, P.NAME, P.RANK, D.DEPT_NAME
-> FROM PERSONNEL P
-> INNER JOIN DEPARTMENT D ON P.DEPT_ID = D.DEPT_ID;
Query OK, 0 rows affected (0.01 sec)
12. Create an index on the RANK column in the PERSONNEL table for faster
querying.
mysql> CREATE INDEX idx_rank ON PERSONNEL(`RANK`);
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
13. Create a trigger to automatically log deletions from the NAVY table.
mysql> CREATE TRIGGER log_navy_deletion
-> AFTER DELETE ON NAVY
-> FOR EACH ROW
-> INSERT INTO DELETION_LOG (TABLE_NAME, RECORD_ID, DELETED_AT)
-> VALUES ('NAVY', OLD.N_ID, NOW());
Query OK, 0 rows affected (0.01 sec)
20. List all NAVY personnel along with their details from the PERSONNEL
table.
mysql> SELECT N.N_ID, N.N_NAME, P.AGE, P.JOINING_DATE
-> FROM NAVY N
-> INNER JOIN PERSONNEL P ON N.N_ID = P.ID;
-> //
+------+----------------+------+--------------+
| N_ID | N_NAME | AGE | JOINING_DATE |
+------+----------------+------+--------------+
| 1 | SHRAVANI | 29 | 1997-06-06 |
| 2 | Rajesh Sharma | 45 | 1985-04-14 |
| 3 | Aditya Varma | 50 | 1990-07-20 |
| 4 | Sneha Patil | 35 | 2004-01-15 |
| 5 | Amit Singh | 30 | 2006-09-25 |
| 6 | Meera Kulkarni | 48 | 1995-11-18 |
+------+----------------+------+--------------+
6 rows in set (0.00 sec)