Что такое SQL и для чего он используется?

«Что такое SQL и для чего он используется?» — вопрос из категории Базы данных и SQL, который задают на 25% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

SQL (Structured Query Language) — это декларативный язык программирования, предназначенный для управления данными в реляционных системах управления базами данных (RDBMS), таких как PostgreSQL, MySQL, Oracle.

Основные категории команд (по стандарту ANSI):

Категория Ключевые операторы Назначение
DDL (Data Definition Language) CREATE, ALTER, DROP, TRUNCATE Определение и изменение структуры БД (таблицы, индексы).
DML (Data Manipulation Language) SELECT, INSERT, UPDATE, DELETE, MERGE Манипуляция данными: чтение, добавление, изменение, удаление.
DCL (Data Control Language) GRANT, REVOKE Управление правами доступа пользователей.
TCL (Transaction Control Language) BEGIN, COMMIT, ROLLBACK, SAVEPOINT Управление транзакциями для обеспечения целостности данных (ACID).

Базовый пример запроса SELECT с JOIN:

-- Выборка заказов с информацией о клиентах
SELECT
    o.order_id,
    o.order_date,
    c.customer_name,
    c.email
FROM orders o
INNER JOIN customers c ON o.customer_id = c.customer_id -- Соединение таблиц
WHERE o.status = 'shipped'
  AND o.order_date >= '2024-01-01'
ORDER BY o.order_date DESC
LIMIT 10;

Роль SQL в QA Automation:

  • Валидация данных: Проверка корректности записей в БД после выполнения тестовых сценариев (например, после API-вызова POST /users).
  • Подготовка тестовых данных: Наполнение БД специфичными данными перед запуском тестовой серии (INSERT, фикстуры).
  • Очистка окружения: Удаление тестовых данных после выполнения тестов (DELETE в рамках @AfterEach).
  • Проверка бизнес-логики: Выполнение сложных запросов для проверки агрегаций, связей и консистентности данных.