Анализ данных   •  13 марта  2023  •  5 мин чтения

Базовые вопросы: как SQL помогает анализировать данные для бизнеса

Операторы SQL — команды, которые помогают добывать нужные данные из огромных массивов информации. Разберём, какие они бывают и как их использовать новичку.

Что такое SQL

В мире столько информации, что хранить её в отдельных Excel-таблицах или текстовых документах уже сложно. Для этого используют базы данных. Они помогают хранить большое количество информации в организованном виде. Например, у компании может быть своя база данных со списком клиентов, сотрудников, складских остатков и заказов. Эти данные можно проанализировать, чтобы понять, как улучшить процессы и увеличить прибыль.

Базы данных бывают реляционными и нереляционными. В реляционных информация хранится в виде таблиц, в нереляционных — в виде документов, пар «ключ-значение» и других нетабличных форматах.

Чтобы совершать операции с данными, используют систему управления базами данных (сокр. СУБД). СУБД берёт запрос, передаёт его базе и возвращает пользователю результат. Самые известные реляционные СУБД — PostgreSQL, MySQL, Oracle, Microsoft SQL.

Чтобы получить из базы информацию, используют оператор или команду — слово или символ, которые помогают формировать запросы к базе. Запросы пишут на языке SQL. С их помощью можно создавать и менять информацию, формировать выборки. Например, выгрузить все заказы интернет-магазина за последний месяц.

Операторы или команды, написанные на SQL, указывают СУБД, какой результат нужно получить, СУБД запрашивает данные у базы и формирует из них таблицу с выборкой

Писать запросы на SQL — востребованный навык для специалистов, которые работают с данными. На курсе «SQL для работы с данными и аналитики» студенты осваивают SQL c нуля и учатся писать запросы для реальных проектов. Например, анализируют поведение пользователей на платформе для блогов. Вычисляют интервал между регистрацией и временем создания первого поста, чтобы понять, насколько платформа удобна для пользователей.

Группы операторов SQL

В SQL есть несколько групп операторов:

Команды для работы с данными. CREATE, DELETE, INSERT, SELECT помогают создавать и удалять таблицы, менять в них данные и выгружать данные.
Логические. Их используют, чтобы усложнять запросы и формировать более точные выборки. Например, добавлять больше одного условия или исключать данные.
Арифметические. Помогают совершать операции с данными таблицы — делить, вычитать, умножать. Обозначаются примерно как в математике: +, -, /, *.
Операторы сравнения SQL используют, когда нужно выбрать из таблицы данные относительно определённых значений. Например, все товары, стоимость которых больше 2000 рублей.

В SQL десятки команд, но SELECT, FROM и WHERE присутствуют практически в каждом SQL-запросе. Эти три оператора — фундамент запросов к базе, а более сложные запросы — комбинации этих команд с другими. Те, кто регулярно используют SQL, со временем запоминают большинство операторов. А начинающие аналитики и разработчики часто пользуются шпаргалкой по основным командам SQL.

Как научиться работать с базами данных
Шпаргалка для начинающих: основные SQL‑команды, которые помогут быстро составлять запросы

Основные операторы языка SQL

Попробуем написать несколько простых SQL-запросов с помощью основных команд. Будем использовать готовую таблицу из демонстрационной базы данных больницы — Patients.

Учебная база данных с пациентами состоит из нескольких таблиц: данные пациентов, врачей, информация о приёмах
SELECT+FROM+WHERE

SELECT — основной оператор SQL, он нужен для извлечения данных.

FROM указывает, откуда эти данные нужно выбрать, и создаёт набор результатов.

WHERE уточняет выборку, сформированную с помощью FROM. Он возвращает только те данные, которые соответствуют требованиям запроса, и указывает точное место в базе данных, где находится результат. Если его не использовать, выборка получится неинформативной. Например, вернутся все поля из базы данных с клиентами вместо тех, где указан конкретный город доставки.

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

Значок * показывает, что мы ищем значения во всех полях таблицы Patients. WHERE gender='M' — условие выборки: показать поля, где указан мужской пол

Результат выборки — таблица с пациентами-мужчинами
AND и NOT

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

NOT, наоборот, исключает указанные значения из таблицы.

Выберем пациентов мужского пола из города Гамильтон.

Оператор AND позволяет добавить в запрос два условия: пол и город
Результат — таблица с пациентами-мужчинами из Гамильтона
Выберем пациентов не мужского пола.
Оператор NOT переворачивает условие самого первого запроса. Теперь в выборку попадут любые поля, кроме тех, где указан мужской пол
Получилась выборка с пациентами-женщинами
Теперь усложним условия выборки — в неё должны попасть пациенты из города Гамильтон, но не мужского пола.
Логический оператор SQL <> используют, когда условий несколько и одно из них «в выборке не должно встречаться определённое значение»
Если бы нужно было просто выбрать всех, кроме пациентов-мужчин, то можно было бы использовать оператор NOT. Но есть второе условие — для такого запроса оператор NOT уже не подходит. Нужен логический оператор <>. Буквально его можно расшифровать как «меньше, больше». Для базы данных это сигнал, что по одному из условий определённое значение нужно исключить из выборки.
Результат выборки по этим двум условиям — пациентки из города Гамильтон
ORDER BY

Оператор SELECT порой возвращает выборку в неопределённом порядке. Чтобы добавить логику и отсортировать результаты, используют команду ORDER BY.

Отсортируем пациентов по городу в алфавитном порядке.

С помощью * указываем, что искать нужно по всем полям и применяем оператор ORDER BY к названию колонки — город
Получается выборка из пациентов, отсортированных по городу. Города в таблице идут в алфавитном порядке
LIMIT

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

Используем оператор LIMIT, чтобы ограничить выборку первыми тремя строками
Получается выборка с первыми тремя ID пациентов

Использование операторов SQL в работе

Разработчики собирают данные о финансах, логистике, маркетинге компании в базы. Аналитики изучают эти данные и выдвигают гипотезы — как улучшить показатели. Они используют синтаксис SQL, чтобы сформировать правильный запрос и получить данные для этих гипотез.

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

● какой была погода в год лучших продаж;
● как растут продажи в сезон отпусков за последние 5 лет;
● как связаны продажи и различные макроэкономические показатели — инфляция, курс валют.

Чтобы делать такие выборки, нужно уметь формировать более сложные запросы, чем те, что мы рассмотрели до этого. Новичкам нужно сначала набить руку на задачах попроще. Для этого есть тренировочные базы данных и онлайн-тренажёры, которые берут из них данные. Например, база данных для PostgreSQL — авиаперевозки по России.

Попробуем решить задачу, используя информацию из этой базы, — выведем все рейсы из Москвы.

В условиях не пишут, где конкретно искать перелёты. Но есть комментарий: «Поля в результирующей таблице: *». Значок * = все поля
В базе данных несколько таблиц. Trip — купленные билеты. Passenger — пассажиры, которые купили билет. Pass_in_trip — таблица, которая связывает купленные билеты с пассажирами. Company — авиакомпании
1. Выясним, как в базе данных обозначен город Москва. На схеме базы данных есть таблица Trip, а в ней — поле town_from — «город откуда». Значит, там хранится список городов вылета. Но прежде чем формировать выборку, нужно понять, как город обозначен в таблице: Moscow или что-то покороче, вроде MOW.
Ограничим количество строк до первых десяти с помощью команды LIMIT. C меньшей таблицей запрос для задачи будет обрабатываться быстрее
Запрос выполнен: Москва в поле указана как Moscow

2. Формируем выборку с рейсами, которые вылетели из Москвы. Для этого пишем запрос:

SELECT * означает, что мы выбрали все поля.
FROM Trip — указываем, из какой таблицы нужны данные.
WHERE
town_from = 'Moscow' — условие выборки: взять из столбца с городом отправления значения, которые соответствуют Москве.

Готово: получили выборку из четырёх рейсов, которые вылетели из Москвы

Совет эксперта

Мария Ефимова
Тем, кто только начинает изучать SQL, нужно как можно больше практиковаться. Лучше начать с простых запросов вроде SELECT FROM и постепенно усложнять задачу. Например, пробовать применять оконные функции. Их часто используют, чтобы создавать страницы с показателями бизнеса. Например, количество договоров и средний размер задолженности по кредитам в одном из подразделений банка.
Поначалу запросы могут работать медленно. Это не страшно, главное — чтобы они выполнялись без ошибок. Дальше можно пробовать их оптимизировать — использовать разные команды, менять логику и смотреть, какие запросы будут выполняться быстрее.

Статью подготовили:

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Wed Aug 21 2024 15:52:12 GMT+0300 (Moscow Standard Time)