Базы данных (Data Base) – Telegram
Базы данных (Data Base)
8.21K subscribers
568 photos
468 videos
19 files
547 links
Базы данных (Data Base). По всем вопросам @evgenycarter
Download Telegram
Команды SQL - основы

#db

👉 @database_info
👍5
Преобразование файлов CSV в базу данных SQLite


Конвертируйте файлы CSV в базу данных SQLite. Просмотр и публикация базы данных SQLite с помощью Datasette.
Базовое использование:
csvs-to-sqlite myfile.csv mydatabase.db

В результате будет создана новая база данных SQLite под названием mydatabase.db с одной таблицей myfile, содержащей содержимое CSV.
Вы можете предоставить несколько CSV-файлов:
csvs-to-sqlite one.csv two.csv bundle.db


База данных bundle.db будет содержать две таблицы, one и two.

Это означает, что вы можете использовать wildcards:
csvs-to-sqlite ~/Downloads/*.csv my-downloads.db


Если вы укажете путь к одной или нескольким директориям, скрипт будет рекурсивно искать CSV-файлы в этих директориях и создавать таблицы для каждого из них.
csvs-to-sqlite ~/path/to/directory all-my-csvs.db

https://github.com/simonw/csvs-to-sqlite

#db

👉 @database_info
👍3🎉1
SQL Server 2019

Файловые группы в SQL Server 2019
FILESTREAM в SQL Server 2019
Оптимизированные под память файловые группы в SQL Server 2019

источник

#db

👉 @database_info
👍3
Dbchaos

Проведите стресс-тестирование базы данных с помощью заранее заданных запросов. Генерируйте исходные данные и события статически или с помощью GPT.

https://github.com/adaptive-scale/dbchaos

#db

👉 @database_info
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
DBDiagram

Бесплатный, простой инструмент для построения ER-диаграмм путем простого написания кода.
Предназначен для разработчиков и аналитиков данных.

https://dbdiagram.io/home

👉 @database_info
👍9👏2
Руководство по стилю SQL · SQL Style Guide

https://www.sqlstyle.guide/ru/

#db

👉 @database_info
👍6👎1
7 обязательных стратегий для масштабирования вашей базы данных.

1 - Индексация:
Проверьте шаблоны запросов вашего приложения и создайте подходящие индексы.

2 - Материализованные представления:
Предварительно вычислите результаты сложных запросов и сохраните их для быстрого доступа.

3 - Денормализация:
Уменьшите количество сложных соединений (join), чтобы улучшить производительность запросов.

4 - Вертикальное масштабирование:
Увеличьте мощность вашего сервера базы данных, добавив больше ЦП, оперативной памяти или хранилища.

5 - Кэширование:
Сохраните часто запрашиваемые данные в более быстром слое хранения, чтобы снизить нагрузку на базу данных.

6 - Репликация:
Создайте реплики вашей основной базы данных на разных серверах для масштабирования чтений.

7 - Шардинг:
Разделите таблицы базы данных на более мелкие части и распределите их по серверам. Используется для масштабирования как записей, так и чтений.


#db

👉 @database_info
🎉5👍41
Antares SQL Client

Современный, быстрый и ориентированный на продуктивность SQL-клиент с акцентом на пользовательский опыт (UX).

Текущие ключевые функции:
- Подключение к нескольким базам данных одновременно.
- Управление базами данных (добавление/редактирование/удаление).
- Полное управление таблицами, включая индексы и внешние ключи.
- Управление представлениями, триггерами, хранимыми процедурами, функциями и планировщиками (добавление/редактирование/удаление).
- Современная и удобная система вкладок; держите открытыми все необходимые вкладки в вашем рабочем пространстве.
- Заполнение тестовых данных в таблицах для генерации большого объема данных.
- Подсказки и автозаполнение запросов.
- История запросов: поиск по последним 1000 запросам.
- Сохранение запросов, заметок или задач.
- Поддержка SSH-туннелей.
- Режим ручного выполнения транзакций.
- Импорт и экспорт дампов баз данных.
- Настраиваемые горячие клавиши.
- Темная и светлая тема.
- Темы редактора.

https://github.com/antares-sql/antares

#db

👉 @database_info
👍3
Anyquer

Это CLI-инструмент для выполнения SQL-запросов к любому источнику данных, будь то файл, API, логи или локальное приложение. Ознакомьтесь с интеграциями, чтобы узнать обо всех возможностях.

Поддерживает запросы JSON, CSV, Parquet, Airtable, Google Sheets, баз данных Notion, Gmail и многого другого. Он использует SQLite под капотом и может выступать в качестве сервера MySQL, чтобы вы могли подключать инструменты BI.

https://anyquery.dev/

#db

👉 @database_info
👍51👎1
И/или

Условия в WHERE могут быть написаны с использованием логических операторов (AND/OR) и математические операторы сравнения (=, <, >, <=, >=, <>).

К примеру, у нас есть табличка, в которой записаны данные о 4 самых продаваемых музыкальных альбомах всех времён. Давайте выведем только те, жанром которых является рок, а продажи были меньше, чем 50 миллионов копий.

#db

👉 @database_info
👍4
Instant - клиентская база данных в режиме реального времени

Instant предназначен для создания приложений с поддержкой работы в режиме реального времени и офлайн. Мы упрощаем создание совместных продуктов, таких как Notion или Figma.

Code Examples https://www.instantdb.com/examples

https://github.com/instantdb/instant


#db

👉 @database_info
👍1🤮1
Как выполнять периодические обновления данных в PostgreSQL?

Для выполнения периодических обновлений данных в PostgreSQL можно использовать несколько подходов, в зависимости от требований к частоте обновлений и архитектуры системы. Вот основные методы:


1. CRON и SQL скрипты
- CRON (или аналогичный планировщик задач) — это системный планировщик задач, который может запускать SQL-скрипты в определенное время или с определенной периодичностью.
- Вы создаете SQL-скрипт, который выполняет необходимые обновления данных, и настраиваете CRON для его запуска.
- Пример команды в CRON:

* * * * * psql -U user -d database -c "CALL your_update_function();"

Этот пример выполняет задачу каждую минуту.

2. pg_cron
- pg_cron — это расширение для PostgreSQL, которое позволяет планировать задания непосредственно из базы данных, используя SQL-синтаксис для задания расписания.
- Пример:

SELECT cron.schedule('0 * * * *', $$CALL your_update_function();$$);

Это задание выполняет функцию каждый час.

3. pgAgent
- pgAgent — это более сложный планировщик задач, который интегрируется с PostgreSQL. Он позволяет создавать и управлять заданиями через интерфейс PgAdmin или SQL-команды.
- Пример задания:

CREATE JOB update_job
STEP 1
WHEN '0 * * * *'
EXECUTE PROCEDURE your_update_function();


4. Встроенные средства PostgreSQL
- Если задача достаточно простая, и вы хотите обойтись без внешних инструментов, можно использовать механизм LISTEN/NOTIFY или bgworker (бэкграундные воркеры).
- LISTEN/NOTIFY: используется для уведомления процессов о событиях в базе данных. Рабочие процессы могут запускаться при получении уведомления.
- bgworker: позволяет создавать фоновый процесс, который будет периодически выполнять необходимые задачи.

5. Сервисные задачи на стороне приложения
- Если ваше приложение подключается к базе данных PostgreSQL, оно может содержать задачи, которые будут запускать обновления данных через определенные промежутки времени.
- Это подход особенно удобен, если вы хотите, чтобы приложение контролировало выполнение обновлений, а также легко интегрировало бизнес-логику.

6. Использование логических репликаций и триггеров
- В некоторых случаях, вместо периодических обновлений, может быть лучше настроить триггеры или использовать логическую репликацию для обработки изменений в данных.

7. Materialized Views
- Если вам нужно обновлять агрегированные или сложные запросы, можно использовать материализованные представления с автоматическим обновлением.
- Вы можете создать материализованное представление и настроить его автоматическое обновление через CRON или pg_cron:

REFRESH MATERIALIZED VIEW CONCURRENTLY your_view;


Заключение
Выбор метода зависит от конкретных требований и доступных инструментов. Если вам нужно периодически выполнять задачи непосредственно в базе данных и с минимальными усилиями, pg_cron и pgAgent — отличные варианты. Если хотите контролировать задачи с уровня операционной системы, то CRON или системные задачи на стороне приложения будут лучшим решением.

#db

👉 @database_info
👍6
Детализированные стратегии кэширования динамических запросов

Сегодня я хотел бы поговорить о стратегиях кэширования для совокупных запросов к часто обновляемым данным, основанным на времени. На предыдущем месте работы я провел немало «мозговых циклов» и с удовольствием поделюсь некоторыми своими находками.

https://jensrantil.github.io/posts/fast-aggregate-queries-on-dynamic-data/

#db

👉 @database_info
👍3
SQLFlow

SQLFlow — простой инструмент для визуализации SQL-запросов и отображения зависимостей. Позволяет отслеживать data lineage-происхождение и трансформации в данных при исполнении запросов.

https://sqlflow.gudusoft.com/

#db

👉 @database_info
👍10
Как найти дубликат записи? Опишите процесс для дублирования записей с одним и несколькими полями.

Дублирование записей с одним полем:

SELECT name, COUNT(email)
FROM users
GROUP BY email
HAVING COUNT(email) > 1



Дублирование записей с несколькими полями:

SELECT name, email, COUNT(*)
FROM users
GROUP BY name, email
HAVING COUNT(*) > 1


#db

👉 @database_info
👍10🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Как выполняются SQL-запросы👨‍💻

Порядок выполнения SQL запроса определяет последовательность выполнения различных частей запроса SQL. Этот порядок важен, потому что он определяет, как данные фильтруются, группируются и упорядочиваются.

Вот упрощенное объяснение порядка выполнения SQL:

• 𝐅𝐑𝐎𝐌/𝐉𝐎𝐈𝐍: Оператор FROM указывает таблицы, из которых будут извлечены данные. Клауза JOIN может использоваться для объединения данных из нескольких таблиц.
• 𝐖𝐇𝐄𝐑𝐄: Оператор WHERE используется для фильтрации данных на основе определенных условий.
• 𝐆𝐑𝐎𝐔𝐏 𝐁𝐘: Оператор GROUP BY используется для группировки данных по одной или нескольким колонкам.
• 𝐇𝐀𝐕𝐈𝐍𝐆: Оператор HAVING используется для фильтрации сгруппированных данных на основе определенных условий.
• 𝐒𝐄𝐋𝐄𝐂𝐓: Оператор SELECT указывает столбцы, которые будут возвращены в наборе результатов.
• 𝐃𝐈𝐒𝐓𝐈𝐍𝐂𝐓: Ключевое слово DISTINCT может использоваться для обеспечения возврата только уникальных строк в наборе результатов.
• 𝐎𝐑𝐃𝐄𝐑 𝐁𝐘: Оператор ORDER BY используется для сортировки набора результатов по возрастанию или убыванию.
• 𝐋𝐈𝐌𝐈𝐓: Оператор LIMIT может использоваться для ограничения количества возвращаемых строк.

#db

👉 @database_info
👍14
Руководство по SQL для интервью

Язык структурированных запросов, или SQL, — это стандартный язык баз данных, используемый для создания, поддержки, удаления, обновления и извлечения данных из реляционных баз данных, таких как MySQL, Oracle, SQL Server, PostgreSQL и других.

https://dev.to/madgan95/sql-complete-guide-for-interview-1jdm

#db

👉 @database_info
👍41