🧙MagicSQL💻
160 subscribers
185 photos
7 files
10 links
Войди в мир SQL и аналитики с моим каналом. Изучай, применяй и преуспевай. Интересный контент, задачи, тесты, разборы и обучение.
#SQL #базыданных #postgresql
Download Telegram
Поговорим об операторе EXCEPT. Что же это такое?
Оператор EXCEPT в PostgreSQL используется для выполнения операции разности между двумя запросами. Он возвращает все строки которые есть в результате первого запроса, но отсутствуют в результате второго.
Рассмотрим простой пример. Дано две таблички со значениями: Таблица table_1 и Таблица table_2. Напишем запрос с использованием EXCEPT и посмотрим на результат:

SELECT values_1 
FROM table_1
EXCEPT
SELECT values_2
FROM table_2

+----------+
| values |
+----------+
| 1 |
+----------+
Запрос вернул строку со значением – 1, т.к. именно эта строка есть в первом запросе, но отсутствует во втором.
Друзья, привет.

Одним из существенных отличий между СУБД при написании запросов к базе является разный синтаксис написания функций для работы с датами и временем.

А для решения задач функции дат приходится использовать постоянно.

Выкладываю сравнительный анализ полезных функций для работы с датами и временем на СУБД PostgreSQL и MySQL.
Как вам такой тортик на день рождение?)
🔥2
Друзья, привет.
Знаете ли вы, что в PostgreSQL, если не указать столбец, а вместо этого указать таблицу в операторе ORDER BY, мы не получим ошибку?

Запрос отработает и в этом случае сортировка по умолчанию будет выполнена по первому столбцу таблицы.
Сегодня я вам расскажу как в PostgreSQL двумя простыми способами можно заменить конкретное значение в столбце на необходимое.

Способ № 1 – Комбинация функций COALESCE и NULLIF.

Способ № 2 – Использование функции REPLACE.

В обоих случаях меняем страну Францию на Россию.
Несомненно, шаг в развитии технологий в мире ИИ - это большой прорыв. Появление таких инструментов, как Chat GPT, стало чем-то революционным. И почему бы не воспользоваться ими, если это может оказать существенную помощь в разных направлениях, снять часть рутинной работы, оптимизировать и улучшить существующие наработки, помочь в планировании или оказать техническую поддержку при настройке программного обеспечения. И, конечно же, это не весь спектр возможностей.

Как и при любом подходе к делу или реализации вашей идеи, нужен критический и системный подход. Минимум нужно разбираться в области и понимать, что вы хотите, удовлетворяет ли результат вашим ожиданиям, а не слепо следовать интуиции. Каждый человек является аналитиком, каждый день мы анализируем большой поток информации и принимаем на его основе решения. И хотелось бы, чтобы решения были верными.
Как говорится, доверяй, но проверяй!! Это закономерно и для Chat GPT =)
В SQL (Structured Query Language) существуют три основных типа команд: DDL (Data Definition Language), DML (Data Manipulation Language) и DCL (Data Control Language). Каждый из этих типов команд выполняет определенные функции при работе с базами данных.
Вот их краткое описание:

DDL (Data Definition Language) - определяет/изменяет структуру базы данных (CREATE, ALTER, DROP);

DML (Data Manipulation Language) - манипулирует данными (SELECT, INSERT, UPDATE, DELETE);

DCL (Data Control Language) - управляет доступом (GRANT, REVOKE, DENY).
Всем привет!🖐

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

Например этот запрос изменит информацию о пользователе с id = 3:

UPDATE users
SET user_name = 'Snouden', country = 'USA'
WHERE user_id = 3

Будьте крайне аккуратны с данным оператором!!
Если не указать условие, на основании которого выполняется обновление информации в заданных строках, СУБД обновит абсолютно все строки данной таблицы. Положительный момент в том, что СУБД попытается предупредить вас об этом, не игнорируйте это!!
Всем, привет.

Давайте немного потренируем мозг и вспомним основные операторы SQL =).

Для этого вам поможет небольшой, составленный мною кроссворд.

Решать можно как с компьютера, так и с мобильного устройства перейдя по ссылке http://puzzlecup.com/?guess=D798E76656D2C1AU. Для того чтобы увидеть задание наведите на любую пустую строку или столбец кроссворда и слева вы увидите всплывающее задание. После того как все отгадаете, нажмите кнопку "Ну, все!Сверяем"
🔥6👍1
Друзья, привет🤝.

Рассмотрим простой запрос с соединением двух таблиц:

SELECT *
FROM clients c
JOIN orders o
ON c.client_id = o.client_id


В результат соединения попадет дублирующий столбец client_id.

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

SELECT *
FROM clients
JOIN orders
USING (client_id)

В данном примере вместо условия ON c.client_id = o.client_id мы использовали USING, в скобках которого указали столбец для соединения двух таблиц.
Мало того что сам запрос оказался более компактным, так мы еще и избежали появления дублирующего столбца client_id в результате.
👍6🔥3👏2
Привет, друзья, сегодня я без кода, но с порцией мотивации = ).

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

Этот подход активирует нашу любознательность и мотивацию к познанию. Мы начинаем исследовать, анализировать и искать объяснения, расширяем свои знания и понимание мира.

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

Таким образом, задавая себе вопросы о причинах и принципах, мы открываем для себя новые знания и преодолеваем трудности. Мы обретаем навыки анализа, критического мышления и инноваций, что позволяет нам развиваться и достигать успеха в разных областях жизни.
👍6
Друзья, всем привет!🖐 Как вы думаете в какой последовательности СУБД обрабатывает запрос?
Anonymous Poll
35%
SELECT, FROM, WHERE, GROUP BY, ORDER BY
13%
SELECT, WHERE, GROUP BY, ORDER BY, FROM
48%
FROM, WHERE, GROUP BY, SELECT, ORDER BY
4%
Это слишком простой вопрос чтобы на него отвечать!
👍5❤1
Всем, привет!🖐

По поводу прошлого поста опроса. Правильный ответ: FROM, WHERE, GROUP BY, SELECT, ORDER BY.

Порядок отработки операторов в SQL определен для обеспечения логической последовательности выполнения.

1. FROM (ИЗ): Оператор FROM указывает, из какой таблицы нужно выбирать данные. Он является первым оператором в запросе, так как все остальные операторы оперируют данными из указанных источников.

2. WHERE (ГДЕ): Оператор WHERE фильтрует строки данных в соответствии с заданным условием. Он следует после оператора FROM, потому что нужно сначала указать источник данных.

3. GROUP BY (ГРУППИРОВАТЬ ПО): Оператор GROUP BY группирует строки данных по определенным столбцам. Он используется для создания групп и агрегации данных внутри каждой группы.

4. SELECT (ВЫБРАТЬ): Оператор SELECT определяет столбцы, которые нужно выбрать и отобразить в результирующей выборке.

5. ORDER BY (УПОРЯДОЧИТЬ ПО): Он следует после SELECT, так как нужно сначала определить выбранные столбцы, а уже потом выполнить сортировку.
🔥7
Друзья, привет!🖐

Решим такую задачу.

Найти всех клиентов, у которых в полном имени их контакта используется 3 элемента (слова). Например ‘Иванов Иван’ нам не подойдет, а вот ‘Иванов Иван Иванович’ это то что нужно.

Для решения задачи воспользуемся функцией REGEXP_SPLIT_TO_TABLE, которая разделяет содержимое строки на элементы по разделителю.

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

Они позволяют выполнять вычисления на наборе строк в рамках определенного окна (группы).
С помощью них можно решать задачи, связанные со смещением и ранжированием значений, с вычислением скользящих средних и расчетом накопительных сумм, задачи анализа относительного изменения метрик и многое другое.
Некоторые задачи существенно сложнее решить без оконных функций, их реализация будет сложнее и потребует написания очень внушительного запроса. Используя оконную функцию задача решится в два счета.
Многие крупные компании, включая финансовые учреждения, розничные сети и аналитические компании, широко используют оконные функции SQL в своей работе и требуют от своих сотрудников их знания.
Данный инструмент открывает новые возможности для гибкого и эффективного анализа данных.
❤6