Функция overlay (Databricks SQL)
Заменяет input на replace, который начинается с pos и имеет длину len.
Синтаксис
Копировать
overlay(input, replace, pos[, len])
Копировать
overlay(input PLACING replace FROM pos [FOR len])
Аргументы
input: выражение STRING или BINARY.
replace: выражение того же типа, что и input.
pos: выражение INTEGER.
len: необязательное выражение INTEGER.
Возвращаемое значение
Тип результата соответствует типу input.
Если pos имеет отрицательное значение, отсчет положения начинается с конца. len должно быть иметь значение не меньше 0. len задает длину фрагмента в input, который будет заменен. По умолчанию len имеет значение, совпадающее с длиной replace.
Примеры
SQL
@sqlhub
Заменяет input на replace, который начинается с pos и имеет длину len.
Синтаксис
Копировать
overlay(input, replace, pos[, len])
Копировать
overlay(input PLACING replace FROM pos [FOR len])
Аргументы
input: выражение STRING или BINARY.
replace: выражение того же типа, что и input.
pos: выражение INTEGER.
len: необязательное выражение INTEGER.
Возвращаемое значение
Тип результата соответствует типу input.
Если pos имеет отрицательное значение, отсчет положения начинается с конца. len должно быть иметь значение не меньше 0. len задает длину фрагмента в input, который будет заменен. По умолчанию len имеет значение, совпадающее с длиной replace.
Примеры
SQL
> SELECT overlay('Spark SQL', 'ANSI ', 7, 0);
Spark ANSI SQL
> SELECT overlay('Spark SQL' PLACING '_' FROM 6);
Spark_SQL
> SELECT overlay('Spark SQL' PLACING 'CORE' FROM 7);
Spark CORE
> SELECT overlay('Spark SQL' PLACING 'ANSI ' FROM 7 FOR 0);
Spark ANSI SQL
> SELECT overlay('Spark SQL' PLACING 'tructured' FROM 2 FOR 4);
Structured SQL
> SELECT overlay(encode('Spark SQL', 'utf-8') PLACING encode('_', 'utf-8') FROM 6);
[53 70 61 72 6B 5F 53 51 4C]
@sqlhub
👍6
PostgreSQL. Основы языка SQL
В пособии рассматриваются следующие темы:
- Введение в базы данных и SQL
- Создание рабочей среды
- Основные операции с таблицами
- Типы данных СУБД PostgreSQL
- Основы языка определения данных
- Запросы
- Изменение данных
- Индексы
- Транзакции
- Повышение производительности
📓 Книга
@sqlhub
В пособии рассматриваются следующие темы:
- Введение в базы данных и SQL
- Создание рабочей среды
- Основные операции с таблицами
- Типы данных СУБД PostgreSQL
- Основы языка определения данных
- Запросы
- Изменение данных
- Индексы
- Транзакции
- Повышение производительности
📓 Книга
@sqlhub
👍9❤2🥰1😁1
🏄♀️ 5 примеров атаки SQL-инъекций и их предотвращение
Эта атака позволяет хакерам выполнять вредоносные действия в онлайн-свойствах, где проверка входных данных немного ниже среднего.
Согласно отчету Positive Technology, SQL-инъекция по-прежнему остается одной из основных лазеек в мире.
➡️ Читать дальше
@sqlhub
Эта атака позволяет хакерам выполнять вредоносные действия в онлайн-свойствах, где проверка входных данных немного ниже среднего.
Согласно отчету Positive Technology, SQL-инъекция по-прежнему остается одной из основных лазеек в мире.
➡️ Читать дальше
@sqlhub
👍7❤2🔥1
Выберите пример правильно составленного запроса с использованием агрегирующей функции SUM:
Anonymous Quiz
64%
select sum(price) from Orders;
10%
select sum(price), customer_name from Orders;
8%
select * from Orders where price=sum();
18%
select sum() from Orders group by price desc;
❤6👍4🤯3🔥1
Как хранить сеть дорог в БД для построения маршрута?
И так, формулировка задачи следующая: есть база данных, в ней хранится информация о дорогах, включая координаты, нужно реализовать построение маршрутов из начальной точки к конечной.
Построение маршрутов - задача распространенная, и, как для каждой распространённой задачи, для неё давно существуют реализации. Мне нравится GraphHopper. Да так нравится, что моя первая статья на Хабре была про то, как создать для него собственные правила построения графа дорог.
➡️ Читать дальше
@sqlhub
И так, формулировка задачи следующая: есть база данных, в ней хранится информация о дорогах, включая координаты, нужно реализовать построение маршрутов из начальной точки к конечной.
Построение маршрутов - задача распространенная, и, как для каждой распространённой задачи, для неё давно существуют реализации. Мне нравится GraphHopper. Да так нравится, что моя первая статья на Хабре была про то, как создать для него собственные правила построения графа дорог.
➡️ Читать дальше
@sqlhub
👍10❤2🔥1
✔️ Как прокачать свой SQL до уровня больших данных
Чем отличается SQL в больших данных от обычного SQL? В больших данных используются распределённые вычисления.
Вычисления распределяются между несколькими серверами. Одна база данных находится сразу на нескольких серверах. Результат запроса тоже вычисляется одновременно несколькими серверами. Алгоритмы распределённых вычислений описывает парадигма MapReduce. Давайте разберём, на что это влияет и как прокачать свой SQL до уровня больших данных.
Предупреждение: в данной статье рассматриваются канонические архитектуры обработки данных. Многие современные СУБД и фреймворки построены на их основе и содержат в себе множество доработок и улучшений. Однако набор оптимизаций может отличаться. Поэтому реальная обработка данных на вашем проекте может отличаться в лучшую сторону благодаря именно вашему инструменту. Важно понимать, какие именно оптимизации способен выполнять ваш фреймворк, чтобы правильно контролировать эффективность алгоритмов.
➡️ Читать дальше
@sqlhub
Чем отличается SQL в больших данных от обычного SQL? В больших данных используются распределённые вычисления.
Вычисления распределяются между несколькими серверами. Одна база данных находится сразу на нескольких серверах. Результат запроса тоже вычисляется одновременно несколькими серверами. Алгоритмы распределённых вычислений описывает парадигма MapReduce. Давайте разберём, на что это влияет и как прокачать свой SQL до уровня больших данных.
Предупреждение: в данной статье рассматриваются канонические архитектуры обработки данных. Многие современные СУБД и фреймворки построены на их основе и содержат в себе множество доработок и улучшений. Однако набор оптимизаций может отличаться. Поэтому реальная обработка данных на вашем проекте может отличаться в лучшую сторону благодаря именно вашему инструменту. Важно понимать, какие именно оптимизации способен выполнять ваш фреймворк, чтобы правильно контролировать эффективность алгоритмов.
➡️ Читать дальше
@sqlhub
👍8❤1🔥1
English for Developers - канал для тех, кто хочет учить технический английский. От создатателей популярного ит-канала Data analysis.
1. техническая лексика
2. опросы на английском
3. шутки на английском
Подписывайтесь, проходите опросы, читайте полезные прогерские фразы на английском: english_forprogrammers.
1 канал вместо тысячи учебников и курсов
1. техническая лексика
2. опросы на английском
3. шутки на английском
Подписывайтесь, проходите опросы, читайте полезные прогерские фразы на английском: english_forprogrammers.
1 канал вместо тысячи учебников и курсов
👍5❤1🔥1
🔥 Эффективные SQL-запросы. 12 способов переписать запросы SQL для улучшения их производительности.
Я часто работаю в условиях, когда при настройке производительности нет возможности менять индексы или параметры сервера. Я обычно сталкиваюсь с подобными сценариями, когда имею дело с:
Базами данных поставщиков.
“Хрупкими” системами.
Недостаточным местом на диске.
Ограниченным инструментарием/непосредственным анализом.
Возможностями, ограниченными системой безопасности.
Хотя всегда предпочтительней решать проблему производительности в корне, иногда единственным способом, которым я могу воспользоваться для решения проблемы в подобных условиях, является переписывание запросов.
Я решил написать этот краткий пост, потому что хотел бы изначально иметь такой ресурс. Иногда, возможно, в попытках найти способ переписать SQL-запрос данный пост даст толчок вашим творческим идеям.
➡️ Читать дальше
@sqlhub
Я часто работаю в условиях, когда при настройке производительности нет возможности менять индексы или параметры сервера. Я обычно сталкиваюсь с подобными сценариями, когда имею дело с:
Базами данных поставщиков.
“Хрупкими” системами.
Недостаточным местом на диске.
Ограниченным инструментарием/непосредственным анализом.
Возможностями, ограниченными системой безопасности.
Хотя всегда предпочтительней решать проблему производительности в корне, иногда единственным способом, которым я могу воспользоваться для решения проблемы в подобных условиях, является переписывание запросов.
Я решил написать этот краткий пост, потому что хотел бы изначально иметь такой ресурс. Иногда, возможно, в попытках найти способ переписать SQL-запрос данный пост даст толчок вашим творческим идеям.
➡️ Читать дальше
@sqlhub
👍8❤1🔥1
💻 Типы таблиц в PostgreSQL: clustered, foreign, partitioned и inherited tables
В статье речь пойдёт про кластеризованные, внешние, партицированные и наследуемые таблицы. Посмотрим на примеры их создания, области применения, плюсы и минусы их использования.
Clustered tables — кластеризованные таблицы
Мало кто любит хаос, всем нравится порядок. В рамках реляционных баз данных понятие хаоса тесно переплетено с хранением информации, потому что на протяжении своего жизненного цикла таблица постоянно видоизменяется.
В процессе работы с РСУБД на уровне диска происходит постоянное изменение содержимого таблицы. Например, вы обновили данные и ваша обновлённая строка попала на другую страницу таблицы (тут надо оговориться про FILLFACTOR) с появлением мёртвой записи (dead tuple) в текущей позиции. Затем autovacuum-процесс удалил мёртвую запись, и освободившийся слот заполнился вновь поступившей строкой.
➡️ Читать дальше
@sqlhub
В статье речь пойдёт про кластеризованные, внешние, партицированные и наследуемые таблицы. Посмотрим на примеры их создания, области применения, плюсы и минусы их использования.
Clustered tables — кластеризованные таблицы
Мало кто любит хаос, всем нравится порядок. В рамках реляционных баз данных понятие хаоса тесно переплетено с хранением информации, потому что на протяжении своего жизненного цикла таблица постоянно видоизменяется.
В процессе работы с РСУБД на уровне диска происходит постоянное изменение содержимого таблицы. Например, вы обновили данные и ваша обновлённая строка попала на другую страницу таблицы (тут надо оговориться про FILLFACTOR) с появлением мёртвой записи (dead tuple) в текущей позиции. Затем autovacuum-процесс удалил мёртвую запись, и освободившийся слот заполнился вновь поступившей строкой.
➡️ Читать дальше
@sqlhub
👍8❤1🔥1
🔐 КАК ИЗМЕНИТЬ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ MYSQL
Одной из важных операций при работе с пользователями в СУБД MySQL является смена пароля пользователя. Как правило изменить пароль пользователя может только суперпользователь с именем root. Однако если обычный пользователь наделен полномочиями на смену пароля то он также может это сделать.
В данной статье будет рассмотрено как изменить пароль пользователя MySQL в операционной системе Ubuntu 20.04.
Содержание статьи:
Как сменить пароль пользователя MySQL
Шаг 1. Как узнать версию MySQL
Шаг 2. Вход в консоль MySQL
Шаг 3. Просмотр хостов пользователя
Шаг 4. Смена пароля пользователя при помощи SET PASSWORD
Шаг 5. Смена пароля пользователя при помощи ALTER USER
Шаг 6. Сброс кэша привилегий
Шаг 7. Проверка нового пароля
Выводы
➡️ Читать дальше
@sqlhub
Одной из важных операций при работе с пользователями в СУБД MySQL является смена пароля пользователя. Как правило изменить пароль пользователя может только суперпользователь с именем root. Однако если обычный пользователь наделен полномочиями на смену пароля то он также может это сделать.
В данной статье будет рассмотрено как изменить пароль пользователя MySQL в операционной системе Ubuntu 20.04.
Содержание статьи:
Как сменить пароль пользователя MySQL
Шаг 1. Как узнать версию MySQL
Шаг 2. Вход в консоль MySQL
Шаг 3. Просмотр хостов пользователя
Шаг 4. Смена пароля пользователя при помощи SET PASSWORD
Шаг 5. Смена пароля пользователя при помощи ALTER USER
Шаг 6. Сброс кэша привилегий
Шаг 7. Проверка нового пароля
Выводы
➡️ Читать дальше
@sqlhub
👍8❤1🔥1
Агрегаты в БД — зачем, как, а стоит ли?
С течением жизни приложения в его БД накапливается все больше данных. Десктопное оно, SaaS или даже мобильное – неважно, в современном мире почти каждый что-то хранит “у себя”.
Если это какая-то локальная утилита – не страшно, само ее существование у пользователя достаточно ограничено. Но если это что-то вроде нашего СБИС, который накапливает и помогает анализировать операции за все время существования бизнеса, то, по мере его роста, не только операций становится больше, но и понимания, какие именно сводные отчеты помогают в оперативном управлении.
Вот про то, как сделать такие отчеты быстрыми, какие бывают способы их реализации и встречаются “грабли” на этом пути, сегодня и поговорим.
➡️ Читать дальше
@sqlhub
С течением жизни приложения в его БД накапливается все больше данных. Десктопное оно, SaaS или даже мобильное – неважно, в современном мире почти каждый что-то хранит “у себя”.
Если это какая-то локальная утилита – не страшно, само ее существование у пользователя достаточно ограничено. Но если это что-то вроде нашего СБИС, который накапливает и помогает анализировать операции за все время существования бизнеса, то, по мере его роста, не только операций становится больше, но и понимания, какие именно сводные отчеты помогают в оперативном управлении.
Вот про то, как сделать такие отчеты быстрыми, какие бывают способы их реализации и встречаются “грабли” на этом пути, сегодня и поговорим.
➡️ Читать дальше
@sqlhub
👍7❤1🔥1
🔥 Рефакторинг SQL-запросов
Практически любой разработчик приложений баз данных сталкивается с необходимостью переделки ранее написанных SQL-запросов. При этом обычно преследуются две цели: во-первых – оптимизация времени выполнения запроса, во-вторых – улучшение дизайна запроса. Этот процесс подпадает под определение одной из основных практик экстремального программирования – рефакторинга (улучшения качества кода без изменения его функциональности). Основная масса литературы по рефакторингу посвящена переделке кодов программ, написанных на алгоритмических языках, и касается, как правило, объектно-ориентированных аспектов программирования. Целью данной статьи является попытка описания практики рефакторинга для SELECT-запросов языка SQL.
➡️ Читать дальше
@sqlhub
Практически любой разработчик приложений баз данных сталкивается с необходимостью переделки ранее написанных SQL-запросов. При этом обычно преследуются две цели: во-первых – оптимизация времени выполнения запроса, во-вторых – улучшение дизайна запроса. Этот процесс подпадает под определение одной из основных практик экстремального программирования – рефакторинга (улучшения качества кода без изменения его функциональности). Основная масса литературы по рефакторингу посвящена переделке кодов программ, написанных на алгоритмических языках, и касается, как правило, объектно-ориентированных аспектов программирования. Целью данной статьи является попытка описания практики рефакторинга для SELECT-запросов языка SQL.
➡️ Читать дальше
@sqlhub
👍7❤3🔥1
Использование памяти для ядра СУБД SQL Server ограничивается парой параметров конфигурации, min server memory (MB) (минимальный объем памяти сервера в МБ) и max server memory (MB) (максимальный объем памяти сервера в МБ). Со временем и в обычных обстоятельствах SQL Server попытается запросить память до предела, установленного параметром max server memory (MB).
➡️ Читать дальше
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1
Запуск нового проекта Django с базой данных PostgreSQL
https://dev-gang.ru/article/zapusk-novogo-proekta-django-s-bazoi-dannyh-postgresql-cpt21qogeg/
@sqlhub
https://dev-gang.ru/article/zapusk-novogo-proekta-django-s-bazoi-dannyh-postgresql-cpt21qogeg/
@sqlhub
dev-gang.ru
Запуск нового проекта Django с базой данных PostgreSQL
Предварительное чтение: учебники, которые могут вам понадобиться
🔥6❤1👍1
За последние годы у меня накопился довольно обширный опыт работы с данными и тем, что сейчас называют Big Data.
Не так давно также разгорелся интерес к сфере интернет-маркетинга и Сквозной Аналитики, и не на пустом месте. Мой друг из действующего агентства снабдил меня данными и кейсами реальных клиентов, и тут понеслось.
Получается довольно интересно: Azure SQL + dbt + Github Actions + Metabase.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1
Работая над различными интересными задачами, мне только и приходилось слышать о существовании программ, которые работают с большими данными (в области действия одного сервера). И вот настал тот день, когда к нам обратился клиент, у которого сайт грузился очень долго. Задание для решения этой проблемы выдали моего коллеги. Немного прошло времени, до того как он подозвал меня к себе, с целью показать, столь диковинное для меня зрелище, связанное с объёмом таблиц, в которых находились данные после импорта категорий, характеристик, брендов товаров.
22 миллиона варианта категорий для нас показалось более чем приличным объёмом, тем более — вес таблицы с категориями получился чуть больше 1,6 Гиб. С такими размерами страницы начали грузиться дольше, чем хотелось бы. Ввиду того что, сроки на решение проблемы маленькие (чем быстрей тем лучше), руководство решило выделить на эту задачу, две единицы программистов, меня и моего коллегу. Разделив модуль на двоих, мне достались по объёму не самые сливки, но не менее ответственный участок, поскольку в нём — на загрузку данных, уходило значительное время.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🔥1
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1🔥1
🐘 Функции и хранимые процедуры в SQL: зачем нужны и как применять в реальных примерах
https://proglib.io/p/funkcii-i-hranimye-procedury-v-sql-zachem-nuzhny-i-kak-primenyat-v-realnyh-primerah-2022-10-07
@sqlhub
https://proglib.io/p/funkcii-i-hranimye-procedury-v-sql-zachem-nuzhny-i-kak-primenyat-v-realnyh-primerah-2022-10-07
@sqlhub
Библиотека программиста
🐘 Функции и хранимые процедуры в SQL: зачем нужны и как применять в реальных примерах
Как устроены функции и хранимые процедуры и как их применять для повторного использования запросов.
👍8❤1🔥1