🖥 Как работает 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
#Вопросы_с_собеседования
Как можно оптимизировать выполнение запроса с использованием коррелированного подзапроса, чтобы улучшить производительность на больших объемах данных?
Один из эффективных способов оптимизации — преобразование коррелированного подзапроса в JOIN. Коррелированный подзапрос выполняется для каждой строки внешнего запроса, что может быть неэффективно на больших наборах данных. Использование JOIN позволяет базе данных обрабатывать данные более эффективно, сокращая общее время выполнения за счет однократного выполнения операции соединения и оптимизации плана запроса.
#Вопросы_с_собеседования
Что такое определяемая пользователем функция?
Определяемая пользователем функция — это подпрограмма, которая принимает параметры, выполняет действие и возвращает результат в виде одного скалярного значения или результирующий набор.
🔥 Почему Cassandra становится выбором лидеров в мире больших данных?
На открытом вебинаре 4 декабря в 20:00 мск мы расскажем все о ее возможностях!
Cassandra — это не просто база данных. Это мощный инструмент для работы с большими объемами данных, масштабирования и обеспечения высокой доступности. Узнайте, почему она настолько популярна и как используется в разных отраслях.
💡 Реальные кейсы, примеры внедрения, уникальные преимущества — вебинар поможет вам понять, как именно Cassandra может улучшить управление данными и сэкономить ресурсы.
Вебинар пройдет в рамках курса «Cassandra для разработчиков и администраторов», все посетители получат welcome-скидку на обучение.
🔗 Ссылка на регистрацию: https://clck.ru/3EsEcaРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
#Вопросы_с_собеседования
Как выполнить сопоставление без учёта регистра с использованием регулярных выражений в PostgreSQL?
Чтобы выполнить сопоставления без учета регистра с использованием регулярного выражения, мы можем использовать выражение POSIX (~*) из операторов сопоставления с образцом. Например:
'interviewbit' ~* '.*INTervIewBit.*'
Установка значения по умолчанию для NULL
Предположим, у вас есть таблица Users с полями Name и Email. Некоторые строки имеют NULL в поле Email. Вы хотите выбрать все имена и электронные адреса, но для строк с NULL в Email вы хотите установить значение по умолчанию, например, 'no-еmail@example.c0m'.
#Вопросы_с_собеседования
В чем заключается основной недостаток удаления данных из существующей таблицы с помощью команды DROP TABLE?
Хотя команда DROP TABLE позволяет полностью удалить данные из существующей таблицы, у не` есть недостаток — она удаляет полную структуру таблицы из базы данных. Из-за этого нам нужно заново создать таблицу для хранения данных.
Вебинар «Анализируем транзакции в реальном времени»
Приходите на бесплатный вебинар и узнайте, как обрабатывать высокие транзакционные и аналитические нагрузки в гибридной in-memory СУБД.
Дата и время: 28 ноября, 16:00.
Программа
🔹 Ускорение аналитических расчетов и аналитика на самых свежих данных с помощью HTAP-систем.
🔹 Основные архитектурные характеристики гибридных транзакционно-аналитических СУБД (HTAP).
🔹 Повышение отказоустойчивости транзакционно-аналитических решений, настройка под разные профили нагрузки и интеграция с другими компонентами ИТ-ландшафта.
Проведем демонстрацию возможностей продукта Tarantool Column Store в работе с объектами и данными.
Расскажем, как формировать отчетность в реальном времени и рассчитывать агрегаты в антифрод-системах с помощью продукта Tarantool Column Store.
Вебинар будет полезен архитекторам, дата-инженерам, DevOps-инженерам и разработчикам аналитических систем.
Регистрируйтесь, и вам придет ссылка на трансляцию в день мероприятия.
👩💻 Обучение программированию с нуля
Друзья, появился новый канал по обучению разных IT технологий.
Изучение Python
Изучение JavaScript
Изучение HTML/CSS
Изучение Java
Изучение C/С++
Изучение С#
Изучение SQL
👉 Подписывайся на TechVibe, будет интересно.
#Вопросы_с_собеседования
Как в 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 хранит данные в виде одиночных пар, что может быть удобно для простых случаев, но менее мощно для сложных структур.
🌎 PostgreSQL и ClickHouse — два мира, два подхода к индексации!
💡 Вы когда-нибудь задумывались, как индексация может влиять на производительность ваших баз данных? На открытом вебинаре мы раскроем тайны реляционных и колоночных БД и покажем, как правильно использовать индексацию для оптимизации работы с большими объемами данных.
👨🏫 Спикер: Алексей Железной — Senior Data Engineer с более чем 5-летним опытом разработки и проектирования пайплайнов для обработки, хранения и визуализации данных.
📅 Дата: 2 декабря в 20:00 МСК
🎁 Бонус: Участники вебинара получат скидку на обучение на курсе «ClickHouse для инженеров и архитекторов БД»
👉 Регистрируйтесь на открытый урок по ссылке: ссылка
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Как с помощью простой шаблонизации выстроить гибкий CI/CD-пайплайн с самого начала?
Расскажем на открытом уроке как эффективно использовать шаблоны:
1. Для минимизации времени на создание
2. Чтобы избежать переделки в будущем
✅ Практика: Создание адаптируемых пайплайнов с использованием шаблонов
👉 Регистрация и подробности о курсе CI/CD на основе GitLab
https://otus.pw/f5Hh/?erid=LjN8KUssd
#реклама
О рекламодателе
#Вопросы_с_собеседования
Что такое "SQL инъекция" и как её можно предотвратить?
SQL инъекция – это вид атаки на приложения, при котором злоумышленник вводит или "инъецирует" вредоносный SQL-код в запрос, который затем выполняется базой данных. Это может привести к несанкционированному доступу к данным, их изменению или удалению, а также к другим серьезным уязвимостям безопасности.
Для предотвращения SQL инъекций следует использовать параметризованные запросы, при которых вводимые пользователем данные обрабатываются как параметры, а не как часть SQL-кода. Это изолирует эти данные от самого запроса, предотвращая их интерпретацию как часть SQL-команды. Также важно проводить валидацию и санитизацию вводимых данных, ограничивая возможность ввода потенциально опасных символов или конструкций.
#Вопросы_с_собеседования
Как вы оптимизируете запросы SQL в больших базах данных для улучшения производительности, и какие факторы вы учитываете при анализе и улучшении эффективности запроса?
Для оптимизации SQL-запросов в больших базах данных, важно учитывать следующие факторы: использование индексов для ускорения поиска данных; избегание излишних операций соединения таблиц, особенно в случае больших наборов данных; оптимизация подзапросов и обеспечение их эффективности; использование агрегатных функций и временных таблиц для сокращения объёма обрабатываемых данных; анализ плана выполнения запроса для выявления узких мест. Также важно регулярно обновлять статистику базы данных для точной оценки планов выполнения и использовать подходящие методы кэширования для повторно используемых запросов.
#Вопросы_с_собеседования
Объясните, как SQL обрабатывает запрос с множественными JOIN операторами, содержащими условия как на INNER, так и на LEFT JOIN, и как это влияет на производительность запроса. Приведите пример.
SQL выполняет операции JOIN последовательно в том порядке, в котором они указаны в запросе, если только оптимизатор запросов не решит изменить порядок для повышения эффективности. INNER JOIN строго соединяет строки, удовлетворяющие условиям соединения, в то время как LEFT JOIN включает все строки из левой таблицы, даже если соответствующие строки в правой таблице отсутствуют. Смешивание этих двух типов JOIN может значительно повлиять на результаты запроса и его производительность. Если запрос содержит неоптимизированные или избыточные JOIN, это может привести к увеличению времени выполнения за счет большего объема обрабатываемых данных и сложности операций соединения.
SELECT A.*, B.*, C.*
FROM A
INNER JOIN B ON A.id = B.a_id
LEFT JOIN C ON A.id = C.a_id
WHERE A.some_column = 'some_value';
В этом запросе сначала выполняется INNER JOIN между таблицами A и B, а затем LEFT JOIN с таблицей C. Результат может быть значительно отличаться, если поменять порядок JOIN, и это может повлиять на производительность запроса.
#Вопросы_с_собеседования
Какая разница между реляционной базой данных и графовой базой данных, и какая из них лучше для работы с социальными сетями?
Реляционная база данных организована в виде таблиц, связанных между собой по ключам, а графовая база данных использует графовую модель и хранит данные в виде узлов и связей между ними.
Для работы с социальными сетями лучше подходит графовая база данных. Социальные сети характеризуются сложными связями между пользователями, например, дружба, подписки и взаимодействия. Графовые базы данных эффективно моделируют такие связи и обеспечивают быстрый доступ к информации, связанной с каждым пользователем и его связями.