Нормализация базы данных — это процесс структурирования данных для уменьшения избыточности и повышения целостности.
В этом уроке мы рассмотрим три основные формы нормализации: первую (1NF), вторую (2NF) и третью (3NF).
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26🤝13👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36😁9
Подзапросы — мощный инструмент SQL, позволяющий включать результаты одного запроса в другой, что делает анализ данных гибким и производительным.
1. Вложенные подзапросы: когда один запрос внутри другого Чтобы отфильтровать пользователей, у которых баланс выше среднего, используем подзапрос:
SELECT user_id, balance
FROM users
WHERE balance > (SELECT AVG(balance) FROM users);
2. Коррелированные подзапросы: доступ к внешним данным, коррелированный подзапрос связан с внешним запросом и работает для каждой строки:
SELECT name
FROM employees e1
WHERE salary > (SELECT AVG(salary) FROM employees e2 WHERE e1.department = e2.department);
3. Подзапросы с оператором EXISTS: проверка наличия данных EXISTS часто используется, чтобы проверить наличие связанных данных:
SELECT customer_name
FROM customers c
WHERE EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.customer_id);
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥9
📖 Базы данных и их безопасность
⬇️ Скачать книгу
➡️ SQL Ready | #книга
Практическое руководство по защите данных, охватывающее методы безопасности, предотвращение угроз и управление доступом в современных базах данных.Автор: Полищук Ю.В.
Год: 2021
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤝4🔥3
Оконные функции позволяют выполнять вычисления над набором строк, связанным с текущей строкой, без агрегации результата.
Это полезно для присвоения уникальных номеров строкам и ранжирования значений в пределах определенной группы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🤝6😁4
This media is not supported in your browser
VIEW IN TELEGRAM
Falcon — это бесплатное приложение с открытым исходным кодом для подключения баз данных SQL и создания визуализаций и аналитических панелей в режиме реального времени.
📌 Ссылочка: https://github.com/plotly/falcon
➡️ SQL Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3🤝3
Если вы работаете с большими объёмами данных и хотите получать только нужное, а не грузить всё подряд, SQL операторы LIMIT и OFFSET — то что нужно!
• LIMIT ограничивает количество возвращаемых строк, идеально для получения выборки.
• OFFSET пропускает определённое число строк, удобен для организации постраничного вывода.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🤝6👍5👎1
Что произойдет при
выполнении запроса?
выполнении запроса?
Anonymous Quiz
3%
Вернет всех клиентов, у которых нет заказов.
79%
Вернет клиентов с количеством заказов больше 5.
7%
Вернет клиентов с количеством заказов менее 5.
11%
Вернет ошибку, так как HAVING используется неправильно.
👍6
Шпаргалка по подзапросам и агрегатным функциям SQL включает основные приёмы использования подзапросов и методов для вычисления сумм, средних, подсчётов и других операций над данными, упрощая анализ и обработку информации в запросах.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍5
NULL в SQL обозначает отсутствие значения и может привести к неожиданным результатам. Разберём несколько подводных камней.
NULL в условиях WHERE
Представим таблицу employees, где столбец department может быть NULL, если сотрудник не распределён. Запрос:
SELECT * FROM employees WHERE department != 'HR';
На первый взгляд, этот запрос должен выбрать всех, кто не в HR, но строки с NULL будут исключены! Сравнение NULL != 'HR' даёт неопределённый результат (UNKNOWN), из-за чего строки не включаются в выборку.
Как правильно учитывать NULL?
Используйте IS DISTINCT FROM или COALESCE, чтобы учитывать NULL:
SELECT * FROM employees WHERE department IS DISTINCT FROM 'HR';
-- или
SELECT * FROM employees WHERE COALESCE(department, '') != 'HR';
NULL в агрегатах
В таблице sales столбец discount может содержать NULL, если скидка не применялась. Если посчитать среднее значение:
SELECT AVG(discount) FROM sales;
NULL-значения будут проигнорированы, и средняя скидка может быть искажена. Используйте COALESCE:
SELECT AVG(COALESCE(discount, 0)) FROM sales;
Поэтому не спускайте глаз с NULL, чтобы избежать неожиданных результатов в фильтрации и агрегатах.
Жми 🔥 если понравился пост
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34👍11🤝5
📖 SQL Pocket Guide
⬇️ Cкачать книгу
➡️ SQL Ready | #книга
Компактное справочное пособие, охватывающее основные операторы и функции SQL, что делает его идеальным для быстрого поиска информации в повседневной работе.Автор: Элис Жао
Год: 2024
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6