SQL Ready | Базы Данных
11.2K subscribers
674 photos
28 videos
2 files
333 links
Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/sql_ready
加入频道
🖥 Рассмотрим методы обработки строк)

Заметил, что новички часто путаются при работе со строками в SQL, поэтому спешу на помощь! Сделал для вас небольшую шпаргалку по обработке строк.

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍9🤝7
📖 SQL Server Наладка и оптимизация для профессионалов

Книга охватывает новейшие функции SQL Server, что делает её актуальной для профессионалов, стремящихся оставаться на переднем крае технологий

Автор: Дмитрий Короткевич
Год: 2023


⬇️ Cкачать книгу

➡️ SQL Ready | #книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4
🖥 Изучаем полезные методы работы с выборкой данных

• COALESCE — Возвращает первое ненулевое значение из списка переданных аргументов. Полезно для обработки NULL значений.

• ROW_NUMBER — Присваивает уникальный номер каждой строке в наборе данных на основе заданной сортировки. Часто используется для создания порядковых номеров или пагинации.

🔥 — если узнал новое
🤝 — если уже пользовался

SQL Ready | #метод
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
Live SQL — Интересная платформа для изучения SQL, в ней присутствует поиск по обучающим статьям, вы можете с легкостью обучиться именно тому, что вам сейчас нужно

Ссылочка: livesql.oracle

➡️ SQL Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
🖥 Управляем дубликатами и уникальностью данных

Работа с уникальными данными — ключевая задача в SQL. Рассмотрим приемы поиска, удаления и предотвращения дубликатов:

1. Поиск дубликатов
Используйте группировку и фильтрацию, чтобы найти повторяющиеся записи:
SELECT email, COUNT(*) AS occurrences
FROM users
GROUP BY email
HAVING COUNT(*) > 1;


2. Удаление дубликатов
Удалите повторяющиеся строки, сохранив только одну:
DELETE FROM users
WHERE id NOT IN (
SELECT MIN(id)
FROM users
GROUP BY email
);


3. Предотвращение дубликатов
Обеспечьте уникальность данных с помощью уникальных индексов:
CREATE UNIQUE INDEX unique_email ON users(email);

Этот индекс автоматически предотвращает добавление дублирующихся email

➡️ SQL Ready | #техсобес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
🖥 Создаем базу данных для учета задач

Рассмотрим создание простой базы данных для учёта задач, где использовали две таблицы: одну для хранения задач, а другую для статусов задач

- Создание таблиц
- Извлечение данных
- Выполнение запросов
- Редактирование


🔥 — если узнал новое
🤝 — если уже пользовался

SQL Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥9🤝3
Рекурсивные запросы с CTE в SQL

Hазберем мощный инструмент — рекурсивные запросы с использованием CTE. Эта техника позволяет работать с иерархическими данными или решать задачи, требующие итераций:

Рекурсивный CTE — это временная таблица, которая ссылается на саму себя, чтобы обрабатывать данные поэтапно.

Предположим, у нас есть таблица employees с колонками: id, name, manager_id.
Сначала выбираем данные о целевом менеджере:
WITH RECURSIVE EmployeeHierarchy AS (
SELECT id, name, manager_id
FROM employees
WHERE name = 'Alice'


Теперь связываем подчиненных менеджера с данными базового уровня:
    UNION ALL
SELECT e.id, e.name, e.manager_id
FROM employees e
INNER JOIN EmployeeHierarchy eh
ON e.manager_id = eh.id
)


Наконец, извлекаем всю построенную иерархию:
SELECT * FROM EmployeeHierarchy;


Результат:
Если у Alice есть прямые и косвенные подчиненные, запрос вернет их всех.

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

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4🤝4
🖥 Работаем с датой и временем

— В этом посте мы разобрали несколько примеров работы с датами и временем в SQL

- Извлечение частей даты
- Операции с интервалами
- Разница между датами


🔥 — если узнал новое
🤝 — если уже пользовался

SQL Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥9🤝5
🖥 Ошибки при использовании NULL в выражениях

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


NULL в условиях WHERE
На первый взгляд кажется, что NULL ведет себя как обычное значение, но это не так. Рассмотрим пример:
SELECT * 
FROM employees
WHERE salary = NULL;
-- Результат: 0 строк, даже если есть записи с NULL.

Почему так? В SQL сравнение с NULL всегда возвращает UNKNOWN, а не TRUE или FALSE.

Решение: Использование IS NULL
Чтобы правильно отфильтровать строки, нужно писать:
SELECT * 
FROM employees
WHERE salary IS NULL;
-- Результат: Все строки с NULL в столбце salary.


Подводный камень: Агрегация с NULL
В агрегатных функциях NULL игнорируется. Например:
SELECT AVG(salary) 
FROM employees;
-- NULL-значения исключаются из расчета среднего.

Этот момент может быть полезным, но приводит к неожиданным результатам, если забыть об этом.

NULL и операторы
Будьте осторожны с арифметическими операциями:
SELECT salary + 1000 AS updated_salary 
FROM employees;
-- Если salary = NULL, результат тоже будет NULL.


Используйте IS NULL и помните, что функции и операторы обрабатывают NULL по-своему. Такой подход снизит риск логических ошибок в запросах.

SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍4🤝2