Триггеры в MySQL 🚀
Триггеры в MySQL — это специальные процедуры, которые автоматически выполняются в ответ на определённые события внутри таблиц базы данных. Они срабатывают при выполнении операций вставки (INSERT), обновления (UPDATE) или удаления (DELETE) данных.
Для чего нужны триггеры🔍
Триггеры используются для автоматизации выполнения задач в базе данных, что помогает обеспечить целостность данных. Например, они могут автоматически обновлять или проверять данные при изменении таблицы, запускать расчёты или создавать журнал изменений (логирование операций).
Создание триггера 🆕
Создать триггер можно с помощью команды CREATE TRIGGER. Например, триггер, который будет автоматически устанавливать текущую дату и время в поле last_updated при обновлении строки в таблице users:
Удаление триггера ❌
Удалить триггер можно с помощью команды DROP TRIGGER. Например:
Полезный пример использования ℹ️
Предположим, в базе данных есть таблица orders с полями id, total и updated_at. Можно создать триггер, который будет обновлять updated_at каждый раз, когда меняется сумма заказа (total):
Этот триггер помогает отслеживать момент последнего изменения суммы заказа, что может быть полезно для аудита изменений или для обновления связанных систем, например, систем бухгалтерского учета.
Триггеры в MySQL — это специальные процедуры, которые автоматически выполняются в ответ на определённые события внутри таблиц базы данных. Они срабатывают при выполнении операций вставки (INSERT), обновления (UPDATE) или удаления (DELETE) данных.
Для чего нужны триггеры
Триггеры используются для автоматизации выполнения задач в базе данных, что помогает обеспечить целостность данных. Например, они могут автоматически обновлять или проверять данные при изменении таблицы, запускать расчёты или создавать журнал изменений (логирование операций).
Создание триггера 🆕
Создать триггер можно с помощью команды CREATE TRIGGER. Например, триггер, который будет автоматически устанавливать текущую дату и время в поле last_updated при обновлении строки в таблице users:
CREATE TRIGGER before_user_update
BEFORE UPDATE ON users
FOR EACH ROW
SET NEW.last_updated = NOW();
Удаление триггера ❌
Удалить триггер можно с помощью команды DROP TRIGGER. Например:
DROP TRIGGER before_user_update;
Полезный пример использования ℹ️
Предположим, в базе данных есть таблица orders с полями id, total и updated_at. Можно создать триггер, который будет обновлять updated_at каждый раз, когда меняется сумма заказа (total):
CREATE TRIGGER update_order_timestamp
BEFORE UPDATE ON orders
FOR EACH ROW
WHEN (OLD.total <> NEW.total)
BEGIN
SET NEW.updated_at = CURRENT_TIMESTAMP;
END;
Этот триггер помогает отслеживать момент последнего изменения суммы заказа, что может быть полезно для аудита изменений или для обновления связанных систем, например, систем бухгалтерского учета.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥8❤5😍2⚡1🤩1💯1
Использование временных таблиц для сложных запросов в SQL 🚀
Сегодня мы обсудим, как использование временных таблиц может значительно упростить выполнение сложных запросов и улучшить производительность ваших SQL-операций.
Что такое временные таблицы?
Временные таблицы — это специальные таблицы, которые существуют временно в сеансе вашей базы данных.
Преимущества использования временных таблиц:
1️⃣ Улучшение читаемости запросов: Разбиение сложного запроса на несколько простых шагов с использованием временных таблиц упрощает понимание логики запроса. 📖
2️⃣ Оптимизация производительности: Избежание многократного вычисления одних и тех же данных в различных частях запроса ускоряет выполнение. ⏱️
3️⃣ Упрощение отладки: Проверка содержимого временных таблиц на каждом этапе помогает быстрее находить и исправлять ошибки. 🔍
Пример:
Представим, что нам нужно анализировать продажи по продуктам и регионам, но данные разбросаны по различным таблицам, и существуют сложные условия для агрегации.
В этом примере мы создаем временную таблицу TempSales, чтобы хранить результаты агрегации по продуктам и регионам за январь 2023 года. Затем мы присоединяем таблицы Products и Regions для получения названий продуктов и регионов, сортируя результаты по убыванию объема продаж.
Когда стоит использовать временные таблицы:
1️⃣ Когда вы работаете с большими объемами данных. 📊
2️⃣ Когда в запросах многократно используются одни и те же подсчеты или агрегации
3️⃣ Когда нужно разделить сложный запрос на управляемые части.
Сегодня мы обсудим, как использование временных таблиц может значительно упростить выполнение сложных запросов и улучшить производительность ваших SQL-операций.
Что такое временные таблицы?
Временные таблицы — это специальные таблицы, которые существуют временно в сеансе вашей базы данных.
Преимущества использования временных таблиц:
Пример:
Представим, что нам нужно анализировать продажи по продуктам и регионам, но данные разбросаны по различным таблицам, и существуют сложные условия для агрегации.
-- Создаем временную таблицу
CREATE TEMPORARY TABLE TempSales AS
SELECT ProductID, RegionID, SUM(Sales) as TotalSales
FROM SalesRecords
WHERE SaleDate BETWEEN '2023-01-01' AND '2023-01-31'
GROUP BY ProductID, RegionID;
-- Используем временную таблицу для более сложного запроса
SELECT p.ProductName, r.RegionName, t.TotalSales
FROM TempSales t
JOIN Products p ON t.ProductID = p.ProductID
JOIN Regions r ON t.RegionID = r.RegionID
ORDER BY t.TotalSales DESC;
В этом примере мы создаем временную таблицу TempSales, чтобы хранить результаты агрегации по продуктам и регионам за январь 2023 года. Затем мы присоединяем таблицы Products и Regions для получения названий продуктов и регионов, сортируя результаты по убыванию объема продаж.
Когда стоит использовать временные таблицы:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍3💯3❤1⚡1🤩1
Как вам было бы удобнее входить на SQL Academy ❓
Anonymous Poll
42%
Через email + пароль
56%
Через учетную запись Google
15%
Через учетную запись Yandex
14%
Через учетную запись VK
6%
Через учетную запись Apple
👍8👎1🔥1
Премиум подписка в подарок 🎁
Давайте попробуем решить несложную задачу по SQL:
Условие задачи и схему можно посмотреть тут:
https://sqlplayground.tech/sandbox/665f1dfc336e7166b572f64c
Для участия необходимо:
1) Перейти по ссылке sql песочницы
https://sqlplayground.tech/sandbox/665f1dfc336e7166b572f64c
2) Сделать fork (копию этой песочницы)
3) В блоке Query SQL написать ваше решение
4) Не забыть сохранить песочницу перед отправкой
5) Оставить в комментариях под постом ссылку на вашу песочницу с решением
Первый кто ее успешно решит - получит заслуженную награду🎁
Давайте попробуем решить несложную задачу по SQL:
-- Найти ID отдела с максимальной суммарной зарплатой сотрудников
Условие задачи и схему можно посмотреть тут:
https://sqlplayground.tech/sandbox/665f1dfc336e7166b572f64c
Для участия необходимо:
1) Перейти по ссылке sql песочницы
https://sqlplayground.tech/sandbox/665f1dfc336e7166b572f64c
2) Сделать fork (копию этой песочницы)
3) В блоке Query SQL написать ваше решение
4) Не забыть сохранить песочницу перед отправкой
5) Оставить в комментариях под постом ссылку на вашу песочницу с решением
Первый кто ее успешно решит - получит заслуженную награду
Please open Telegram to view this post
VIEW IN TELEGRAM
sqlplayground.app
SQL Playground - Online SQL Sandbox
Explore, learn, and share SQL queries in our free online SQL playground. Support for MySQL and PostgreSQL, perfect for testing and enhancing your SQL skills.
👍9⚡2🔥2🎉2❤1🤩1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36🔥26❤3🤩3⚡1😍1
This media is not supported in your browser
VIEW IN TELEGRAM
Привет всем! 👋
Мы в SQL Academy продолжаем нашу миссию бесплатного обучения SQL!🎉 Помимо наших фундаментальных курсов на sql-academy.org, с радостью объявляем о запуске нашего нового проекта — SQL Playground!
🚀 SQL Playground — это SQL песочница, где каждый может экспериментировать с SQL, создать базу данных, на ней повыполнять запросы и поделиться ей с кем угодно. И это все абсолютно бесплатно!
Мы запустили наш проект на Product Hunt и будем благодарны за вашу поддержку! Поддержите нас, перейдя по ссылке 👉
на Product Hunt и оставьте свой голос (и комментарий, если хотите поделиться впечатлениями!).
Ссылка на сам проект:
https://sqlplayground.tech/
Ссылка на product hunt:
https://www.producthunt.com/posts/sql-playground-2
💬 Ваше мнение очень важно для нас! Лайкните, делитесь и комментируйте — давайте делать SQL доступным вместе!
Спасибо за вашу поддержку и участие в нашем сообществе! 💙
Мы в SQL Academy продолжаем нашу миссию бесплатного обучения SQL!
🚀 SQL Playground — это SQL песочница, где каждый может экспериментировать с SQL, создать базу данных, на ней повыполнять запросы и поделиться ей с кем угодно. И это все абсолютно бесплатно!
Мы запустили наш проект на Product Hunt и будем благодарны за вашу поддержку! Поддержите нас, перейдя по ссылке 👉
на Product Hunt и оставьте свой голос (и комментарий, если хотите поделиться впечатлениями!).
Ссылка на сам проект:
https://sqlplayground.tech/
Ссылка на product hunt:
https://www.producthunt.com/posts/sql-playground-2
💬 Ваше мнение очень важно для нас! Лайкните, делитесь и комментируйте — давайте делать SQL доступным вместе!
Спасибо за вашу поддержку и участие в нашем сообществе! 💙
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥60👍14❤7🤩3⚡2😎2
Скидка 40% 🔥 по промокоду RUSSIA_DAY на премиум в честь дня России! Не пропустите возможность!
https://sql-academy.org/ru
https://sql-academy.org/ru
Please open Telegram to view this post
VIEW IN TELEGRAM
SQL Academy
Интерактивный онлайн-курс по SQL — SQL Academy
Интерактивный онлайн курс по SQL с упражнениями и задачами по написанию SQL запросов в MySQL. Идеально подходит для начинающих аналитиков, разработчиков и тестировщиков!
❤14🔥4👎3🤯3🤩2🤝2👍1
Условные выражения в MySQL
Условные выражения в MySQL — это мощный инструмент 🛠️ для работы с данными, позволяющий формировать запросы, которые автоматически адаптируются к различным условиям. Они используются для выполнения различных операций в зависимости от того, удовлетворяют ли данные определенным условиям. В этой статье мы рассмотрим наиболее часто используемые условные выражения в MySQL: IF, CASE, COALESCE, и NULLIF.
🔹 IF
Функция IF() является одной из базовых функций для работы с условиями в MySQL. Она проверяет условие и возвращает одно значение, если условие истинно 🟢, и другое значение, если условие ложно 🔴.
Пример:
🔹 CASE
Оператор CASE в MySQL используется для выполнения множественных условий. Это похоже на использование нескольких операторов IF в других языках программирования.
Пример:
Этот запрос классифицирует студентов по их производительности на основе баллов.
🔹 COALESCE
Функция COALESCE() возвращает первый ненулевой из своих аргументов 🌟.
Пример:
Здесь запрос вернет адрес контакта, если он не NULL; если адрес NULL, будет проверен email, и если он тоже NULL, вернется строка 'no contact'.
🔹 NULLIF
Функция NULLIF() возвращает NULL, если два аргумента равны. Если они не равны, возвращается первый аргумент.
Пример:
Этот запрос вернет NULL для всех результатов, где score равен 0, предотвращая деление на ноль в расчетах.
Заключение
Условные выражения в MySQL значительно упрощают обработку данных, позволяя реализовать сложные логические проверки и принятие решений прямо в процессе запроса к базе данных. Они делают SQL-запросы более мощными и гибкими, позволяя программистам создавать более эффективные и оптимизированные решения для обработки данных.
Условные выражения в MySQL — это мощный инструмент 🛠️ для работы с данными, позволяющий формировать запросы, которые автоматически адаптируются к различным условиям. Они используются для выполнения различных операций в зависимости от того, удовлетворяют ли данные определенным условиям. В этой статье мы рассмотрим наиболее часто используемые условные выражения в MySQL: IF, CASE, COALESCE, и NULLIF.
🔹 IF
Функция IF() является одной из базовых функций для работы с условиями в MySQL. Она проверяет условие и возвращает одно значение, если условие истинно 🟢, и другое значение, если условие ложно 🔴.
Пример:
SELECT IF(age > 18, 'adult', 'minor') FROM users;
🔹 CASE
Оператор CASE в MySQL используется для выполнения множественных условий. Это похоже на использование нескольких операторов IF в других языках программирования.
Пример:
SELECT name,
CASE
WHEN score >= 90 THEN 'excellent'
WHEN score >= 80 THEN 'good'
WHEN score >= 70 THEN 'average'
LSE 'poor'
END as performance
FROM students;
Этот запрос классифицирует студентов по их производительности на основе баллов.
🔹 COALESCE
Функция COALESCE() возвращает первый ненулевой из своих аргументов 🌟.
Пример:
SELECT COALESCE(address, email, 'no contact') FROM contacts;
Здесь запрос вернет адрес контакта, если он не NULL; если адрес NULL, будет проверен email, и если он тоже NULL, вернется строка 'no contact'.
🔹 NULLIF
Функция NULLIF() возвращает NULL, если два аргумента равны. Если они не равны, возвращается первый аргумент.
Пример:
SELECT NULLIF(score, 0) FROM results;
Этот запрос вернет NULL для всех результатов, где score равен 0, предотвращая деление на ноль в расчетах.
Заключение
Условные выражения в MySQL значительно упрощают обработку данных, позволяя реализовать сложные логические проверки и принятие решений прямо в процессе запроса к базе данных. Они делают SQL-запросы более мощными и гибкими, позволяя программистам создавать более эффективные и оптимизированные решения для обработки данных.
👍25❤6⚡1🔥1🤩1🆒1😎1
Master_SQL.pdf
754.9 KB
Руководство по SQL 🔥
Это руководство охватывает различные аспекты, начиная с основ SQL и до более сложных тем. Материал дополнен практическими примерами, которые способствуют лучшему усвоению информации.
Это руководство охватывает различные аспекты, начиная с основ SQL и до более сложных тем. Материал дополнен практическими примерами, которые способствуют лучшему усвоению информации.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥11❤7⚡1🤩1😍1
Релиз Claude 3.5 Sonnet: Новый игрок на арене ИИ 🖥
Когда речь заходит об искусственном интеллекте и больших языковых моделях, ChatGPT часто оказывается в центре внимания. Однако мир ИИ гораздо шире и разнообразнее.
Знаете ли вы, что согласно многим бенчмаркам, Claude от Anthropic зачастую превосходит своего знаменитого конкурента?
Недавно состоялся важный релиз - Claude 3.5 Sonnet стал доступен бесплатно для всех пользователей. Эта модель позиционируется как прямой конкурент GPT-4o, вышедшего в открытый доступ несколько месяцев назад.
Не упустите возможность интегрировать передовые языковые модели в вашу жизнь и работу. Они способны значительно повысить вашу продуктивность и открыть новые горизонты.
Важное напоминание‼️ : Несмотря на впечатляющие возможности, даже самые передовые модели не застрахованы от ошибок. Всегда перепроверяйте важную информацию, полученную от ИИ.
А вы уже опробовали Claude 3.5 Sonnet?
Когда речь заходит об искусственном интеллекте и больших языковых моделях, ChatGPT часто оказывается в центре внимания. Однако мир ИИ гораздо шире и разнообразнее.
Знаете ли вы, что согласно многим бенчмаркам, Claude от Anthropic зачастую превосходит своего знаменитого конкурента?
Недавно состоялся важный релиз - Claude 3.5 Sonnet стал доступен бесплатно для всех пользователей. Эта модель позиционируется как прямой конкурент GPT-4o, вышедшего в открытый доступ несколько месяцев назад.
Не упустите возможность интегрировать передовые языковые модели в вашу жизнь и работу. Они способны значительно повысить вашу продуктивность и открыть новые горизонты.
Важное напоминание
А вы уже опробовали Claude 3.5 Sonnet?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤3⚡2👍2🤩1💯1
Какой из диалектов SQL для вас наиболее интересен ❓
Anonymous Poll
27%
MySQL
53%
PostgreSQL
6%
Microsoft SQL Server (T-SQL)
6%
Oracle Database (PL/SQL)
1%
SQLite
0%
IBM DB2
7%
Не знаю
Подводим итоги за июнь 🏖
Добрый день! Мы собрали для вас самое важное, что произошло за прошедший месяц. Нас ждет много интересного и полезного!
Расширение способов оплаты 💸
Теперь мы можем принимать платежи не только с банковских карт, выпущенных в России. Если у вас были проблемы с оплатой, теперь они остались в прошлом. Кроме того, сейчас премиум-доступ можно купить с хорошей скидкой, используя промокод ниже.
Новые задания по SQL
Мы добавили 3 новых задания по SQL, основанных на реальных собеседованиях на позицию Junior Data Analyst в Skypro. Проверьте свои навыки и подготовьтесь к интервью!
🔹 Выведите сумму выручки по каждому курсу за последний месяц…
🔹 Выведите название курса и среднюю оценку для каждого курса с количеством оценок…
🔹 Выведите количество пользователей, которые совершили покупку курса, но…
Популярные посты за июнь
🔹 Использование временных таблиц для сложных запросов в SQL
🔹 Краткая справка по основам SQL 🔥
🔹 Условные выражения в MySQL
🔹 В чем отличие WHERE от HAVING
Скидка в честь начала июля
В честь начала нового календарного месяца лета, прекрасного сезона для самообразования, мы объявляем скидку 30%! Активируйте промокод до 6 июля 23:59 и начните учиться с выгодой.
Промокод: JULY30
Добрый день! Мы собрали для вас самое важное, что произошло за прошедший месяц. Нас ждет много интересного и полезного!
Расширение способов оплаты 💸
Теперь мы можем принимать платежи не только с банковских карт, выпущенных в России. Если у вас были проблемы с оплатой, теперь они остались в прошлом. Кроме того, сейчас премиум-доступ можно купить с хорошей скидкой, используя промокод ниже.
Новые задания по SQL
Мы добавили 3 новых задания по SQL, основанных на реальных собеседованиях на позицию Junior Data Analyst в Skypro. Проверьте свои навыки и подготовьтесь к интервью!
🔹 Выведите сумму выручки по каждому курсу за последний месяц…
🔹 Выведите название курса и среднюю оценку для каждого курса с количеством оценок…
🔹 Выведите количество пользователей, которые совершили покупку курса, но…
Популярные посты за июнь
🔹 Использование временных таблиц для сложных запросов в SQL
🔹 Краткая справка по основам SQL 🔥
🔹 Условные выражения в MySQL
🔹 В чем отличие WHERE от HAVING
Скидка в честь начала июля
В честь начала нового календарного месяца лета, прекрасного сезона для самообразования, мы объявляем скидку 30%! Активируйте промокод до 6 июля 23:59 и начните учиться с выгодой.
sql-academy.org
Задание #106 — Интерактивный тренажёр по SQL
Улучшите свои навыки написания SQL запросов и подготовьтесь к собеседованию в SkyPro и других компаниях в интерактивном тренажёре. Выведите сумму выручки по каждому курсу за последний месяц. <br /...
👍15❤5🔥3⚡1👎1🤩1😍1