Information Management and Databases

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

  1. Write a join across students, enrollments, and sections.
  2. Create an aggregate count by course.
  3. 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

References