Что вернет оператор CASE, если ни одно из условий WHEN не выполнено и блок ELSE не указан?
Anonymous Quiz
12%
Возникнет ошибка
77%
Вернет NULL
6%
Вернет первое значение WHEN
5%
Вернет 0
👍2
Можно ли использовать оператор CASE в разделе ORDER BY SQL-запроса?
Anonymous Quiz
38%
Да, можно
38%
Нет, только в SELECT
9%
Только в WHERE
15%
Нет, это невозможно
👍12❤1
Какой из следующих вариантов описывает правильное использование оператора CASE в SQL?
Anonymous Quiz
4%
Оператор CASE используется только для обработки числовых данных
90%
Оператор CASE позволяет выполнять условную логику внутри SQL-запроса
4%
Оператор CASE может быть использован только с агрегатными функциями
2%
Оператор CASE автоматически индексирует результаты
👍2
🔐 Ограничения (CONSTRAINTS) в SQL
Ограничения (Constraints) в SQL используются для определения правил для данных в таблице, обеспечивая целостность, точность и надежность данных в базе данных. Они помогают предотвратить ввод некорректных данных и поддерживать взаимосвязи между таблицами.🛡️
Описание ограничений
🔹 NOT NULL
Применение:
Используется, когда значение столбца всегда должно быть задано.
Пример:
В таблице users столбец email должен быть NOT NULL, чтобы каждый пользователь имел адрес электронной почты.
🔹 UNIQUE:
Применение:
Когда нужно предотвратить дублирование значений в столбце.
Пример:
В таблице employees столбец tax_id должен быть уникальным для каждого сотрудника.
🔹PRIMARY KEY
Применение:
Для уникальной идентификации каждой записи в таблице.
Пример:
Столбец id в таблице orders является первичным ключом.
🔹 FOREIGN KEY
Применение:
Для установления связей между таблицами и обеспечения согласованности данных.
Пример:
Столбец customer_id в таблице orders ссылается на id в таблице customers.
🔹CHECK
Применение: Для задания условий, которым должны соответствовать данные.
Пример:
В таблице products столбец price должен быть больше нуля.
🔹 DEFAULT
Применение:
Чтобы автоматически присваивать значение столбцу, если оно не указано при вставке.
Пример:
В таблице users столбец status по умолчанию имеет значение 'active'.
Ограничения (Constraints) в SQL используются для определения правил для данных в таблице, обеспечивая целостность, точность и надежность данных в базе данных. Они помогают предотвратить ввод некорректных данных и поддерживать взаимосвязи между таблицами.
Описание ограничений
🔹 NOT NULL
Применение:
Используется, когда значение столбца всегда должно быть задано.
Пример:
В таблице users столбец email должен быть NOT NULL, чтобы каждый пользователь имел адрес электронной почты.
🔹 UNIQUE:
Применение:
Когда нужно предотвратить дублирование значений в столбце.
Пример:
В таблице employees столбец tax_id должен быть уникальным для каждого сотрудника.
🔹PRIMARY KEY
Применение:
Для уникальной идентификации каждой записи в таблице.
Пример:
Столбец id в таблице orders является первичным ключом.
🔹 FOREIGN KEY
Применение:
Для установления связей между таблицами и обеспечения согласованности данных.
Пример:
Столбец customer_id в таблице orders ссылается на id в таблице customers.
🔹CHECK
Применение: Для задания условий, которым должны соответствовать данные.
Пример:
В таблице products столбец price должен быть больше нуля.
🔹 DEFAULT
Применение:
Чтобы автоматически присваивать значение столбцу, если оно не указано при вставке.
Пример:
В таблице users столбец status по умолчанию имеет значение 'active'.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤5🔥4😍1
Какое ограничение используется для обеспечения ссылочной целостности между таблицами?
Anonymous Quiz
81%
FOREIGN KEY
3%
DEFAULT
10%
UNIQUE
6%
NOT NULL
👍9❤2🔥2
Какое из следующих утверждений верно о PRIMARY KEY?
Anonymous Quiz
7%
Столбец с PRIMARY KEY может содержать NULL значения
14%
Таблица может иметь несколько PRIMARY KEY столбцов
72%
PRIMARY KEY сочетает свойства UNIQUE и NOT NULL
7%
PRIMARY KEY не гарантирует уникальность записей
👍21🔥4
Отличная новость ⭐️
В эту пятницу в 19:00 Денис Иванов, ведущий продуктовый аналитик, проведет открытой вебинар с очень интересно темой:
Продуктовая аналитика. Как стать уникальным кандидатом и получить заветный оффер?
На вебинаре мы обсудим:
🔹 как быть уникальным продуктовым аналитиком и сразу завоёвывать сердца на собеседованиях?
🔹как проходить собеседования и получать огромное количество офферов?
🔹 красные флаги при устройстве на первое место работы. Как не облажаться с выбором?
🔹как увеличить количество откликов для вашего резюме?
Для всех участников вебинара мы подготовили хорошую скидку на наш премиум🎁 .
Познакомиться поближе с ведущим вебинара можно в его уютном телеграмм канале @product_analytics_hub.
Подключайтесь в 19:00 13 декабря по этой ссылке Google Meet
В эту пятницу в 19:00 Денис Иванов, ведущий продуктовый аналитик, проведет открытой вебинар с очень интересно темой:
Продуктовая аналитика. Как стать уникальным кандидатом и получить заветный оффер?
На вебинаре мы обсудим:
🔹 как быть уникальным продуктовым аналитиком и сразу завоёвывать сердца на собеседованиях?
🔹как проходить собеседования и получать огромное количество офферов?
🔹 красные флаги при устройстве на первое место работы. Как не облажаться с выбором?
🔹как увеличить количество откликов для вашего резюме?
Для всех участников вебинара мы подготовили хорошую скидку на наш премиум
Познакомиться поближе с ведущим вебинара можно в его уютном телеграмм канале @product_analytics_hub.
Подключайтесь в 19:00 13 декабря по этой ссылке Google Meet
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍12❤9🔥7
Напоминаем ⚠️
Вебинар “Продуктовая аналитика. Как стать уникальным кандидатом и получить заветный оффер?” начнется через 30 минут по ссылке:
https://meet.google.com/uwi-zgzd-ntd
Вебинар “Продуктовая аналитика. Как стать уникальным кандидатом и получить заветный оффер?” начнется через 30 минут по ссылке:
https://meet.google.com/uwi-zgzd-ntd
Please open Telegram to view this post
VIEW IN TELEGRAM
Google
Real-time meetings by Google. Using your browser, share your video, desktop, and presentations with teammates and customers.
👍6🔥3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍49❤18🔥12
Мы собрали базу вопросов по SQL для подготовки к собеседованиям! 🎯
Идеальный способ освежить знания и понять, что нужно подтянуть перед важным днем. 🧠
И для удобства сделали эти вопросы в виде карточек для запоминания, чтобы вы могли отметить вопросы выученными✅ и больше не возвращаться к ним.
Перейти к базе вопросов по SQL
https://sql-academy.org/ru/interview-questions
Все вопросы и ответы — в открытом доступе! 📚
Присоединяйтесь к нам на GitHub и добавляйте свои вопросы или улучшайте текущие! 🌐🤝
https://github.com/SQL-Academy/ru.sql-academy
Идеальный способ освежить знания и понять, что нужно подтянуть перед важным днем. 🧠
И для удобства сделали эти вопросы в виде карточек для запоминания, чтобы вы могли отметить вопросы выученными
Перейти к базе вопросов по SQL
https://sql-academy.org/ru/interview-questions
Все вопросы и ответы — в открытом доступе! 📚
Присоединяйтесь к нам на GitHub и добавляйте свои вопросы или улучшайте текущие! 🌐🤝
https://github.com/SQL-Academy/ru.sql-academy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥20❤5👎1
📂 Временные таблицы
Временные таблицы позволяют временно хранить данные в текущей сессии. Они полезны для работы с промежуточными результатами и оптимизации сложных запросов. Такие таблицы автоматически удаляются после завершения соединения с базой данных.
🔧 Основные особенности:
🔹 Создаются с помощью команды CREATE TEMPORARY TABLE
🔹 Существуют только в рамках текущей сессии
🔹 Разные сессии могут использовать таблицы с одинаковыми именами
📚 Пример: создание временной таблицы
Предположим, у вас есть таблица orders, и вы хотите узнать, какие клиенты сделали заказы на сумму более 1000 евро.
🔍 Что делает этот запрос?
🔹 Создает временную таблицу temp_high_value_orders.
🔹 Сохраняет информацию о клиентах и сумме их заказов.
🔹 Оставляет только тех клиентов, чья сумма заказов превышает 1000.
🤔 Зачем использовать временные таблицы?
✅ Уменьшить нагрузку на базу данных.
Сложные вычисления выполняются один раз, а результаты сохраняются для последующих запросов.
✅ Упростить основной запрос.
После создания временной таблицы можно использовать ее как обычную таблицу:
Временные таблицы позволяют временно хранить данные в текущей сессии. Они полезны для работы с промежуточными результатами и оптимизации сложных запросов. Такие таблицы автоматически удаляются после завершения соединения с базой данных.
🔹 Создаются с помощью команды CREATE TEMPORARY TABLE
🔹 Существуют только в рамках текущей сессии
🔹 Разные сессии могут использовать таблицы с одинаковыми именами
📚 Пример: создание временной таблицы
Предположим, у вас есть таблица orders, и вы хотите узнать, какие клиенты сделали заказы на сумму более 1000 евро.
CREATE TEMPORARY TABLE temp_high_value_orders AS
SELECT customer_id, SUM(amount) AS total_amount
FROM orders
GROUP BY customer_id
HAVING total_amount > 1000;
🔹 Создает временную таблицу temp_high_value_orders.
🔹 Сохраняет информацию о клиентах и сумме их заказов.
🔹 Оставляет только тех клиентов, чья сумма заказов превышает 1000.
🤔 Зачем использовать временные таблицы?
✅ Уменьшить нагрузку на базу данных.
Сложные вычисления выполняются один раз, а результаты сохраняются для последующих запросов.
✅ Упростить основной запрос.
После создания временной таблицы можно использовать ее как обычную таблицу:
SELECT c.name, t.total_amount
FROM customers c
JOIN temp_high_value_orders t ON c.id = t.customer_id;
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥10❤9
Что произойдет с временной таблицей после завершения сессии?
Anonymous Quiz
9%
Она сохранится в базе данных
84%
Она удалится автоматически
3%
Она преобразуется в постоянную таблицу
4%
Она будет заблокирована для редактирования
Подзапросы (Subqueries) в SQL ⭐️
Подзапрос (Subquery) — это запрос внутри другого запроса. Он выполняется первым и передает результат основному запросу.
🔍 Некоторые виды подзапросов:
🔹 В SELECT — используется для получения дополнительных данных:
🔹 В WHERE — используется для фильтрации:
🔹 В FROM — подзапрос как временная таблица:
Подзапрос (Subquery) — это запрос внутри другого запроса. Он выполняется первым и передает результат основному запросу.
🔹 В SELECT — используется для получения дополнительных данных:
SELECT name,
(SELECT COUNT(*) FROM orders WHERE customer_id = customers.id) AS order_count
FROM customers;
🔹 В WHERE — используется для фильтрации:
SELECT name FROM products
WHERE price > (SELECT AVG(price) FROM products);
🔹 В FROM — подзапрос как временная таблица:
SELECT avg_price FROM
(SELECT AVG(price) AS avg_price FROM products) AS temp;
Please open Telegram to view this post
VIEW IN TELEGRAM
👍50❤14🔥7
Вы когда-нибудь задумывались, как правильно вычислить возраст человека в SQL?
🚫 Неправильный подход:
SELECT YEAR(NOW()) - YEAR('2003-07-03 14:10:26');
Проблема такого подхода в том, что он не учитывает был ли день рождения у данного человека в этом году или ещё нет. То есть, если на момент запроса уже наступило 3-е июля (07-03), то человек отпраздновал свой день рождения и ему уже 21 лет, иначе ему по-прежнему 20 года. Разница функций YEAR тут будет бесполезна — в обоих случаях она даст 21 лет.
SELECT FLOOR(DATEDIFF(NOW(), '2003-07-03 14:10:26') / 365);
Это лучше, но всё же не совсем точно из-за наличия високосных годов. 📆
✅ Правильный подход с TIMESTAMPDIFF:
TIMESTAMPDIFF(YEAR, '2003-07-03 14:10:26', NOW());
Используя функцию TIMESTAMPDIFF, мы получаем точную разницу в годах между двумя датами, учитывая все нюансы календаря! 🎯
Так что, когда дело доходит до вычисления возраста, доверяйте TIMESTAMPDIFF — и ваши расчёты будут точны как никогда! 🚀💡
Please open Telegram to view this post
VIEW IN TELEGRAM
👍78❤20🔥14👎2
CASE WHEN: Условные выражения в SELECT ✨
Иногда нужно «разделить» данные по условию прямо внутри запроса, не меняя структуру таблицы и не создавая дополнительные поля. И тут на помощь приходит CASE WHEN!
Что это такое?
CASE WHEN — это оператор, который позволяет писать логику «если… то… иначе…» в SELECT, WHERE, ORDER BY и других частях SQL-запроса.
Пример использования
Допустим, у нас есть таблица products с колонками: name (название товара) и price (цена). Нужно вывести для каждого товара метку, говорящую о ценовом уровне:
Что тут происходит?
1. CASE проверяет цену в каждой строке:
🔹Если цена < 50, то подставляем строку 'Дешево'.
🔹Если цена между 50 и 100, получаем 'Средне'.
🔹И во всех остальных случаях — 'Дорого'.
2. Результат помещаем в новый столбец — price_label.
Зачем это нужно?
🔹Быстрая категоризация данных без изменений в самой таблице.
🔹Условная логика в запросах: выводим разные значения в зависимости от условий.
🔹Упрощает отчёты и помогает строить «человеко-понятные» выводы данных.
Попрактиковаться в написание запроса с использование CASE оператора можно в заданиях для самопроверки по ссылке
https://sql-academy.org/ru/guide/case-expression
Иногда нужно «разделить» данные по условию прямо внутри запроса, не меняя структуру таблицы и не создавая дополнительные поля. И тут на помощь приходит CASE WHEN!
Что это такое?
CASE WHEN — это оператор, который позволяет писать логику «если… то… иначе…» в SELECT, WHERE, ORDER BY и других частях SQL-запроса.
Пример использования
Допустим, у нас есть таблица products с колонками: name (название товара) и price (цена). Нужно вывести для каждого товара метку, говорящую о ценовом уровне:
SELECT
name,
price,
CASE
WHEN price < 50 THEN 'Дешево'
WHEN price BETWEEN 50 AND 100 THEN 'Средне'
ELSE 'Дорого'
END AS price_label
FROM products;
Что тут происходит?
1. CASE проверяет цену в каждой строке:
🔹Если цена < 50, то подставляем строку 'Дешево'.
🔹Если цена между 50 и 100, получаем 'Средне'.
🔹И во всех остальных случаях — 'Дорого'.
2. Результат помещаем в новый столбец — price_label.
Зачем это нужно?
🔹Быстрая категоризация данных без изменений в самой таблице.
🔹Условная логика в запросах: выводим разные значения в зависимости от условий.
🔹Упрощает отчёты и помогает строить «человеко-понятные» выводы данных.
Попрактиковаться в написание запроса с использование CASE оператора можно в заданиях для самопроверки по ссылке
https://sql-academy.org/ru/guide/case-expression
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍11❤5💘1