SQL Portal | Базы Данных
описание
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных Связь: @devmangx РКН: https://clck.ru/3H4Wo3
13 860
подписчиков
Охват к подписчикам
7,0%
ERR
Реакции к просмотрам
0,50%
174 на 34 постов
Пересылки к просмотрам
1,27%
444
Постов в день
2,3
всего 34
Где отзываются чаще
доля реакций к просмотрам- 13 авг.Сначала не понял, потом как понял 😲 👉 @SQLPortal1,91%
- 8 авг.История SQLite началась в 2000 году, когда разработчик Д. Ричард Хипп создавал ПО для эсминца ВМС США. Военным нужна была база данных, способная работать где угодно: • без сервера • без интернета • без администратора • без настройки Так появился SQLite. В отличие от MySQL, PostgreSQL и Oracle, SQLite не запускает отдельный серверный процесс. Вся база данных хранится в одном файле, а приложение работает с ним напрямую. Никакой установки, конфигурации или сетевых подключений. Сегодня SQLite используется в миллиардах устройств и приложений: → iPhone → Android → Google Chrome → продукты Adobe → встраиваемые и авиационные системы С высокой вероятностью вы уже использовали SQLite сегодня: - Instagram - Spotify - WhatsApp Самое удивительное — проект по-прежнему поддерживает его создатель, Ричард Хипп. Без венчурных инвестиций, IPO и продажи компании. SQLite остаётся одним из самых распространённых программных продуктов в мире, хотя большинство пользователей даже не знают его названия. 👉 @SQLPortal0,94%
- 18:06Игра в SQL кальмара от DataLemur Интерактивная игра для прокачки SQL-навыков. Выполняешь реальные задачки в формате интервью и тут же проверяешь результат. Подойдёт всем, кто хочет практиковать SQL с пользой. 👉 @SQLPortal0,92%
- 12 авг.Мощная подборка из 30 статей по системному дизайну Коротко, по делу, с примерами и кодом. Сокровищница если хочешь прокачать базу или освежить знания. Забираем в закладки: 1. Что такое API 2. Что такое вебхуки 3. REST vs GraphQL 4. Что такое API Gateway 5. Балансировщики нагрузки 6. Алгоритмы балансировки нагрузки 7. Прокси vs Обратный прокси 8. Что такое масштабируемость 9. Что такое доступность 10. Как избежать единой точки отказа (SPOF) 11. Объяснение теоремы CAP 12. 15 типов баз данных и когда их использовать 13. 7 ключевых различий между SQL и NoSQL 14. Что такое ACID-транзакции 15. Подробное руководство по индексам в базах данных 16. Шардинг vs Партиционирование 17. Объяснение последовательного хеширования 18. CDC (Change Data Capture) 19. Кэширование 20. Топ-5 стратегий кэширования 21. 7 стратегий вытеснения кэша 22. CDN 23. Алгоритмы ограничения скорости 24. Очереди сообщений 25. Фильтры Блума 26. Идемпотентность в распределённых системах 27. Конкурентность vs Параллелизм 28. Stateful vs Stateless 29. Long Polling vs WebSockets 30. Пакетная (batch) vs потоковая (stream) обработка данных 👉 @SQLPortal0,85%
- 9 авг.Шпаргалка по SQL JOIN Если постоянно путаетесь в JOIN, сохраните эту схему — на ней собраны самые популярные варианты объединения таблиц. LEFT JOIN: Возвращает все строки из левой таблицы (T1) и совпадающие строки из правой (T2). Если совпадений нет — значения из T2 будут NULL. SELECT * FROM T1 LEFT JOIN T2 ON T1.NAME = T2.NAME; INNER JOIN: Возвращает только совпадающие записи, присутствующие в обеих таблицах. SELECT * FROM T1 INNER JOIN T2 ON T1.NAME = T2.NAME; RIGHT JOIN: Возвращает все строки из правой таблицы (T2) и совпадающие строки из левой (T1). Если совпадений нет — значения из T1 будут NULL. SELECT * FROM T1 RIGHT JOIN T2 ON T1.NAME = T2.NAME; LEFT JOIN (EXCLUDE T2): Возвращает записи, которые есть только в левой таблице. SELECT * FROM T1 LEFT JOIN T2 ON T1.NAME = T2.NAME WHERE T2.ID IS NULL; UNION ALL (EXCLUDE INNER): Возвращает записи, которые присутствуют только в одной из таблиц, исключая пересечение. SELECT * FROM T1 LEFT JOIN T2 ON T1.NAME = T2.NAME WHERE T2.ID IS NULL UNION ALL SELECT * FROM T1 RIGHT JOIN T2 ON T1.NAME = T2.NAME WHERE T1.ID IS NULL; RIGHT JOIN (EXCLUDE T1): Возвращает записи, которые есть только в правой таблице. SELECT * FROM T1 RIGHT JOIN T2 ON T1.NAME = T2.NAME WHERE T1.ID IS NULL; FULL OUTER JOIN: Возвращает все записи из обеих таблиц: совпадающие и несовпадающие. SELECT * FROM T1 FULL OUTER JOIN T2 ON T1.NAME = T2.NAME; UNION ALL: Альтернатива FULL OUTER JOIN для СУБД, где он не поддерживается (например, MySQL). SELECT * FROM T1 LEFT JOIN T2 ON T1.NAME = T2.NAME UNION ALL SELECT * FROM T1 RIGHT JOIN T2 ON T1.NAME = T2.NAME WHERE T1.ID IS NULL; 👉 @SQLPortal0,83%
- 12 авг.Грокаем алгоритмы в «alg0dev» Нашёл сервис который превращает сложные алгоритмы в наглядное шоу: сортировки, графы и поиск оживают прямо на экране Каждый шаг здесь визуализирован и синхронизирован с кодом его можно остановить, прокрутить и разобраться, что происходит под капотом. 👉 @SQLPortal0,82%
- 15 апр.без подписи0,69%
- 10 авг.Нашли мощную open-source платформу для работы с SQL через ИИ — WrenAI WrenAI это Generative BI-платформа, которая позволяет задавать вопросы к данным обычным языком. Сервис автоматически генерирует SQL-запросы, строит визуализации и учитывает бизнес-контекст, а не просто угадывает структуру таблиц. Что умеет: • Поддерживает более 20 источников данных, включая PostgreSQL, MySQL, ClickHouse, Snowflake, BigQuery и другие. • Генерирует SQL-запросы по описанию на естественном языке и помогает анализировать данные без ручного написания сложных запросов. • Использует семантический слой (Semantic Layer), благодаря которому ИИ понимает связи между таблицами и бизнес-логику, значительно снижая вероятность ошибок при генерации SQL. • Автоматически строит графики, дашборды и отчёты по результатам запросов. • Поддерживает интеграцию с Claude Code, Cursor и другими AI-агентами. • Полностью open-source (Apache 2.0) и может быть развёрнут в собственной инфраструктуре. Если следите за развитием AI + SQL, Text-to-SQL и Generative BI, этот проект определённо стоит добавить в закладки. https://github.com/Canner/WrenAI 👉 @SQLPortal0,69%
- 14 авг.Всегда используйте подготовленные выражения, чтобы предотвратить SQL-инъекции. Вот пример кода, который делает вашу программу уязвимой к малым атакам: user_input = request.form['username'] query = f"SELECT * FROM users WHERE username = '{user_input}'" cursor.execute(query) Когда вы пишете код таким образом, опасность заключается в том, как формируется SQL-запрос до того, как он попадет в базу данных. Прежде чем база данных увидит запрос, Python вставляет ввод пользователя напрямую в SQL-строку. База данных получает уже готовое SQL-выражение и просто выполняет его. У базы данных нет способа понять, какая часть — это данные, а какая — SQL-логика. Риск в том, что данные могут изменить логику программы. Когда вы используете подготовленные выражения: user_input = request.form['username'] query = "SELECT * FROM users WHERE username = ?" cursor.execute(query, (user_input,)) Вы отделяете SQL-запрос от входных данных. Вместо того чтобы вставлять значения прямо в строку запроса, вы разделяете SQL-логику и ввод пользователя. Теперь база данных воспринимает ввод как данные, а не как выполняемый SQL-код. Вот в чем заключается суть защиты. 👉 @SQLPortal0,65%
- 14 авг.Сравнительное руководство по работе с данными Знаешь SQL и хочешь понять, как делать то же самое в Pandas? Это руководство покажет как привычные SQL-запросы выглядят в мире Python. 👉 @SQLPortal0,64%
- 6 авг.Совет по PostgreSQL: FILTER для нескольких агрегатов за один проход Вместо нескольких CASE WHEN внутри агрегатных функций используйте FILTER: SELECT COUNT(*) AS total_orders, COUNT(*) FILTER (WHERE status = 'completed') AS completed, COUNT(*) FILTER (WHERE status = 'cancelled') AS cancelled FROM orders; Результат: total_orders | completed | cancelled --------------+-----------+----------- 1523 | 1402 | 121 FILTER позволяет применять собственное условие к каждой агрегатной функции. Так запрос становится компактнее, легче читается и избавляет от множества CASE WHEN. 👉 @SQLPortal0,62%
- 13 авг.Отличный ресурс по паттернам проектирования с примерами на популярных языках Собраны все основные паттерны проектирования с примерами кода, схемами и краткими объяснениями. Удобно для повторения, обучения или собеседований 👍 👉 @SQLPortal0,57%