SQL Academy: всё о реляционных БД и SQL
По всем вопросам и коммерческим предложениям писать @LadanovNick Купить рекламу: https://telega.in/c/sqlacademyofficial Чат студентов SQL Academy https://t.me/sqlacademyorg
Больше📈 Аналитический обзор Telegram-канала SQL Academy: всё о реляционных БД и SQL
Канал SQL Academy: всё о реляционных БД и SQL (@sqlacademyofficial) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 11 365 подписчиков, занимая 10 911 место в категории Технологии и приложения и 57 339 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 11 365 подписчиков.
Согласно последним данным от 28 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 180, а за последние 24 часа — 9, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 17.77%. В первые 24 часа после публикации контент обычно набирает 11.66% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 2 020 просмотров. В течение первых суток публикация набирает 1 325 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 16.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как sql, строка, индекс, auto_increment, created_at.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“По всем вопросам и коммерческим предложениям писать @LadanovNick
Купить рекламу: https://telega.in/c/sqlacademyofficial
Чат студентов SQL Academy
https://t.me/sqlacademyorg”
Благодаря высокой частоте обновлений (последние данные получены 29 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
DELIMITER $$
CREATE PROCEDURE AddCustomer(IN custName VARCHAR(100), IN custAddress VARCHAR(255))
BEGIN
INSERT INTO Customers (Name, Address) VALUES (custName, custAddress);
END$$
DELIMITER ;
Этот пример демонстрирует создание процедуры AddCustomer, которая принимает два параметра (имя и адрес клиента) и вставляет эти данные в таблицу Customers.
Для вызова ранее созданной процедуры AddCustomer используйте следующий SQL-запрос:
CALL AddCustomer('Иван Иванов', '123 Примерная ул., Москва');
Этот вызов произведет вставку новой записи в таблицу Customers с именем и адресом, указанными в качестве параметров.
Заключение
Хранимые процедуры в MySQL играют важную роль в разработке и управлении базами данных 🗄️. Они не только упрощают код и улучшают его поддержку, но и повышают производительность за счет уменьшения количества обработки данных на стороне клиента и сервера. Использование хранимых процедур может значительно повысить эффективность работы с большими объемами данных и сложными запросами 🌟.
SELECT email FROM users WHERE email REGEXP '^[a-zA-Z0-9._%+-]+@example\.com$';
Отличие от LIKE 😼
Хотя операторы LIKE и REGEXP могут использоваться для поиска текстовых данных, между ними есть несколько ключевых различий:
🔹Гибкость: REGEXP предлагает гораздо большую гибкость и мощь 💪, позволяя создавать сложные шаблоны поиска, в то время как LIKE ограничен простыми шаблонами с использованием символов % и _.
🔹Производительность: LIKE может быть быстрее для простых поисков 🚀, поскольку он менее ресурсоемок, в то время как REGEXP может быть более затратным из-за сложности обработки регулярных выражений.
🔹Синтаксис: Синтаксис REGEXP сложнее, поскольку он требует понимания регулярных выражений, тогда как LIKE проще в использовании для базового поиска.
В целом, выбор между LIKE и REGEXP зависит от конкретных требований к поиску 🧐. Если нужен простой поиск по шаблону, то подойдет LIKE. Для более сложных и гибких поисковых запросов лучше использовать REGEXP .
CREATE TABLE Parents (
ParentID INT PRIMARY KEY,
Name VARCHAR(100)
);
CREATE TABLE Children (
ChildID INT PRIMARY KEY,
Name VARCHAR(100),
ParentID INT,
FOREIGN KEY (ParentID) REFERENCES Parents(ParentID)
);
Особенности:
- Каскадное удаление: Если родительская запись удаляется, все связанные дочерние записи тоже удаляются.
- Ограничение целостности 🔒: Нельзя добавить запись в дочернюю таблицу, если нет соответствующей записи в родительской таблице.
- Улучшает производительность запросов благодаря индексации связанных столбцов 🏎️.
Когда вы используете внешние ключи, вы облегчаете себе жизнь, гарантируя, что ваша база данных останется чистой и все связи между таблицами будут корректными. Правильно используйте внешние ключи, и ваши данные всегда будут в порядке! 🔐💼
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
Здесь мы используем START TRANSACTION и COMMIT, чтобы гарантировать, что обе операции выполнены вместе.
2. Откат при ошибке:
START TRANSACTION;
UPDATE accounts SET balance = balance - 1000 WHERE id = 1;
-- Если ошибка, отменяем всё
ROLLBACK;
ROLLBACK отменяет все изменения, если что-то пошло не так.
Заключение
Использование транзакций в MySQL помогает сохранять ваши данные в безопасности и целостности, гарантируя, что комплексные операции либо выполняются полностью, либо не оказывают влияния вовсе.
SELECT YEAR(NOW()) - YEAR('2003-07-03 14:10:26');
Проблема такого подхода в том, что он не учитывает был ли день рождения у данного человека в этом году или ещё нет. То есть, если на момент запроса уже наступило 3-е июля (07-03), то человек отпраздновал свой день рождения и ему уже 21 лет, иначе ему по-прежнему 20 года. Разница функций YEAR тут будет бесполезна — в обоих случаях она даст 21 лет.
🤔 Что же делать? Мы могли бы пойти по пути вычисления разницы в днях и деления на 365:
SELECT FLOOR(DATEDIFF(NOW(), '2003-07-03 14:10:26') / 365);
Это лучше, но всё же не совсем точно из-за наличия високосных годов. 📆
✅ Правильный подход с TIMESTAMPDIFF:
TIMESTAMPDIFF(YEAR, '2003-07-03 14:10:26', NOW());
Используя функцию TIMESTAMPDIFF, мы получаем точную разницу в годах между двумя датами, учитывая все нюансы календаря! 🎯
Так что, когда дело доходит до вычисления возраста, доверяйте TIMESTAMPDIFF — и ваши расчёты будут точны как никогда! 🚀💡
SELECT a.name AS EmployeeName, b.name AS ManagerName
FROM employees a
JOIN employees b ON a.manager_id = b.id;
Здесь мы используем одну и ту же таблицу employees для поиска имени сотрудника и его менеджера. Псевдонимы a и b помогают нам различать два использования таблицы.
2️⃣ Какой из операторов: SELECT, FROM, WHERE, GROUP BY - выполняется последним? 🧐
И тут главный герой - SELECT! 🌟 Хотя он стоит на первом месте по синтаксису, логически данные выбираются после всех фильтраций и группировок. Так что, порядок такой:
1. FROM ➡️ 2. WHERE ➡️ 3. GROUP BY ➡️ 4. SELECT.
3️⃣ Минимальное и максимальное количество записей в FULL JOIN таблицы на 10 и 100 строк? 📊
С FULL JOIN всё интересно:
ℹ️Минимум? 100 строк, если каждая из 10 нашла свою пару.
ℹ️Максимум? 110 строк, если совпадений ноль и каждая строка появляется отдельно.
#задание_из_собеседования #tinkoff #intern #analytic
Победители выбраны!
5 победителей розыгрыша
Дата объявления победителей
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
