Repository navigation
Expand file tree
/
Copy pathExperiment 03.sql
More file actions
125 lines (109 loc) · 3.4 KB
/
Copy pathExperiment 03.sql
File metadata and controls
125 lines (109 loc) · 3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
CREATE TABLE DEPARTMENT(
DeptID INT PRIMARY KEY,
DeptName VARCHAR(50) NOT NULL,
Location VARCHAR(50)
);
CREATE TABLE PROJECT(
ProjectID INT PRIMARY KEY,
ProjectName VARCHAR(100) NOT NULL,
Budget DECIMAL(12,2),
DeptID INT,
FOREIGN KEY (DeptID) REFERENCES DEPARTMENT(DeptID)
);
CREATE TABLE EMPLOYEE(
EmpID INT PRIMARY KEY,
EmpName VARCHAR(50) NOT NULL,
Salary DECIMAL(10,2) NOT NULL,
JobTitle VARCHAR(50),
DeptID INT,
ProjectID INT,
FOREIGN KEY (DeptID) REFERENCES DEPARTMENT(DeptID),
FOREIGN KEY (ProjectID) REFERENCES PROJECT(ProjectID)
);
INSERT INTO DEPARTMENT VALUES
(1,'HR','Delhi'),
(2,'IT','Noida'),
(3,'Finance','Lucknow'),
(4,'Marketing','Kanpur'),
(5,'Operations','Agra');
INSERT INTO PROJECT VALUES
(101,'Employee Portal',500000,2),
(102,'AI Analytics',800000,2),
(103,'Payroll System',450000,3),
(104,'Digital Marketing',350000,4),
(105,'Recruitment Drive',250000,1),
(106,'Inventory System',600000,5),
(107,'Cloud Migration',900000,2),
(108,'Financial Dashboard',700000,3);
INSERT INTO EMPLOYEE VALUES
(1,'Aarav Sharma',45000,'HR Executive',1,105),
(2,'Ananya Verma',52000,'HR Manager',1,105),
(3,'Rohan Gupta',48000,'Recruiter',1,105),
(4,'Priya Singh',55000,'HR Analyst',1,105),
(5,'Kunal Mehta',60000,'HR Manager',1,105),
(6,'Rahul Kapoor',75000,'Software Engineer',2,101),
(7,'Sneha Joshi',82000,'Data Analyst',2,102),
(8,'Aditya Jain',95000,'Senior Developer',2,107),
(9,'Neha Agarwal',88000,'Cloud Engineer',2,107),
(10,'Vivek Mishra',70000,'Software Engineer',2,101),
(11,'Ishita Rao',92000,'Data Scientist',2,102),
(12,'Arjun Malhotra',68000,'System Analyst',2,101),
(13,'Simran Kaur',78000,'Software Engineer',2,107),
(14,'Mohit Yadav',65000,'Developer',2,101),
(15,'Tanya Sinha',72000,'Data Analyst',2,102),
(16,'Riya Sharma',58000,'Accountant',3,103),
(17,'Aman Srivastava',67000,'Financial Analyst',3,108),
(18,'Pooja Tiwari',72000,'Accountant',3,103),
(19,'Nikhil Bansal',85000,'Finance Manager',3,108),
(20,'Kriti Saxena',62000,'Financial Analyst',3,108),
(21,'Yash Verma',50000,'Marketing Executive',4,104),
(22,'Muskan Khan',56000,'Marketing Analyst',4,104),
(23,'Harsh Vardhan',75000,'Marketing Manager',4,104),
(24,'Divya Pandey',60000,'Content Strategist',4,104),
(25,'Ritesh Kumar',54000,'Marketing Executive',4,104),
(26,'Sakshi Gupta',48000,'Operations Executive',5,106),
(27,'Deepak Chauhan',65000,'Operations Manager',5,106),
(28,'Nisha Patel',58000,'Operations Analyst',5,106),
(29,'Varun Singh',62000,'Inventory Executive',5,106),
(30,'Megha Arora',70000,'Operations Analyst',5,106);
-- Selection
SELECT *
FROM EMPLOYEE
WHERE Salary > 80000;
-- Projection
SELECT EmpName, JobTitle, Salary
FROM EMPLOYEE;
-- Aggregate Functions
SELECT COUNT(*) AS TotalEmployees
FROM EMPLOYEE;
SELECT SUM(Salary) AS TotalSalary
FROM EMPLOYEE;
SELECT AVG(Salary) AS AverageSalary
FROM EMPLOYEE;
SELECT MAX(Salary) AS HighestSalary
FROM EMPLOYEE;
SELECT MIN(Salary) AS LowestSalary
FROM EMPLOYEE;
-- GROUP BY
SELECT DeptID, COUNT(*) AS EmployeeCount
FROM EMPLOYEE
GROUP BY DeptID;
-- HAVING
SELECT DeptID, COUNT(*) AS EmployeeCount
FROM EMPLOYEE
GROUP BY DeptID
HAVING COUNT(*) > 5;
-- CASE Expression
SELECT
EmpName,
Salary,
CASE
WHEN Salary >= 80000 THEN 'High Salary'
WHEN Salary >= 60000 THEN 'Medium Salary'
ELSE 'Low Salary'
END AS SalaryCategory
FROM EMPLOYEE;
-- ORDER BY
SELECT EmpName, Salary
FROM EMPLOYEE
ORDER BY Salary DESC;