Какие базовые SQL-команды вы знаете?

«Какие базовые SQL-команды вы знаете?» — вопрос из категории Базы данных, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

1. DDL (Data Definition Language) — для управления структурой:

  • CREATE DATABASE/TABLE: Создание объектов.
    CREATE TABLE app_logs (
        id SERIAL PRIMARY KEY,
        timestamp TIMESTAMP NOT NULL,
        service_name VARCHAR(50),
        message TEXT
    );
  • ALTER TABLE: Изменение структуры (добавление индекса для ускорения запросов мониторинга).
    ALTER TABLE app_logs ADD INDEX idx_service_time (service_name, timestamp);
  • DROP TABLE: Удаление объектов (использую с большой осторожностью!).

2. DML (Data Manipulation Language) — для работы с данными:

  • SELECT: Получение данных для анализа. Например, чтобы найти топ-5 сервисов по количеству ошибок.
    SELECT service_name, COUNT(*) as error_count
    FROM app_logs
    WHERE message LIKE '%ERROR%' AND timestamp > NOW() - INTERVAL '1 hour'
    GROUP BY service_name
    ORDER BY error_count DESC
    LIMIT 5;
  • INSERT: Добавление тестовых данных или записей конфигурации.
  • UPDATE/DELETE: Корректировка или очистка данных.

3. DCL (Data Control Language) — для управления доступом:

  • GRANT/REVOKE: Критически важные команды в DevOps для настройки прав доступа сервисных пользователей и мониторинговых систем к БД.
    GRANT SELECT ON app_logs TO monitoring_user;

В инфраструктуре как код (IaC) эти операции часто автоматизируются с помощью миграций (например, Liquibase, Flyway) или инструментов вроде Terraform providers для баз данных.