К собеседованию на аналитика данных за день
62 subscribers
18 photos
5 links
Будем разбирать вопросы, которые встречаются на собеседованиях по аналитике данных и data science.

Ищи разборы по хэштегам:
#sql
#python
#статистика
#алгоритмы
#машинное_обучение
Download Telegram
Channel name was changed to «Подготовка к собеседованию датасайнс»
Channel name was changed to «К собесу за день»
#sql

🧹 DELETE vs TRUNCATE в SQL — почувствуй разницу ⚔️

Оба эти SQL-запроса удаляют данные из таблицы, но делают это совсем по-разному. И если ты случайно применишь не тот — можно потерять важные данные безвозвратно. Так в чём же разница?

🔪 DELETE

Удаляет по WHERE
Медленный (фиксирует каждую строку)
Можно откатить (ROLLBACK)
Срабатывают триггеры

✅ Используй, когда нужна точечная чистка.

💣 TRUNCATE

Удаляет всё
Молниеносный
Не всегда откатывается
Триггеры не срабатывают

⚠️ Используй, когда нужно полностью очистить таблицу и ты уверен в этом

А ты что чаще используешь — DELETE или TRUNCATE?
И бывало ли, что TRUNCATE сделал тебе больно? 😅
Channel name was changed to «К собеседованию на аналитика за день»
#sql🔑 Что такое PRIMARY KEY в SQL?

Это уникальный идентификатор строки.

Пример:

CREATE TABLE users (
id INT PRIMARY KEY,
name TEXT
);


📌 Он:

✅ Уникальный

❌ Не может быть NULL

🔁 Бывает составной (из нескольких колонок)

🧱 Нужен для связи таблиц (FOREIGN KEY ссылается на него)
#sql📊 Нормализация данных в SQL
🔎 Что это?

Нормализация — это процесс организации таблиц и связей в базе данных так, чтобы:

* не было дублирования информации,
* данные были целостными,
* изменения были проще.

📌 Идея: каждый факт хранится только один раз, а всё остальное связывается ключами.

🧱 Зачем нужна нормализация

* Избегаем дублей: один клиент — одна строка в Customers, а не в каждой таблице.
* Обеспечиваем целостность: если изменился email клиента, он изменится один раз, а не в 1000 заказов.
* Упрощаем обновление: меньше риска ошибок при изменениях.
* Экономим место: данные не копируются везде подряд.

📐 Нормальные формы (NFs)

1НФ (первая нормальная форма)

Каждое поле хранит только одно значение (атомарность).

❌ Плохо: phones = "123, 456, 789".
✅ Хорошо: таблица Phones с одной строкой = один телефон.

2НФ (вторая нормальная форма)

Все неключевые атрибуты зависят от всего первичного ключа, а не его части.
Актуально, если ключ составной.

3НФ (третья нормальная форма)

Нет зависимостей от других неключевых полей.

Данные зависят только от ключа, а не друг от друга.

🛒 Пример (без нормализации → с нормализацией)

❌ Плоская таблица Orders:
| order_id | customer_name | customer_email | product_name | price |

Проблемы:

* один и тот же клиент встречается сотни раз,
* изменился email → менять везде,
* риск ошибок и дублей.

✅ После нормализации:

* Customers(customer_id, name, email)
* Products(product_id, name, price)
* Orders(order_id, customer_id, product_id)

Теперь:

* у каждого клиента 1 запись,
* продукты не дублируются,
* заказы связывают всё через ключи.
❓ Псевдонимы в SQL: когда нужны кавычки или скобки?

SELECT 
e_mail AS email, -- алиас одним словом (не нужны не "" ни [])
e_mail email, -- можно и без AS
FirstName "First Name", -- есть пробел → нужны ""
LastName [Last Name] -- в MS SQL можно []
FROM customers;



👉 AS писать не обязательно — работает и так.
👉 Простые имена без пробелов пишем без всего.
👉 С пробелами или символами — "...".
👉 допускаются [...].

⚡️ Алиасы делают результат понятнее и красивее, структуру базы они не меняют.
К собеседованию на аналитика данных за день pinned «Давайте придумаем название? Кому какой вариант больше нравится?»