Пишем на SQL
Открыть в Telegram
Уроки по SQL. Изучаем базы данных на примере СУБД ORACLE, MySQL, MS SQL Server, PostgreSql Мой курс по SQL и базам данных: https://prime-soft.biz/courses/sql Связь со мной @iliahohlov
Больше1 900
Подписчики
-124 часа
+17 дней
-130 день
Архив постов
1 900
Сегодня нашёл интересный тест на тему соединений.
В чем разница между LEFT JOIN и RIGHT JOIN, если соединяемые таблицы в запросе поменять местами?
1 900
Курс Программирование в PL/SQL (ORACLE) доступен теперь и на Степике:
https://stepik.org/a/250244
1 900
Специально для тех, кто не может решиться! Скидки на обучение SQL и обучение программированию в PL/SQL (ORACLE)! 🎁
Весь курс SQL и базам данных за 8.900
программа обучения
записаться и оплатить
Весь курс Программирования в PL/SQL (ORACLE) за 14.500
программа обучения
записаться и оплатить
Курс SQL + Программирование в PL/SQL (ORACLE) за 16.900
записаться и оплатить
Всё обучение индивидуальное!
Начать можем сразу после оплаты!
Время на обучение не ограниченно (но желательно проходить не менее 1-2 урока в неделю).
Буду рад дополнительным вопросам на почту info@prime-soft.biz или под постом.
1 900
Спасибо всем за участие! Ниже перечень слов, из которых составлен филворд:
База
Выборка
Да
Запись
Запрос
Зависимость
И
Или
Ключ
Код
Команда
Кортеж
Минус
Не
Объединение
Один
Множество
Нет
Поле
Связь
Столбец
СУБД
Таблица
1 900
Всем доброго понедельника! Как насчет филворда на тему баз данных на русском?! Сложность не высокая. Всего спрятано 23 слова. Решение опубликую чуть позже.
1 900
Сколько строчек вернёт запрос:
SELECT * FROM CLIENTS WHERE INN IN (SELECT INN FROM REG_INN)
1 900
Всем привет! Предлагаю очередную мини-задачу по SQL:
В таблице CLIENTS три строки:
ID NAME INN
-------------------------------------------------
1 ИП Иванов И.И. 690501019999
2 АО Рога и копыта 1234567890
3 АО ПАКС 2345678901
В таблице REG_INN две строки:
INN
--------------------
1234567890
NULL
1 900
Всем привет! Интересная задача от Александра (для тех, кто не читает комментарии 🙂).
Сколько строк вернёт следующий запрос (на примере PostgreSql):
select 123 union all select 123 union select 123
1 900
В БД PostgreSQL в таблице CODES (CODE VARCHAR(10)) нет строк. Сколько строк вставит команда:
INSERT INTO CODES (CODE) SELECT 123 UNION SELECT 123
1 900
Что произойдёт при выполнении следующей команды?
INSERT INTO CLIENTS
(NAME, INN)
VALUES
('АО Зелёный дом', NULL)
1 900
Всем привет!
Решая практические задачи и даже проходя небольшие тесты по SQL, мы становимся умнее: освежаем в памяти возможности языка SQL, узнаём и закрепляем новые знания! Поэтому, не ленимся и принимаем участие!😉
Предлагаю очередной интересный вопрос по базам данных.
В базе данных, среди прочих, есть таблица клиентов CLIENTS, определённая так:
CREATE TABLE CLIENTS (
ID INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
NAME VARCHAR(100) NOT NULL,
INN VARCHAR(20));
CREATE UNIQUE INDEX CLIENTS_INN ON CLIENTS (INN);
В таблице CLIENTS две строки:
ID NAME INN
1 АО Волга 12345
2 ИП Пятаков NULL
1 900
Интересно было бы узнать сколько сейчас работает удалённо.
Вы работаете в офисе или из дома?
1 900
Здравствуйте, друзья!
На следующей неделе планирую новую группу по SQL и PostgreSql, и в этот раз обучение будет по будням! 👌
- Он-лайн обучение по вторникам и четвергам 19:30 - 21:00;
- Закрытая Телеграм группа куда я буду выкладывать записи наших он-лайн встреч (на случай, если пропустите или захотите повторить материал);
- Будут самостоятельные практические задачи на тренеровочной базе данных. Я буду проверять Ваши решения, помогать оптимизировать их и находить ошибки!
Посмотреть программу обучения и записаться можно тут: https://prime-soft.biz/courses/postgresql
Оплатить можно в два этапа. Вначале 50% (7.450 ₽) и столько же после пятого урока. Всего будет 10 онлайн встреч.
График обучения:
- вт, чт 19:30 - 21:00;
- 08.07.2025 - 07.08.2025!
Оставляйте вопросы прямо под постом или отправляйте на почту: info@prime-soft.biz
1 900
Спасибо всем за активное участие!
Очень рад Вашим решениям!
Для того, чтобы отобразить месяца 2024 года, в которых заведено более 10ти клиентов, для начала просто отберём клиентов, заведённых именно в 2024 году:
SELECT *
FROM CLIENTS
WHERE DATE_CREATE >= DATE '2024-01-01'
AND DATE_CREATE < DATE '2025-01-01'
Было бы неплохо, если бы на столбце DATE_CREATE был индекс.
Мы получили всех клиентов, которых завели в 2024ом году. Выводя клиентов, выведем и ещё один столбец, в который будем извлекать номер месяца из даты заведения клиента (для того, чтобы позже клиентов группировать по одинаковому номеру месяца). Новому столбцу дадим алиас "MM". Наш запрос получит вид:
SELECT CLIENTS. *,
EXTRACT(MONTH FROM DATE_CREATE) MM
FROM CLIENTS
WHERE DATE_CREATE >= DATE '2024-01-01'
AND DATE_CREATE < DATE '2025-01-01'
В запросе выше мы вывели все имеющиеся столбцы из таблицы CLIENTS и добавили ещё один новый, в него мы получили месяц заведения клиента. У некоторых клиентов месяц заведения одинаковый, сгруппируем строки по одинаковом получаемому месяцу заведения клиента, подсчитав сколько в каждую группу сгруппировалось строк:
SELECT
EXTRACT(MONTH FROM DATE_CREATE) MM, COUNT(*) CLIENTS_COUNT
FROM CLIENTS
WHERE DATE_CREATE >= DATE '2024-01-01'
AND DATE_CREATE < DATE '2025-01-01'
GROUP BY EXTRACT(MONTH FROM DATE_CREATE)
В результате получим таблицу вида:
MM CLIENTS_COUNT
1 5
2 7
3 12
...
Сгруппировав клиентов 2024 года по месяцу заведения и подсчитав сколько клиентов заведено в каждом месяце, используя HAVING теперь оставим тех, где подсчитанное количество больше 10:
SELECT
EXTRACT(MONTH FROM DATE_CREATE) MM, COUNT(*) CLIENTS_COUNT
FROM CLIENTS
WHERE DATE_CREATE >= DATE '2024-01-01'
AND DATE_CREATE < DATE '2025-01-01'
GROUP BY EXTRACT(MONTH FROM DATE_CREATE)
HAVING COUNT(*) > 10
Обратите внимание, что в HAVING-е недопустимо для большинства СУБД (да и по ANSI стандарту тоже) использовать алиас (новое имя) столбца, ведь столбец с данными ещё не создан. Но в HAVING-е можно использовать такой же расчёт количества, что и в SELECT-е. В итоге и получилось не:
HAVING CLIENTS_COUNT > 10
а:
HAVING COUNT(*) > 10
Осталось добавить упорядочивание месяцов по количеству заведенных в них клиентов. Месяца с наибольшим количеством заведённых клиентов должны отображаться сверху. А вот в сортировке можно использовать алиасы столбцов. Конечный вариант нашего запроса:
SELECT
EXTRACT(MONTH FROM DATE_CREATE) MM, COUNT(*) CLIENTS_COUNT
FROM CLIENTS
WHERE DATE_CREATE >= DATE '2024-01-01'
AND DATE_CREATE < DATE '2025-01-01'
GROUP BY EXTRACT(MONTH FROM DATE_CREATE)
HAVING COUNT(*) > 10
ORDER BY CLIENTS_COUNT DESC
1 900
Всем отличного понедельника!
Есть таблица клиентов CLIENTS:
ID DATE_CREATE NAME
1 15.01.2024 ИП Иванов
2 27.01.2024 АО Вагон
3 04.02.2024 ИП Крупицкая
...
99 19.06.2025 АО Фонтанка
Требуется написать SQL-запрос, выводящий месяца за 2024 год, в которые было заведено более 10 клиентов (DATE_CREATE = дата заведения). В отчёте отобразить номер или название месяца и количество заведённых клиентов. Результат отсортироваить по убыванию. Вначале отобразить месяца, в которых заведено больше всего клиентов.
Задачу можно решить любым способом. Один из вариантов решения задачи опубликую чуть позже, сначала буду ждать работу от Вас 🤗
1 900
🧠 Как не потерять интерес к SQL (если учишь сам)
Учить SQL — просто, но легко заскучать🙂. Вот как держать фокус:
1️⃣ Реальные данные — пиши запросы к таблицам с фильмами, заказами или играми. Учись на том, что интересно.
2️⃣ Своя база — попробуй сделать мини-ERP: товары, клиенты, заказы. И JOIN-ы сразу станут осмысленными.
3️⃣ Мини-задачи — решай 1 SQL-задачу в день: sqlbolt.com, LeetCode, Mode.
4️⃣ Связь с кодом — попробуй писать SQL-запросы в Go или Python. Реальный эффект = реальный интерес.
5️⃣ Маленькие шаги — 20 минут в день лучше попытки "проглотить всё за выходные".
🔥 SQL — это не только слово "SELECT", это умение говорить с базами данных. А базы — везде.
1 900
Сколько строк вернёт запрос
SELECT * FROM CLIENTS WHERE DESCRIPTION <> NULL AND DESCRIPTION <> ''
1 900
В таблице CLIENTS есть три строки:
ID NAME DESCRIPTION
-----------------------------------------------------
1 АО Волга NULL
2 ИП Иванов
3 ИП Петров Договор
1 900
Какой из этих запросов отобразит список товаров и их последнюю по дате стоимость?
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
