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

SQL (Structured Query Language) - это декларативный язык программирования для работы с реляционными базами данных☝️

И так, то что SQL разработан для работы с реляционными базами данных понятно. Но что такое «декларативный» язык программирования❓

Декларативный, означает описание того, что требуется получить, а не как это реализовать.
В SQL мы описываем желаемый результат.

Декларативный язык сосредотачивается на "что" должно быть сделано.
В отличие от этого, императивный язык программирования предписывает точные шаги и инструкции, которые должны быть выполнены для достижения желаемого результата.
Он определяет последовательность команд, которые компьютер должен обработать, чтобы выполнить нужное действие. Императивный подход сосредотачивается на "как" это должно быть сделано.
Поговорим об операторе 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