SQL и БД Learning – Telegram
SQL и БД Learning
10.2K subscribers
797 photos
9 videos
22 files
445 links
№ 5060218708

Изучаем SQL с нуля

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning
Download Telegram
DbGate — open-source менеджер SQL и NoSQL БД

DbGate — это кроссплатформенный менеджер баз данных. Разработан, чтобы быть простым в использовании и эффективным при работе с несколькими БД одновременно.
Также имеет множество дополнительных функций, таких как сравнение схем, визуальный конструктор запросов, визуализация графиков или пакетный экспорт и импорт.

Поддерживает MySQL, PostgreSQL, SQL Server, MongoDB, SQLite и других.
Работает под Windows, Linux, Mac и как веб-приложение.

🖥 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
💻Установка PostgreSQL из исходников

Держите полезную статью о том, как собрать PostgreSQL 16 версии из исходников, инициализировать кластер и запустить его на сервере Debian 12

Причины по которым вам может понадобится собирать PostgreSQL из исходников:
для дистрибутива нет готового пакета;
нужно собрать PostgreSQL с нестандартными параметрами.

План статьи
├╼ Сборка и установка
├╼ Создание кластера
├╼ Запуск и остановка кластера
├╼ Установка расширений PostgreSQL
├╼ Создание и запуск второго кластера
╰╼ Создание службы SystemD для кластеров

📎 Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Вопрос на SQL собеседовании.

Какие параметры используются в конструкции order by?

Ответ:

ASC и DESC
👍10
🖥 Как базы данных выполняют SQL-запросы?

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

1. Оператор SQL запускается в клиентской программе и передается по сети на сервер базы данных.

2. Когда сервер базы данных получает SQL-оператор, реляционный движок начинает его обработку. Сначала синтаксический анализатор проверяет правильность оператора. Затем он преобразует оператор в дерево запросов, которое представляет собой внутреннюю структуру данных.

3. Оптимизатор запросов просматривает дерево запросов и определяет наиболее эффективный способ выполнения SQL-оператора, создавая план выполнения.

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

5. Движок хранилища использует методы доступа - протоколы чтения и записи данных, наиболее эффективные для выполнения различных операций.

6. При чтении данных менеджер буферов проверяет, кэшированы ли нужные данные в памяти, и при необходимости извлекает их с диска. Это ускоряет последующий доступ.

7. При записи данных со вставкой или обновлением менеджер транзакций следит за тем, чтобы изменения происходили атомарно и сохраняли целостность базы данных.

8. В то же время менеджер блокировок накладывает блокировки, чтобы несколько транзакций могли выполняться одновременно, не конфликтуя между собой. Таким образом, обеспечивается изоляция и согласованность.

Работая вместе, эти компоненты обеспечивают надежную и эффективную обработку SQL-запросов в системе управления базами данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73
🖥 Почему PostgreSQL признан самым лбимой бд по результатам опроса разработчиков Stackoverflow?

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

🔹OLTP (Online Transaction Processing)
Мы можем использовать PostgreSQL для CRUD-операций (Create-Read-Update-Delete).

🔹OLAP (Online Analytical Processing)
Мы можем использовать PostgreSQL для аналитической обработки. PostgreSQL основан на архитектуре 𝐇𝐓𝐀𝐏 (Hybrid transactional/analytical processing), поэтому он может хорошо работать как с OLTP, так и с OLAP.

🔹FDW (Foreign Data Wrapper)
FDW - это расширение, доступное в PostgreSQL, которое позволяет нам обращаться к таблице или схеме одной базы данных из другой.

🔹Streaming
PipelineDB - это расширение PostgreSQL для высокопроизводительной агрегации временных рядов, предназначенное для работы с отчетами и аналитическими приложениями в реальном времени.

🔹Geospatial
PostGIS - это расширитель базы данных для объектно-реляционной базы данных PostgreSQL. Он добавляет поддержку географических объектов, позволяя выполнять запросы на определение местоположения в SQL.

🔹Временные ряды
Timescale расширяет PostgreSQL для работы с временными рядами и аналитикой. Например, разработчики могут объединять непрерывные потоки финансовых и тиковых данных с другими бизнес-данными для создания новых приложений и получения уникальных знаний.

🔹Распределенные таблицы
CitusData масштабирует Postgres за счет распределения данных и запросов.

Какая база данных вам нравится больше всего?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Для добавления новых записей в таблицу предназначен оператор
Anonymous Quiz
2%
SELECT
85%
INSERT
11%
ADD
1%
Посмотреть ответ
👍7
💻pgvector — расширение PostgreSQL для работы с векторами

Open-source решение для хранения и поиска векторов в Postgres.

Сами данные для векторов можно получить, например, из ML-модели и вставить в таблицу с колонкой типа vector.
Или данные можно создать в PostgreSQL как гистограмму определенных категорий. В этом случае можно значения в массивах real[], integer[] или double precision[], numeric[] привести к типу ::vector.

🖥 GitHub
🟡 Пример использования pgvector на Хабре
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
fselect — поиск файлов при помощи SQL-like запросов

brew install fselect

Хотя fselect не стремится полностью заменить традиционные find и ls, у fselect есть несколько приятных особенностей:
— SQL-подобная грамматика, легко понятная человеку
— возможность составлять сложные запросы
агрегатные, статистические, даточные и другие функции
поиск в архивах
— поддержка .gitignore, .hgignore и .dockerignore
— поиск по ширине и высоте изображений, метаданным EXIF
— поиск по информации о MP3
— поиск по расширенным атрибутам файлов
— поиск по хэшам файлов
— поиск по типу MIME
— имеет интерактивный режим
— различные форматы вывода (CSV, JSON и другие)

Любители SQL оценят)
🖥 GitHub
🟡 Примеры запросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Sweet-Viz - библиотека, которая предоставляет быструю визуализацию и анализ данных.

Основная фича Sweet-Viz — обширный HTML-дашборд с полезными представлениями и сводками данных, который генерируется выполнением всего одной строки кода.

pip install sweetviz

import sweetviz as sv

my_report = sv.analyze(my_dataframe)
my_report.show_html() # Default arguments will generate to "SWEETVIZ_REPORT.html"

Github
👍9
Одинарные кавычки для строк

Да-да, какой-нибудь BigQuery разрешает двойные/тройные кавычки для строк, но для других SQL-диалектов “строки” — это идентификаторы, а ”’строки”’ интерпретируются ещё по-другому.

Поэтому лучше строки всегда писать в одинарных кавычках, ради всеобщего блага.

Во-втором случае некоторые диалекты могут начать жаловаться наподобие column "%@domain.com" does not exist.
👍64🎄2
💻 TimescaleDB — база данных временных рядов

TimescaleDB — это open-source БД, разработанная для того, чтобы сделать SQL масштабируемым для данных временных рядов.
TimescaleDB разработана на основе PostgreSQL и упакована как расширение PostgreSQL, обеспечивая автоматическое разделение по времени и пространству (ключ разделения), а также полную поддержку SQL.

🖥 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🎄3
PostgREST — REST API для любой Postgres БД

PostgREST обеспечивает полностью RESTful API из любой существующей базы данных PostgreSQL.
Он предоставляет более чистый, соответствующий стандартам и быстрый API, чем тот, который вы можете написать с нуля.

🖥 GitHub
🟡 Доки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42