Data Science. SQL hub
35.8K subscribers
921 photos
49 videos
37 files
979 links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥лучшие ит-каналы

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🖥Создание датасетов "на лету" в Oracle Database 23c с помощью конструктора значений таблицы

SELECT * FROM ( VALUES
( 'r1v1', 'r1v2' ), -- row1
( 'r2v1', 'r2v2' ), -- row2
--etc.
) tab_alias ( col1, co2l )


#SQL

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Выполнение логики IF/THEN в #SQL с помощью выражений CASE:

CASE
WHEN ... THEN ...
WHEN ... THEN ...
...
[ ELSE ... ]
END

Simple => Проверяем, равен ли селектор значению
Searched => Проверка любых условий

База данных обрабатывает их сверху вниз, возвращая первое истинное условие.

#SQL

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Как заблокировать строки?

С помощью

SELECT ... FOR UPDATE

Если другая транзакция заблокировала какую-либо из этих строк, то она блокируется.

Чтобы заблокировать следующие строки таблицы, игнорируя заблокированные данные, используйте

SELECT ... FOR UPDATE SKIP LOCKED

Это позволит обойти все строки, заблокированные другой транзакцией.

#SQL

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123🔥1😁1
🔥 Дайджест полезных материалов из мира SQL за неделю

Почитать:
Отправка и обработка HTTP запросов в PostgreSQL
Airflow vs NiFi: исследуем оркестратор для формирования витрин данных
Повышение эффективности SQL-запросов: советы и рекомендации
Top 10 Tools For SQL Writing For Students
How Randomized SQL Testing Can Help Detect Bugs?
SQL Joins Infographic
ACID and Transactions in SQL
SQL - Stored Procedures for Reusable and Secure SQL Code
SQLite Create Table If Not Exists: Conditional Table Creation
Text2SQL: Converting Natural Language to SQL
CRUD Operations in SQL
Should you use an enum column or a table to store allowed values in SQL?
7 Tips to Optimise Postgres query performance

Посмотреть:
🌐 Chatgpt, Bard , Claude, Theb - используй API лучших нейросетей бесплатно и без ВПН на Python. ( 05:23)
🌐 NLP практика. Определяем тональность текста при помощи NLTK и DL ( 19:37)
🌐 Задача, которая очень часто встречается на собеседованиях #python ( 00:59)
🌐 Хитрая задача с собеседования #Python ( 00:59)
🌐 Решение непростой задачи с Leetcode, часто всплывает на собеседования #pythontutorial ( 00:59)
🌐 Django шаблонизация и маршрутизация ( 09:11)

Хорошего дня!

@sqlhub
👍92🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 OrmGPT — ии-инструмент для работы с бд, разработанный на основе OpenAI.

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

На данный момент поддерживаются MySQL, PostgreSQL и SQLite.

Пример:

ormgpt.query("give me post with id 1, all comments for this post and user information about author");

Сгенерированный запрос:

SELECT
p.id AS post_id,
p.title,
p.body,
c.id AS comment_id,
c.body AS comment_body,
u.username AS author_username,
u.email AS author_email
FROM
posts p
JOIN comments c ON p.id = c.post_id
JOIN users u ON u.id = p.user_id
WHERE
p.id = 1;

Вывод:

[
{
post_id: 1,
title: 'Hello world!',
body: 'This is my first post!',
comment_id: 1,
comment_body: 'Hello world!',
author_username: 'test',
author_email: '[email protected]'
}
]


Github

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥64😁1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Как сбросить последовательность в Oracle Database?

ALTER SEQUENCE seq RESTART

Это возвращает последовательность к ее минимальному значению.

Добавьте предложение START WITH, чтобы начать с любого значения

ALTER SEQUENCE seq RESTART START WITH 42

#SQL

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61🔥1
🖥 PostgreSQL Course for Beginners

PostgreSQL - это база данных с открытым исходным кодом, обладающая широкими возможностями настройки.

Если вы хотите узнать, подходит ли она для ваших проектов, этот курс для начинающих поможет вам.

Вы узнаете об операторе SELECT, предложениях WHERE, агрегатных функциях и многом другом.

📌 Курс

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥42
🖥 Шпаргалка по различным базам данных в облачных сервисах и соответствующим им вариантам с открытым исходным кодом .

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

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

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122🔥1
🖥 Fake2db - это инструмент, который предназначен для создания и заполнения фиктивных данных в игрушечных базах данных.

Он предназначен для использования в тестировании и поддерживает работу с такими базами данных, как sqlite, mysql, postgresql, mongodb, redis и couchdb.

pip install fake2db

📌 GitHub

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍213🔥3
🔥 Дайджест полезных материалов из мира SQL за неделю

Почитать:
Построение OLAP-запросов с использованием аналитических функций
7 концепций SQL, которые необходимо знать для работы с данными
Агент пожизненного обучения, который играет в Minecraft и непрерывно совершенствуется.
How to Connect Java Applications to Databases with JDBC
Entendendo o WHERE e o ORDER BY
Exploring Ways of Performance Tuning Your Postgresql Database
Implementing distributed Flink SQL gateway based on Kyuubi
What do front-end developers think of no-code DataViz tools?
Incubate Your SQL Optimizer Using Egg
Schemas em SQL: Indexes e B+ trees
Sql Service Broker
Deleting a Column in SQL: Everything You Need to Know
The RETURNING clause in SQL

Посмотреть:
🌐 Пишем телеграм бота для скачивания #yotube видео ( 20:41)
🌐 Алгоритм бинарного поиска на #C++ ( 00:59)
🌐 Очередь с приоритетом разбор задачи на #C++ ( 01:00)
🌐 Задача на поиск числа с leetcode на С++ ( 01:00)
🌐 Задача с #leetcode решаем на #golang ( 00:32)
🌐 Разбор задачи на содержание массива #С++ ( 00:59)
🌐 Django гайд по формам ( 10:32)
🌐 New Azure SQL Database free offer | Data Exposed

Хорошего дня!

@sqlhub
👍12🔥21
This media is not supported in your browser
VIEW IN TELEGRAM
🔎 Поиск последних изменений в таблице в Oracle Database с помощью запроса

SELECT ... FROM ... VERSIONS BETWEEN TIMESTAMP <start_dt> AND <end_dt>

Возвращаются изменения в диапазоне дат.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Типы баз данных в 1 картинке!

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍215🔥4
🖥 SQLMesh - это фреймворк для преобразования данных, который позволяет командам, работающим с данными, использовать преимущества DevOps. Она позволяет ученым, аналитикам и инженерам эффективно выполнять и развертывать преобразования данных, написанные на SQL или Python.

SQLMesh обеспечивает точность и эффективность построения конвейеров данных с помощью пробвинутого решения DataOps для преобразования, тестирования и совместной работы.

Виртуальные среды данных позволяют команде разработчиков создавать динамические представления данных, гарантируя, что таблицы не будут создаваться более одного раза. Модульные тесты, аудиты и Data Diff обеспечивают проверку на протяжении всего рабочего процесса разработки, что позволяет легко работать с данными.

pip install sqlmesh

Github
Подробнее
Документация

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Хотите проиндексировать атрибуты, хранящиеся в массиве #JSON?

В Oracle Database 21c это можно сделать с помощью функции

CREATE MULTIVALUE INDEX ...
ON t ( t.col.json_array_path[*]... ).


Затем база данных может использовать его для обработки SQL-запросов JSON_exists с поиском пути к массиву.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥21
🖥 В SQL существует множество ключевых слов.

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

Но это зависит от системы баз данных!

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

На схеме флажок (✓) означает, что слово принимается в качестве имени таблицы или столбца без кавычек.

https://modern-sql.com/reserved-words-empirical-list

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥3
Применение MERGE для логики "обновить, если существует", "вставить, если не существует

Чтобы получить значения из приложения в Oracle Database, используйте DUAL в качестве исходной таблицы.

@sqlhub
👍103🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Наглядная шпаргалка с порядком выполнения SQL-запросов.

При написании SQL-запросов Очень важно понимать порядок их выполнения.

В SQL-запросе операторы выполняются в следующем порядке:

1. FROM / JOIN
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. DISTINCT
7. ПОРЯДОК СЛЕДОВАНИЯ
8. LIMIT / OFFSET


@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3117🔥4🤔1
🖥 6 типов баз данных, которые необходимо знать

1. Реляционные базы данных 💼
- Модель данных: Организует данные в таблицы со строками и столбцами.
- Примеры: MySQL, PostgreSQL, Oracle, SQL Server.
- Ключевые особенности: Соответствие стандарту ACID, высокая степень согласованности данных, структурированное хранение данных, поддержка SQL-запросов, хорошая приспособленность к сложным транзакциям и созданию отчетов.

2. База данных для документов 📄.
- Модель данных: Хранение данных в виде полуструктурированных или JSON-подобных документов.
- Примеры: MongoDB, CouchDB, Firebase Firestore.
- Ключевые особенности: Гибкая схема, горизонтальная масштабируемость, поддержка полуструктурированных данных, хорошо подходит для систем управления контентом и приложений реального времени.

3. In-Memory Database 🚀.
- Модель данных: Хранит данные полностью в оперативной памяти (ОЗУ) системы.
- Примеры: Redis, Memcached, Apache Ignite.
- Ключевые особенности: Сверхбыстрый поиск данных, низкая задержка, подходит для кэширования, управления сессиями и аналитики в реальном времени.

4. Графовые базы данных 🌐.
- Модель данных: Представляет данные в виде узлов и ребер для моделирования отношений.
- Примеры: Neo4j, Amazon Neptune, ArangoDB.
- Ключевые особенности: Эффективный запрос сложных отношений, обход графов, подходит для социальных сетей, рекомендательных систем и обнаружения мошенничества.

5. Базы данных для
временных рядов 📈.
- Модель данных: Оптимизирована для упорядоченных по времени точек данных, таких как показания датчиков или файлы журналов.
- Примеры: InfluxDB, Prometheus, TimescaleDB.
- Ключевые особенности: Эффективное хранение и извлечение данных временных рядов, агрегирование, , идеально подходит для мониторинга IoT данных.

6. Пространственные базы данных
🌍.
- Модель данных: Предназначена для хранения пространственных или географических данных.
- Примеры: PostGIS (расширение для PostgreSQL), MongoDB Geospatial, Microsoft SQL Server Spatial.
- Ключевые особенности: Геопространственная индексация, поддержка пространственных типов данных (точки, полигоны, линии), подхожит для сервисов, основанных на определении местоположения, ГИС (географических информационных систем) и картографических приложений.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍194🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Теория, лежащая в основе шардинга баз данных, кажется простой.

Но как она реализуется в реальных базах данных?

Рассмотрим это на примере MongoDB (одной из самых популярных баз данных NoSQL)

Основы

Для шардинга в MongoDB необходим кластер.
Кластер - это группа взаимосвязанных серверов или узлов.

Для горизонтального масштабирования можно просто увеличить количество серверов.

Кластер состоит из трех частей:
- Шард
- Маршрутизатор Mongos
- Маршрутизатор конфигурации

Рассмотрим каждую часть:

Шард

Шард - это подмножество данных.
Данные разделяются между группой шардов.
Каждый шард развертывается как набор реплик.

Это замечательная вещь...
...потому что вы получаете репликацию и автоматическое восстановление данных после отказа системы.

Но никаких прямых запросов к шарду не поступает.

Маршрутизатор Mongos

Mongos Router играет ключевую роль в кластере Все запросы направляются на Mongos Router.

Он выполняет две важнейшие задачи:
- Маршрутизация запросов и балансировка нагрузки
- Кэширование метаданных

Маршрутизатор выступает в роли посредника для получения данных с реальных шардов.

Серверы конфигурации

Серверы конфигурации работают как отдельный набор реплик.
Они хранят метаданные для кластера шардов MongoDB.
Метаданные - это как индекс для вашего кластера.

В них хранится такая информация, как:
- Как организованы данные?
- Какие компоненты присутствуют в кластере.

Вот как выглядит весь процесс:

- Код приложения запрашивает данные
- Маршрутизатор Mongos получает запрос
- Маршрутизатор проверяет сервер Config Server, чтобы найти, на каком шарде находятся данные
- Запрос направляется на соответствующий шард
- Данные возвращаются в приложение
👍96🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Хотите удалить большую часть данных из таблицы?

Удаление может занять очень много времени.

В Oracle Database перемещение таблицы с фильтрацией может быть намного быстрее:

ALTER TABLE ...
MOVE INCLUDING ROWS
WHERE <rows to keep>

Только будьте осторожны вы не сможете откатить комнаду назад!

@sqlhub
👍132🔥1
🚀 SQL для Data Science Полный учебный план.

План рассчитан на 28 дней, в течение которых необходимо уделять не менее 1,5 часов в день.

Неделя 1: Основы SQL

День 1-3: Знакомство с синтаксисом SQL, операторами SELECT, фильтрацией и сортировкой.
Ресурсы: Курс Khan Academy "Intro to SQL" на YouTube.
📌Python и базы данных

День 4-5: Работа с несколькими таблицами с помощью операций JOIN.
Ресурс: Курс DataCamp "Объединение данных в SQL".

День 6-7: Агрегирование данных с помощью GROUP BY, HAVING и понимание подзапросов.
Ресурс: Специализация Coursera "SQL for Data Science".

Неделя 2: Углубляемся в SQL

День 8-10: Изучение запросов(INSERT, UPDATE, DELETE) и работа со значениями NULL.
Ресурсы: Плейлист YouTube Калеба Карри на тему "Самоучители SQL".

День 11-12: Погружение в нормализацию данных и принципы проектирования баз данных.
Ресурсы: Плейлист YouTube - Базовая концепция нормализации баз данных

День 13-14: Знакомство с оконными функциями для расширенного манипулирования данными.
Ресурс: Самоучитель SQL - оконные функции от BeardedDev

Неделя 3: Расширенные методы работы с SQL

День 15-17: Освоение подзапросов и коррелированных подзапросов.
Ресурс: курс techTFQ "Подзапросы в SQL".

День 18-20: Изучение индексов, оптимизации производительности и настройки запросов.
Ресурс: Настройка производительности SQL и оптимизация запросов

День 21-22: Понимание хранимых процедур, определяемых пользователем функций и триггеров.

Неделя 4: Применение SQL в реальных условиях и практика

День 23-24: Реализация задач анализа данных, таких как очистка, преобразование и визуализация данных с помощью SQL.

День 25-28: Итоговый проект: Решение сложной задачи с использованием SQL и презентация результатов.
Ресурсы: Наборы данных Kaggle с задачами, связанными с SQL.

@sqlhub
👍35🔥94