0% found this document useful (0 votes)
2 views

SQL Crud StudentDB

The document outlines SQL commands for creating and managing a database named StudentDB, including CRUD operations, aggregate functions, joins, subqueries, and stored procedures. It provides examples of creating tables, inserting, updating, and deleting records, as well as performing various queries to analyze student data. Additionally, it includes stored procedures for adding, updating, and deleting students, as well as retrieving data based on specific criteria.

Uploaded by

MOHIT BHATI
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

SQL Crud StudentDB

The document outlines SQL commands for creating and managing a database named StudentDB, including CRUD operations, aggregate functions, joins, subqueries, and stored procedures. It provides examples of creating tables, inserting, updating, and deleting records, as well as performing various queries to analyze student data. Additionally, it includes stored procedures for adding, updating, and deleting students, as well as retrieving data based on specific criteria.

Uploaded by

MOHIT BHATI
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

SQL Queries - CRUD, Aggregate

Functions, Joins, Subqueries, Stored


Procedures
Database & Table Creation
CREATE DATABASE StudentDB;

USE StudentDB;

CRUD Operations
-- 1. Create Students table

CREATE TABLE Students (


ID INT PRIMARY KEY,
Name VARCHAR(50),
Age INT,
Department VARCHAR(50)
);

-- 2. Insert five records

INSERT INTO Students VALUES


(1, 'Alice', 21, 'CS'),
(2, 'Bob', 19, 'Math'),
(3, 'Charlie', 20, 'Physics'),
(4, 'David', 22, 'CS'),
(5, 'Eva', 23, 'Math');

-- 3. Update age where ID = 3

UPDATE Students SET Age = 22 WHERE ID = 3;

-- 4. Delete student where ID = 5

DELETE FROM Students WHERE ID = 5;

-- 5. Retrieve all records

SELECT * FROM Students;

-- 6. Retrieve names of students aged over 20


SELECT Name FROM Students WHERE Age > 20;

-- 7. Retrieve distinct departments

SELECT DISTINCT Department FROM Students;

-- 8. Count total students

SELECT COUNT(*) AS Total_Students FROM Students;

-- 9. Add new column Email

ALTER TABLE Students ADD Email VARCHAR(100);

-- 10. Drop Email column

ALTER TABLE Students DROP COLUMN Email;

Aggregate Functions
-- 11. Average age

SELECT AVG(Age) AS Avg_Age FROM Students;

-- 12. Minimum and maximum age

SELECT MIN(Age) AS Min_Age, MAX(Age) AS Max_Age FROM Students;

-- 13. Total students in each department

SELECT Department, COUNT(*) AS Total FROM Students GROUP BY Department;

-- 14. Departments with more than 2 students

SELECT Department FROM Students GROUP BY Department HAVING COUNT(*) >=2;

-- 15. Sum of all ages

SELECT SUM(Age) AS Total_Age FROM Students;

-- 16. Department with highest avg age

SELECT Department FROM Students GROUP BY Department ORDER BY AVG(Age) DESC


LIMIT 1;

-- 17. Students whose name starts with 'A'

SELECT COUNT(*) FROM Students WHERE Name LIKE 'A%';

-- 18. Average age per department, sorted descending


SELECT Department, AVG(Age) AS Avg_Age FROM Students GROUP BY Department ORDER
BY Avg_Age DESC;

-- 19. Total number of distinct ages

SELECT COUNT(DISTINCT Age) FROM Students;

-- 20. Department with max students

SELECT Department FROM Students GROUP BY Department ORDER BY COUNT(*) DESC


LIMIT 1;

Joins
-- Sample Departments table

CREATE TABLE Departments (Department VARCHAR(50) PRIMARY KEY, DeptName


VARCHAR(50));

INSERT INTO Departments (Department, DeptName) VALUES


('CS', 'Computer Science'),
('EE', 'Electrical Engineering'),
('ME', 'Mechanical Engineering'),
('CE', 'Civil Engineering'),
('BIO', 'Biotechnology');

-- Sample Projects table

CREATE TABLE Projects (StudentID INT, ProjectName VARCHAR(50));

INSERT INTO Projects (StudentID, ProjectName) VALUES


(1, 'AI Chatbot'),
(2, 'Smart Irrigation'),
(3, 'Self Driving Car'),
(4, 'DNA Analysis'),
(5, 'Bridge Design');

-- 21. INNER JOIN

SELECT * FROM Students AS s INNER JOIN Departments AS d ON s.Department =


d.Department;

-- 22. RIGHT JOIN

SELECT s.Name, d.DeptName FROM Students AS s RIGHT JOIN Departments AS d ON


s.Department = d.Department;

-- 23. LEFT JOIN


SELECT s.Name, d.DeptName FROM Students AS s LEFT JOIN Departments AS d ON
s.Department = d.Department;

-- 24. Students and their projects (LEFT JOIN)

SELECT s.Name, p.ProjectName FROM Students AS s LEFT JOIN Projects AS p ON s.ID =


p.StudentID;

-- 25. Students without departments

SELECT s.Name FROM Students AS s LEFT JOIN Departments AS d ON s.Department =


d.Department WHERE d.Department IS NULL;

-- 26. FULL OUTER JOIN (via UNION)

SELECT s.Name, p.ProjectName FROM Students AS s LEFT JOIN Projects AS p ON s.ID =


p.StudentID
UNION
SELECT s.Name, p.ProjectName FROM Students AS s RIGHT JOIN Projects AS p ON s.ID =
p.StudentID;

Subqueries
-- 27. Students older than average age

SELECT * FROM Students WHERE Age > (SELECT AVG(Age) FROM Students);

-- 28. Students in departments with more than 2 students

SELECT * FROM Students WHERE Department IN (SELECT Department FROM Students


GROUP BY Department HAVING COUNT(*) > 2);

-- 29. Students older than all in Projects table

SELECT * FROM Students WHERE Age > ALL (SELECT Age FROM Students S JOIN Projects P
ON S.ID = P.StudentID);

-- 30. Departments with no students

SELECT Department FROM Departments WHERE Department NOT IN (SELECT DISTINCT


Department FROM Students);

Stored Procedures
-- 31. Insert new student

DELIMITER //
CREATE PROCEDURE AddStudent(IN sid INT, IN sname VARCHAR(50), IN sage INT, IN
sdept VARCHAR(50))
BEGIN
INSERT INTO Students(ID, Name, Age, Department) VALUES (sid, sname, sage, sdept);
END //
DELIMITER ;

-- 32. Update student age

DELIMITER //
CREATE PROCEDURE UpdateAge(IN sid INT, IN newAge INT)
BEGIN
UPDATE Students SET Age = newAge WHERE ID = sid;
END //
DELIMITER ;

-- 33. Delete student by ID

DELIMITER //
CREATE PROCEDURE DeleteStudent(IN sid INT)
BEGIN
DELETE FROM Students WHERE ID = sid;
END //
DELIMITER ;

-- 34. Get students by department

DELIMITER //
CREATE PROCEDURE GetStudentsByDept(IN sdept VARCHAR(50))
BEGIN
SELECT * FROM Students WHERE Department = sdept;
END //
DELIMITER ;

-- 35. Total students per department

DELIMITER //
CREATE PROCEDURE CountStudentsPerDept()
BEGIN
SELECT Department, COUNT(*) AS Total FROM Students GROUP BY Department;
END //
DELIMITER ;

You might also like