Изучаем SQL. Генерация, выборка и обработка данных, 3-издание (2023)
Автор: Алан Болье
О книге: Данная книга отличается широким охватом как тем (от азов SQL до таких сложных вопросов, как аналитические функции и работа с большими базами данных), так и конкретных баз данных (MySQL, OracleDatabase, SQL Server).
Скачать бесплатно
Гайды по БД и SQL
Автор: Алан Болье
О книге: Данная книга отличается широким охватом как тем (от азов SQL до таких сложных вопросов, как аналитические функции и работа с большими базами данных), так и конкретных баз данных (MySQL, OracleDatabase, SQL Server).
Скачать бесплатно
Гайды по БД и SQL
👍14
Новая схема SQL Join-ов
Учу SQL и понимаю, что схема Join-ов основанная на пересекающихся кругах не корректна. Результатом джойнов всегда идет увеличение таблицы в ширь. А по схеме с кругами площадь кругов почти везде не увеличивается. И также круговая схема не показывает заполнение NULL-ами при LEFT и RIGHT джойнах. Предлагаю схему на прямоугольниках, где закрашенный красный это результирующая таблица джойнов, черный это заполнение NULL-ами. Серые прямоугольники оставлены просто для наглядности и ничего не означают.
⤷ Ссылка на статью
Гайды по БД и SQL
Учу SQL и понимаю, что схема Join-ов основанная на пересекающихся кругах не корректна. Результатом джойнов всегда идет увеличение таблицы в ширь. А по схеме с кругами площадь кругов почти везде не увеличивается. И также круговая схема не показывает заполнение NULL-ами при LEFT и RIGHT джойнах. Предлагаю схему на прямоугольниках, где закрашенный красный это результирующая таблица джойнов, черный это заполнение NULL-ами. Серые прямоугольники оставлены просто для наглядности и ничего не означают.
⤷ Ссылка на статью
Гайды по БД и SQL
👍23❤3
Руководство по стилю SQL · SQL Style Guide
Рекомендации, описанные в этом руководстве, во многом пересекаются с описанными в книге Джо Селко «Стиль программирования Джо Селко на SQL» (оригинал: SQL Programming Style). Это, в частности, найдут полезным те, кто уже знаком с этой книгой. Тем не менее автор этого руководства в некоторых аспектах более категоричен, нежели Джо Селко, а в других, напротив, более гибок. И, конечно, нельзя не отметить, что это руководство значительно короче и лаконичнее книги Селко — здесь вы не встретите ни весёлых историй из жизни, наглядно объясняющих, как и почему лучше не делать, ни длинных повествований, мотивирующих на использование той или иной рекомендации.
⤷ Ссылка на статью
Гайды по БД и SQL
Рекомендации, описанные в этом руководстве, во многом пересекаются с описанными в книге Джо Селко «Стиль программирования Джо Селко на SQL» (оригинал: SQL Programming Style). Это, в частности, найдут полезным те, кто уже знаком с этой книгой. Тем не менее автор этого руководства в некоторых аспектах более категоричен, нежели Джо Селко, а в других, напротив, более гибок. И, конечно, нельзя не отметить, что это руководство значительно короче и лаконичнее книги Селко — здесь вы не встретите ни весёлых историй из жизни, наглядно объясняющих, как и почему лучше не делать, ни длинных повествований, мотивирующих на использование той или иной рекомендации.
⤷ Ссылка на статью
Гайды по БД и SQL
👍22❤2
27 распространённых вопросов по SQL с собеседований и ответы на них
Вопросы по SQL на собеседованиях — обычное дело, и чтобы не завалиться, нужно хорошо понимать, как работать с базами данных. В этом списке представлены основные вопросы и задачи по SQL, которые часто встречаются на собеседованиях, а также ответы на них.
⤷ Ссылка на статью
Гайды по БД и SQL
Вопросы по SQL на собеседованиях — обычное дело, и чтобы не завалиться, нужно хорошо понимать, как работать с базами данных. В этом списке представлены основные вопросы и задачи по SQL, которые часто встречаются на собеседованиях, а также ответы на них.
⤷ Ссылка на статью
Гайды по БД и SQL
👍22
5 бесплатных сервисов для практики SQL
Когда вы только начинаете изучать SQL, нужно как можно больше практики. Хорошо, когда есть реальные задачи на работе, на которых можно практиковаться. Но если их нет - то эти бесплатные сервисы помогут получить необходимую практику и улучшить свой уровень.
Кстати, в телеграм канале у меня был пост о том, как выучить SQL быстрее.
⤷ Ссылка на статью
Гайды по БД и SQL
Когда вы только начинаете изучать SQL, нужно как можно больше практики. Хорошо, когда есть реальные задачи на работе, на которых можно практиковаться. Но если их нет - то эти бесплатные сервисы помогут получить необходимую практику и улучшить свой уровень.
Кстати, в телеграм канале у меня был пост о том, как выучить SQL быстрее.
⤷ Ссылка на статью
Гайды по БД и SQL
👍18🔥3
Вопрос с собеседования Amazon
Напишите запрос, который будет идентифицировать возвращающихся активных пользователей. Вернувшийся активный пользователь — это пользователь, совершивший вторую покупку в течение 7 дней после любой другой покупки. Выведите список user_id этих вернувшихся активных пользователей.
Напишите запрос, который будет идентифицировать возвращающихся активных пользователей. Вернувшийся активный пользователь — это пользователь, совершивший вторую покупку в течение 7 дней после любой другой покупки. Выведите список user_id этих вернувшихся активных пользователей.
amazon_transactions
id:int
user_id:int
item:varchar
created_at:datetime
revenue:int
Ответ:SELECT
DISTINCT(a.user_id)
FROM amazon_transactions a
JOIN amazon_transactions b
ON a.user_id = b.user_id
WHERE a.created_at - b.created_at BETWEEN 0 AND 7
AND a.id != b.id
Гайды по БД и SQL👍25
Основы SQL (видеокурс)
🔹 Введение
🔹 Нормализация
🔹 Редактирование таблиц
🔹 Триггеры
🔹 Транзакции
Гайды по БД и SQL
🔹 Введение
🔹 Нормализация
🔹 Редактирование таблиц
🔹 Триггеры
🔹 Транзакции
Гайды по БД и SQL
👍12🔥2
Подборка ресурсов, где можно выучить\подтянуть знания SQL
⏩ https://mode.com/sql-tutorial/ много бесплатных уроков для начинающих, идущих по нарастающей
⏩ https://www.kaggle.com/learn/intro-to-sql
https://www.kaggle.com/learn/advanced-sql короткие уроки от kaggle вводящие в курс дела, подойдут для повторения основ
⏩ https://www.sql-ex.ru/ лучший тренажер по SQL, решайте парочку задач в день и никакие задания на интервью не будут вам страшны
⏩ https://stepik.org/course/63054/promo
https://www.sqlhabit.com
https://sqlzoo.net/ еще несколько тренажеров с задачками для прокачивания практических навыков
⏩ https://stepik.org/course/70710/promo#toc для тех кто уже знает основы и базу и хочет развить знания еще больше.
Гайды по БД и SQL
⏩ https://mode.com/sql-tutorial/ много бесплатных уроков для начинающих, идущих по нарастающей
⏩ https://www.kaggle.com/learn/intro-to-sql
https://www.kaggle.com/learn/advanced-sql короткие уроки от kaggle вводящие в курс дела, подойдут для повторения основ
⏩ https://www.sql-ex.ru/ лучший тренажер по SQL, решайте парочку задач в день и никакие задания на интервью не будут вам страшны
⏩ https://stepik.org/course/63054/promo
https://www.sqlhabit.com
https://sqlzoo.net/ еще несколько тренажеров с задачками для прокачивания практических навыков
⏩ https://stepik.org/course/70710/promo#toc для тех кто уже знает основы и базу и хочет развить знания еще больше.
Гайды по БД и SQL
👍12
Вопрос: Что вы понимаете под патчами и исправлениями в SQL Server?
Ответ:
Патч - это программа, используемая для исправления определенных проблем в системе и обеспечения такой же безопасности. Исправления - это проприетарные исправления, выпущенные Microsoft. Они предназначены для решения различных проблем, в основном недавно обнаруженных недостатков безопасности.
Исправления проактивно реагируют на ошибки. Это потому, что они предназначены для применения к живым системам. Исправление может быть одним или несколькими файлами.
Гайды по БД и SQL
Ответ:
Исправления проактивно реагируют на ошибки. Это потому, что они предназначены для применения к живым системам. Исправление может быть одним или несколькими файлами.
👍18
Airtable: рецепт молниеносного создания баз данных и таблиц
Airtable представляет собой платформу из разряда low-code, т.е. практически не требует написания программного кода. Она позволяет любому создавать реляционные базы и визуализировать данные, не требуя для этого даже знания SQL и Excel.
Подумайте, сколько времени вы бы потратили на выполнение следующего задания...
⤷ Читать дальше
Гайды по БД и SQL
Airtable представляет собой платформу из разряда low-code, т.е. практически не требует написания программного кода. Она позволяет любому создавать реляционные базы и визуализировать данные, не требуя для этого даже знания SQL и Excel.
Подумайте, сколько времени вы бы потратили на выполнение следующего задания...
⤷ Читать дальше
Гайды по БД и SQL
👍21
Вопрос с собеседования Twitter
Найдите сотрудника с самой высокой зарплатой в каждом отделе. Выведите название отдела, имя сотрудника и соответствующую зарплату.
Найдите сотрудника с самой высокой зарплатой в каждом отделе. Выведите название отдела, имя сотрудника и соответствующую зарплату.
employee
id:int
first_name:varchar
last_name:varchar
age:int
sex:varchar
employee_title:varchar
department:varchar
salary:int
target:int
bonus:int
email:varchar
city:varchar
address:varchar
manager_id:int
ОТВЕТ:SELECT department as department,
first_name as employee_name,
salary
FROM employee
WHERE (department, salary) IN
(SELECT department, MAX(salary)
FROM employee
GROUP BY department)
Гайды по БД и SQL👍24
Оконные функции в SQL — что это и зачем они нужны
Многие разработчики, даже давно знакомые с SQL, не понимают оконные функции, считая их какой-то особой магией для избранных. И, хотя реализация оконных функций поддерживается с SQL Server 2005, кто-то до сих пор «копипастит» их со StackOverflow, не вдаваясь в детали. Этой статьёй мы попытаемся развенчать миф о неприступности этой функциональности SQL и покажем несколько примеров работы оконных функций на реальном датасете.
⤷ Ссылка на статью
Гайды по БД и SQL
Многие разработчики, даже давно знакомые с SQL, не понимают оконные функции, считая их какой-то особой магией для избранных. И, хотя реализация оконных функций поддерживается с SQL Server 2005, кто-то до сих пор «копипастит» их со StackOverflow, не вдаваясь в детали. Этой статьёй мы попытаемся развенчать миф о неприступности этой функциональности SQL и покажем несколько примеров работы оконных функций на реальном датасете.
⤷ Ссылка на статью
Гайды по БД и SQL
👍18
Работаем с данными. Кто кого: Pandas VS SQL
Еще порядка 10 лет назад для работы по исследованию данных было достаточно SQL, как инструмента для выборки данных и формирования отчетов по ним. Но время не стоит на месте, и примерно в 2012 году стала стремительно набирать популярность Python-библиотека Pandas. И вот сегодня уже сложно представить работу Data Scientist’а без данного модуля.
Не буду подробно углубляться в то, что предоставляют из себя оба инструмента ввиду их популярности среди аналитиков и исследователей данных, но небольшую справку все-таки оставлю...
⤷ Читать дальше
Гайды по БД и SQL
Еще порядка 10 лет назад для работы по исследованию данных было достаточно SQL, как инструмента для выборки данных и формирования отчетов по ним. Но время не стоит на месте, и примерно в 2012 году стала стремительно набирать популярность Python-библиотека Pandas. И вот сегодня уже сложно представить работу Data Scientist’а без данного модуля.
Не буду подробно углубляться в то, что предоставляют из себя оба инструмента ввиду их популярности среди аналитиков и исследователей данных, но небольшую справку все-таки оставлю...
⤷ Читать дальше
Гайды по БД и SQL
❤18👍1
Как работать с GreenPlum через командную строку
Многие сталкивались с проблемами в работе инструментов для управления базами данных. То графический интерфейс долго загружается, то зависает в самый ненужный момент, или просто нет нормальной возможности выгрузить результат в файл. Основные проблемы связаны с нагромождением дополнительного функционала, который в большинстве случаев не нужен.
⤷ Читать дальше
Гайды по БД и SQL
Многие сталкивались с проблемами в работе инструментов для управления базами данных. То графический интерфейс долго загружается, то зависает в самый ненужный момент, или просто нет нормальной возможности выгрузить результат в файл. Основные проблемы связаны с нагромождением дополнительного функционала, который в большинстве случаев не нужен.
⤷ Читать дальше
Гайды по БД и SQL
👍15
5 рекомендаций по оптимизации запросов SQL
Также как небольшие улучшения повышают качество запросов, так и мелкие некорректные навыки могут снизить качество и понятность кода в долгосрочной перспективе. Следовательно, пора избавиться от непродуктивных навыков SQL, а взамен сформировать новые и эффективные. Этим мы сейчас и займемся.
⤷ Ссылка на статью
Гайды по БД и SQL
Также как небольшие улучшения повышают качество запросов, так и мелкие некорректные навыки могут снизить качество и понятность кода в долгосрочной перспективе. Следовательно, пора избавиться от непродуктивных навыков SQL, а взамен сформировать новые и эффективные. Этим мы сейчас и займемся.
⤷ Ссылка на статью
Гайды по БД и SQL
👍13
Задачи с собеседования
Найти идентификатор с максимальным значением
Решение:
WITH sal_rank AS
(SELECT
empno,
RANK() OVER(ORDER BY salary DESC) rnk
FROM
salaries)
SELECT
empno
FROM
sal_rank
WHERE
rnk = 1;
Гайды по БД и SQL
Найти идентификатор с максимальным значением
depname | empno | salary |
-----------+-------+--------+
develop | 11 | 5200 |
develop | 7 | 4200 |
develop | 9 | 4500 |
develop | 8 | 6000 |
develop | 10 | 5200 |
personnel | 5 | 3500 |
personnel | 2 | 3900 |
sales | 3 | 4800 |
sales | 1 | 5000 |
sales | 4 | 4800 |
Задача: написать запрос, чтобы получить empno с самой высокой зарплатой. Убедитесь, что ваше решение обрабатывает случаи одинаковых зарплатами!Решение:
WITH max_salary AS (
SELECT
MAX(salary) max_salary
FROM
salaries
)
SELECT
s.empno
FROM
salaries s
JOIN
max_salary ms ON s.salary = ms.max_salary
Альтернативное решение с использованием RANK():WITH sal_rank AS
(SELECT
empno,
RANK() OVER(ORDER BY salary DESC) rnk
FROM
salaries)
SELECT
empno
FROM
sal_rank
WHERE
rnk = 1;
Гайды по БД и SQL
👍24
100+ шпаргалок для аналитиков данных и data scientists
Шпаргалки помогут:
🔹 подготовиться к экзамену
🔹 подготовиться к собеседованию
🔹 в повседневной работе – быстро вспомнить нужную информацию
Гайды по БД и SQL
Шпаргалки помогут:
🔹 подготовиться к экзамену
🔹 подготовиться к собеседованию
🔹 в повседневной работе – быстро вспомнить нужную информацию
Гайды по БД и SQL
👍15
Задание SQL с реального собеседования
Вводные данные:
Есть таблица анализов Analysis:
Эта задача среднего уровня: ее можно давать как Middle, так и Junior специалистам. Здесь проверяется базовое понимание оконных функций, джоинов и группировок.
Примечание После того, как вы написали первую версию своего запроса, попробуйте его оптимизировать. Например, в данном примере мы используем CTE — обобщенные табличные выражения.
Гайды по БД и SQL
Вводные данные:
Есть таблица анализов Analysis:
an_id — ID анализа;
an_name — название анализа;
an_cost — себестоимость анализа;
an_price — розничная цена анализа;
an_group — группа анализов.
Есть таблица групп анализов Groups:
gr_id — ID группы;
gr_name — название группы;
gr_temp — температурный режим хранения.
Есть таблица заказов Orders:
ord_id — ID заказа;
ord_datetime — дата и время заказа;
ord_an — ID анализа.
Формулировка задачи: нарастающим итогом рассчитать, как увеличивалось количество проданных тестов каждый месяц каждого года с разбивкой по группе.Эта задача среднего уровня: ее можно давать как Middle, так и Junior специалистам. Здесь проверяется базовое понимание оконных функций, джоинов и группировок.
Примечание После того, как вы написали первую версию своего запроса, попробуйте его оптимизировать. Например, в данном примере мы используем CTE — обобщенные табличные выражения.
Гайды по БД и SQL
👍15
Вопросы по СУБД
Что такое транзакция? Приведите пример, где это может пригодиться. Расскажите про свойства транзакций и уровень изолированности.
Ответ:
Транзакция объединяет последовательность действий в одну операцию и обеспечивает выполнение либо всех действий из последовательности, либо ни одного. Канонический пример — списывание денег с одного счета и зачисление на другой, что требует два update-а, которые гарантированно должны выполниться или не выполниться вместе.
Что такое server side cursor и зачем он нужен?
Ответ:
Способ работы с результатом запроса в базу данных, который позволяет не загружать весь объем данных в память, позволяет работать с большими объемами данных. Дополнительно углубленно можно поговорить про особенности работы в связке с pgbouncer.
Гайды по БД и SQL
Что такое транзакция? Приведите пример, где это может пригодиться. Расскажите про свойства транзакций и уровень изолированности.
Ответ:
Ответ:
👍9🔥4
Хороший урок с задачами SQL
Есть разные виды баз данных, но этот урок посвящен базам данных, поддерживающим язык SQL. В них любые операции над данными - добавление, удаление, поиск - делаются с помощью отправки SQL-запросов. Сам язык достаточно простой и запросы на нем напоминают обычные предложения на английском языке. Ну к примеру, запрос на удаление из БД пользователя с email ivan@example.com выглядит так: DELETE FROM users WHERE email = 'ivan@example.com'. Если знать английский ("удалить из пользователей где email равен 'ivan@example.com'"), то смысл запроса легко понять, даже не зная SQL. Запросы может отправлять как сам разработчик вручную, так и написанная им программа.
⤷ Ссылка на статью
Гайды по БД и SQL
Есть разные виды баз данных, но этот урок посвящен базам данных, поддерживающим язык SQL. В них любые операции над данными - добавление, удаление, поиск - делаются с помощью отправки SQL-запросов. Сам язык достаточно простой и запросы на нем напоминают обычные предложения на английском языке. Ну к примеру, запрос на удаление из БД пользователя с email ivan@example.com выглядит так: DELETE FROM users WHERE email = 'ivan@example.com'. Если знать английский ("удалить из пользователей где email равен 'ivan@example.com'"), то смысл запроса легко понять, даже не зная SQL. Запросы может отправлять как сам разработчик вручную, так и написанная им программа.
⤷ Ссылка на статью
Гайды по БД и SQL
👍11