Sobes.tech
Назад к вопросам
Junior — Middle
70

Обладаешь ли навыками написания подготовленных SQL-запросов?

Компании, где спрашивали
Perfomance lab

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Да, подготовленные SQL-запросы используются уверенно. Понимание их нужно для защиты от SQL-инъекций и для безопасной подстановки параметров. Важно уметь отличать параметры запроса от строковой конкатенации и объяснить, почему это лучше.

Определение:

Подготовленный SQL-запрос — это запрос с параметрами, который сначала компилируется СУБД, а значения подставляются отдельно при выполнении. Такой подход повышает безопасность и обычно упрощает повторное использование одного и того же запроса с разными данными. В QA Automation это особенно важно при проверке данных в БД через автотесты.

Пример использования:

Например, нужно найти пользователя по email. Вместо сборки SQL-строки через конкатенацию используется параметр:

SELECT id, email, status
FROM users
WHERE email = ?;

И при выполнении запроса отдельно передается значение email, например test@example.com.

Пояснение кода:

Код показывает запрос с плейсхолдером ?, который обозначает место для параметра. СУБД получает сам текст запроса и отдельно значение параметра, поэтому не интерпретирует его как часть SQL-кода.
Шаги такие: сначала подготавливается шаблон запроса, затем в него безопасно передается конкретный email, после чего выполняется поиск только по этому значению.

Ключевые моменты:

  • Защищают от SQL-инъекций.
  • Параметры передаются отдельно от текста запроса.
  • Удобны для повторного выполнения одного и того же запроса с разными данными.
  • Не стоит собирать SQL через конкатенацию строк.
  • В автотестах это один из базовых способов безопасной работы с БД.