10287
№ 5060218708 Изучаем SQL с нуля По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning
Ваши дашборды грузятся по минуте? SQL-запросы «падают» на продакшене, а бизнес требует отчеты «еще вчера»?
Узкое место — не мощность сервера, а эффективность кода и архитектуры запросов.
Индекс GIN
Индекс GIN - это тип индекса в PostgreSQL, который позволяет эффективно искать данные в полнотекстовых полях, массивах, JSON и других типах данных. Он создается на столбцах с комплексными или составными типами данных, такими как полнотекстовые данные или JSON. Индекс разбивает значения в столбце на отдельные элементы и создает отображение между этими элементами и строками в таблице, что позволяет быстро искать значения в этих типах данных.
Преимущества использования индекса GIN:
- Быстрый поиск по полнотекстовым данным и другим составным типам данных
- Поддержка операций поиска, включая поиск по подстроке и полнотекстовый поиск
- Поддержка операций над массивами, такие как поиск элементов массива и проверка наличия значения в массиве
- Возможность использования в комбинации с другими индексами для дополнительной оптимизации запросов
Создание индекса осуществляется с указанием типа индекса как GIN и имени столбца, на котором создается индекс.
Пример: CREATE INDEX idx_gin ON mytable USING GIN (mycolumn);
Использование индекса GIN в запросах выполняется с помощью оператора @@ или функции tsquery.
Знакомимся с key-value NoSQL-БД: наполняем Redis данными из Kafka
Читать статью
С кодом у тебя всё ок.
Если что-то не работает — смотришь логи, находишь баг, фикcишь.
А с женщинами ощущение, будто:
— документации нет
— поведение недетерминированное
— один и тот же input → разный output
— вчера работало, сегодня — игнор
Ты вроде нормальный парень.
Не токсик. Не дурак. Не бедный.
По логике этого должно хватать.
Но система не сходится.
Ты общаешься — вроде без ошибок.
А в ответ холод, странные реакции или «давай как-нибудь потом».
Самое бесячее — ты не понимаешь, где именно происходит краш.
Со временем я понял простую вещь:
в отношениях и общении с женщинами другая архитектура.
Не интуиция. Не магия.
Просто другие правила, которые никто не объяснил.
В этом канале я разбираю это как систему:
что реально влияет, где ты теряешь контроль,
и как перестать действовать методом тыка.
Если ты привык дебажить, а не гадать — оставайся. Тут будет полезно: /channel/+T1mzcKH__J80NmI6
Простой и эффективный метод удаления дубликатов из таблицы
Предположим, у нас есть простая таблица с двумя столбцами: id – это первичный ключ и v простое целочисленное значение
Приведенный код создает таблицу и вставляет несколько значений. Выведем на экран все строки из нашей тестовой таблицы. Как видите, id имеет уникальные значения, но поле val имеет содержит дубликаты (фото 1).
Наша задача состоит в том, чтобы удалить строки с поввторяющимися значениями в столбце val и сохранить уникальные значения с минимальным значением идентификатора id.
Для начала попробуем найти дубликаты. Мы можем использовать простое LEFT JOIN таблицы самой с собой по полю val с дополнительным условием для предотвращения объединения идентичных строк (для наглядности дадим алиасы для таблицы и копии) (фото 2).
В конечном итоге видно, что уникальные строки с минимальным id имеют (null) в столбцах из copy_tbl. Это происходит потому что для минимального значения id в исходной таблице нет строк соответсвующих условию в таблице копии. Итак, нам нужно оставить строки в которых нет соответствия (уникальные) и удалить. Это можно осуществить следующим запросом (фото 2).
#вопросы_с_собеседований
Можно ли связать SQL Server с другими серверами?
Да, можно подключить SQL Server к любому серверу базы данных, поддерживающему поставщика OLE-DB. Серверы баз данных, поддерживающие поставщика OLE-DB:
- IBM Informix
- Microsoft Access
- База данных Oracle
6 SQL-запросов, о которых должен знать каждый дата-инженер
Смотреть статью
Руководство по наиболее востребованным базовым командам SQL
Смотреть статью
📢SQL Translator - это инструмент для преобразования запросов на естественном языке в SQL-запросы с помощью искусственного интеллекта. Этот проект является 100% бесплатным и с открытым исходным кодом.git clone https://github.com/whoiskatrin/sql-translator.git
Github
Проект
#Вопросы_с_собеседования
❓При выборке из таблицы workers выведите дату в формате '31.12.2025'
Ответ на картинке.
Как избежать распространенных ошибок при работе с СУБД
Смотреть статью
Производительные или и выгодные базы данных в облаке
Безопасные, масштабируемые и отказоустойчивые базы данных — одна из ключевых потребностей любого проекта. Именно такие предлагает Selectel. СУБД под разные запросы: от универсальной PostgreSQL до поисковой и аналитической БД Opensearch
Новые клиенты сейчас могут получить до 30 000 бонусов на использование облачных баз данных Selectel. Провайдер гарантирует:
🔹Высокую производительность. Выбирайте оптимальную конфигурацию кластера на базе мощного железа и локальных NVMe-дисков.
🔹Надежность. Автоматические бесплатные бэкапы с восстановлением вплоть до секунды — на стороне Selectel. А создать отказоустойчивый кластер можно всего от двух нод и сэкономить до 33%.
🔹Гибкое масштабирование. При росте нагрузки можно поменять конфигурацию облачного сервера и количество реплик без простоя.
Успейте зарегистрироваться и оставить заявку на участие в акции, чтобы протестировать сервис бесплатно: https://slc.tl/tqdcp
Реклама. АО "Селектел". erid:2W5zFH64PvY
NOT NULL в CREATE TABLE
Следующий SQL гарантирует, что столбцы "ID", "LastName", и "FirstName" не будут принимать нулевые значения при создании таблицы "Persons".
#Вопросы_с_собеседования
❓Что делает оператор MERGE?
Ответ:
MERGE позволяет осуществить слияние данных одной таблицы с данными другой таблицы. При слиянии таблиц проверяется условие, и если оно истинно, то выполняется UPDATE, а если нет - INSERT. При этом изменять поля таблицы в секции UPDATE, по которым идет связывание двух таблиц, нельзя.
REPLICATE в SQL Server
REPLICATE - это функция в SQL Server, которая повторяет входную строку указанное количество раз. Эта функция может быть полезна во многих сценариях, например, при создании тестовых данных или при форматировании вывода.
Синтаксис функции REPLICATE выглядит следующим образом:
REPLICATE ( string_expression , integer_expression )
- string_expression - это строковое выражение, которое нужно повторить.
- integer_expression - это выражение целого типа, определяющее количество раз, которое нужно повторить строку.
Создание поля, объединяющего имя и зарплату в выборке из таблицы пользователей
Для создания поля, которое будет включать в себя и имена, и зарплату, можно использовать функцию CONCAT(). Она объединяет две или более строковые величины в одну строку.
Пример SQL-запроса для создания поля new_field на фото.
В примере мы выбираем таблицу users и создаем новое поле с помощью функции CONCAT(). Внутри функции указываем два поля, которые хотим объединить - name и salary. Также задаем новое имя для созданного поля - new_field, используя AS.
Теперь в результате выполнения запроса в выборке будет присутствовать новое поле new_field, которое будет содержать имя пользователя и его зарплату.
Выполнение побитовых операций над числами из Oracle Database 21c с помощью:BIT_AND_AGG
BIT_XOR_AGG
BIT_OR_AGG
✔ Преобразование десятичных чисел в двоичные (5 = 101, 6 = 110 и т. д.).
✔ Сравнение значений в каждой битовой позиции
✔ Преобразование результатов обратно в десятичный вид
Сравнение JSONB с hstore
Оба типа данных поддерживают хранение пар "ключ-значение", но JSONB имеет более сложную структуру, позволяющую включать массивы и вложенные объекты.
Hstore хранит данные в виде одиночных пар, что может быть удобно для простых случаев, но менее мощно для сложных структур.
Дорогие подписчики, поздравляю вас с наступающим новым годом! Пусть в 2026 году исполнятся все ваши самые заветные желания🎄🎄🎄🎄
Читать полностью…
Развернуть PostgreSQL в MWS Cloud Platform ⬜️ — быстрее, чем вспомнить пароль от pgAdmin. И точно быстрее, чем объяснить DevOps'у, зачем ещё одна база.
Всего несколько минут и у вас:
⏺️готовая база на сетевых или локальных дисках
⏺️постоянный primary endpoint
⏺️безопасное подключение через Private Link
⏺️автоматические бэкапы и обслуживания по твоему расписанию
#Вопросы_с_собеседования
В чем заключается основной недостаток удаления данных из существующей таблицы с помощью команды DROP TABLE?
Хотя команда DROP TABLE позволяет полностью удалить данные из существующей таблицы, у не` есть недостаток — она удаляет полную структуру таблицы из базы данных. Из-за этого нам нужно заново создать таблицу для хранения данных.
Чем больше компания, тем больше вызовов 😱
Был десяток команд разработки – теперь их сотни. Единицы развертываний в день превращаются в тысячи.
Как в этом потоке сохранить контроль, прозрачность и управляемость? Как можно автоматизировать рутинные процессы? Разрозненные инструменты и отсутствие единой картины тормозят скорость и снижают качество доставки – что делать?
🎯Если у вас нет ответа на эти вопросы, вашей компании стоит внедрить IT-решение, которое станет "единым источником правды". Оно автоматизирует учет IT-компонентов, управление стендами и планирование поставок, сокращая время на рутину и повышая надежность процессов. Название такого решения – Digital Q.CMDB.
Диасофт посвятит этому решению вебинар, который состоится 23 декабря в 14:00 🗓
Эксперты познакомят вас с решением, расскажут про вызовы масштабирования и затронут практику: от бизнес-требований до поставки.
Welcome: регистрируйтесь по ссылке!
Реклама. ООО "ДИАСОФТ ЭКОСИСТЕМА". ИНН 9715403607.
Функция LOG() в SQL Server
Функция LOG() в SQL Server принимает один аргумент - число, для которого необходимо вычислить натуральный логарифм.
Например, если мы хотим вычислить натуральный логарифм числа 10, мы можем использовать следующий SQL-запрос:
SELECT LOG(10) AS NaturalLogarithm;
Результатом этого запроса будет число, представляющее натуральный логарифм числа 10. Функция LOG() также может быть использована в сочетании с другими функциями и операторами для выполнения более сложных вычислений.
🖥 Предположим, что нам необходимо получить данные о сотруднике, имеющем вторую по величине зарплату в компании. Мы можем использовать следующий запрос:WITH employee_ranking AS (
SELECT
employee_id,
last_name,
first_name,
salary,
RANK() OVER (ORDER BY salary DESC) as ranking
FROM employee
)
SELECT
employee_id,
last_name,
first_name,
salary
FROM employee_ranking
WHERE ranking = 2
Условие WHERE ranking = 2 используется для фильтрации строк второй по величине зарплаты. Обратите внимание, что на позиции 2 может находиться более одного сотрудника, если у них одинаковая зарплата.
#Вопросы_с_собеседования
❓Для каких числовых типов недопустимо использовать операции сложения/вычитания?
Ответ:
В качестве операндов операций сложения и вычитания нельзя использовать числовой тип BIT. BIT - целочисленный тип данных, который может принимать значения 1, 0 или NULL.
Функция SUBSTRING_INDEX()
Функция SUBSTRING_INDEX() возвращает подстроку строки до того, как появится указанное число разделителей.
Синтаксис:
SUBSTRING_INDEX(string, delimiter, number).
Протестировать функцию можно здесь.
Функция MOD
Функция MOD() возвращает остаток от деления одного числа на другое.
Синтаксис:MOD(x, y)
Пошаговая инструкция создания SQL-сервера на Google Cloud Platform
Смотреть статью
SpeedML - это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения.
Она объединяет часто используемые пакеты ML, такие как Pandas, NumPy, Scikit-learn, XGBoost и Matplotlib. SpeedML также предоставляет функциональные возможности для автоматизированного EDA.pip install speedml
• Github