В PostgreSQL есть два типа данных для работы с JSON: json и jsonb. Они отличаются друг от друга способом хранения данных и способом работы с ними.
Одной из основных функций для работы с JSON является
jsonb_build_object()
, которая позволяет создавать объекты JSON внутри запросов. Это может быть полезно, например, при импорте данных из внешних источников.Предположим, что мы хотим в
select
-запросе динамически сгенерировать json-объект. Сделать это можно так:SELECT jsonb_build_object('name', 'Иван', 'age', 30, 'city', 'Москва') AS person;
Этот запрос создаст JSON-объект со свойствами
name
, age
и city
, которые будут содержать соответствующие значения. Результатом запроса будет следующий JSON-объект:{
"age": 30,
"city": "Москва",
"name": "Иван"
}
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8🔥2
1. SQL позволяет эффективно извлекать, фильтровать и обрабатывать данные из баз данных.
2. SQL предоставляет возможность проводить аналитические запросы к данным, выявлять закономерности, тренды и паттерны, что помогает в принятии бизнес-решений.
3. Часто данные хранятся в различных базах данных или системах. Знание SQL помогает дата-саентисту объединять данные из разных источников для создания цельных наборов данных.
4. Написание оптимизированных SQL-запросов позволяет ускорить обработку данных и повысить производительность аналитических процессов.
В целом, знание SQL позволяет дата-саентисту эффективно работать с данными, проводить анализ и извлекать ценные инсайты для бизнеса.
Предлагаю немного попрактиковаться и порешать задачи на знание SQL.
🖇 Решение заданий из тренажера SQL Academy
🖇 Вводный Курс с задачами по работе с Базами данных
🖇В репозитории представлены проекты курса Аналитик данных
🖇Решение задач hackerrank по SQL
🖇100 ключевых Вопросов с собеседований
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍7🔥4
На ввод подаются строки. Например: "один". Запрос в базу должен матчить записи типа "три два один", "одиннадцатый", но не должен матчить записи типа "иван родин"
Как реализовать такое в SQL запросе?
~
и соответствующее регулярное выражение с '\m'
, обозначающим начало слова:SELECT *
FROM tbl
WHERE name ~ '\mодин'
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤3🔥3
В ней рассматриваются процессы резервного копирования и восстановления данных в PostgreSQL, обсуждаются различные стратегии и методы, которые позволят обеспечить надежность и доступность ценных информационных ресурсов.
Уверен, будет полезно)
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤4🔥4
Системный каталог, или просто каталог — это таблицы, в которых PostgreSQL хранит информацию обо всех остальных объектах, хранящихся в базе данных. К ним относятся таблицы, функции, триггеры, и т.д. Обращение к системному каталогу происходит часто, поэтому для него предусмотрен кэш. Давайте же разберемся, как этот кэш устроен.
Реализация кэша находится в следующих файлах:
syscache.{c,h}
— реализация основных функций кэша. Функции оперируют с Datum
’ами и HeapTuple
’ами;catcache.{c,h}
— низкоуровневые функции, используемые syscache.c
. Выделение и освобождение памяти реализовано здесь;lsyscache.{c,h}
— высокоуровневая обертка над syscache.c
. Содержит функции «получить имя отношения по его Oid» и подобного рода;inval.{c,h}
— логика инвалидации кэша. Подробности см ниже по тексту;sinvaladt.{c,h}
— реализация кольцевого буфера в разделяемой памяти, через который рассылаются сообщения об инвалидации кэшей;sinval.{c,h}
— интерфейс коммуникации через sinvaladt.c. Содержит функции вроде «отправить / получить SharedInvalidationMessage»
;@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍9🔥6
Эта шпаргалка по SQL-инъекциям содержит примеры синтаксиса, который часто используется для проведения атак на БД. Примеры инъекций приведены для разных СУБД: Oracle, PostgreSQL, MySQL, MicrosoftSQL.
Проверьте, не подвержено ли ваше приложение SQL-инъекциям
├╼
Объединение строк├╼
Подстрока├╼
Комментарии├╼
Версия базы данных├╼
Содержимое базы данных├╼
Условные ошибки├╼
Извлечение данных с помощью сообщений об ошибках├╼
Пакетные (или штабелированные) запросы├╼
Временные задержки├╼
Условные временные задержки├╼
DNS lookup (Поиск DNS)╰╼
DNS lookup с эксфильтрацией данных@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4🔥2
JOIN в MySQL — это мощный оператор, позволяющий объединять данные из нескольких таблиц на основе соответствия критериям.
Именно об этом и идёт речь в туториале, параллельно разбирается ещё много полезных вещей, рекомендую
Оглавление
— INNER JOIN
— LEFT JOIN
— RIGHT JOIN
— FULL JOIN (не поддерживается напрямую MySQL)
— Отображение профилей пользователей с заказами
— Фильтрация товаров по категориям и брендам
— Отображение отзывов с информацией о продукте
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🥰2😢1
В этой статье рассмотрим методы диагностики производительности PostgreSQL, которая состоит из 3 шагов.
Для улучшения работы вашей базы данных используйте следующие методы диагностики производительности PostgreSQL:
— примените вертикальное или горизонтальное масштабирование и затем проведите анализ запросов;
— настройте конфигурационные параметры развернутого кластера. Например, используйте онлайн генераторы конфигурационных параметров.
Обратите внимание, что включение анализаторов запросов может потреблять около 10% ресурсов. Но после завершения процесса анализа и оптимизации запросов производительность может значительно вырасти.
Вы можете использовать встроенные инструменты для анализа производительности PostgreSQL, чтобы идентифицировать узкие места и медленные запросы:
—
pg_stat_statements
—
pg_stat_kcache
—
auto_explain
—
log_min_duration_statement
Оптимизация запросов может быть сложной и часто представляет собой итеративный процесс. Вносите изменения постепенно и измеряйте влияние каждого изменения на производительность запросов. Также рекомендуем протестировать выполненные оптимизации в промежуточной среде, прежде чем применять их к рабочей базе данных. Убедитесь в отсутствии непредвиденных последствий.
План запроса PostgreSQL описывает выполнение SQL-запроса, включая сортировку и фильтрацию, а также использование ресурсов во время выполнения.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4🔥2👎1