Блог
Начинающим

SQL: Основы для тестировщиков

SQL — это язык структурированных запросов, который должен быть знаком каждому тестировщику на базовом уровне. На каждом собеседовании QA-инженеры сталкиваются с вопросами по SQL или получают практические задания, требующие написания запросов.
В этой статье мы рассмотрим, что такое SQL и какие основные запросы должен знать каждый тестировщик, чтобы работать с базами данных.

Что такое SQL?

SQL — это аббревиатура, которая расшифровывается как "Structured Query Language". Этот язык используется для создания, модификации и управления данными в реляционных базах данных, управляемых соответствующими системами управления базы данных. Когда мы выполняем SQL-запрос, база данных отвечает на него, используя собственный протокол, основанный на протоколе TCP.

Зачем SQL для тестировщика?

SQL-запросы предоставляют информацию для тестирования: они помогают определить, находятся ли данные в нужной таблице, были ли они записаны в базу данных и в правильном ли формате они представлены.

Распространенные запросы и функции SQL в тестировании

Ниже мы рассмотрим девять основных запросов и функций, которые часто встречаются на собеседованиях. Эти запросы будут основываться на таблице "USERS", которая содержит следующие столбцы: user_id, first_name, last_name, email, town и age.

SQL-запрос SELECT

Если нам нужно получить все данные из столбца first_name, то наш запрос будет выглядеть следующим образом:
SELECT first_name * FROM users;
Чтобы получить информацию из нескольких колонок, используем следующий запрос:
SELECT first_name, last_name * FROM users;

Фильтрация с помощью WHERE

Фильтрация данных осуществляется с помощью команды WHERE. Например, если мы хотим выбрать людей старше 30 лет из нашей таблицы, то используем следующий запрос:
SELECT * FROM users WHERE age > 30;
Для команды WHERE важно запомнить все знаки сравнения: = (равно),!= (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно).

Запрос ORDER BY

Этот запрос позволяет сортировать данные по возрастанию и убыванию. По умолчанию данные сортируются по возрастанию. Если нам нужно просто отсортировать все данные по возрастанию, например, по возрасту, то наш запрос будет выглядеть следующим образом:
SELECT * FROM users ORDER BY age;
Для сортировки по убыванию возраста, а по возрастанию имени можно использовать запрос:
SELECT * FROM users ORDER BY DESC age; first_name ASC;
где DESC означает сортировку по убыванию, а ASC — по возрастанию.

Запрос на ограничение выборки

Для ограничения выборки в SQL существуют две команды: LIMIT и OFFSET. LIMIT устанавливает максимальный лимит данных, а OFFSET — смещение выборки. Например, запрос:
SELECT * FROM users ORDER BY age LIMIT 30 OFFSET 25;
покажет первые 30 пользователей, отсортированных по возрасту, со смещением на 25 человек.

Фильтрация по диапазону

Чтобы избежать написания длинных запросов с командой WHERE, таких как:
SELECT * FROM users WHERE age >= 30 AND age <= 45;
мы можем использовать команду BETWEEN:
SELECT * FROM users WHERE age BETWEEN 30 AND 45;

Запрос на уникальные записи

Для извлечения уникальных записей из таблицы используется команда DISTINCT:
SELECT DISTINCT town * FROM users;

Агрегатные функции

В SQL запросах существует следующие агрегатные функции:
COUNT — подсчет количества записей
SUM — сумма значений
AVG — среднее значение
MAX — максимальное значение
MAX — максимальное значение
Давайте рассмотрим, как использовать эти функции в запросах:
Чтобы посчитать количество записей в таблице users:
SELECT COUNT(*) * FROM users;
Расчет суммы возрастов всех людей:
SELECT SUM (age) * FROM users;
Среднее значение:
SELECT AVG (age) * FROM users;
Максимальное значение:
SELECT MAX (age) * FROM users;
Минимальное значение:
SELECT MIN (age) * FROM users;

Группировка

Допустим, у нас есть таблица с пользователями, и нам нужно посчитать средний возраст пользователей из Москвы. Это можно сделать за один запрос с помощью группировки. СУБД виртуально разделит таблицу на группы городов и подсчитает средний возраст:
SELECT town, AVG (age) * FROM users GROUP BY town;

Фильтрация с помощью HAVING

Фильтрацию после группировки можно выполнить с помощью команды HAVING. Например, если нам нужно вывести города со средним возрастом больше 30 лет, то запрос будет выглядеть следующим образом:
SELECT town, AVG(age) FROM users GROUP BY town HAVING AVG(age) > 30 ORDER BY town;
Существует множество нюансов работы с базами данных, которые могут привести к ошибкам, например, неправильное расположение синтаксисов или отсутствие правильной пунктуации. Так как этот вопрос часто встречается на собеседованиях, отработать SQL-запросы можно только на практике. Только работа над своими ошибками поможет вам лучше освоить работу с базами данных.

Контакты

Телеграм-бот для связи: https://t.me/quality_academy_bot
Телеграм-канал школы: https://t.me/quality_academy
Отзывы учеников: https://t.me/+C2yITW3SfQ05ZjJi
Сайт школы: https://quality-academy.ru/
Помощь в трудоустройстве: https://quality-academy.ru/career