Views and stored procedures encapsulate logic in the database.
Views
SQL
CREATE VIEW student_stats AS
SELECT s.name,
COUNT(e.id) AS total_courses,
ROUND(AVG(e.score), 1) AS avg_score
FROM students s
LEFT JOIN enrollments e ON s.id = e.student_id
GROUP BY s.id, s.name;
SELECT * FROM student_stats WHERE avg_score > 80;Stored Procedures
SQL
DELIMITER //
CREATE PROCEDURE get_top_students(IN min_score INT)
BEGIN
SELECT s.name, AVG(e.score) AS avg_score
FROM students s
JOIN enrollments e ON s.id = e.student_id
GROUP BY s.id, s.name
HAVING AVG(e.score) >= min_score
ORDER BY avg_score DESC;
END //
DELIMITER ;
CALL get_top_students(80);Tips
- Views simplify complex queries and provide abstraction.
- Stored procedures reduce network traffic for multi-step operations.
🎉 You have completed the MySQL course!