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
Как получить информацию о структуре БД для документации

Создаём документацию БД и словарь данных информационной системы своими руками. Полезные SQL-скрипты и приемы документирования базы данных

Смотреть статью
👍6
DuckDb: эффективная OLAP-база данных

DuckDB позволяет выполнять аналитические запросы, благодаря столбцово-векторному механизму базы данных. Это аналитическая или OLAP-версия SQLite, которая является более простой в установке по сравнению с Microsoft SQL Server и Postgres.

Преимущества DuckDB

- DuckDB имеет высокую производительность при выполнении сложных запросов
- Она работает с большим объемом данных
- DuckDB поддерживает стандарт SQL и имеет обширную библиотеку функций
- Она имеет небольшой размер и быстро устанавливается
- DuckDB прост в использовании и имеет дружественный интерфейс

Недостатки DuckDB

- Она не имеет поддержки многопользовательских приложений
- DuckDB не поддерживает некоторые функции, которые поддерживаются другими СУБД
👍4
Пример

Следующий запрос выбирает все данные строк из таблицы users где age имеет значения 18,19 и 21.
👍9
Представьте, что у вас есть две таблицы: Orders и Customers. Таблица Orders содержит поля OrderID, CustomerID, и OrderDate. Таблица Customers содержит CustomerID, Name, и City.

Напишите запрос SQL, который покажет имена всех клиентов из города "New York", которые сделали более двух заказов.
👍7
Объяснение Запроса
Подзапрос: Здесь используется подзапрос для выбора CustomerID из таблицы Orders, группируя по CustomerID и применяя условие HAVING COUNT(OrderID) > 2. Это выбирает клиентов, сделавших более двух заказов.

Объединение (JOIN): Основной запрос использует JOIN для соединения таблиц Customers и результата подзапроса по CustomerID.

Условие WHERE: Фильтрация происходит по полю City в таблице Customers, чтобы выбрать только тех клиентов, которые находятся в "New York".


Этот запрос тестирует понимание кандидата в области объединения таблиц, работы с агрегатными функциями и подзапросами, а также фильтрации данных в SQL.
👍65
#Вопросы_с_собеседования
Расскажите алгоритм решения следующей задачи

Предположим, у вас есть две таблицы: Orders (Заказы) и Customers (Клиенты). Таблица Orders содержит колонки OrderID, CustomerID и OrderDate, а таблица Customers содержит CustomerID, Name и Country. Как бы вы нашли имена всех клиентов из США, которые не сделали ни одного заказа после 1 января 2022 года?

Для решения этой задачи можно использовать подзапросы или соединения таблиц. Один из подходов - использовать левое соединение (LEFT JOIN) между Customers и Orders, фильтруя заказы после указанной даты. Затем можно использовать WHERE условие, чтобы выбрать только тех клиентов, у которых нет соответствующих записей в Orders после этой даты и которые находятся в США. Это демонстрирует понимание соединений таблиц, фильтрации и работы с датами в SQL.
👍61🔥1
DB Fiddle — онлайн-площадка для работы с базами данных SQL

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

Из интересного: к работе над базой можно подключить приятеля — делается это буквально в пару кликов
👍51
Использование CROSS JOIN для задач поиска пересечений в исторических данных

CROSS JOIN
- это декартово произведение множеств, которое соединяет таблицы без условий. Его использование может помочь в решении сложных задач, таких как нахождение пересечений в исторических данных.

1. На примерах в изображении 1 представлена структура таблиц.

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

3. Для решения этой проблемы можно использовать простой запрос с CROSS JOIN, как показано в изображении 3 - результат

Полноценное продолжение - здесь
👍5