Интересно было бы узнать сколько сейчас работает удалённо.
Вы работаете в офисе или из дома?
Вы работаете в офисе или из дома?
Anonymous Poll
27%
Всегда работаю в офисе
21%
Несколько дней в неделю в офисе
10%
Редко работаю в офисе, почти всегда из дома
30%
У меня полный хом офис. Я работаю из дома
12%
Я не работаю
Всем привет!
Решая практические задачи и даже проходя небольшие тесты по 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
Что произойдёт при выполнении следующей команды?
INSERT INTO CLIENTS
(NAME, INN)
VALUES
('АО Зелёный дом', NULL)
Решая практические задачи и даже проходя небольшие тесты по 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
Что произойдёт при выполнении следующей команды?
INSERT INTO CLIENTS
(NAME, INN)
VALUES
('АО Зелёный дом', NULL)
Что произойдёт при выполнении SQL команды?
Anonymous Quiz
68%
В таблицу CLIENTS добавится строка
32%
Будет SQL-ошибка
👍2
В БД PostgreSQL в таблице CODES (CODE VARCHAR(10)) нет строк. Сколько строк вставит команда:
INSERT INTO CODES (CODE) SELECT 123 UNION SELECT 123
INSERT INTO CODES (CODE) SELECT 123 UNION SELECT 123
Anonymous Quiz
31%
Ни одной
51%
1
18%
2
Всем привет! Интересная задача от Александра (для тех, кто не читает комментарии 🙂).
Сколько строк вернёт следующий запрос (на примере PostgreSql):
select 123 union all select 123 union select 123
Сколько строк вернёт следующий запрос (на примере PostgreSql):
select 123 union all select 123 union select 123
Anonymous Quiz
4%
0
33%
1
31%
2
14%
3
18%
Запрос не сможет выполниться в СУБД PostgreSQL. Будет SQL-ошибка
😁1
Всем привет! Предлагаю очередную мини-задачу по SQL:
В таблице CLIENTS три строки:
ID NAME INN
-------------------------------------------------
1 ИП Иванов И.И. 690501019999
2 АО Рога и копыта 1234567890
3 АО ПАКС 2345678901
В таблице REG_INN две строки:
INN
--------------------
1234567890
NULL
В таблице CLIENTS три строки:
ID NAME INN
-------------------------------------------------
1 ИП Иванов И.И. 690501019999
2 АО Рога и копыта 1234567890
3 АО ПАКС 2345678901
В таблице REG_INN две строки:
INN
--------------------
1234567890
NULL
❤2
Сколько строчек вернёт запрос:
SELECT * FROM CLIENTS WHERE INN IN (SELECT INN FROM REG_INN)
SELECT * FROM CLIENTS WHERE INN IN (SELECT INN FROM REG_INN)
Anonymous Quiz
9%
0
81%
1
7%
2
3%
3
👍11
image_2025-08-04_00-25-22.png
16.4 KB
Всем доброго понедельника! Как насчет филворда на тему баз данных на русском?! Сложность не высокая. Всего спрятано 23 слова. Решение опубликую чуть позже.
Спасибо всем за участие! Ниже перечень слов, из которых составлен филворд:
База
Выборка
Да
Запись
Запрос
Зависимость
И
Или
Ключ
Код
Команда
Кортеж
Минус
Не
Объединение
Один
Множество
Нет
Поле
Связь
Столбец
СУБД
Таблица
База
Выборка
Да
Запись
Запрос
Зависимость
И
Или
Ключ
Код
Команда
Кортеж
Минус
Не
Объединение
Один
Множество
Нет
Поле
Связь
Столбец
СУБД
Таблица
👍6❤1🤔1🤮1
Курс Программирование в PL/SQL (ORACLE) доступен теперь и на Степике:
https://stepik.org/a/250244
https://stepik.org/a/250244
Stepik: online education
Программирование в PL/SQL ORACLE (С КУРАТОРОМ)
Курс обучения языку PL/SQL, внутреннему языку программирования ORACLE. На основе многолетнего опыта разработки программных продуктов, в том числе информационных систем с одновременных доступом в несколько тысяч человек, на основе значимого опыта работы с…
🔥10❤1
Сегодня нашёл интересный тест на тему соединений.
В чем разница между LEFT JOIN и RIGHT JOIN, если соединяемые таблицы в запросе поменять местами?
В чем разница между LEFT JOIN и RIGHT JOIN, если соединяемые таблицы в запросе поменять местами?
Anonymous Quiz
40%
Разницы нет, это эквивалентные операции
5%
LEFT JOIN всегда быстрее
6%
RIGHT JOIN не поддерживается в некоторых крупных СУБД
49%
Разный порядок столбцов в результате
image_2025-08-12_15-04-24.png
17.5 KB
Спасибо всем за активное участие и за дискуссию!
При соединении таблиц, LEFT и RIGHT JOIN-ы действительно равноценны и ничего не меняют в выводимом наборе данных, если таблицы в запросе поменять местами. Но, как Вы и написали, если порядок столбцов в блоке SELECT не указан явно (а указана звездочка), то в результирующем наборе столбцы таблиц будут выводиться в порядке указания таблиц в запросе: сначала будут выведены все столбцы первой таблицы запроса, затем столбцы второй таблицы, указанной в запросе и т.д.
При соединении таблиц, LEFT и RIGHT JOIN-ы действительно равноценны и ничего не меняют в выводимом наборе данных, если таблицы в запросе поменять местами. Но, как Вы и написали, если порядок столбцов в блоке SELECT не указан явно (а указана звездочка), то в результирующем наборе столбцы таблиц будут выводиться в порядке указания таблиц в запросе: сначала будут выведены все столбцы первой таблицы запроса, затем столбцы второй таблицы, указанной в запросе и т.д.
👍10❤1
Каким будет результат выполнения следующего запроса (на примере СУБД MySQL, PostgreSQL)? SELECT FLOOR(10.9), CEIL(10.1)
Anonymous Quiz
31%
10, 10
40%
10, 11
25%
11, 10
4%
11, 11
image_2025-08-18_08-40-18.png
7.7 KB
Любая СУБД может группировать данные на основе значения не только одного столбца, а, при необходимости, набора столбцов. Тогда строчки, с одинаковыми значениями, указанных в GROUP BY столбцах, будут сливаться в одну. Строчки, у которых, хотя бы в одном из указанных столбцов, значение другое - будут создавать новую группу. Например, подсчитаем сколько сотрудников работает в каждом филиале в каждом отделе:
👍4
image_2025-08-18_08-40-53.png
77.9 KB
Получаем итоги на каждое сочетание название филиала и название отдела:
👍6
Мини-тест на знание основ SQL ⭐️! Что вернёт запрос? SELECT COALESCE(NULL, NULL, 'SQL', 'DB');
Anonymous Quiz
28%
NULL
64%
SQL
8%
DB
Рекомендации по написанию программного кода хранимых функций и процедур
Чем больше нагрузка и больше одновременно выполняющихся транзакций, тем больше и ответственности при создании хранимых функций и процедур. Хорошо написанный программный код легко сопровождаем и не боится параллельной работы! Ниже собрал для вас основные рекомендации, которые важно учитывать при разработке хранимок (функций, процедур, триггеров).
1. Максимально эффективное обращение к данных (желательно всегда по первичным ключам и индексам);
2. Разделение сложных операций на более простые (сложный update, insert или delete с подзапросами можно упростить - сделать его по ключу, а данные, получаемые подзапросами, можно предварительно положить во временную таблицу или таблицу временного хранения данных);
3. Соблюдение идентичной последовательности работы с таблицами в разных функциях и процедурах (это позволит минимизировать вероятность взаимных блокировок);
4. Форматирование кода (соблюдение отступов, единое оформление, принятое в компании или в конкретной АС), использование регламентов оформления кода;
5. Соблюдение соответствия программы кода хранимки её назначению (процедура, открывающая вклад клиенту, должна открывать вклад клиенту и не должна дополнительно закрывать кредит);
6. Краткое и понятное комментирование неочевидных участков кода;
7. Идеальный код одной хранимки помещается на одном экране, чтобы не пришлось его прокручивать (конечно, на практике, это далеко не всегда так, но надо к этому стремиться). Если алгоритм большой, то его нужно разбивать на дополнительные функции и процедуры, которые можно использовать в коде основной функции/процедуры.
Чем больше нагрузка и больше одновременно выполняющихся транзакций, тем больше и ответственности при создании хранимых функций и процедур. Хорошо написанный программный код легко сопровождаем и не боится параллельной работы! Ниже собрал для вас основные рекомендации, которые важно учитывать при разработке хранимок (функций, процедур, триггеров).
1. Максимально эффективное обращение к данных (желательно всегда по первичным ключам и индексам);
2. Разделение сложных операций на более простые (сложный update, insert или delete с подзапросами можно упростить - сделать его по ключу, а данные, получаемые подзапросами, можно предварительно положить во временную таблицу или таблицу временного хранения данных);
3. Соблюдение идентичной последовательности работы с таблицами в разных функциях и процедурах (это позволит минимизировать вероятность взаимных блокировок);
4. Форматирование кода (соблюдение отступов, единое оформление, принятое в компании или в конкретной АС), использование регламентов оформления кода;
5. Соблюдение соответствия программы кода хранимки её назначению (процедура, открывающая вклад клиенту, должна открывать вклад клиенту и не должна дополнительно закрывать кредит);
6. Краткое и понятное комментирование неочевидных участков кода;
7. Идеальный код одной хранимки помещается на одном экране, чтобы не пришлось его прокручивать (конечно, на практике, это далеко не всегда так, но надо к этому стремиться). Если алгоритм большой, то его нужно разбивать на дополнительные функции и процедуры, которые можно использовать в коде основной функции/процедуры.
👍4❤3
Всем доброе утро! И опять небольшой тест по основам SQL:
В таблице ORDERS 5 строк:
ID ID_CLIENT TP_ORDER
1 1 1
2 1 1
3 1 2
4 2 NULL
5 2 NULL
В таблице ORDERS 5 строк:
ID ID_CLIENT TP_ORDER
1 1 1
2 1 1
3 1 2
4 2 NULL
5 2 NULL
Какое значение вернет запрос:
SELECT COUNT(DISTINCT TP_ORDER) FROM ORDERS
SELECT COUNT(DISTINCT TP_ORDER) FROM ORDERS
Anonymous Quiz
3%
NULL
3%
1
47%
2
35%
3
3%
4
3%
5
6%
Будет ошибка выполнения SQL-запроса
В эту субботу начинаем интенсив SQL, PostgreSQL
- еще есть 3 места;
- обучение по выходным сб, вс (09:00 - 10:00);
- всего 18 уроков, продолжительностью 1 час каждый;
- обучение через Zoom;
- индивидуальная закрытая группа Телеграм, куда я буду выкладывать записи совместных эфиров и конспекты уроков;
- индивидуальная проверка самостоятельных работ;
- цена 9.900 р.
Посмотреть программу курса и записаться можно здесь.
- еще есть 3 места;
- обучение по выходным сб, вс (09:00 - 10:00);
- всего 18 уроков, продолжительностью 1 час каждый;
- обучение через Zoom;
- индивидуальная закрытая группа Телеграм, куда я буду выкладывать записи совместных эфиров и конспекты уроков;
- индивидуальная проверка самостоятельных работ;
- цена 9.900 р.
Посмотреть программу курса и записаться можно здесь.
Друзья, напоминаю, что завтра начинаем онлайн обучение SQL, PostgreSQL.
У нас осталось еще 2 места. Можно успеть!
Начнем с самых азов: покажу как устроена база данных, что это такое, что такое SQL, как связываются между собой таблицы, как из них выбирать данные.
Далее расскажу и покажу как работают джоины, как их использовать правильно. Какие задачи ими удобно решать, и где это может привести к ошибкам.
Разберем группировки, подзапросы, запросы из запросов, CTE, аналитические функции и оптимизацию запросов.
Разберем весь DML (часть команд SQL, которыми работают с данными: выбирают, добавляют новые, изменяют и удаляют их) и потом перейдем к DDL, TCL и DCL. Научимся сами проектировать и создавать базы данных, предоставлять доступ к объектам. Разберемся что такое нормализация и денормализация.
Наглядно и на простых примерах покажу что такое транзакция, для чего она нужна. Разберемся и с блокировками: увидим как блокируются таблицы и почему. Научимся работать с данными так, чтобы не вызывать взаимных блокировок (deadlocks)!
В рамках всего обучения мы научимся создавать представления, триггеры и даже немного попрограммируем: создадим несколько функций и парочку стандартных триггеров.
Всего за 18 уроков мы вместе сделаем из Вас востребованных специалистов по базам данных! Я подготовлю Вас к собеседованию и, если нужно, помогу составить резюме.
Обучение провожу очно через Zoom небольшими группами. Каждый урок длится примерно 1 час времени.
Наши эфиры записываю, видео будут доступны в закрытой группе Телеграм. Вы всегда сможете посмотреть наши уроки ещё раз и освежить знания!
Узнать больше и записаться
У нас осталось еще 2 места. Можно успеть!
Начнем с самых азов: покажу как устроена база данных, что это такое, что такое SQL, как связываются между собой таблицы, как из них выбирать данные.
Далее расскажу и покажу как работают джоины, как их использовать правильно. Какие задачи ими удобно решать, и где это может привести к ошибкам.
Разберем группировки, подзапросы, запросы из запросов, CTE, аналитические функции и оптимизацию запросов.
Разберем весь DML (часть команд SQL, которыми работают с данными: выбирают, добавляют новые, изменяют и удаляют их) и потом перейдем к DDL, TCL и DCL. Научимся сами проектировать и создавать базы данных, предоставлять доступ к объектам. Разберемся что такое нормализация и денормализация.
Наглядно и на простых примерах покажу что такое транзакция, для чего она нужна. Разберемся и с блокировками: увидим как блокируются таблицы и почему. Научимся работать с данными так, чтобы не вызывать взаимных блокировок (deadlocks)!
В рамках всего обучения мы научимся создавать представления, триггеры и даже немного попрограммируем: создадим несколько функций и парочку стандартных триггеров.
Всего за 18 уроков мы вместе сделаем из Вас востребованных специалистов по базам данных! Я подготовлю Вас к собеседованию и, если нужно, помогу составить резюме.
Обучение провожу очно через Zoom небольшими группами. Каждый урок длится примерно 1 час времени.
Наши эфиры записываю, видео будут доступны в закрытой группе Телеграм. Вы всегда сможете посмотреть наши уроки ещё раз и освежить знания!
Узнать больше и записаться
🔥1