MySQL Views and Stored Procedures

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!