SQL Pro
5.08K subscribers
142 photos
2 videos
10 files
127 links
SQL Pro - всё об SQL
Реклама: @anothertechrock

Контент канала:
1. Разбор вопросов с собеседований
2. Трюки SQL
3. Видео
4. Тесты
5. Задачи на логику
6. Юмор
Download Telegram
Ответ на #вопрос55

INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

#вопросы #собеседование
👍3
Задача на мышление и логику.

Какая цифра чаще всего встречается между числами от 1 до 1000 включительно?

Решение будет вечером.

#логика
Решение сегодняшней задачи на логику и мышление.

Самая распространенная цифра — 1! Вы поняли, почему? Каждое число от 1 до 9 встречается ровно одинаковое количество раз в каждых десяти числах. Но поскольку было включено число 1000, цифра 1 появляется в числовом ряде на один раз больше.

Итак, всего цифра 1 встречается 301 раз, в то время как все остальные числа встречаются в ряде по 300 раз.

#логика
2🔥1
#вопрос56

Предположим, есть две таблицы Emp (ID, name, DeptId), Dept(ID, name). В таблице Emp 10 записей, а в Dept – 5. Сколько строк будет отображаться в результате следующего SQL-запроса:

Select * From Emp, Dept

Решение будет вечером.

#вопросы #собеседование
Ответ на #вопрос56

Запрос выведет 50 строк, т. к. тут перекрестное объединение, являющееся значением по умолчанию, когда условие WHERE, отсутствует.

#вопросы #собеседование
👍1
Задача на мышление и логику.

Есть
2 пустых ведра: первое объемом 5 л, второе - 3 л. Как с их помощью отмерить 4 литра воды?

Решение будет вечером.

#логика
🥴2
Решение сегодняшней задачи на логику и мышление.

Сперва наполните пятилитровое ведро. Далее перелейте из него воду в трехлитровое так, чтобы в пятилитровом осталось 2 л воды (полностью заполнив трехлитровое). Вылейте из меньшего ведра всю воду и перелейте в него оставшиеся в большем 2 л. Снова наполните пятилитровое и перелейте один литр в трехлитровое (оно как раз заполнится): так в большем ведре останется 4 л воды.

#логика
👍7
Трюк дня. Что такое миграции и как создать миграции бд postgresql?

Решение будет вечером.

#tips
👍2
Трюк дня. Что такое миграции и как создать миграции бд postgresql?

Миграции - инструмент для перевода базы из одного состояния в другое. Своего рода git для бд.

Обычно когда просят написать миграцию, то имеют ввиду SQL-файл, выполнение которого переведёт схему базы в новое состояние. То есть файл с инструкциями типа create table, alter table и тд. Часто необходим и второй файл - файл отката, который вернёт всё к исходному состоянию.

Так как последовательность применения таких файлов очень важана (например, в первой миграции создали таблицу, а во второй модифицируем её), то имена файлов содержат возрастающий идентификатор миграции. Часто этот идентификатор - просто дата и время миграции:

migrations/
- 20220728102400_create-foo-table_up.sql
- 20220728102400_create-foo-table_down.sql

Инструмент миграции применяет SQL-файл и помечает (обычно в той же базе данных, в своей служебной табличке), что миграция с этим идентификатором уже применена. При повторном запуске применённые миграции будут пропущены. Соответственно применённую миграцию можно откатить, найдя down-файл с нужным идентификатором.

#tips
👍9🔥2🤔1🥱1
#вопрос57

Напишите SQL-запрос, с применением UNION ALL (не UNION), использующий WHERE для устранения дубликатов.

Решение будет вечером.

#вопросы #собеседование
Ответ на #вопрос57

SELECT * FROM mytable WHERE a=X UNION ALL SELECT * FROM mytable WHERE b=Y AND a!=X

Ключевое место – AND a!=X. Это дает вам все плюшки UNION DISTINCT, избегая при этом просадки производительности.

#вопросы #собеседование
2
Задача на мышление и логику.

Книга содержит N страниц, которые пронумерованы стандартно: от 1 до N. Если сложить количество цифр (не сами числа), что содержатся в каждом номере страницы, выйдет 1095. Так сколько в книге страниц?

Решение будет вечером.

#логика
Решение сегодняшней задачи на логику и мышление.

Каждый номер страницы имеет цифру на месте единицы, так что есть N цифр, расположенных на месте единицы. А вот после 9 начинаются двухзначные числа, и нам нужно добавить N-9 цифр. То же самое с трехзначными, которые начинаются после 99: добавляем N-99 цифр. Продолжать нет смысла, так как сумма не предполагает более 999 страниц. Получаем следующую формулу:

N + (N-9) + (N-99) = 1095

Далее просто решаем:

3N - 108 = 1095

3N = 1203

N = 401

Итого 401 страница.

#логика
👍42🤯2
#вопрос58

Чем отличается VARCHAR от NVARCHAR?

Решение будет вечером.

#вопросы #собеседование
Ответ на #вопрос58

NVARCHAR способен хранить значения в формате Unicode – каждый символ занимает 2 байта, а кодировка занимает 65 536 символов.

VARCHAR хранит значения в формате ASCII – каждый символ занимает байт, а кодировка занимает 256 символов.

#вопросы #собеседование
👍1🤔1