Библиотека баз данных
10.3K subscribers
169 photos
19 files
189 links
Самая большая библиотека бесплатных книг по SQL

По всем вопросам- @haarrp

@ai_machinelearning_big_data - machine learning

@pythonl - Python

@itchannels_telegram - 🔥 best it channels

@ArtificialIntelligencedl - AI

РКН:  № 5037640984
加入频道
Forwarded from Data Science. SQL hub
🔥 Это - бесплатная книга, которая посвящена созданию компиляторов для языков запросов, таких как SQL. Она объясняет, как системы управления базами данных (СУБД) обрабатывают запросы пользователей и превращают их в эффективные планы выполнения!

🔗 Ссылка: *клик*

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Шпаргалка по последовательности выполнения SQL запроса!

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
800+ SQL Server Interview Questions and Answers .pdf
1 MB
🖥 Полезнейший сборник из 800+ вопросов по SQL, которые часто задают на собеседованиях.

Он также включает задачи для самостоятельной работы и множество примеров.

Сборник отлично подходит для тех, кто хочет прокачать свои навыки работы с SQL, освежить знания и проверить свои знания.

GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 PRACTICAL A BEGINNER'S SQL

📚 Книга

@sql_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 ​​Книги по базам данных, которые стоит прочитать в 2025 году

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

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
The-Structure-and-Interpretation-of-Computer-Programs

📚 Книга

@sql_lib
В чем разница между первичным ключом и уникальным ключом?
🛠 PostgreSQL – одна из самых мощных, популярных и быстроразвивающихся реляционных СУБД с открытым исходным кодом.

Ее документация – это настоящий кладезь знаний:
Всегда актуальна: Отражает последнюю версию и все новейшие возможности (актуально для 2025!).

Исчерпывающая: От основ SQL и установки до продвинутых тем администрирования, репликации, расширений и внутреннего устройства.

- Авторитетная: Написана и поддерживается разработчиками СУБД.
Структурированная: Легко навигировать, подходит как для новичков, так и для опытных профессионалов.

- Полностью бесплатная: Доступна всем и всегда.

По сути, это полноценный, постоянно обновляемый учебник и справочник по одной из важнейших технологий баз данных сегодня. Если вы работаете с данными или только планируете начать – это обязательный ресурс!
🔗 Ссылка на документацию PostgreSQL (Русская версия):
https://postgrespro.ru/docs/postgresql/ (Примечание: Это версия от Postgres Professional, одного из ключевых
контрибьюторов PostgreSQL, которая обычно наиболее оперативно обновляется на русском языке).
Или официальная ссылка на международном сайте (выберите язык): https://www.postgresql.org/docs/current/


#БазыДанных #БД #DataBases #PostgreSQL #SQL #Программирование #IT #БесплатныеКниги #Обучение #OpenSource #Актуально2024 #Postgres
Шпаргалка по SQL

Мы подготовили для вас шикарный конспект с подсказками и фишками, которые значительно прокачают вашу работу с SQL ❤️
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
Нерйросети t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://yangx.top/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
🔥SchemaCrawler — это бесплатный инструмент с открытым исходным кодом для анализа и визуализации структуры баз данных. Он позволяет создавать диаграммы сущностей и связей (ER-диаграммы) на основе метаданных базы данных, используя Graphviz или другие форматы, такие как Mermaid, PlantUML и dbdiagram.io. ​

📌 Основные возможности
SchemaCrawler:
Генерация диаграмм: Создание ER-диаграмм с использованием Graphviz, поддержка форматов PNG, SVG, PDF и HTML с встроенными SVG. ​

Фильтрация объектов: Использование регулярных выражений для фильтрации таблиц, представлений и столбцов, что позволяет сосредоточиться на интересующих элементах схемы. ​
schemacrawler.com

Поддержка различных форматов вывода: Экспорт схемы в текстовом, JSON, YAML и HTML форматах, что удобно для документирования и отслеживания изменений. ​
schemacrawler.com

Интеграция с другими инструментами: Возможность генерации диаграмм в форматах Mermaid, PlantUML и dbdiagram.io для последующего редактирования в сторонних приложениях. ​

Автоматизация и скриптинг: Поддержка скриптов на JavaScript, Python, Groovy и Ruby для автоматизации задач и интеграции в CI/CD процессы. ​

Анализ качества схемы (Lint): Возможность выявления потенциальных проблем в дизайне базы данных, таких как отсутствие первичных ключей или избыточные индексы. ​

Гибкая настройка: Широкие возможности конфигурации через файлы настроек или командную строку, включая отображение/скрытие имен схем, порядковых номеров столбцов, кардинальности связей и т.д. ​

Пример использования:
Чтобы создать диаграмму схемы базы данных в формате PNG, можно использовать следующую команду:​

schemacrawler --server=postgresql --host=localhost --database=mydb --user=postgres --password=secret \
--info-level=standard --command=schema --output-format=png --output-file=diagram.png

Эта команда подключится к базе данных PostgreSQL и создаст ER-диаграмму с основными элементами схемы.​

Установка и запуск:
Установка: Скачайте дистрибутив SchemaCrawler с официального сайта и распакуйте его в удобное место. ​
schemacrawler.com

Предварительные требования: Убедитесь, что установлены Java (версия 8 или выше) и Graphviz (если планируется генерация диаграмм).​

Запуск: Используйте скрипты schemacrawler.sh (для Unix) или schemacrawler.cmd (для Windows) для запуска инструмента.​
schemacrawler.com

https://www.schemacrawler.com/diagramming.html
Please open Telegram to view this post
VIEW IN TELEGRAM
📘 SQL Notes for Professionals — незаменимый справочник для разработчиков

Если ты работаешь с базами данных или только начинаешь изучать SQL, обязательно загляни в книгу *SQL Notes for Professionals*. Она представляет собой тщательно собранный справочник, составленный из лучших материалов Stack Overflow Documentation.

Что внутри?
• Краткие и понятные объяснения по синтаксису SQL
• Примеры запросов и структур данных
• Советы по работе с SELECT, JOIN, GROUP BY, транзакциями и многим другим
• Практическая информация для повседневной работы с реляционными базами данных

Кому подойдёт?
• Новичкам — для быстрого старта
• Опытным разработчикам — как удобный справочник под рукой
• Всем, кто хочет систематизировать знания и избежать типичных ошибок

🔍 Важно знать
Эта книга — неофициальное, бесплатное учебное пособие, созданное на основе открытой документации Stack Overflow. Контент лицензирован по Creative Commons BY-SA. Использование информации осуществляется на свой страх и риск — авторы не гарантируют её абсолютную точность.

📥 *Идеальный материал для тех, кто предпочитает учиться на практических примерах и хочет всегда иметь под рукой концентрированное знание SQL.*

📎 Ссылка на скачивание
🧠 SQL-задача с подвохом: “Найди самого активного… по количеству разных друзей”

📘 Условие

У тебя есть таблица дружбы:


friends(user_id, friend_id)


Здесь каждая строка означает, что user_id дружит с friend_id.
Записи всегда односторонние: если есть (1, 2), это не значит, что будет (2, 1).

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

Пример попытки:


SELECT user_id, COUNT(friend_id) AS total_friends
FROM friends
GROUP BY user_id
ORDER BY total_friends DESC
LIMIT 1;


🔍 Вопрос:

1) В чём здесь может быть логическая ошибка?
2) Какую строку подсчитает COUNT(friend_id)?
3) Когда нужно использовать COUNT(DISTINCT friend_id)?
4) Как обойти случай, если один и тот же друг записан несколько раз?

Разбор подвоха

💣 Проблема: один пользователь может быть записан как друг несколько раз, особенно если приложение допускает дубли (или "перезапросы дружбы").

Пример:


INSERT INTO friends VALUES (1, 2), (1, 2), (1, 3);


В этом случае:


SELECT COUNT(friend_id) FROM friends WHERE user_id = 1;
-- → вернёт 3


Но реальных друзей у пользователя 1 — только 2: 2 и 3.

Решение:

Используй COUNT(DISTINCT friend_id):


SELECT user_id, COUNT(DISTINCT friend_id) AS unique_friends
FROM friends
GROUP BY user_id
ORDER BY unique_friends DESC
LIMIT 1;


🎯 Дополнительно можно убрать самого пользователя из списка друзей (на случай ошибок):


WHERE user_id != friend_id


⚠️ Подвох

COUNT() без DISTINCT ловит даже опытных — особенно если в БД возможны дубли
LIMIT 1 не гарантирует "уникального победителя", если у нескольких одинаковый счёт
• Иногда friendship бывает и симметричной, тогда нужна защита от двойного счёта
🖥 Database Design - 2nd Edition
Подробный разбор проектирования баз данных: нормализация, схемы, целостность данных. Больше, чем просто SQL.

🔗 Читать онлайн или скачать (PDF)
Please open Telegram to view this post
VIEW IN TELEGRAM
SQL_cheatsheet.pdf
754.9 KB
⚡️ SQL-шпаргалка, которая выручит в интервью, проекте и проде

Полный мастер-гайд по SQL в одном PDF: практичные примеры, чёткие объяснения и никакой воды.

Что внутри:
💬 Создание баз, таблиц и изменение схем
💬 Запросы любого уровня сложности: JOIN, GROUP BY, HAVING, PARTITION
💬 Подзапросы, CTE, оконные функции: ROW_NUMBER, RANK, DENSE_RANK
💬 VIEW, временные таблицы и работа с дубликатами
💬 Даты, строки, преобразования и агрегации
💬 Очистка данных, разбиение по разделителям
💬 UNION, INTERSECT, EXCEPT — управление сложными выборками

Затрагиваются и продвинутые кейсы:
• Парсинг адресов
• Кастомная сортировка
• Использование ISNULL и COALESCE

🧠 Это не просто набор команд — это концентрат боевого SQL-опыта.

Подходит для:
➡️ Подготовки к SQL-интервью
➡️ BI и аналитики
➡️ Web-разработки с базами
➡️ Встраивания SQL в проекты на Python, Go, Java и других языках
Forwarded from Python/ django
Руководство_по_ускорению_и_оптимизации_Python_кода.pdf
264.6 KB
🖥 Гайд по ускорению Python, который реально стоит прочитать 🔥

Без лишней теории — только рабочие практики, которые используют разработчики в боевых проектах.

Внутри:
• Как искать bottleneck'и и профилировать код
• Где и когда использовать Numba, Cython, PyPy
• Ускорение Pandas, NumPy, переход на Polars
• Асинхронность, кеши, JIT, сборка, автопрофилировка — всё по полочкам
• Только нужные инструменты: scalene, py-spy, uvloop, Poetry, Nuitka

⚙️ Написано просто, чётко и с прицелом на production.

📌 Полная версия онлайн

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔢 PGVector: векторный поиск прямо в PostgreSQL — гайд

Если ты работаешь с embedding'ами (OpenAI, HuggingFace, LLMs) и хочешь делать семантический поиск в SQL — тебе нужен pgvector. Это расширение позволяет сохранять и сравнивать векторы прямо внутри PostgreSQL.

📦 Установка PGVector (Linux)


git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
make
sudo make install


Или просто:
• macOS: brew install pgvector
• Docker: pgvector/pgvector:pg17
• PostgreSQL 13+ (через APT/YUM)

🔌 Подключение расширения в базе


CREATE EXTENSION vector;


После этого ты можешь использовать новый тип данных vector.

🧱 Пример использования

Создаём таблицу:


CREATE TABLE items (
id bigserial PRIMARY KEY,
embedding vector(3)
);


Добавляем данные:


INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');


Поиск ближайшего вектора:


SELECT * FROM items
ORDER BY embedding <-> '[3,1,2]'
LIMIT 5;


🧠 Операторы сравнения

PGVector поддерживает несколько видов расстояний между векторами:

- <-> — L2 (евклидово расстояние)
- <#> — скалярное произведение
- <=> — косинусное расстояние
- <+> — Manhattan (L1)
- <~> — Хэммингово расстояние (для битовых векторов)
- <%> — Жаккар (для битовых векторов)

Также можно усреднять вектора:


SELECT AVG(embedding) FROM items;


🚀 Индексация для быстрого поиска

HNSW (лучшее качество):


CREATE INDEX ON items USING hnsw (embedding vector_l2_ops);


Параметры можно настраивать:


SET hnsw.ef_search = 40;


#### IVFFlat (быстрее создаётся, но чуть менее точный):


CREATE INDEX ON items USING ivfflat (embedding vector_l2_ops) WITH (lists = 100);
SET ivfflat.probes = 10;


🔍 Проверка версии и обновление


SELECT extversion FROM pg_extension WHERE extname='vector';
ALTER EXTENSION vector UPDATE;


📌 Особенности

- Работает с PostgreSQL 13+
- Поддержка до 2000 измерений
- Расширяемый синтаксис
- Можно использовать DISTINCT, JOIN, GROUP BY, ORDER BY и агрегации
- Подходит для RAG-пайплайнов, NLP и встраивания LLM-поиска в обычные SQL-приложения

🔗 Подробнее

💡 Храни embedding'и прямо в PostgreSQL — и делай семантический поиск без внешних векторных БД.
⚡️Пошаговый план: как стать аналитиком данных в 2025

Хотите попасть в аналитику, но теряетесь в море информации и не понимаете, какие навыки действительно важны? Боитесь, что без опыта вас не возьмут на работу? И да, ещё один популярный вопрос — а что, если мне 30/40/50+ лет?

Андрон Алексанян — эксперт по аналитике с 8-летним опытом и по совместительству CEO Simulative — покажет рабочие схемы и чёткий план, как устроиться в аналитику быстрее, даже если у вас нет опыта

Что будет на вебинаре?

🟠 Разберёте полный роадмап: что учить, в каком порядке, до какого уровня;
🟠 Лайфхаки трудоустройства:
— покажут реальные примеры, как оформить резюме и портфолио, чтобы привлекать внимание;
— обсудите, какие отклики работают, а какие сразу отправляют в корзину;
— изнанка найма: инсайдерский взгляд на процессы отбора
🟠 Практические техники для новичков: разберёте, как компенсировать недостаток опыта и быстро закрывать пробелы в знаниях

🕗 Важно досмотреть вебинар до конца, чтобы получить бонус от Simulative, который поможет бустануть карьеру

😶Зарегистрироваться на бесплатный вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
🎯 Хитрая SQL-задача для продвинутых
Тема: переходы состояний пользователей через inactive → banned → active?

У нас есть таблица логов смены статусов пользователей:


CREATE TABLE user_status_log (
user_id INT,
status TEXT, -- 'active', 'inactive', 'banned'
changed_at TIMESTAMP
);


Каждый раз, когда пользователь меняет статус, добавляется запись.

🔍 Найди пользователей, которые хотя бы один раз:

• стали inactive
• потом были banned
• и либо так и остались забанены, либо позже перешли в active

Важно:
• Статусы могут меняться много раз
• Нас интересует первая последовательность inactive → banned (→ optional `active`)
• Если пользователь не вернулся в `active`, всё равно считаем, что условие выполнено

---

🧠 Решение с оконными функциями:


WITH ranked_status AS (
SELECT
user_id,
status,
changed_at,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY changed_at) AS rn
FROM user_status_log
),
status_with_next AS (
SELECT
user_id,
status,
changed_at,
LEAD(status) OVER (PARTITION BY user_id ORDER BY changed_at) AS next_status,
LEAD(changed_at) OVER (PARTITION BY user_id ORDER BY changed_at) AS next_changed_at
FROM ranked_status
),
transitions AS (
SELECT
user_id,
changed_at AS from_time,
next_changed_at AS to_time,
status AS from_status,
next_status AS to_status
FROM status_with_next
WHERE next_status IS NOT NULL
),
flagged_users AS (
SELECT DISTINCT user_id
FROM (
SELECT
user_id,
MAX(CASE WHEN from_status = 'inactive' AND to_status = 'banned' THEN 1 ELSE 0 END) AS went_inactive_then_banned,
MIN(CASE WHEN from_status = 'banned' AND to_status = 'active' THEN 1 ELSE 0 END) AS banned_then_active
FROM transitions
GROUP BY user_id
) t
WHERE went_inactive_then_banned = 1
)
SELECT *
FROM flagged_users;


🧩 Почему это интересно?

• Используются оконные функции LEAD(), ROW_NUMBER()
• Нужно отслеживать последовательные пары статусов
• Объединяем логику в несколько CTE-слоёв
• Придётся думать не только о текущем статусе, но и о контексте (что было до и что после)

Подобные задачи — хороший способ прокачать мышление о временных событиях в SQL.
🔥 Успех в IT = скорость + знания + окружение

Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://yangx.top/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy

Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!