SQL Portal | Базы Данных
14.4K subscribers
612 photos
83 videos
41 files
507 links
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
Что такое Foreign Keys?

👉 @SQLPortal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Преобразование строк в столбцы в Oracle SQL с помощью:

PIVOT ( fn FOR col IN ( 'v1', 'v2', ... ) )


Этот оператор добавляет столбец для каждого значения из списка IN, используя результат функции fn.

Можно использовать несколько функций (fn), но каждую из них необходимо явно задавать с псевдонимом.

Все столбцы таблицы, не указанные в предложении PIVOT, автоматически становятся частью GROUP BY.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
SQL-собеседования ОБОЖАЮТ проверять вас на оконные функции.

Вот список из 7 самых популярных оконных функций:

7 самых часто проверяемых оконных функций 👇

🟡RANK() – присваивает ранг каждой строке в разделе на основе указанного столбца или значения.
🟡DENSE_RANK() – присваивает ранг каждой строке, но не пропускает значения ранга.
🟡ROW_NUMBER() – присваивает каждой строке уникальный порядковый номер в разделе на основе порядка строк.
🟡LEAD() – извлекает значение из следующей строки в разделе на основе указанного столбца или выражения.
🟡LAG() – извлекает значение из предыдущей строки в разделе на основе указанного столбца или выражения.
🟡NTH_VALUE() – извлекает n-е значение в разделе.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍144🔥4
Cвежие бесплатные книги по PostgreSQL от Postgres Professional — забирай, пока горячие 🙂

🔸 «Postgres: первое знакомство» – уже 11-е издание. Добавили новинки PostgreSQL 17, скоро будет английская версия

🔸 «PostgreSQL 17 изнутри» – обновленный разбор от Егора Рогова, добавлены изменения PostgreSQL 17 и тема про ресурсы при планировании запросов

Все обновлённые книги и ряд других — здесь

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112
5 мифов о SQL. Что часто неправильно понимают новички

SQL — это мощный инструмент, но некоторые мифы о нем могут сбить с толку новичков.

Давайте разберем пять распространенных заблуждений и развеем их: 👇

Миф 1: SQL — это только для извлечения данных.

✦ Реальность: Нет, это не так! SQL также может создавать, изменять и управлять базами данных, контролировать доступ и поддерживать консистентность данных.

✦ Как исправить: Изучите все возможности SQL, такие как DDL (для проектирования баз данных), DCL (для управления доступом) и TCL (для транзакций). SQL — это не только SELECT!

Миф 2: Использование SELECT * — это нормально.

✦ Реальность: Это может быть легко, но неэффективно. Извлечение всех колонок расходует память и замедляет производительность.

✦ Как исправить: Выбирайте только те колонки, которые вам действительно нужны. Это быстрее и чище. Не очень хорошо - SELECT * FROM employees; Лучше - SELECT employee_id, name, department FROM employees;

Миф 3: SQL не может обрабатывать сложный анализ данных.

✦ Реальность: SQL может делать гораздо больше, чем простые запросы! С такими концепциями, как оконные функции и CTE, вы можете обрабатывать действительно сложный анализ данных.

✦ Как исправить: Изучите продвинутые возможности SQL, такие как оконные функции (ROW_NUMBER(), RANK()) и CTE, чтобы улучшить свои навыки. Пример - Ранжирование сотрудников по зарплате в пределах их отдела

WITH ranked_salaries AS (SELECT employee_id, salary, department, ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) AS rank FROM employees) SELECT * FROM ranked_salaries WHERE rank = 1;

Миф 4: Медленные запросы — всегда вина базы данных.

✦ Реальность: Обычно замедление происходит из-за неэффективных запросов. Причиной могут быть, например, отсутствующие индексы или неоптимизированный код.

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

Миф 5: SQL устарел и скоро будет заменен.

✦ Реальность: SQL останется! Несмотря на рост популярности NoSQL, SQL по-прежнему является основой для структурированных данных.

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

Не позволяйте этим мифам останавливать вас. SQL — это мощный инструмент, и когда вы освоите его в полной мере, вы сможете делать потрясающие вещи с вашими данными.❤️

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍168🤯1
Ограничьте количество строк, возвращаемых запросом Oracle SQL, с помощью

ORDER BY ... FETCH FIRST n ROWS ONLY

🔜 и запрос вернёт не более N строк.

Замените ONLY на WITH TIES, чтобы получить все строки с таким же значением сортировки, как у N-й строки.

Добавьте PERCENT, чтобы получить N% строк из результирующего набора.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5
Media is too big
VIEW IN TELEGRAM
Нашёл коллекцию 100+ SQL-скриптов

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

Сохраняй если хочешь улучшить свои навыки работы с SQL. 👍

🔜 Ссылка

👉 @SQLPortal | #ресурсы |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Когда-нибудь случайно удаляли таблицу? 👍

Oracle Database помещает её в корзину (recyclebin), так что вы можете восстановить её с помощью

FLASHBACK TABLE ... TO BEFORE DROP


и база данных восстановит её, включая индексы и (не внешние) ограничения.

Если хотите удалить её окончательно, используйте

DROP TABLE ... PURGE


👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍98🔥6
💡 Оператор CASE в SQL

Оператор CASE в SQL позволяет выполнять условные логические операции непосредственно в запросах. Это аналог конструкции if-else в языках программирования и полезен для создания вычисляемых столбцов и реализации сложной логики выборки данных.

Два варианта синтаксиса:

🍩Простой CASE
Используется для сравнения выражения с набором значений.


CASE выражение
WHEN значение1 THEN результат1
WHEN значение2 THEN результат2
ELSE результат_по_умолчанию
END


🍩CASE с условиями
Используется для проверки условий.


CASE
WHEN условие1 THEN результат1
WHEN условие2 THEN результат2
ELSE результат_по_умолчанию
END


Примеры использования: 👇


SELECT
product_name,
CASE category_id
WHEN 1 THEN 'Электроника'
WHEN 2 THEN 'Одежда'
WHEN 3 THEN 'Книги'
ELSE 'Другое'
END AS category_name
FROM products;



SELECT
employee_name,
salary,
CASE
WHEN salary >= 100000 THEN ' Высокий доход'
WHEN salary >= 50000 THEN 'Средний доход'
ELSE 'Низкий доход'
END AS income_level
FROM employees;


Важные замечания:

🟡Первое совпадение: Оператор CASE возвращает результат при первом совпавшем условии и игнорирует остальные.

🟡ELSE и NULL: Если ни одно из условий не выполнено и не указан блок ELSE, то возвращается NULL.

🟡Типы данных: Все возвращаемые значения в THEN и ELSE должны быть совместимых типов данных.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍193
Доброе утро, молодой человек, у вас есть время поговорить о postgresql?

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁25👍104
Как выбрать тип базы данных?

Сегодня доступны сотни, а то и тысячи баз данных, такие как Oracle, MySQL, MariaDB, SQLite, PostgreSQL, Redis, ClickHouse, MongoDB, S3, Ceph и другие.

🟡Реляционная база данных – практически любую задачу можно решить с ее помощью.
🟡Хранилище в памяти – высокая скорость и ограниченный объем данных делают его идеальным для быстрых операций.
🟡База данных временных рядов – хранит и управляет данными с временными метками.
🟡Графовая база данных – подходит для сложных связей между неструктурированными объектами.
🟡Документное хранилище – хорошо подходит для хранения больших неизменяемых данных.
🟡Хранилище широких столбцов – обычно используется для работы с большими данными, аналитики, отчетности и других задач, требующих денормализованных данных.

Есть ли что-то, что вы часто используете, и почему выбираете именно это? 🤔

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥32
INTERVAL в SQL

Используется для добавления или вычитания определенного количества времени (например, дней, месяцев, лет) из значения даты или времени.

Это позволяет легко выполнять операции с датами, например, вычислять сроки доставки, анализировать временные периоды или планировать события.

В приведенном примере SQL-запроса order_date + INTERVAL '5 DAY' добавляет 5 дней к дате заказа, что упрощает обработку временных данных.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74
Media is too big
VIEW IN TELEGRAM
Представления

Видео рассказывает о представлениях (views) в SQL, их роли в упрощении запросов и уменьшении дублирования кода. Рассматриваются два типа представлений: нематериализованные, которые выполняются заново при каждом запросе, и материализованные, хранящие результаты в таблице для быстрого доступа.

📹 Cмотреть: тык

👉 @SQLPortal | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
13
Тщательно подобранный список ресурсов для изучения баз данных 🔥

В нем собраны книги, курсы, статьи и видео, которые охватывают такие темы, как SQL, оптимизация запросов, репликация, проектирование баз данных и многое другое

Это полезный ресурс для углубленного изучения баз данных: https://github.com/pingcap/awesome-database-learning

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5
Оптимизация SQL-запросов

Автор рассматривает методы переписывания запросов для ускорения их выполнения, включая замену оператора IN на JOIN с виртуальной таблицей и использование оператора ANY(ARRAY[]). Также обсуждаются коррелирующие подзапросы и их влияние на производительность.

Читать: клик

👉 @SQLPortal | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111🔥1
Очистка данных в SQL

Проблема некорректного ввода данных, которая часто встречается в базах данных, особенно в таких полях, как номера телефонов.

Этот SQL-запрос проверяет, какие номера телефонов в таблице customers не соответствуют 10-значному формату. Используется REGEXP, чтобы найти ошибки ввода (лишние символы, буквы, пробелы или неверное количество цифр).

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Если вы вставите значения, не соответствующие существующему разделу, Oracle Database выдаст ошибку.

Избежать этого можно с помощью:

ALTER TABLE ... SET { AUTOMATIC | INTERVAL ( <interval> ) }


Тогда база данных создаст новые разделы в зависимости от типа разбиения:

AUTOMATIC → список (начиная с версии 12.2)
INTERVAL → диапазон (начиная с версии 11.1)

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
This media is not supported in your browser
VIEW IN TELEGRAM
Для тех, кто не знаком с SQL, но нуждается в работе с базами данных

MQL — это инструмент, который преобразует запросы на естественном языке в SQL-запросы

То есть пишешь ему, например:
все книги которые взяли студенты 2 курса за последнюю неделю

И он вам выдаёт SELECT * FROM ... и тд.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👀6🔥2