-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStudent_Management.sql
More file actions
133 lines (104 loc) · 2.99 KB
/
Student_Management.sql
File metadata and controls
133 lines (104 loc) · 2.99 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
126
127
128
129
130
131
132
133
CREATE DATABASE Students;
use students;
#CREATE TABLE
create table studentdetails
(sid int(10) primary key,
f_name varchar(20) not null,
l_name varchar(20) not null,
branch varchar(5),
percentage decimal(4,2));
#INSERTING VALUES
insert into studentdetails
values
(121,'k','Kavya','cse',64.6),
(122,'k','Devika','cse',84.6),
(123,'p','darshini','ise',95.67),
(124,'b','Ayesha','aiml',34.00),
(125,'F','smith','ise',87.6),
(126,'s','suhas','cse',75.67),
(127,'b','maha','AIDS',76.00),
(128,'e','jones','AIML',87.6),
(129,'s','suDEEP','AIDS',75.67),
(130,'S','VISHU','CSE',99.00);
#DISPLAYING TABLE
SELECT * FROM STUDENTDETAILS;
SET SQL_SAFE_UPDATES=0;
#MODIFYING DATA TO IN PROPER WAY
UPDATE STUDENTDETAILS SET
F_NAME=UPPER(F_NAME),
L_NAME=UPPER(L_NAME),
BRANCH=UPPER(BRANCH);
SET SQL_SAFE_UPDATES=1;
#ADDING NEW COLUMN
ALTER TABLE STUDENTDETAILS
ADD GRADE VARCHAR(1);
# INSERTING DATA TO NEW COLUMN USING CASE FUNCTION
SET SQL_SAFE_UPDATES=0;
UPDATE studentdetails
SET grade =
CASE
WHEN percentage >= 85 THEN 'A'
WHEN percentage >= 70 AND percentage < 85 THEN 'B'
WHEN percentage >= 60 AND percentage < 70 THEN 'C'
WHEN percentage >= 35 AND percentage < 60 THEN 'D'
ELSE
'F'
END;
# ADDING STUDENT FULNAME COLUMN, ADDING DATA INTO IT AND DELETEING FIRST AND LAST NAME COLUMNS
SET SQL_SAFE_UPDATES=0;
ALTER TABLE STUDENTDETAILS
ADD SNAME VARCHAR(30) NOT NULL
AFTER SID;
SET SQL_SAFE_UPDATES=0;
UPDATE STUDENTDETAILS SET
SNAME=CONCAT(F_NAME,' ',L_NAME);
ALTER TABLE STUDENTDETAILS
DROP F_NAME,
DROP L_NAME;
#DISPLAYING TABLE
SELECT * FROM STUDENTDETAILS;
#count of total students
SELECT COUNT(*) FROM STUDENTDETAILS;
#Display highest percentage
SELECT MAX(PERCENTAGE)
FROM STUDENTDETAILS;
# DISPLAY LOWEST PERCENTAGE
SELECT MIN(PERCENTAGE)
FROM STUDENTDETAILS;
#QUERY TO DISPLAY STUDENTS INFORMATION BASED ON PERCENTAGE USING ORDER BY CLAUSE
SELECT *
FROM STUDENTDETAILS
ORDER BY PERCENTAGE DESC;
# DISPLAY STUDENTS ID AND NAME HAVING 'A' GRADE
SELECT SID,SNAME
FROM STUDENTDETAILS
WHERE GRADE='A';
# DISPLAY GRADE AND NO OF NUMBER STUDENTS
SELECT GRADE,COUNT(SID)
FROM STUDENTDETAILS
GROUP BY GRADE
ORDER BY GRADE;
#DISPLAY NUMBER OF STUDENTS IN EACH BRANCH
SELECT BRANCH,COUNT(SID)
FROM STUDENTDETAILS
GROUP BY BRANCH;
# INFORMATION OF THE TOP STUDENT
# USING LIMIT
SELECT * FROM STUDENTDETAILS
ORDER BY PERCENTAGE DESC
LIMIT 1;
# USING SUBQUERY
SELECT * FROM STUDENTDETAILS
WHERE PERCENTAGE = (SELECT MAX(PERCENTAGE) FROM STUDENTDETAILS);
# CORELATED SUBQUERY
SELECT * FROM STUDENTDETAILS S1 WHERE
(SELECT COUNT(DISTINCT S2.PERCENTAGE)
FROM STUDENTDETAILS S2
WHERE S2.PERCENTAGE>=S1.PERCENTAGE)=1;
# RANK STUDENT USING WINDOW FUNCTIONS
SELECT S.* ,DENSE_RANK() OVER(ORDER BY PERCENTAGE DESC) AS RANK_POSITION
FROM STUDENTDETAILS AS S;
#SECOND HIGEST PERCENTAGE STUDENT DETAILS
SELECT * FROM STUDENTDETAILS WHERE PERCENTAGE=
(SELECT MAX(PERCENTAGE) FROM STUDENTDETAILS
WHERE PERCENTAGE < (SELECT MAX(PERCENTAGE) FROM STUDENTDETAILS));