SQLFlow
SQLFlow — простой инструмент для визуализации SQL-запросов и отображения зависимостей. Позволяет отслеживать data lineage-происхождение и трансформации в данных при исполнении запросов.
https://sqlflow.gudusoft.com/
#db
👉 @database_info
SQLFlow — простой инструмент для визуализации SQL-запросов и отображения зависимостей. Позволяет отслеживать data lineage-происхождение и трансформации в данных при исполнении запросов.
https://sqlflow.gudusoft.com/
#db
👉 @database_info
👍8
Media is too big
VIEW IN TELEGRAM
Вывод данных по условиям через WHERE, AND, OR, BETWEEN. Сортировка данных.
Тайм-коды:
00:00:00 - Небольшое организационное напоминание
00:03:14 - Как будет строиться занятие
00:10:20 - Команда ORDER BY
00:14:16 - Команда LIMIT
00:17:08 - Команда DISTINCT
00:19:37 - Команда WHERE
00:24:18 - Как писать запрос
00:25:35 - Объединение условий
00:39:30 - Простые математические операции
00:48:10 - Подсчет количества
00:53:34 - Подсчет суммы
00:57:25 - Пример задачи
01:00:07 - Информация о скидках
01:07:08 - Пример задачи(продолжение)
01:15:48 - Пример работы функций SUM, AVG, COUNT, MIN, MAX
01:21:19 - Команда HAVING
01:28:49 - Ответы на вопросы и завершение
источник
#db
👉 @database_info
Тайм-коды:
00:00:00 - Небольшое организационное напоминание
00:03:14 - Как будет строиться занятие
00:10:20 - Команда ORDER BY
00:14:16 - Команда LIMIT
00:17:08 - Команда DISTINCT
00:19:37 - Команда WHERE
00:24:18 - Как писать запрос
00:25:35 - Объединение условий
00:39:30 - Простые математические операции
00:48:10 - Подсчет количества
00:53:34 - Подсчет суммы
00:57:25 - Пример задачи
01:00:07 - Информация о скидках
01:07:08 - Пример задачи(продолжение)
01:15:48 - Пример работы функций SUM, AVG, COUNT, MIN, MAX
01:21:19 - Команда HAVING
01:28:49 - Ответы на вопросы и завершение
источник
#db
👉 @database_info
👍3❤1
Оператор PIVOT
Несколько статей будут посвящены тому как в SQL Server реализован оператор PIVOT и UNPIVOT. Начнем с оператора PIVOT. Оператор PIVOT берет нормализованную таблицу и преобразует ее в другой вид, в котором столбцы результирующей таблицы получаются из значений исходной таблицы. Например, предположим, что мы хотим хранить данные о суммарной выручке от продаж за год по каждому из сотрудников.
https://habr.com/ru/post/677340/
https://learn.microsoft.com/en-us/archive/blogs/craigfr/the-pivot-operator
#db #sql
👉 @database_info
Несколько статей будут посвящены тому как в SQL Server реализован оператор PIVOT и UNPIVOT. Начнем с оператора PIVOT. Оператор PIVOT берет нормализованную таблицу и преобразует ее в другой вид, в котором столбцы результирующей таблицы получаются из значений исходной таблицы. Например, предположим, что мы хотим хранить данные о суммарной выручке от продаж за год по каждому из сотрудников.
https://habr.com/ru/post/677340/
https://learn.microsoft.com/en-us/archive/blogs/craigfr/the-pivot-operator
#db #sql
👉 @database_info
👍2
High Performance MySQL
Авторы: Silvia Botros, Jeremy Tinley (2022)
Как можно использовать всю мощь MySQL? Благодаря данной книге вы изучите передовые практики для всего от разработки схем, индексов и запросов до настройки вашего сервера, операционной системы и оборудования. Это руководство также учит администраторов баз данных безопасным и практичным способам масштабирования приложений с помощью репликации, балансировки нагрузки и обеспечения высокой доступности.
Во время чтения книги вы:
✔️Погрузитесь в архитектуру MySQL, включая ключевые факты о механизмах хранения;
✔️Узнаете, как конфигурация сервера работает с оборудованием и варианты развертывания;
✔️Изучите улучшения репликации и высокой доступности MySQL;
✔️Изучите полную оптимизацию стека MySQL от конфигурации на стороне приложения до настройки сервера;
✔️Превратите традиционные задачи управления базами данных в автоматизированные процессы.
#db
👉 @database_info
Авторы: Silvia Botros, Jeremy Tinley (2022)
Как можно использовать всю мощь MySQL? Благодаря данной книге вы изучите передовые практики для всего от разработки схем, индексов и запросов до настройки вашего сервера, операционной системы и оборудования. Это руководство также учит администраторов баз данных безопасным и практичным способам масштабирования приложений с помощью репликации, балансировки нагрузки и обеспечения высокой доступности.
Во время чтения книги вы:
✔️Погрузитесь в архитектуру MySQL, включая ключевые факты о механизмах хранения;
✔️Узнаете, как конфигурация сервера работает с оборудованием и варианты развертывания;
✔️Изучите улучшения репликации и высокой доступности MySQL;
✔️Изучите полную оптимизацию стека MySQL от конфигурации на стороне приложения до настройки сервера;
✔️Превратите традиционные задачи управления базами данных в автоматизированные процессы.
#db
👉 @database_info
👍5
От 0 до 300 SQL-запросов в месяц: 3 практических совета
https://betterprogramming.pub/from-0-to-300-sql-queries-a-month-my-3-best-tips-788398476e1e
#SQL
👉 @database_info
https://betterprogramming.pub/from-0-to-300-sql-queries-a-month-my-3-best-tips-788398476e1e
#SQL
👉 @database_info
👍2
Базы данных
1. Введение в базы данных. Базы данных.
2. Реляционная модель данных, ER диаграмма. Базы данных
3. Введение в SQL. Базы данных
4. SQL. Практическое занятие. Базы данных
5. SQL (Structure Query Language). Оператор Distinct. Базы данных
7. Транзакции. Базы данных
8. План выполнения запроса. Ограничения целостности. Базы данных
9. Таблицы. Триггеры. Процедуры. Базы данных
10. Масштабирование БД. Базы данных
11. Оптимизация запросов. Базы данных
12. Введение в NoSQL. Базы данных
13. Что такое ORM? Почему стоит использовать ORM? Базы данных
Полный playlist на youtube
#db
👉 @database_info
1. Введение в базы данных. Базы данных.
2. Реляционная модель данных, ER диаграмма. Базы данных
3. Введение в SQL. Базы данных
4. SQL. Практическое занятие. Базы данных
5. SQL (Structure Query Language). Оператор Distinct. Базы данных
7. Транзакции. Базы данных
8. План выполнения запроса. Ограничения целостности. Базы данных
9. Таблицы. Триггеры. Процедуры. Базы данных
10. Масштабирование БД. Базы данных
11. Оптимизация запросов. Базы данных
12. Введение в NoSQL. Базы данных
13. Что такое ORM? Почему стоит использовать ORM? Базы данных
Полный playlist на youtube
#db
👉 @database_info
👍2❤1
Простой скрипт для резервного копирования всех баз данных SQL Server
Иногда вещи, которые кажутся сложными, оказываются гораздо проще, чем кажется, и в этом заключается сила использования языка T-SQL для решения повторяющихся задач. Одной из таких задач может быть необходимость резервного копирования всех баз данных на сервере. Это не так уж сложно, если у вас несколько баз данных, но я видел несколько серверов, где на одном экземпляре SQL Server было 100+ баз данных. Для резервного копирования баз данных можно использовать SQL Server Management Studio или даже использовать Maintenance Plans, но использование T-SQL - гораздо более простой и быстрый подход.
https://www.mssqltips.com/sqlservertip/1070/simple-noscript-to-backup-all-sql-server-databases/
#db
👉 @database_info
Иногда вещи, которые кажутся сложными, оказываются гораздо проще, чем кажется, и в этом заключается сила использования языка T-SQL для решения повторяющихся задач. Одной из таких задач может быть необходимость резервного копирования всех баз данных на сервере. Это не так уж сложно, если у вас несколько баз данных, но я видел несколько серверов, где на одном экземпляре SQL Server было 100+ баз данных. Для резервного копирования баз данных можно использовать SQL Server Management Studio или даже использовать Maintenance Plans, но использование T-SQL - гораздо более простой и быстрый подход.
DECLARE @name NVARCHAR(256) -- database name
DECLARE @path NVARCHAR(512) -- path for backup files
DECLARE @fileName NVARCHAR(512) -- filename for backup
DECLARE @fileDate NVARCHAR(40) -- used for file name
-- specify database backup directory
SET @path = 'C:\test\'
-- specify filename format
SELECT @fileDate = CONVERT(NVARCHAR(20),GETDATE(),112)
DECLARE db_cursor CURSOR READ_ONLY FOR
SELECT name
FROM master.sys.databases
WHERE name NOT IN ('master','model','msdb','tempdb') -- exclude these databases
AND state = 0 -- database is online
AND is_in_standby = 0 -- database is not read only for log shipping
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
https://www.mssqltips.com/sqlservertip/1070/simple-noscript-to-backup-all-sql-server-databases/
#db
👉 @database_info
👍5
Скрытые ошибки SQL, допускаемые опытными аналитиками данных
Написание неправильного синтаксиса SQL не так страшно, потому что вы сразу же узнаете об этом, исправите то, что упустили, и вуаля, как ни в чем не бывало. А вот что действительно плохо, так это когда код выполняется и выдает результат, но не правильный (и не безумно неправильный, иначе вы могли бы заметить).
Чтобы продемонстрировать это, представьте, что у вас есть две таблицы, первая содержит клиентов вашего сайта, а вторая - заказы, сделанные на сайте.
https://eisultan.medium.com/sql-hidden-mistakes-made-by-experienced-data-analysts-part-1-9ea6ffdf95a5
#db
👉 @database_info
Написание неправильного синтаксиса SQL не так страшно, потому что вы сразу же узнаете об этом, исправите то, что упустили, и вуаля, как ни в чем не бывало. А вот что действительно плохо, так это когда код выполняется и выдает результат, но не правильный (и не безумно неправильный, иначе вы могли бы заметить).
Чтобы продемонстрировать это, представьте, что у вас есть две таблицы, первая содержит клиентов вашего сайта, а вторая - заказы, сделанные на сайте.
https://eisultan.medium.com/sql-hidden-mistakes-made-by-experienced-data-analysts-part-1-9ea6ffdf95a5
#db
👉 @database_info
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
VisiData - это интерактивный мультиинструмент для работы с табличными данными. Он сочетает в себе наглядность электронных таблиц, эффективность терминала и мощь Python, превращаясь в легкую утилиту, способную с легкостью обрабатывать миллионы строк.
https://www.visidata.org/
https://github.com/saulpw/visidata
#db
👉 @database_info
https://www.visidata.org/
https://github.com/saulpw/visidata
#db
👉 @database_info
👍2❤1
PostgreSQL и временные таблицы
Мы много лет уже используем в качестве основной базы данных PostgreSQL. За это время он зарекомендовал себя быстрой и надежной СУБД. Однако, есть в PostgreSQL одна проблема, с которой приходится сталкиваться достаточно часто. К сожалению, реализация логики временных таблиц в нем имеет ряд недостатков, которые отрицательно сказываются на производительности системы.
Одним из свидетельств наличия проблемы является то, что для временных таблиц в Postgres Pro была добавлена специальная функция fasttrun, а в Postgres Pro Enterprise существенно доработана работа с ними (см. пункт 4).
Наиболее активно временные таблицы используют платформы, в которых разработчик не работает напрямую с базой данных, а таблицы и запросы генерируются непосредственно самой платформой. В частности, к ним относится платформа 1С или ее открытый и бесплатный аналог - платформа lsFusion.
В этой статье я опишу почему приходится использовать временные таблицы, в чем суть проблемы, и как улучшить производительность путем настроек операционной системы и PostgreSQL.
https://habr.com/ru/articles/754476/
#db
👉 @database_info
Мы много лет уже используем в качестве основной базы данных PostgreSQL. За это время он зарекомендовал себя быстрой и надежной СУБД. Однако, есть в PostgreSQL одна проблема, с которой приходится сталкиваться достаточно часто. К сожалению, реализация логики временных таблиц в нем имеет ряд недостатков, которые отрицательно сказываются на производительности системы.
Одним из свидетельств наличия проблемы является то, что для временных таблиц в Postgres Pro была добавлена специальная функция fasttrun, а в Postgres Pro Enterprise существенно доработана работа с ними (см. пункт 4).
Наиболее активно временные таблицы используют платформы, в которых разработчик не работает напрямую с базой данных, а таблицы и запросы генерируются непосредственно самой платформой. В частности, к ним относится платформа 1С или ее открытый и бесплатный аналог - платформа lsFusion.
В этой статье я опишу почему приходится использовать временные таблицы, в чем суть проблемы, и как улучшить производительность путем настроек операционной системы и PostgreSQL.
https://habr.com/ru/articles/754476/
#db
👉 @database_info
👍3
Повышение эффективности SQL-запросов, советы по настройке
В данном контексте, подчеркивается важность умения настраивать ("в нужный режим") SQL-запросы для обеспечения их оптимальной производительности. Этот навык полезен для всех, кто работает с базой данных SQL Server - от обычных пользователей до администраторов и разработчиков, которые пишут собственные SQL-запросы.
В статье представлен ряд советов и методов, которые помогут читателям оценить производительность своих SQL-запросов и улучшить ее при необходимости. Здесь будут рассмотрены некоторые ключевые аспекты оптимизации запросов для SQL Server, чтобы помочь пользователям сделать их более эффективными и быстрыми.
https://www.mssqltips.com/sqlservertip/7125/sql-query-performance-tuning-tips/
#db
👉 @database_info
В данном контексте, подчеркивается важность умения настраивать ("в нужный режим") SQL-запросы для обеспечения их оптимальной производительности. Этот навык полезен для всех, кто работает с базой данных SQL Server - от обычных пользователей до администраторов и разработчиков, которые пишут собственные SQL-запросы.
В статье представлен ряд советов и методов, которые помогут читателям оценить производительность своих SQL-запросов и улучшить ее при необходимости. Здесь будут рассмотрены некоторые ключевые аспекты оптимизации запросов для SQL Server, чтобы помочь пользователям сделать их более эффективными и быстрыми.
https://www.mssqltips.com/sqlservertip/7125/sql-query-performance-tuning-tips/
#db
👉 @database_info
👍3
Новое в SQL Server 2022: изменение стратегии прироста журналов транзакций
Когда я впервые узнал о том, что SQL Server 2022 будет поддерживать мгновенную инициализацию файлов журнала транзакций, я был заинтригован. Когда позже выяснилось, что это относится только к автоматическому приращению и только с размером не больше 64 МБ, интрига несколько потеряла свой «блеск». Из-за этих ограничений я скептически отнесся к тому, что новая стратегия сможет заменить сложившуюся практику автоматического увеличения файлов журналов на 1 ГБ — по крайней мере, с тех пор, как SSD и другие современные хранилища получили достаточное распространение.
Но поигравшись с этим новшеством, я проникся.
https://www.red-gate.com/simple-talk/databases/sql-server/t-sql-programming-sql-server/log-file-instant-file-initialization/
#db
👉 @database_info
Когда я впервые узнал о том, что SQL Server 2022 будет поддерживать мгновенную инициализацию файлов журнала транзакций, я был заинтригован. Когда позже выяснилось, что это относится только к автоматическому приращению и только с размером не больше 64 МБ, интрига несколько потеряла свой «блеск». Из-за этих ограничений я скептически отнесся к тому, что новая стратегия сможет заменить сложившуюся практику автоматического увеличения файлов журналов на 1 ГБ — по крайней мере, с тех пор, как SSD и другие современные хранилища получили достаточное распространение.
Но поигравшись с этим новшеством, я проникся.
https://www.red-gate.com/simple-talk/databases/sql-server/t-sql-programming-sql-server/log-file-instant-file-initialization/
#db
👉 @database_info
👍1
Возможности SQLite, которые вы могли пропустить
Если вы используете SQLite, но не следите за его развитием, то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить наиболее важные из них.
Частичные индексы (Partial Indexes)
При построении индекса можно указать условие попадания строки в индекс, к примеру, одна из колонок не пустая, а другая равна заданному значению.
Индексы на выражение (Indexes On Expressions)
Если в запросах к таблице часто используется выражение, то можно построить индекс по нему. Однако следует иметь в виду, что пока оптимизатор не очень гибок и перестановка столбцов в выражении приведет к отказу от использования индекса.
https://habr.com/ru/articles/528882/
#db
👉 @database_info
Если вы используете SQLite, но не следите за его развитием, то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить наиболее важные из них.
Частичные индексы (Partial Indexes)
При построении индекса можно указать условие попадания строки в индекс, к примеру, одна из колонок не пустая, а другая равна заданному значению.
create index idx_partial on tab1(a, b) where a is not null and b = 5;
select * from tab1 where a is not null and b = 5; --> search table tab1 using indexИндексы на выражение (Indexes On Expressions)
Если в запросах к таблице часто используется выражение, то можно построить индекс по нему. Однако следует иметь в виду, что пока оптимизатор не очень гибок и перестановка столбцов в выражении приведет к отказу от использования индекса.
create index idx_expression on tab1(a + b);
select * from tab1 where a + b > 10; --> search table tab1 using index ...
select * from tab1 where b + a > 10; --> scan tablehttps://habr.com/ru/articles/528882/
#db
👉 @database_info
Хабр
Возможности SQLite, которые вы могли пропустить
Если вы используете SQLite, но не следите за его развитием , то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить...
👍4
Использование составных триггеров (compound triggers) Oracle
Перед нами стоят задачи
1- при обновлении поля orders.discount пересчитать orders_detail.sum_order, а также обновить поле orders.amount по всему заказу;
2 - при изменении orders_detail.price и(или) orders_detail.qty пересчитать orders_detail.sum_order, а также обновить поле orders.amount по всему заказу;
3- orders_detail.sum_order считается по формуле: orders_detail.sum_order = orders_detail.price * orders_detail.qty * (1- orders.discount/100).
При таких задачах возникает ошибка мутирования таблиц ORA-04091: table is mutating.
https://habr.com/ru/articles/748422/
#db
👉 @database_info
Перед нами стоят задачи
1- при обновлении поля orders.discount пересчитать orders_detail.sum_order, а также обновить поле orders.amount по всему заказу;
2 - при изменении orders_detail.price и(или) orders_detail.qty пересчитать orders_detail.sum_order, а также обновить поле orders.amount по всему заказу;
3- orders_detail.sum_order считается по формуле: orders_detail.sum_order = orders_detail.price * orders_detail.qty * (1- orders.discount/100).
При таких задачах возникает ошибка мутирования таблиц ORA-04091: table is mutating.
https://habr.com/ru/articles/748422/
#db
👉 @database_info
👍2
Шпаргалка по PostgreSQL
Содержит общие команды, которые позволят вам быстро и эффективно работать с PostgreSQL.
https://bookflow.ru/shpargalka-po-postgresql/
#db
👉 @database_info
Содержит общие команды, которые позволят вам быстро и эффективно работать с PostgreSQL.
https://bookflow.ru/shpargalka-po-postgresql/
#db
👉 @database_info
👍5
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
SQL. Базовый курс
№1. Установка PostgreSQL, создаем схему, таблицу и импортируем данные из CSV
№2. Простые операции, SELECT
№3. Типы данных
№4. Импорт и экспорт данных
№5. Группировка
№6. Математические операции
№7. CASE
№8. Дополнения к урокам 1-7
№9. Повторение изученного
№10. Подзапросы
№11. CTE
№12. Оконные функции. Ранг, ранжирование (ranking)
Все видео доступны на youtube
#db
👉 @database_info
№1. Установка PostgreSQL, создаем схему, таблицу и импортируем данные из CSV
№2. Простые операции, SELECT
№3. Типы данных
№4. Импорт и экспорт данных
№5. Группировка
№6. Математические операции
№7. CASE
№8. Дополнения к урокам 1-7
№9. Повторение изученного
№10. Подзапросы
№11. CTE
№12. Оконные функции. Ранг, ранжирование (ranking)
Все видео доступны на youtube
#db
👉 @database_info
👍5