Write Safe and Useful SQL Queries
Practice filtering, joining, grouping, and parameterizing SQL queries for dependable application reports.
Explanation
SQL queries should communicate intent clearly and return only the data an application needs. Joins connect related tables, aggregation summarizes records, and parameters keep untrusted values separate from query structure.
Students create an enrollment report, inspect its results, and replace unsafe string concatenation with a prepared statement. They also compare query output against expected test cases.
Learning activities
- Write a join across students, enrollments, and sections.
- Create an aggregate count by course.
- Convert an unsafe query to a prepared statement.
Code example
sql
SELECT c.code, COUNT(*) AS student_count
FROM courses c
JOIN sections s ON s.course_id = c.id
JOIN enrollments e ON e.section_id = s.id
GROUP BY c.id, c.code;Knowledge check
1. What should be used for untrusted query values?
- Prepared parameters
- String concatenation
- HTML comments
Show answer
Prepared parameters