Пишем на SQL
1.9K subscribers
44 photos
7 videos
12 files
122 links
Уроки по SQL. Изучаем базы данных на примере СУБД ORACLE, MySQL, MS SQL Server, PostgreSql

Мой курс по SQL и базам данных:
https://prime-soft.biz/courses/sql

Связь со мной @iliahohlov
Download Telegram
В таблице CLIENTS следующие записи:
ID NAME INN
1 Ставрополь-отель 111
2 АО Проще простого 222

В таблице INVOICES следующие записи:
ID DATE_INV ID_CLIENT
1 20.01.2026 1
2 21.02.2026 1

Есть запрос:
SELECT c.ID,
c.NAME,
CASE
WHEN c.INN IS NOT NULL THEN
'Готовый'
WHEN EXISTS (select 1 from INVOICES where ID_CLIENT = c.ID) THEN
'Действующий'
END INFO
FROM CLIENTS c
ORDER BY c.ID
Что будет выведено в столбце INFO в первой строке результирующего набора данных указанным выше запросом?
Anonymous Quiz
8%
Null
66%
Готовый
22%
Действующий
5%
1
Есть два запроса:

1)
select fld1 from table1 except select fld1 from table2;

2)
select fld1 from table2 except select fld1 from table1;
👍2
Всем привет!

Спасибо за активное участие в решении задач и тестов по SQL! 🎉

Ранее писал про плюсы работы в it сфере. Теперь давайте посмотрим минусы:

Сидячая работа. Работа в сфере айти чаще всего предполагает ежедневное долгое нахождение перед монитором / за ноутбуком. Чтобы это меньше сказывалось на здоровье рекомендуется периодически делать гимнастику, вести активность.
Нагрузка на глаза, зрение. Ещё один большой минус работы за компьютером. Чтобы не получить проблем со зрением, рекомендую тоже периодически отвлекаться от экрана, менять деятельность. Придумывать алгоритм, например, можно и не глядя в монитор.
Постоянное обучение. Технологии, которые были актуальны вчера, завтра могут устареть. Нужно поддерживать компетентность, чтобы оставаться востребованным!

Напишите, какие видите минусы в работе в айти Вы! Будет очень интересно! 🤗
Может ли столбец, являющийся первичным ключом, быть одновременно и внешним ключом? То есть ссылаться на столбец другой таблицы.
Anonymous Quiz
72%
Да, может
28%
Нет, не может
При работе с базой данных, иногда бывает нужно найти хранимку или пакет, в котором вызывается такая -то функция, или откуда приходит определённый текст сообщения.
В разных СУБД есть разные средства для поиска программных объектов, содержащих искомый код. В ORACLE, например, можно воспользоваться системным представлением all_source.

Так можно найти все программные объекты, в которых есть некоторый текст:
 select * from all_source where text like '%клиент всегда прав%';
👍52🔥2
В базе данных таблица Сотрудников Pers имеет вид:

ID FIO
1   Иванов Иван Иванович
2   Петров Павел Сергеевич
3   Третья Наталья Петровна
4 Четвёртый Ян Борисович
В таблице CDR_AUTH 4 строки:
CDR_ID DTIME AUTH_TP D_VL
12345 10.04.26 09:01 1 0
12347 11.04.26 13:17 2 1.54
12348 11.04.26 18:06 1 0.9
12348 11.04.26 18:06 1 0

Какой будет результат выполнение SQL-запроса:
SELECT COUNT(*)
FROM CDR_AUTH
WHERE DTIME > DATE '2026-04-01'
AND 1 = CASE
WHEN AUTH_TP = 2 THEN 1
WHEN D_VL > 0.01 THEN 1
ELSE 0
END
Какой будет результат выполнение указанного выше SQL-запроса?
Anonymous Quiz
12%
null
4%
0
20%
1
51%
2
3%
3
9%
4
Последний Zoom-курс по SQL. PostgreSQL (в этом учебном году).
Следующий запуск - осенью. Осталось 6 мест!

👉 Полное погружение. Целых 18 совместных онлайн тренингов! Каждый тренинг длится примерно 1 час.
👉 На уроках мы работаем, решаем задачи, практикуемся! Не просто объяснение материала, а реальная практика. Вы решаете задачи онлайн вместе со мной!
👉 После каждого урока: запись нашей встречи + краткий конспект.
👉 Каждые два урока: порция самостоятельных задач. Я индивидуально проверю работу каждого, помогу оптимизировать решения и найти ошибки.
👉 С нуля до уровня специалиста с трёхлетним стажем!

Цена 9.900 ₽ (550 ₽/урок).
Начинаем 12 мая и будем заниматься по вторникам и четвергам с 19:00 до 20:00.

Программа курса | Записаться
Как быстрее всего вставить данные в ORACLE из коллекции в таблицу:

DECLARE
-- Коллекция
TYPE t_records IS TABLE OF SOME_TABLE%ROWTYPE;
v_records t_records := t_records();
BEGIN
-- Тут заполнение коллекции, работа с ней...

-- Вставка в таблицу
FORALL i IN 1..v_records.COUNT
INSERT INTO SOME_TABLE VALUES v_records(i);

COMMIT;
END;
/
🔥4
В базе данных MySQL в таблице Goods 4 записи:
ID NAME
1 'Клей ПВХ 100'
2 'Клей ПВХ бесцв. 28.00 в банке'
3 'Клейберит 300.04'
4 'Клейберит 300.04.805 2 л'
Какой результат вернёт запрос: SELECT COUNT(*) FROM Goods WHERE CHAR_LENGTH(REPLACE(NAME, 'Клей ', '')) < 10
Anonymous Quiz
3%
NULL
10%
0
51%
1
16%
2
11%
3
8%
4
0%
5