SQL Academy: всё о реляционных БД и SQL
По всем вопросам и коммерческим предложениям писать @LadanovNick Купить рекламу: https://telega.in/c/sqlacademyofficial Чат студентов SQL Academy https://t.me/sqlacademyorg
نمایش بیشتر📈 تحلیل کانال تلگرام SQL Academy: всё о реляционных БД и SQL
کانال SQL Academy: всё о реляционных БД и SQL (@sqlacademyofficial) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 11 365 مشترک است و جایگاه 10 911 را در دسته فناوری و برنامهها و رتبه 57 339 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 11 365 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 28 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 180 و در ۲۴ ساعت گذشته برابر 9 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 17.77% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 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
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 

