Vikhyath_11

dba3a

Jul 25th, 2024 (edited)
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.06 KB | None | 0 0
  1. Query to create tables:
  2.  
  3.  Department Table –
  4.  
  5. CREATE TABLE DEPARTMENT (
  6. DNo INT PRIMARY KEY,
  7. DName VARCHAR(50),
  8. MgrSSN CHAR(9),
  9. MgrStartDate DATE
  10. );
  11.  
  12.  Employee Table –
  13.  
  14. CREATE TABLE EMPLOYEE (
  15. SSN CHAR(9) PRIMARY KEY,
  16. Name VARCHAR(50),
  17. Address VARCHAR(100),
  18. Sex CHAR(1),
  19. Salary DECIMAL(10, 2),
  20. SuperSSN CHAR(9),
  21. DNo INT,
  22. FOREIGN KEY (SuperSSN) REFERENCES EMPLOYEE(SSN),
  23. FOREIGN KEY (DNo) REFERENCES DEPARTMENT(DNo)
  24. );
  25.  
  26.  Dlocation Table –
  27.  
  28. CREATE TABLE DLOCATION (
  29. DNo INT,
  30. DLoc VARCHAR(50),
  31. PRIMARY KEY (DNo, DLoc),
  32. FOREIGN KEY (DNo) REFERENCES DEPARTMENT(DNo)
  33. );
  34.  
  35.  Project Table –
  36.  
  37. CREATE TABLE PROJECT (
  38. PNo INT PRIMARY KEY,
  39. PName VARCHAR(50),
  40. PLocation VARCHAR(50),
  41. DNo INT,
  42. FOREIGN KEY (DNo) REFERENCES DEPARTMENT(DNo)
  43. );
  44.  
  45.  Works_on Table –
  46.  
  47. CREATE TABLE WORKS_ON (
  48. SSN CHAR(9),
  49. PNo INT,
  50. Hours DECIMAL(5, 2),
  51. PRIMARY KEY (SSN, PNo),
  52. FOREIGN KEY (SSN) REFERENCES EMPLOYEE(SSN),
  53. FOREIGN KEY (PNo) REFERENCES PROJECT(PNo)
  54. );
  55.  
  56. Query to insert values into the table:
  57.  
  58.  Department Table –
  59.  
  60. INSERT INTO DEPARTMENT VALUES (1, 'HR', '123456789', '01-JAN-2020');
  61. INSERT INTO DEPARTMENT VALUES (2, 'Engineering', '987654321', '15-MAR-2019');
  62. INSERT INTO DEPARTMENT VALUES (3, 'Marketing', '456789123', '10-JUN-2021');
  63. INSERT INTO DEPARTMENT VALUES (4, 'Sales', '789123456', '23-NOV-2018');
  64. INSERT INTO DEPARTMENT VALUES (5, 'Accounts', '321654987', '01-AUG-2017');
  65.  
  66.  Employee Table –
  67.  
  68. INSERT INTO EMPLOYEE VALUES ('123456789', 'John Doe', '123 Elm St', 'M',
  69. 50000, NULL, 1);
  70. INSERT INTO EMPLOYEE VALUES ('987654321', 'Jane Smith', '456 Oak St', 'F',
  71. 60000, '123456789', 2);
  72. INSERT INTO EMPLOYEE VALUES ('456789123', 'Robert Hegde', '789 Pine St', 'M',
  73. 55000, '987654321', 3);
  74. INSERT INTO EMPLOYEE VALUES ('789123456', 'Maria Johnson', '101 Maple St',
  75. 'F', 45000, '456789123', 4);
  76. INSERT INTO EMPLOYEE VALUES ('321654987', 'Michael Hegde', '202 Birch St',
  77. 'M', 70000, '789123456', 5);
  78.  
  79.  Dlocation Table –
  80.  
  81. INSERT INTO DLOCATION VALUES (1, 'New York');
  82. INSERT INTO DLOCATION VALUES (2, 'San Francisco');
  83. INSERT INTO DLOCATION VALUES (3, 'Los Angeles');
  84. INSERT INTO DLOCATION VALUES (4, 'Chicago');
  85. INSERT INTO DLOCATION VALUES (5, 'Houston');
  86.  
  87.  Project Table –
  88.  
  89. INSERT INTO PROJECT VALUES (101, 'Project A', 'New York', 1);
  90. INSERT INTO PROJECT VALUES (102, 'Project B', 'San Francisco', 2);
  91. INSERT INTO PROJECT VALUES (103, 'AI', 'Los Angeles', 3);
  92. INSERT INTO PROJECT VALUES (104, 'Project D', 'Chicago', 4);
  93. INSERT INTO PROJECT VALUES (105, 'Project E', 'Houston', 5);
  94.  
  95.  Works_on Table –
  96.  
  97. INSERT INTO WORKS_ON VALUES ('123456789', 101, 20);
  98. INSERT INTO WORKS_ON VALUES ('987654321', 102, 25);
  99. INSERT INTO WORKS_ON VALUES ('456789123', 103, 30);
  100. INSERT INTO WORKS_ON VALUES ('789123456', 104, 35);
  101. INSERT INTO WORKS_ON VALUES ('321654987', 105, 40);
  102. INSERT INTO WORKS_ON VALUES ('123456789', 103, 15);
  103. INSERT INTO WORKS_ON VALUES ('456789123', 105, 10);
  104.  
  105. Query for given questions:
  106.  
  107. 1) SELECT DISTINCT P.PNo
  108. FROM PROJECT P
  109. LEFT JOIN WORKS_ON W ON P.PNo = W.PNo
  110. LEFT JOIN EMPLOYEE E1 ON W.SSN = E1.SSN
  111. LEFT JOIN DEPARTMENT D ON P.DNo = D.DNo
  112. LEFT JOIN EMPLOYEE E2 ON D.MgrSSN = E2.SSN
  113. WHERE E1.Name LIKE '%Hegde%' OR E2.Name LIKE '%Hegde%';
  114.  
  115. 2) SELECT E.SSN, E.Name, E.Salary * 1.10 AS NewSalary
  116. FROM EMPLOYEE E
  117. JOIN WORKS_ON W ON E.SSN = W.SSN
  118. JOIN PROJECT P ON W.PNo = P.PNo
  119. WHERE P.PName = 'AI';
  120.  
  121. 3) SELECT SUM(E.Salary) AS TotalSalary,
  122. MAX(E.Salary) AS MaxSalary,
  123. MIN(E.Salary) AS MinSalary,
  124. AVG(E.Salary) AS AvgSalary
  125. FROM EMPLOYEE E
  126. JOIN DEPARTMENT D ON E.DNo = D.DNo
  127. WHERE D.DName = 'Accounts';
  128.  
  129. 4) SELECT E.Name
  130. FROM EMPLOYEE E
  131. WHERE NOT EXISTS (
  132. SELECT P.PNo
  133. FROM PROJECT P
  134. WHERE P.DNo = 5
  135. AND NOT EXISTS (
  136. SELECT W.SSN
  137. FROM WORKS_ON W
  138. WHERE W.PNo = P.PNo AND W.SSN = E.SSN
  139. )
  140. );
  141.  
  142. 5) SELECT D.DNo, COUNT(E.SSN) AS NumEmployees
  143. FROM DEPARTMENT D
  144. JOIN EMPLOYEE E ON D.DNo = E.DNo
  145. WHERE E.Salary > 60000
  146. GROUP BY D.DNo
  147. HAVING COUNT(E.SSN) >= 1;
Advertisement
Add Comment
Please, Sign In to add comment