#Вопросы_с_собеседования
❓В чем разница между кластерными и некластеризованными индексами?
Ответ на картинке.
Количество вхождений строки в поле в MySQL
Есть таблица items
со следующими данными:id desc
1 val test test val
2 val test
3 test test test
4 valvalvalvalval
Напишите MySQL запрос, который подсчитает количество вхождений значения ‘val
‘ для каждого desc
.
Ожидаемый результат:2
1
0
5
Решение:SELECT
ROUND (
(LENGTH (desc) - LENGTH (
REPLACE (desc, ‘val‘,‘‘)
)) / LENGTH(‘val‘)) AS c
FROM items;
Любимые подписчики, поздравляю вас с наступающим новым годом! Пусть в 2025 году исполнятся все ваши самые заветные желания🎄🎄🎄🎄
Читать полностью…#Вопросы_с_собеседования
❓При выборке из таблицы workers получите первые 5 символов поля description
Ответ на картинке.
⚡️Слита База из 1000+ топовых IT-курсов
👩💻 Все языки: @main_it_baza
🖥 Python: @python_baza
👩💻 Frontend: @frontend_baza
👩💻 Backend: @backend_baza
🎨 Дизайн: @design_baza
📊 Архив: @archive_baza
Всё лучшее про IT бесплатно — уже на Базе 🚀
Дублирование данных для создания ограничений (контролей) на уровне БД
Смотреть статью
#Вопросы_с_собеседования
❓При выборке из таблицы workers прибавьте к дате 1 день и отнимите 2 часа, 3 минуты
Ответ на картинке.
🖥 Как работает like в SQL
Думаю можно ответить так - оператор LIKE используется для сравнения значений в столбцах с шаблоном, который вы задаете. Он позволяет искать строки, которые содержат определенные символы или фразы.
Шаблон запроса:SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
Пример:SELECT * FROM customers WHERE last_name LIKE 'Sm%';
Этот запрос вернет все строки из таблицы customers, в которых last_name начинается с букв "Sm".
Оператор LIKE чувствителен к регистру символов, то есть "A" и "a" будут восприниматься как разные символы. Однако, для того чтобы выполнить поиск, игнорируя регистр символов, можно использовать функцию UPPER или LOWER, например:SELECT * FROM employees WHERE UPPER(first_name) LIKE '%JOHN%';
Что такое горячая миграция?
Горячая миграция - это процесс обновления базы данных без остановки работы системы. В SQL, это означает, что мы можем вносить изменения в схему базы данных или данные, пока приложение продолжает работать.
Преимущества горячей миграции
Основным преимуществом горячей миграции в SQL является минимальное воздействие на работу системы. В отличие от традиционной миграции, которая требует остановки приложения или базы данных, горячая миграция позволяет вносить изменения без прерывания работы системы. Это особенно полезно для онлайн-сервисов, которые не могут себе позволить просто остановить свою работу, чтобы обновить базу данных.
Пример горячей миграции в SQL
Допустим, у нас есть таблица "users" в базе данных, и мы хотим добавить новое поле "phone_number". Вместо того, чтобы остановить приложение или базу данных, мы можем использовать горячую миграцию для добавления этого поля в существующую таблицу. В процессе горячей миграции, новое поле будет добавлено, а существующие данные будут сохранены.
А вы тоже все еще выбираете направление для своей карьеры в 2025 году?
🙄 Маркетинг или программирование?
🙄 Логистика или финансы?
🙄 … или аналитика?
2024 год показал: аналитика — профессия будущего. Принимать решения на коленке больше никто не хочет, даже в условиях турбулентности. Темп роста рынка — более 30% в год! Джуны со знанием SQL, Python и BI-систем получают от 100 000 рублей, а уверенные мидлы — более 250 000. Кстати, аналитика – тоже IT-профессия.
Итого, если при виде зарплат в аналитике у вас загораются глаза, то мы поможем определиться с направлением, которое вам точно подойдет!
🔮 Предлагаем вам пройти бесплатный тест на профориентацию, он займет всего 3 минуты и сразу выдаст результаты. Представляйте себя на месте любимых киногероев, отвечайте на вопросы и узнайте, какой вы аналитик! 🧚♀️
Кстати, в конце теста вас ждет промокод на скидку до 30 000 рублей на обучение аналитике в школе Changellenge >> Education, чтобы начать погружаться в любимое направление было еще приятнее!
Пройдите бесплатный тест до 15 декабря и узнайте, какой вы аналитик 🪄
Пройти тест »
В ClickHouse джоины всегда считались слабым местом. Но система развивается, производительность и функциональность джоинов совершенствуется.
На вебинаре «Надо ли бояться джоинов в современном ClickHouse?» вы узнате:
- Как работают разные типы джоинов в ClickHouse: INNER, LEFT, RIGHT, CROSS
- Какие подходы к организации таблиц для выполнения джоинов – оптимальны
- Как использовать функциональность JOIN и ARRAY JOIN для сложных аналитических запросов
- Как настроить параметры ClickHouse для повышения производительности джоинов
Cпикер: Алексей Железной: старший инженер данных и руководитель курса «ClickHouse для инженеров и архитекторов БД».
Будет интересно: руководителям проектов, аналитикам данных, разработчикам и архитекторам баз данных, инженерам по обработке данных.
Бонус для участников! Скидка 5% на любой курс OTUS и гайд «Как не положить ClickHouse: примеры из практики»
10 декабря, 18:30 МСК
Бесплатно
Записаться на событие: https://clck.ru/3F8Ays
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🖥 SQLFlow - отличный инструмент для визуализации SQL-запросов.
Легкий и простой интрумент для визуализация связей и структур БД, поддерживающий более 20 разных БД.
https://github.com/sqlparser/sqlflow_public/blob/master/install_sqlflow.md
⚡️ В сети начали массово сливать курсы и книги известных онлайн школ
Вот отсортированная база с тонной материала(постепенно пополняется):
БАЗА (4687 видео/книг):
(363 видео, 87 книги) — Python
(415 видео, 68 книги) — Frontend
(143 видео, 33 книги) — ИБ/Хакинг
(352 видео, 89 книги) — С/С++
(343 видео, 87 книги) — Java
(176 видео, 32 книги) — Git
(293 видео, 63 книги) — C#
(174 видео, 91 книги) — DevOps
(167 видео, 53 книги) — PHP
(227 видео, 83 книги) — SQL/БД
(163 видео, 29 книги) — Linux
(107 видео, 43 книги) — СисАналз
(181 видео, 32 книги) — Go
(167 видео, 43 книги) — Kotlin/Swift
(112 видео, 24 книги) — Flutter
(137 видео, 93 книги) — DS/ML
(113 видео, 82 книги) — GameDev
(183 видео, 37 книги) — UI/UX
(129 видео, 73 книги) — QA
(213 видео, 63 книги) — Rust
(121 видео, 24 книги) — Ruby
Скачивать ничего не нужно — все выложили в Telegram
Какая разница между TRUNCATE TABLE table_name и DELETE FROM table_name?
Фактически обе эти команды вызовут удаление всех строк из таблицы под названием table_name, но вот произойдет это совсем по-разному:
1. При вызове команды TRUNCATE таблица полностью сбрасывается и создается снова, в то время как команда DELETE удаляет каждую строку таблицы по отдельности. Из-за этого TRUNCATE отрабатывает значительно быстрее.
2. Как следствие первого пункта, команда TRUNCATE не вызывает срабатывание триггеров и правил внешних ключей, то есть, очищая таблицу таким способом, можно не бояться каскадного удаления или изменения данных в других таблицах.
3. В отличие от DELETE команда TRUNCATE не транзакционная. То есть, если в момент ее вызова, таблица table_name будет заблокирована какой-либо транзакцией — может возникнуть ошибка.
Как оператор GROUP BY обрабатывает поля с NULL?
Учитывая, что NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу. Например, пусть есть таблица:
name score
Alex 5
Sam 1
Sam 11
NULL 4
NULL 3
Тогда запрос
SELECT name, SUM (score) AS sc
FROM table
GROUP BY name;
выдаст:
name sc
Alex 5
Sam 12
NULL 7
#Вопросы_с_собеседования
❓При выборке из таблицы workers запишите год, месяц и день в отдельные поля с помощью EXTRACT
Ответ на картинке.
#Вопросы_с_собеседования
❓Выберите из таблицы workers все записи, в которых сумма дня и месяца меньше 10-ти
Ответ на картинке.
#Вопросы_с_собеседования
Как в SQL можно выполнить самосоединение таблицы без использования ключевого слова JOIN?
В SQL можно выполнить самосоединение таблицы, используя подзапросы в условии WHERE, вместо явного использования JOIN. Это позволяет сравнивать строки внутри одной и той же таблицы без использования синтаксиса JOIN. Вот пример с таблицей employees, где мы хотим найти пары сотрудников с одинаковыми должностями.
В этом запросе мы используем синтаксис таблицы "FROM employees a, employees b", который подразумевает декартово произведение, но фильтруем результаты с помощью условия WHERE, чтобы оставить только те строки, где должности совпадают, исключая при этом строки, где сравниваются сами с собой. Это необычный способ выполнения самосоединения, обычно предпочтительнее использовать JOIN для большей читаемости и эффективности.
В ClickHouse джоины всегда считались слабым местом. Но система развивается, производительность и функциональность джоинов совершенствуется.
На вебинаре «Надо ли бояться джоинов в современном ClickHouse?» вы узнате:
- Как работают разные типы джоинов в ClickHouse: INNER, LEFT, RIGHT, CROSS
- Какие подходы к организации таблиц для выполнения джоинов – оптимальны
- Как использовать функциональность JOIN и ARRAY JOIN для сложных аналитических запросов
- Как настроить параметры ClickHouse для повышения производительности джоинов
Cпикер: Алексей Железной: старший инженер данных и руководитель курса «ClickHouse для инженеров и архитекторов БД».
Будет интересно: руководителям проектов, аналитикам данных, разработчикам и архитекторам баз данных, инженерам по обработке данных.
Бонус для участников! Скидка 5% на любой курс OTUS и гайд «Как не положить ClickHouse: примеры из практики»
10 декабря, 18:30 МСК, Бесплатно
Записаться на событие - https://otus.pw/AYzZ/?erid=LjN8JwQEo
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
⚡️ Marimo — это реактивный ноутбук на Python, который теперь поддерживает SQL.
Вот его основные возможности:
▪️Запуск одной ячейки приводит к автоматическому запуску всех зависимых ячеек.
▪️Вы можете запускать свои ноутбуки как скрипты Python, параметры которых задаются через аргументы командной строки.
▪️Встроенная поддержка SQL и удобная панель для работы с данными делают Marimo мощным инструментом для анализа информации.
▪️Ноутбуки Marimo сохраняются в формате .py, что позволяет легко управлять версиями через Git.
Важно отметить, что поддержка SQL была добавлена недавно. Это позволяет вам писать запросы и получать результаты в виде датафреймов.pip install marimo && marimo tutorial intro
https://github.com/marimo-team/marimo
Научитесь проектировать отказоустойчивые хранилища для распределённых систем
Узнайте на открытом вебинаре, как минимизировать риски, настроить репликацию и автоматическое восстановление. Разберём актуальные практики с примерами на Cassandra, MongoDB и Ceph.
🔴 Регистрируйтесь на открытый вебинар «Обеспечение отказоустойчивости хранилищ» 10 декабря в 20:00 мск. Участникам — скидка на участие в курсе «Highload Architect»: https://clck.ru/3F2kq9
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Сравнение JSONB с hstore
Оба типа данных поддерживают хранение пар "ключ-значение", но JSONB имеет более сложную структуру, позволяющую включать массивы и вложенные объекты.
Hstore хранит данные в виде одиночных пар, что может быть удобно для простых случаев, но менее мощно для сложных структур.