Введение в базы данных и SQL

Введение в базы данных и SQL

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


Что такое база данных

База данных (БД) — организованное хранилище структурированных данных, которые можно эффективно добавлять, искать, изменять и удалять.

СУБД (система управления базами данных) — программа, которая управляет базой: принимает запросы, хранит данные, обеспечивает безопасность и производительность.

Примеры СУБД:

СУБДТипПрименение
PostgreSQLРеляционнаяВеб-приложения, аналитика
MySQLРеляционнаяWordPress, e-commerce
SQLiteРеляционнаяМобильные приложения, тесты
MongoDBДокументная (NoSQL)Гибкие структуры данных
RedisКлюч-значениеКэш, сессии

Что такое SQL

SQL (Structured Query Language) — язык для работы с реляционными базами данных. Это стандарт: один и тот же запрос с небольшими отличиями работает в PostgreSQL, MySQL и SQLite.

SQL состоит из нескольких групп команд:

ГруппаНазначениеКоманды
DQLЧтение данныхSELECT
DMLИзменение данныхINSERT, UPDATE, DELETE
DDLСтруктура БДCREATE, ALTER, DROP
TCLТранзакцииBEGIN, COMMIT, ROLLBACK
DCLПрава доступаGRANT, REVOKE

Тестировщик чаще всего работает с DQL и DML — читает данные и при необходимости их изменяет.


Типы баз данных

Реляционные (SQL)

Данные хранятся в таблицах с чётко заданной структурой. Таблицы связаны между собой. Идеально подходят для структурированных данных с отношениями.

users таблица:              orders таблица:
| id | name  | email     |  | id | user_id | total |
|----|-------|-----------|  |----|---------|-------|
| 1  | Анна  | a@mail.ru |  | 1  | 1       | 5000  |
| 2  | Пётр  | p@mail.ru |  | 2  | 1       | 1200  |

Документные (NoSQL)

Данные хранятся как JSON-документы. Гибкая схема — у разных документов могут быть разные поля. Пример: MongoDB.

Ключ-значение

Хранят пары ключ→значение. Очень быстрые. Используются как кэш. Пример: Redis.


Зачем тестировщику SQL

1. Проверка данных после действий в UI

Вы заполнили форму регистрации и нажали «Сохранить». Как убедиться, что данные реально записались в БД?

SELECT * FROM users WHERE email = 'test@example.com';

2. Подготовка тестовых данных

Некоторые состояния системы сложно воспроизвести через UI. Например, пользователь с заблокированным аккаунтом.

INSERT INTO users (name, email, is_active) VALUES ('Тест Юзер', 'test@example.com', false);

3. Расследование багов

Пользователь сообщает: «Мой заказ исчез». Смотрите напрямую в базу — данные там или нет?

SELECT * FROM orders WHERE user_id = 42 ORDER BY created_at DESC;

4. Очистка данных после тестов

После прогона тестов нужно вернуть базу в исходное состояние.

DELETE FROM users WHERE email LIKE 'test_%@example.com';

Инструменты для работы с БД

ИнструментОписание
DBeaverУниверсальный GUI-клиент, поддерживает все популярные СУБД
pgAdminОфициальный клиент для PostgreSQL
MySQL WorkbenchОфициальный клиент для MySQL
TablePlusЛёгкий GUI-клиент для macOS/Windows
psqlКонсольный клиент PostgreSQL

Совет: Изучите DBeaver — он работает с любой СУБД и часто используется в командах.


Правило безопасности №1

⚠️ Никогда не работайте с production-базой напрямую во время тестирования.

Один неверный UPDATE или DELETE без WHERE — и вы можете испортить данные реальных пользователей. Всегда используйте отдельную тестовую базу.


Итоги

  • База данных — организованное хранилище данных приложения
  • СУБД — программа для управления базой (PostgreSQL, MySQL, SQLite и др.)
  • SQL — стандартный язык запросов для реляционных БД
  • Тестировщик использует SQL для проверки данных, подготовки стендов и расследования багов
  • DBeaver — универсальный инструмент для работы с любой СУБД
  • Правило: только тестовая база, никогда production

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике