sql_tg | Unsorted

Telegram-канал sql_tg - SQL и БД Learning

11243

Изучаем SQL с нуля По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning

Subscribe to a channel

SQL и БД Learning

Традиционные базы данных требуют предварительно определенную схему таблицы и не поддерживают работу с CSV файлами, без их предварительной обработки.

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

▪️Github

Читать полностью…

SQL и БД Learning

💻Коллекция готовых SQL-запросов для PostgreSQL

Нереально полезная подборка SQL-запросов, количество запросов вы и сами видите, это покрывает большую часть того, что может встретиться в практике

В том числе здесь:
Обсуждаются различные функции и операторы для выполнения запросов и модификации данных

Рассматриваются способы разбиения больших таблиц на N тысяч записей и распараллеливания запросов

Обсуждаются особенности сравнения record и NULL и способы быстрого получения количества записей в большой таблице

Рассматриваются рекурсивные запросы, модификация пользовательских данных (UPSERT) и журналирование изменений таблицы

Рассматриваются модификации схемы данных (DDL) и способы добавления ограничений таблицы и изменения ограничений внешнего ключа без блокирования таблицы

📎 Коллекция

Читать полностью…

SQL и БД Learning

Оплачиваемая стажировка и трудоустройство без опыта — ну ничего себе 😳

Все возможно с Добровольным квалификационным экзаменом! Это бесплатный проект Правительства Москвы, где ты можешь показать свои знания по специальности, запомниться потенциальным работодателям и получить оффер в престижные компании Москвы.

Тебя ждет всего три шага:
1️⃣ Пройди тест
После регистрации на сайте ДКЭ тебе будет доступно 70 профессий по 7 направлениям. Выбирай тест по своей специальности и проверь уровень своих знаний!
2️⃣ Реши кейс
Если ты успешно сдал тест, тебя пригласят на следующий этап, где ты с другими участниками в команде будешь решать реальный кейс одного из работодателей.
3️⃣ Стань победителем
Окажись в числе лучших по общему количеству баллов за оба этапа и получи шанс попасть на оплачиваемую стажировку с дальнейшим трудоустройством.

Готов проявить себя? Регистрируйся и начинай проходить тест — https://dke.moscow

Реклама. АНО "РАЗВИТИЕ ЧЕЛОВЕЧЕСКОГО КАПИТАЛА", АНО "РЧК". ИНН 7710364647. erid: LjN8KPDeP

Читать полностью…

SQL и БД Learning

Трамплин в карьере для системных аналитиков 🚀

Есть опыт работы от года и желание развиваться в профессии? Приходи на онлайн-интенсив в Открытые школы Т1!

🎓Открытые школы — это обучение с возможностью попасть в штат Холдинга Т1 — крупнейшей ИТ-компании в России по версии RAEX 2023, в портфеле которой 800+ масштабных проектов и 70+ продуктов и услуг.
Всего за полгода мы выпустили 500+ специалистов, лучшие из которых уже присоединились к командам финтех-разработки и разработки ИТ-продуктов. Также выпускников ждут в юнитах облачных сервисов, развития ИИ-решений, интеграции и консалтинга.

Что в программе?

— курс по работе с требованиями,
— проектирование REST API,
— понимание банковской специфики.

⌛️ Быстрое обучение: 1 месяц.
💻Гибкий формат: все этапы онлайн, занятия по вечерам.

Врывайся в бигтех и подавай заявку до 22 августа! 

Старт бесплатного интенсива: 28 августа.

Реклама. ООО "Т1". ИНН 7720484492.

Читать полностью…

SQL и БД Learning

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

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

Контроль версий БД в стиле Git предоставляет ряд полезных фичей:
— Мгновенный откат к любому предыдущему состоянию
— Полный журнал аудита с возможностью запроса, содержащий все данные с момента их создания.
— Несколько развивающихся ветвей данных
— Возможность объединения ветвей данных
— Быстрая синхронизация с удаленными версиями для резервного копирования или децентрализованной совместной работы.
— Запрашиваемые различия (т. е. различия) между версиями

Механизм хранения Dolt построен на графе коммитов Prolly Trees в стиле Git. Схема таблицы и данные хранятся в Prolly Trees. Корни этих деревьев Prolly вместе с другими метаданными хранятся в графе коммитов, чтобы обеспечить контроль версий в стиле Git.

Подробнее можно почитать на официальной страничке
Github

Читать полностью…

SQL и БД Learning

MySQL ускорение SQL запросов

Ускорение SQL запросов в MySQL м
ожет быть достигнуто следующими способами:

1. Индексы: использование индексов может ускорить поиск и сортировку данных в ваших таблицах.

2. Оптимизация структуры таблиц: важно убедиться, что структура таблиц оптимизирована для выполнения запросов.

3. Оптимизация запросов: проверьте ваши запросы на оптимизацию, убедитесь, что вы используете правильные операторы JOIN и индексы для улучшения производительности.

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

5. Использование представлений: использование представлений может упростить запросы и улучшить их читаемость.

6. Ограничение размера выборки: используйте оператор LIMIT, чтобы выбрать только необходимые данные, это уменьшит время выполнения запроса.

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

8. Оптимизация памяти: оптимизируйте использование памяти вашей базы данных, чтобы уменьшить время обработки запросов.

9. Мониторинг производительности: важен для определения причин низкой производительности и для поиска способов ее улучшения. Он включает в себя слежение за показателями, такими как загруженность процессора, использование памяти, время ответа на запросы и т. д.

10. Использование индексов: используйте индексы, чтобы ускорить поиск данных в таблице. Обеспечьте, чтобы ваши индексы были актуальными и эффективными.

11. Оптимизация объединений: используйте оптимальные методы объединения, такие как внутреннее или внешнее объединение, чтобы ускорить выполнение запросов.

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

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

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

15. Оптимизация структуры таблиц: периодически оценивайте структуру таблиц и выполняйте необходимые изменения, чтобы улучшить производительность.

16. Оптимизация запросов: проверяйте и оптимизируйте свои SQL-запросы, чтобы улучшить их производительность.

17. Ограничение данных: ограничивайте количество возвращаемых данных, чтобы улучшить производительность.

18. Мониторинг производительности: мониторинг производительности поможет вам выявить проблемы и найти способы их устранения.

19. Обновление ПО: регулярно обновляйте ПО, используемое вашей базой данных, чтобы воспользоваться последними улучшениями производительности.

20. Использование индексов: правильное использование индексов может существенно улучшить производительность SQL-запросов.

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

Читать полностью…

SQL и БД Learning

🖥 Google почти всегда задает вопросы по SQL во время собеседований на вакансии Data Analytics, Data Science и Data Engineering.

Поэтому, если вы готовитесь к собеседованию по SQL, решите эти 11 РЕАЛЬНЫХ вопросов для собеседования Google по SQL.

https://datalemur.com/blog/google-sql-interview-questions

Читать полностью…

SQL и БД Learning

#Вопросы_с_собеседования

Что делает оператор MERGE?

Ответ:
MERGE позволяет осуществить слияние данных одной таблицы с данными другой таблицы. При слиянии таблиц проверяется условие, и если оно истинно, то выполняется UPDATE, а если нет - INSERT. При этом изменять поля таблицы в секции UPDATE, по которым идет связывание двух таблиц, нельзя.

Читать полностью…

SQL и БД Learning

SpeedML - это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения.

Она объединяет часто используемые пакеты ML, такие как Pandas, NumPy, Scikit-learn, XGBoost и Matplotlib. SpeedML также предоставляет функциональные возможности для автоматизированного EDA.

pip install speedml

Github

Читать полностью…

SQL и БД Learning

💻Knex.js — конструктор SQL-запросов для PostgreSQL и других СУБД

npm install knex --save
npm install pg --save

Knex.js спроектирован как гибкий и портативный инструмент.

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

Knex можно использовать в качестве конструктора SQL-запросов как в Node.JS, так и в браузере, ограничиваясь возможностями WebSQL (например, невозможностью дропать таблицы или читать схемы). Составлять SQL-запросы в браузере для выполнения на сервере крайне не рекомендуется, так как это может стать причиной серьезных уязвимостей в безопасности.

🟡 Доки
🖥 GitHub

Читать полностью…

SQL и БД Learning

✔️ Особенности сравнения record и NULL

Testing a ROW expression with IS NULL only reports TRUE if every single column is NULL. Нужно об этом знать, чтобы на напороться на ошибки в своём коде.

SELECT
(NULL, NULL) IS NULL as "(NULL, NULL) IS NULL", --true
(NULL, NULL) IS NOT NULL as "(NULL, NULL) IS NOT NULL", --false
NOT (NULL, NULL) IS NULL as "NOT (NULL, NULL) IS NULL", --false

(1, NULL) IS NULL as "(1, NULL) IS NULL", --false
(1, NULL) IS NOT NULL as "(1, NULL) IS NOT NULL", --false --!!!
NOT (1, NULL) IS NULL as "NOT (1, NULL) IS NULL" --true --!!!

Читать полностью…

SQL и БД Learning

Парсинг HTML с помощью PHP и SQL. Немного провокационный пример с анализом пользователей Хабра

Читать статью

Читать полностью…

SQL и БД Learning

Что такое векторные базы данных?

Читать статью

Читать полностью…

SQL и БД Learning

One Day Offer для Центра робототехники 🤖

13 июля вы сможете пройти все этапы отбора, познакомиться с инновационной командой Сбера и получить оффер Middle/Senior Robotics или Backend Developer.

Наш Центр проводит исследования, создаёт роботов, применяя искусственный интеллект, и работает по направлениям: манипуляция, роботизация логистики и мобильные роботы.

Сейчас перед нами стоит по-настоящему амбициозная задача – разработать антропоморфного робота общего назначения.

В работе мы используем: ROS/ROS2, DDS, Python, PyTorch, JAX, Model-transformers, SOTA, C++, Isaac Sim / MuJoCo / PyBullet.

Какие задачи будут в вашем планере 👇

▪️ разработка алгоритмов и систем управления роботами (core, body, brain) и драйверов для различных устройств в виде ROS2 узлов
▪️ создание алгоритмов внутренней и внешней калибровки сенсоров (лидары, камеры, IMU), робототехнических сервисов на Behavior Trees / State Machines
▪️ работа с симуляторами на базе Isaac Sim / MuJoCo / PyBullet
▪️ проектирование архитектуры системы

Масштабные проекты и работа мечты ждут вас. Регистрируйтесь на One Day Offer 13 июля 😉

Читать полностью…

SQL и БД Learning

⚠️ Как создать собственный тип данных с помощью PostgreSQL?

Расскажем на открытом уроке «Пользовательские типы данных в PostgreSQL» в рамках практического курса «PostgreSQL для администраторов баз данных и разработчиков» от OTUS

🔹На открытом уроке рассмотрим как можно создать пользовательский тип и как с ним работать.

🔹Разберем несколько примеров детально "до винтика"

🦾  PostgreSQL — навык, открывающий двери в более интересные и перспективные проекты. Тестируйте занятие на бесплатном уроке и начните обучение уже 30 июля. 

👉  Регистрация и подробности
https://otus.pw/sl5x/?erid=LjN8K1LDo

Читать полностью…

SQL и БД Learning

Обрабатывай большие данные в реальном времени с эффективным сочетанием ClickHouse и Kafka

🔹Оптимизируйте производительность ваших решений открытом уроке «Интеграция ClickHouse с Apache Kafka» от Otus. Разберёмся в лучших практиках для оптимизации производительности и управления нагрузкой.

Практика: Настрайка интеграции ClickHouse с Apache Kafka

Урок приурочен курсу «ClickHouse для инженеров и архитекторов БД» от Otus.

👉 Регистрация и подробности:
https://otus.pw/t57Ok/?erid=LjN8KKEqR

Читать полностью…

SQL и БД Learning

Как очень быстро получить количество записей в большой таблице?

Применение: отображение общего кол-ва записей в админках.

-- возвращает точное количество записей, но медленно
select count(*) as exact_count from table_name;

-- возвращает приблизительное количество записей, но быстро
-- точность больше, чем в следующем запросе, но от БД требуется актуальная статистика по таблице
select reltuples::bigint as estimate_count
from pg_class
where oid = 'public.table_name'::regclass;

-- возвращает приблизительное количество записей, но быстро
-- точность меньше, чем в предыдущем запросе, но от БД не требуется актуальная статистика по таблице
-- преимущество этого подхода в том, что можно задавать условие выборки
select 100 * count(*) as estimate_count
from table_name tablesample system (1)
where ...;

Читать полностью…

SQL и БД Learning

💻Внутренности PostgreSQL: как добавить новую функцию

При разработке пача для PostgreSQL иногда требуется добавить новую функцию, чтобы ее можно было вызывать из SQL.
Собственно, об этом и идёт речь в статье.

Сразу можно отметить 2 момента. Во-первых, некоторые функции имеет смысл добавлять не в ядро системы, а поместить в отдельное расширение — либо стороннее, либо идущее вместе с PostgreSQL и живущее в каталоге /contrib/. Во-вторых, pg_proc.dat является удобной точкой входа для изучения внутренностей PostgreSQL. Также файл бывает полезен, когда вы примерно понимаете, какую функцию ищите, но не знаете ее название.

📎 Статья

Читать полностью…

SQL и БД Learning

StarRocks — высокопроизводительная БД для аналитики

StarRocks, проект Linux Foundation, — это база данных MPP OLAP нового поколения с быстрой обработкой данных для сложных аналитических кейсов, включая многомерную аналитику, аналитику в реальном времени и не только.

Быстрый старт с помощью Docker:


docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 -itd \
--name quickstart starrocks/allin1-ubuntu


🖥 GitHub
📔 Доки

Читать полностью…

SQL и БД Learning

Начните обучение в магистратуре в Центральном университете уже на 3-м курсе бакалавриата!

Центральный университет — современный вуз, созданный при поддержке ведущих компаний России: Т-Банка, Авито и других.

Учебу реально совместить с последними курсами бакалавриата или действующей работой. Обучение занимает 20 часов в неделю в вечернее время в первый год, а занятия проводят в центре Москвы профессоры из МГУ, МФТИ, РЭШ и практики из индустрии. Обучение в университете построено по принципам ИТ-компаний, со средой, способствующей росту и развитию.
У каждого студента будет:
личный ментор по траектории обучения;
доступ к карьерному центру с коучами и консультантами;
опыт работы в проектах 30+ компаний-партнеров уже во время обучения;
диплом гособразца.
Участвуйте в онлайн-отборе, чтобы выиграть грант на обучение до 1,2 млн рублей. Больше подробностей про университет и конкурс грантов по ссылке!

erid:2VtzqwezZhm

Реклама, АНО ВО «Центральный университет», ИНН 774341802

Читать полностью…

SQL и БД Learning

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

А теперь представьте, что ваши системы работают как часы, координация и синхронизация на высшем уровне, а конфигурация управляется легко и без ошибок. Вы освоили Apache Zookeeper и ваши проекты достигают новых высот надежности и масштабируемости!

Присоединяйтесь к открытому вебинару 21 августа в 20:00 мск. Там мы решим все эти проблемы и ответим на возникающие вопросы.

👨‍💻🛠👨🏻‍💻 Урок будет полезен разработчикам, DevOps-инженерам, администраторам систем и сетей, архитекторам ПО и всем, кто хочет глубже понять работу Apache Zookeeper.

🔴 Запишитесь прямо сейчас, чтобы не пропустить мероприятие: https://clck.ru/3CLo9A

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

SQL и БД Learning

💬 Регулярные выражения

Язык SQL поддерживает работу с регулярными выражениями (regular expressions или RegEx). Это специальный язык, позволяющий достаточно точно определить шаблоны поиска в строке.

Для работы с регулярными выражениями используется оператор SIMILAR TO вместо LIKE.

Вернемся к нашей задаче — нужно выбрать пользователей, чье имя начинается на 'A' и 'B'. Чтобы решить ее, нужно применить такой шаблон:
SELECT * FROM users WHERE first_name SIMILAR TO '[AB]%';

Разберем примененный шаблон [AB]%. В квадратных скобках перечисляются допустимые символы, а далее следует знакомый нам символ %. Этот запрос вернет пользователей с именами Abigale, Andy, Brayan, и так далее.

Представим, что нам нужно найти пользователей, у которых username заканчивается любой буквой.
Это можно сделать таким шаблоном: %[abcdefghijklmnopqrstuvwxyz]. Согласитесь, такая запись неудобна для чтения и записи.

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

Напишем запрос, который вернет всех пользователей у которых username заканчивается любой буквой, будет выглядеть так:

SELECT * FROM users WHERE username SIMILAR TO '%[a-z]';

Точно так же можно работать и с русскими буквами: '%[а-я]%'. Такой запрос поможет найти пользователей, у которых в поле username есть русские буквы:
SELECT * FROM users WHERE username SIMILAR TO '%[а-я]%';
Чтобы выбрать все цифры, используем шаблон [0-9]:

SELECT * FROM users WHERE username SIMILAR TO '%[0-9]';


Такой запрос вернет всех пользователей, чей username заканчивается на любую цифру.

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

Корректная почта должна содержать адрес, который состоит из:

*️⃣Имени с любым количеством любых символов — например, my_email

*️⃣Символа @

*️⃣Домена с любым количеством любых символов — например, gmail

*️⃣Точки

*️⃣Указания национальной зоны — например, com

Запрос на поиск корректных адресов будет таким:
SELECT username, email FROM users WHERE email SIMILAR TO '%@%.%';

Такой запрос выведет имена пользователей с корректными адресами электронной почты, однако нам интереснее найти ошибки. В этом случае частица NOT позволит найти строки, которые не соответствуют шаблону:
SELECT username, email FROM users WHERE email NOT SIMILAR TO '%@%.%';

Теперь выберем все адреса электронной почты, у которых национальная зона состоит ровно из двух символов — например, ru, su, io и так далее. При этом исключим зоны, состоящие из трех и более символов — например, com.

Это можно сделать так: %.[a-z][a-z]. Но удобнее воспользоваться еще одним спецсимволом — подчеркиванием _.

Символ подчеркивания обозначает ровно один любой символ, необязательно букву. Наш запрос будет выглядеть так:
SELECT username, email FROM users WHERE email SIMILAR TO '%.__';

Чтобы вывести пользователей с адресами электронной почты оканчивающимися на 3 символа, нужно добавить еще одно подчерктивание в наш шаблон:
SELECT
username,
email
FROM users WHERE email SIMILAR TO '%.___';


Мы рассмотрели наиболее полезные и часто используемые возможности регулярных выражений в SQL, но они ими не ограничиваются.

Читать полностью…

SQL и БД Learning

Gephi — один из наиболее функциональных и доступных инструментов для всех, кто изучает социальные сети и графы.

Gephi Lite — это его облегчённая веб-версия.

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

gephi.org/gephi-lite

Читать полностью…

SQL и БД Learning

Самый старый код в MSSQL

Читать статью

Читать полностью…

SQL и БД Learning

Популярная задача на собеседовании: сотрудники с максимальной зарплатой в отделе

Смотреть статью

Читать полностью…

SQL и БД Learning

⚠️ Как создать собственный тип данных с помощью PostgreSQL?

Расскажем на открытом уроке «Пользовательские типы данных в PostgreSQL» в рамках практического курса «PostgreSQL для администраторов баз данных и разработчиков» от OTUS

🔹На открытом уроке рассмотрим как можно создать пользовательский тип и как с ним работать.

🔹Разберем несколько примеров детально "до винтика"

🦾  PostgreSQL — навык, открывающий двери в более интересные и перспективные проекты. Тестируйте занятие на бесплатном уроке и начните обучение уже 30 июля. 

👉  Регистрация и подробности
https://otus.pw/cngz/?erid=LjN8KTqpW

Читать полностью…

SQL и БД Learning

SQLMC — официальный инструмент Kali Linux для проверки всех URL-адресов домена на наличие SQL-инъекций.

Читать полностью…

SQL и БД Learning

Как обнаружить SQL-уязвимость?
Освойте методы атаки и защиты на курсе SQL Injection Master! Аналогов по объему практики в СНГ и EN-cегменте нет.

На курсе подробно разберём эксплуатацию SQL-инъекций, одну из наиболее опасных и эксплуатируемых видов атак на веб-приложения. Вы освоите базовый синтаксис языка запросов SQL, внедрение SQL-кода в уязвимые приложения, раскрутку SQL-инъекций вручную и софтом, а также способы защиты своих веб-приложений.

Старт 15 июля. Продолжительность - 3 месяца

🏆 Сертификат / удостоверение о повышении квалификации

@Codeby_Academy
84994441750

Подробнее о курсе

Читать полностью…

SQL и БД Learning

Работаем с PostgreSQL в Go. Опыт Авито

Читать статью

Читать полностью…

SQL и БД Learning

🖥 BACKUP DATABASE в SQL

Важно регулярно создавать резервные копии базы данных, чтобы данные не были потеряны в случае повреждения базы данных (БД). В SQL мы можем создавать резервные копии БД с помощью оператора BACKUP DATABASE.

Например:

BACKUP DATABASE orders
TO DISK = 'C:\orders_backup.bak';

Здесь мы создаем файл резервной копии базы данных orders на диске C с именем orders_backup.bak.

Примечание: Распространено использование расширения .bak для файлов резервных копий БД, однако это не является обязательным.

Резервное копирование только новых изменений в SQL
В SQL мы также можем сделать резервную копию только новых изменений по сравнению с предыдущей резервной копией, используя команду WITH DIFFERENTIAL. Например:

BACKUP DATABASE orders
TO DISK = 'C:\orders_backup.bak'
WITH DIFFERENTIAL;

Здесь мы добавляем только новые изменения в предыдущий файл резервной копии. Следовательно, эта команда работает быстрее, нежели создание резервной копии БД с нуля.

Восстановление базы данных из резервной копии

Для восстановления файла резервной копии в системе управления базой данных (СУБД) используется оператор RESTORE DATABASE. Например:

RESTORE DATABASE orders
FROM DISK = 'C:\orders_backup.bak';

Здесь мы восстанавливаем файл резервной копии orders_backup.bak в базе данных orders.

Читать полностью…
Subscribe to a channel