Базы данных

Базы данных

Вопросы и материалы по теме «Базы данных»

17 аудио · 6:11

Olga·

Что такое база данных и зачем она нужна тестировщику?

0:36
База данных — это структурированное хранилище данных, организованное в виде таблиц, связанных между собой. Тестировщик использует БД для: Проверки корректности сохранения данных. Анализа причин дефектов. Сравнения ожидаемых и фактических данных. Подготовки тестовых данных. Пример: После регистрации пользователя проверить, что запись появилась в таблице users: SELECT * FROM users WHERE email = 'test@test.com';

Какие основные типы данных используются в БД?

0:17
Числовые — INT, BIGINT, FLOAT. Строковые — VARCHAR, TEXT. Булевые — BOOLEAN. Дата и время — DATE, TIMESTAMP. Пример: id — INT email — VARCHAR created_at — TIMESTAMP

Основные SQL-операторы, которые должен знать тестировщик?

0:26
DQL: SELECT — выборка данных. DML: INSERT — вставка. UPDATE — обновление. DELETE — удаление. DDL: CREATE — создание таблицы. ALTER — изменение структуры. DROP — удаление таблицы. Пример: INSERT INTO users (email) VALUES ('test@test.com');

Как работает SELECT и базовая выборка?

0:16
SELECT используется для получения данных из таблицы. Основные части: SELECT — что выбираем. FROM — откуда. WHERE — фильтр. Пример: SELECT id, email FROM users WHERE active = true;

Что такое WHERE, ORDER BY и LIMIT?

0:15
WHERE — фильтрация записей. ORDER BY — сортировка. LIMIT — ограничение количества строк. Пример: SELECT * FROM users WHERE age > 18 ORDER BY age DESC LIMIT 10;

Что такое JOIN и зачем он нужен?

0:38
JOIN используется для объединения данных из нескольких таблиц. Типы JOIN: INNER JOIN — только совпадающие записи. LEFT JOIN — все записи из левой таблицы + совпадения. RIGHT JOIN — аналогично. FULL JOIN — все записи из обеих таблиц. Пример: SELECT u.name, o.order_id FROM users u INNER JOIN orders o ON u.id = o.user_id;

Пример JOIN с 2+ таблицами (уровень middle)

0:24
SELECT u.name, o.order_id, p.name FROM users u JOIN orders o ON u.id = o.user_id JOIN products p ON o.product_id = p.id; Что происходит: Берем пользователя. Присоединяем заказы. Присоединяем товары.

Что такое агрегатные функции?

0:14
Функции для анализа данных: COUNT — количество. SUM — сумма. AVG — среднее. MIN / MAX — минимум / максимум. Пример: SELECT COUNT(*) FROM orders;

Что такое GROUP BY и HAVING?

0:20
GROUP BY — группировка данных. HAVING — фильтрация после группировки. Пример: SELECT user_id, COUNT(*) as orders_count FROM orders GROUP BY user_id HAVING COUNT(*) > 5;

Пример сложного SQL-запроса (уровень middle+)

0:41
SELECT u.name, COUNT(o.id) as orders_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.active = true GROUP BY u.name HAVING COUNT(o.id) > 3 ORDER BY orders_count DESC; Этот запрос: Фильтрует пользователей. Считает заказы. Оставляет только активных. Сортирует результат.

Что такое подзапрос?

0:17
Подзапрос — это SQL-запрос внутри другого запроса. Используется для: Фильтрации. Получения промежуточных данных. Пример: SELECT * FROM users WHERE id IN ( SELECT user_id FROM orders );

Что такое транзакции?

0:27
Транзакция — это набор операций, выполняемых как единое целое. Свойства (ACID): Atomicity — либо все, либо ничего. Consistency — данные остаются корректными. Isolation — транзакции не мешают друг другу. Durability — данные сохраняются. Пример: Перевод денег: Если операция не завершилась — откат.

Что такое индексы?

0:13
Индекс — это структура данных, которая ускоряет поиск в таблице. Используется для: Быстрого поиска по полям. Пример: Поиск пользователя по email быстрее с индексом.

Как тестировщик проверяет данные в БД?

0:20
Сравнивает: Ожидаемые данные. Фактические данные. Проверяет: Создание записей. Обновление. Удаление. Связи между таблицами. Пример: API вернул "успешно", но записи в БД нет → дефект.

Как искать баги с помощью SQL?

0:12
Искать: Дубликаты. Отсутствующие записи. Некорректные значения. Нарушенные связи. Пример: Два пользователя с одинаковым email → ошибка уникальности.

Что такое нормализация базы данных?

0:14
Нормализация — это процесс структурирования данных для устранения дублирования и повышения целостности. Пример: Отдельные таблицы: users orders products Вместо одной большой таблицы.

Что должен уметь тестировщик уровня middle в SQL?

0:21
Писать SELECT с JOIN 2+ таблиц. Использовать GROUP BY, HAVING. Писать подзапросы. Понимать транзакции. Анализировать данные. Находить несоответствия. Пример: Проверить, что у пользователя корректное количество заказов после операции.