Андрей Рудик
Гайд SQL для Junior Data Analyst: Безопасность, Эффективность, Практика

Гайд SQL для Junior Data Analyst: Безопасность, Эффективность, Практика

Раздел 1: Безопасность и Базовая Гигиена SQL

Защита данных и предотвращение критических ошибок:

1. Всегда фильтруйте данные в `WHERE`

– Пример ошибки: `UPDATE stock_prices SET close_price = 150.75` (без `WHERE` обновит все строки).

– Решение: Перед `UPDATE`/`DELETE` пишите `SELECT` с идентичным условием.

```sql

–– Проверка перед обновлением:

SELECT * FROM stock_prices

WHERE ticker = 'AAPL' AND trade_date = '2024-07-29';

-– Только затем:

UPDATE stock_prices

SET close_price = 150.75

WHERE ticker = 'AAPL' AND trade_date = '2024-07-29';

```

`// _Процедура "Сначала SELECT" – ваш главный щит от карьерных ошибок. В высоконагруженных системах (DWH) даже лишний SELECT лучше, чем один неверный UPDATE._`

2. Используйте транзакции для критических операций

```sql

BEGIN TRANSACTION;

UPDATE dividends SET amount = amount * 1.1 WHERE company_id = 123;

–– Проверьте результат здесь!

COMMIT; – или ROLLBACK при ошибке;

```

`// _Транзакции – это не только про целостность данных, но и про ваше спокойствие. Всегда используйте их для пакетных изменений. В некоторых BI-системах (например, Mode, Metabase) транзакции управляются автоматически, но знать этот принцип – обязательно._`

3. Никогда не используйте `SELECT *` в продакшене

– Почему: Риск перегрузки сервера.

– Решение: Явно перечисляйте столбцы.

```sql

–– Плохо:

SELECT * FROM stock_prices;

-– Хорошо:

SELECT ticker, trade_date, close_price FROM stock_prices;

```

`// _Помимо нагрузки, явное перечисление колонок страхует вас на случай, если структура таблицы изменится (добавят BLOB-поле), и делает код самодокументируемым._`

Раздел 2: Оптимизация Производительности

Работа с большими данными (банковские транзакции, котировки акций):

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.