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

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

Связь со мной @iliahohlov
Download Telegram
Друзья, до вторника (09.09.2025) продлеваем летние скидки на обучение SQL и обучение программированию в PL/SQL (ORACLE)! 🎁

Весь курс SQL и базам данных за 8.900
программа обучения
записаться и оплатить

Весь курс Программирования в PL/SQL (ORACLE) за 14.500
программа обучения
записаться и оплатить

Курс SQL + Программирование в PL/SQL (ORACLE) за 16.900
записаться и оплатить

Всё обучение индивидуальное!
Начать можем сразу после оплаты!
Время на обучение не ограниченно (но желательно проходить не менее 1-2 урока в неделю).

Для оплаты из-за границы, напишите, пожалуйста, под постом или на почту info@prime-soft.biz. Я пришлю ссылку для оплаты картой иностранного банка.

Буду рад дополнительным вопросам.
Всем привет и хороших выходных!

Сегодня утром провёл очередной урок онлайн-обучения SQL, PostgreSQL через Zoom. У нас пятый уроки из 18ти и мы уже учимся группировать данные.

Если кому-то пока сложно даются группировки, сложно понять что указывать в блоке SELECT, а что в GROUP BY, то вот мини правило (можно пока просто запомнить):
все столбцы, которые мы хотим показать в блоке SELECT без агрегатных функций, должны быть и в блоке GROUP BY (например если мы группируем данные по PersonID и хотим вывести в блоке SELECT не только PersonID, но и FIO, то FIO также следует поместить в блок GROUP BY), но столбцы, которые есть в блоке GROUP BY, не обязательно выводить в блоке SELECT (по желанию). Возможно, его лучше прочитать два раза ☺️

Кстати, новая группа выходного дня онлайн обучения начинается уже на следующих выходных. Будем учиться по субботам и воскресеньям с 10:30 до 11:30. У нас уже 4 человека. Посмотреть программу курса и записаться можно здесь.
👍1
Аудит - это хорошо! Особенно, когда он комплексный!

На прошлой неделе для одной из компаний подмосковья, для которой мы пишем и сопровождаем программное обеспечение уже более 10ти лет, подготовили результат аудита нашего программного кода. Компания, которая подготавливала аудит, разумеется, сторонняя, и должна была дать оценку нашей работе. На подготовку результатов аудита ушло около трёх недель.

Интересно, наверное, узнать результаты? В целом код неплохой (уже хорошо), но местами, в рамках одного запроса, допущено дублирование фрагментов SQL-кода. В рамках кода хранимых процедур отсутствуют составные индексы.

Начну с последнего: составные индексы у нас есть (интересно как они смотрели), иногда без последнего столбца в списке столбцов индекса, но на месте это не играло особой роли.

Дублирование фрагментов SQL-кода в рамках одного запроса иногда делается намерено: получение одних данных по разным условиям из одних и тех же таблиц иногда лучше сделать через UNION, не используя сложные вычисления или оператор OR.

Подходить к оценке кода, который отлаживался 10 лет нужно комплексно. Обязательно брать во внимание что и как используется. Даже собственную оценку нужно ставить под сомнения. Как результат: нам пришлось давать свои комментарии заказчику по пунктам аудита🙂 Принимаем во внимание , что и за три недели очень сложно комплексно оценить программный код, который писался, дополнялся в течение 10ти лет.
👍101
Всем хорошего понедельника!

Небольшая задача по SQL. В таблице CLIENTS всего 10 строк. Какой результат вернёт следующий запрос (на примере ORACLE или MySQL): SELECT * FROM CLIENTS WHERE EXISTS (SELECT NULL FROM DUAL)
Anonymous Quiz
10%
Запрос вернёт одну строку
40%
Запрос вернёт всех клиентов
35%
Запрос вернёт пустой набор данных
15%
Будет SQL ошибка выполнения запроса
2
Для начинающих программистов мы подготовили курс
Go (Golang)-разработчик!

Начальные знания: не требуются!

Начало: 23 сентября.

График обучения:
Вт, Пт (19:30 - 20:30);

Обучение через Zoom.
Занятий онлайн: 12 + 12 самостоятельных практических работ.

Менторство и ревью кода как всегда включено!

Цена: 9.900 р.

Обучение небольшими группами: 7 - 10 человек.

Посмотреть программу курса и записаться можно здесь: https://prime-soft.biz/courses/go
👍2👎1
Почему язык Go так популярен:

- высокая производительность! Go компилируется в машинный код — это почти как C по скорости;
- простота развёртывания. Один бинарник — и всё работает, легко деплоить даже на слабых VPS;
- низкий порог входа — проще, чем Java, производительнее, чем Python;
- хорошо читаемый код;
- лёгкая масштабируемость!


🇷🇺 Примеры использования Go в России в больших компаниях:

Сбер (SberDevices, СберМаркет) — используют Go для микросервисов.
Яндекс — частично использует Go, особенно в проектах, где важна производительность (например, в облаке или инфраструктуре).
Ozon — активно использует Go, особенно для микросервисов.
Wildberries — часть систем на Go.
Тинькофф — микросервисы и высоконагруженные сервисы.
Авито — Go используется для части бэкенда и инфраструктуры.
VK (ex-Mail.ru) — в некоторых инфраструктурных сервисах.
Skyeng, Dodo Pizza, Самокат, Яндекс.Еда — используют Go в production.

🧑‍💻 Стартапы и продуктовые компании:
• Go часто становится языком №1 в новых проектах, особенно если:
• Нужны микросервисы.
• Требуется высокая производительность без лишней сложности.
• Команда небольшая, а нужны стабильность и читаемость.
1
В таблице DOCS четыре строки:
ID DOC_TYPE DOC_NUM ID_CLIENT
1 паспорт 123456 1
2 права 123490 1
3 паспорт 789809 2
4 права 777890 2
Какой будет результат выполнения следующего запроса: SELECT DISTINCT COUNT(DISTINCT DOC_TYPE) FROM DOCS
Anonymous Quiz
3%
NULL
1%
0
14%
1
58%
2
2%
3
5%
4
17%
Будет SQL ошибка
2
Шутка про Ларри Эллисона (основатель ORACLE)

В чём разница между Ларри Эллисоном и Богом:
- Бог не думает, что он Ларри Эллисон ☺️

Ларри обогнал Маска по состоянию и занял его место самого богатого человека в мире. Подробнее тут.
😁5👍2
Друзья, всем привет!

Напоминаю, что завтра стартует онлайн курс SQL, PostgreSQL (обучение через Zoom).
Следующая группа - в ноябре! Поэтому, не откладывайте! Еще есть пять мест. Пока 4 ученика. Группа маленькая.

График: сб, вс (10:30 - 11:30);
Всего онлайн уроков: 18;
Всё включено: Д/З, индивидуальная проверка работ, сертификат, помощь в составлении резюме.
Для удобства оплату можно разделить. Вначале 4.900 и через месяц 5.000.

Программа курса Записаться и оплатить 4.900 р.
Здравствуйте, друзья!

Сегодняшний пост немного грустный. К сожалению, сейчас не самое спокойное время. Несколько дней назад получил сообщение от одного из учеников:

- "Привет, Илья! 10 лет назад учился у тебя на очном курсе по Oracle. И последние 10 лет зарабатываю на хлеб благодаря полученным от тебя знаниям. Спасибо за науку!) К сожалению на последнем месте работы попал под сокращение. Теперь активно ищу работу и прохожу собесы. ..."

И после 10-ти лет работы в компании есть риск попасть под сокращение. Никто от такого не застрахован.

Надеюсь, в целом у всех всё хорошо.

Конечно, сложная ситуация и неприятная. Но она не означает, что теперь будет плохо, она означает, что теперь будет по-другому! Я верю, что Вадим справится, и, может быть, сможет устроить всё даже лучше, чем было!

Всем терпения и немножечко везения! 🙏
16🙏4
Всем привет!

Предлагаю небольшую задачку по SQL!

В таблице Pers четыре записи:
PersID Name
1 Иванов И. И.
2 Петров П. С.
3 Третьякова А. Б.
4 Грю Г. Я.

В таблице Phones три записи:
PhoneID PersonID PnoneNum
1 1 90977789
2 2 77890999
3 2 90898761
👍1
Какое значение вернет SQL запрос? select count(1) from Pers where exists (select * from Phones where PersID = Pers.PersID)
Anonymous Quiz
7%
Null
1%
0
15%
1
33%
2
11%
3
11%
4
0%
5
1%
6
22%
Запрос не сможет выполниться. Будет SQL ошибка.
💩5🤡4🗿3🔥1
Спасибо всем за вовлечённость!
Хорошая получилась работа по последней задаче! 💪
Увидели таки, что в подзапросе нет никакого ограничения! 😉
EXISTS всегда будет возвращать TRUE, главное, чтобы была хотя бы одна строчка в таблице подзапроса. Не важно с какими данными! Тогда и строки таблицы Pers будут выбраны все, то есть четыре.
👍9
Всем привет! Ещё интересная задача с собеседования айтишника (вообще не про SQL и IT, а на логику).

Дальше материал 16+ (жестокое обращение с животными):

На полу сидит кошка 🐱, к её ножке привязана банка. С какой скоростью должна бежать кошка, чтобы не слышать звук гремящей банки?
😁4
У этой задачи несколько вариантов правильного ответа:
  - со скоростью, не меньшей скорости звука;
  - с нулевой скоростью.
🔥10👎1
Всем привет!

Предлагаю попробовать свои силы в решении новой SQL задачки.
Дано:

CREATE TABLE TABLE_1(n number);
CREATE TABLE TABLE_2(n number);

INSERT INTO TABLE_1 values (10);
INSERT INTO TABLE_1 values (20);

INSERT INTO TABLE_2 values (10);
INSERT INTO TABLE_2 values (30);
2
Выберите правильный результат запроса SELECT?
SELECT n FROM TABLE_1 UNION ALL SELECT n FROM TABLE_2 ORDER BY n;
Anonymous Quiz
9%
10, 20, 30
2%
10
40%
10, 20, 10, 30
50%
10, 10, 20, 30