🧙MagicSQL💻
160 subscribers
185 photos
7 files
10 links
Войди в мир SQL и аналитики с моим каналом. Изучай, применяй и преуспевай. Интересный контент, задачи, тесты, разборы и обучение.
#SQL #базыданных #postgresql
Download Telegram
4 способа обработки NULL значений в SQL.

1. IS NULL и IS NOT NULL: Это операторы сравнения, которые используются для проверки, является ли значение значением NULL или нет в условиях WHERE.

2. COALESCE: Функция COALESCE используется для замены NULL-значений на другое значение. Она принимает список аргументов и возвращает первое ненулевое значение из списка аргументов.

3. NULLIF: Функция NULLIF используется для сравнения двух значений. Если значения равны, функция возвращает NULL, в противном случае - первое значение.

4. CASE WHEN: Конструкция CASE WHEN позволяет выполнить условные операции в зависимости от значения столбца. Вы можете использовать ее для обработки NULL-значений.
❤2👏1
Преимущества использования индексов в SQL.

Всем привет. Расскажу про индексы в SQL.

Индексы в SQL - это структуры данных, создаваемые для ускорения выполнения операций поиска, сортировки и объединения в базах данных. Их основная цель - улучшить производительность запросов, сократить время выполнения и уменьшить нагрузку на сервер.

Использование индексов в базе данных имеет несколько преимуществ:

1. Ускорение поиска: Индексы позволяют находить и извлекать данные из таблицы с большей эффективностью, поскольку система может быстро найти позицию записи с помощью индекса и избежать полного просмотра всей таблицы.

2. Улучшение производительности запросов: Индексы позволяют оптимизатору запросов выбрать эффективные планы выполнения запросов, так как они облегчают доступ к данным и уменьшают количество операций ввода-вывода на диске.

3. Сортировка данных: Индексы позволяют ускорить сортировку данных по определенному столбцу. Они предварительно отсортируют значения и создадут отображение от значений столбца к их физическим позициям на диске.

В целом, использование индексов является важным инструментом для оптимизации производительности и ускорения выполнения запросов. Они позволяют эффективно находить и извлекать данные, улучшать производительность и обеспечивать более быструю сортировку.
❤2👍1
Нормализация базы данных в SQL.

Нормализация в SQL - это процесс организации и структурирования базы данных для достижения эффективности и минимизации избыточности данных. Она включает разделение таблиц на более мелкие и связанные друг с другом, чтобы уменьшить дублирование информации.

Основные цели нормализации в SQL следующие:

1. Устранение повторений и избыточности данных: Нормализация помогает устранить избыточные данные, избегая дублирования информации в разных частях базы данных.

2. Улучшение структуры данных: Благодаря нормализации база данных становится логически структурированной, что облегчает понимание и поддержку.

3. Улучшение производительности: Нормализация может повысить производительность базы данных, так как меньшие таблицы и связи позволяют выполнять запросы более эффективно.

Процесс нормализации состоит из нескольких нормальных форм, таких как первая нормальная форма (1NF), вторая нормальная форма (2NF), третья нормальная форма (3NF) и т. д. Каждая нормальная форма имеет свои правила и директивы, которые помогают достичь определенного уровня нормализации.

Общая идея нормализации состоит в том, чтобы разбить данные на разные таблицы таким образом, чтобы каждая таблица содержала только уникальные записи и информацию о конкретном аспекте данных. Это помогает снизить сложность хранения и обработки данных, а также обеспечивает лучшую гибкость и поддержку базы данных в долгосрочной перспективе.

В следующих публикациях расскажу простым языком про три нормальные формы.
🔥4❤1
Перед нами запрос на изменение данных. Наша задача изменить дату заказа и дату отгрузки для тех работников, чей id = 5.

UPDATE orders SET order_date = '2001-01-01', shipped_date = '2001-01-15' WHERE employee_id = 5 Что ни так в данном запросе?
Anonymous Quiz
14%
В операторе SET нельзя изменять значения сразу двух полей
36%
После UPDATE необходимо указать ключевое слово TABLE
14%
В данном запросе все так
36%
В операторе SET необходимо указать AND между значениями изменяемых полей вместо запятой
Друзья, привет. Подготовил разбор трех первых нормальных форм для нормализации БД. Прикрепляю три файла, в которых сделал разбор каждой формы с примерами. Найдите пожалуйста время, прочтите. Это должно внести некое понимание в эту не простую тему.

Три нормальные формы базы данных.

Первая нормальная форма (1NF) – значения каждого поля таблицы должны быть атомарны. То есть каждое значение не может быть разделено на составные части без потери смысла. Каждое значение является минимальной единицей информации и обеспечивает однозначность.

Вторая нормальная форма (2NF) – Каждое поле таблицы должно зависеть от полного составного ключа, а не от его отдельной части. Если какое либо поле, которое не является первичным ключом, зависит от части составного ключа, то таблица не находится во второй нормальной форме.

Третья нормальная форма (3NF) – Все неключевые поля в таблице должны функционально зависеть только от первичного ключа. В таблице не должно быть транзитивных функциональных зависимостей.
Транзитивная зависимость – это когда поля таблицы, не являющиеся первичным ключом зависят от других полей, которые также не являются первичным ключом. Этого быть не должно.
👍1
Статистические функции SQL.

Можно ли в SQL проводить статистический анализ? Можно.
Разберем несколько популярных и полезных функций.

corr ( Y column , X column ) - вычисляет коэффициент корреляции

regr_r2 ( Y column , X column ) - вычисляет квадрат коэффициента корреляции

stddev ( column ) - вычисляет стандартное отклонение

variance ( column ) - вычисляет дисперсию
👍4👏1
SELECT 100 + NULL - что получится в результатe?
Anonymous Quiz
0%
0
5%
101
50%
NULL
45%
100
Друзья, привет!

Когда изучаешь SQL часто встает вопрос на чем бы потренироваться или например какой запрос оптимальнее? Есть конечно учебные базы данных, но иногда их объем недостаточен для того, чтобы оценить какой запрос более оптимален для решения с точки зрения производительности системы.

Покажу как создать таблицу и заполнить ее рандомными значениями в 5 000 000 строк.

Цель – создание таблицы events.

Внутри таблицы хотим видеть три поля:
user_id – уникальный id клиента,
event_date – дата события,
event_type – тип события.
Период дат выбираем с '2018-01-01' по '2023-09-06'.
Типы событий выбираем: 'покупка', 'регистрация', 'посещение', 'клик'.

Пользуйтесь и экспериментируйте!
🔥4❤1👏1
Влияние индекса на фильтрацию в SQL при хорошей селективности.

Покажу на примере как в случае частой фильтрации по одному и тому же полю в SQL запросе существенное влияние на ускорение выполнения влияет создание индекса.

Конечно индекс может быть не всегда полезен, но в случае хорошей селективности значений, ускорение может стать пушкой.

Сейчас мы с вами в этом убедимся. Взгляните на скриншоты, где я проводил эксперимент. Думаю все станет однозначно понятно.
👍4
Устроился на новую работу и думал что первые пол года тебя там ни кто особо не будет трогать=).
👍4
Друзья, всем привет. Не вдаваясь в подробности что означает данный запрос какая на ваш взгляд версия более читабельнее и понятнее для вас?
Какая версия читабельнее темная или светлая?
Anonymous Poll
38%
Темная
63%
Светлая