SQL простыми словами

На основе материалов спикеров курса “SQL с 0 для анализа данных” собрали все, что нужно знать об SQL на первых порах. Привели реальные кейсы использования языка запросов и показали, как написать ваш первый код.

Навигация

Что такое SQL?

SQL, или Structured Query Language, — это язык структурированных запросов, использующийся для работы с базой данных: извлечения, обновления, добавления и удаления информации из нее. То есть, SQL — язык запросов для “общения” с данными.

Представить можно так:

Только вместо всем нам понятной фразы “принеси чай” используется особый синтаксис, другой язык. При работе с данными, как и при разговоре с представителем другой страны, вы будете использовать язык, понятный собеседнику, в нашем случае — компьютеру:

Кому и для чего нужно знать SQL?

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

  • Извлечение данных

С помощью SQL вы работаете с данными, которые уже собирает ваша компания. Например, у сервиса ЯндексТакси есть данные по поездкам, таксистам, пользователям, работе службы поддержки и так далее. Так, с помощью SQL можно извлечь информацию по всем поездкам в Москве в промежуток с 18 до 19 часов для анализа спроса в час-пик.

  • Изменение данных

К примеру, изменить имена всех пользователей “Татьяна” на “Марина”. Если представить более реалистичный кейс — можно исключить из базы данных пользователей, которые попали в нее по ошибке.

  • Добавление данных

SQL позволяет объединять базы данных, выгружать скачанные БД (например, какую-то информацию от ваших конкурентов) для дальнейшего анализа.

  • Валидация данных

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

  • Скорость

Как уже упоминали, SQL полезен не только аналитикам. Представим, что вы продакт, вам необходимо быстро проверить новую гипотезу, а для этой задачи без данных не обойтись. Гораздо быстрее постановки ТЗ и согласования с аналитиками.

Примеры использования SQL:

  • Онлайн-магазин: посчитать количество покупателей из Самары за предыдущий год
  • Видео-платформа: найти топ-10 фильмов, у которых было больше всего просмотров за 2020 год в категории “комедии”
  • Маркетинг: найти email пользователей, которые совершили покупку после нажатия на кнопку в рассылке
  • Игры: определить, на каких уровнях игры пользователи тратят больше всего времени и после каких перестают заходить в приложение

Зачастую функционала GoogleAnalitics, YandexMetrics, Excel и Tableau бывает недостаточно из-за слишком большого объема данных, долгой настройки или сложных экспериментов. Поэтому большинство компаний и используют SQL.

С чего начать?

Систем управления базами данных (СУБД) несколько, например, MySQL, Oracle, SQLServer или PostgreSQL. На курсе “SQL с 0 для анализа данных” Анна Атласова, бизнес-аналитик из Amazon, для начала советует попрактиковаться на web-версии SQLite.

Как и любой язык, SQL имеет определенные слова, которые выстраиваются в предложения, или команды. Рассмотрим пару базовых SQL-запросов на примере данных.

Открываем SQLite, загружаем базу данных.

SQLite -> File -> Open DB

В примере будем использовать БД Airbnb, сервиса для аренды жилья, ее мы даем на курсе (делимся лайфхаком: если уже оставляли заявку, попросите своего менеджера дать демо-доступ к нашей платформе, сможете попрактиковаться на этой базе данных). Открываем, слева появляются таблицы “hosts” и “listings”, то есть владельцы и информация о самом жилье (квартиры/дома/комнаты и тд).

Пришло время сделать первый запрос.

Чтобы посмотреть на всю таблицу целиком, запрашиваем (SELECT) все данные (*) из (FROM) таблицы владельцев (hosts). Получаем нашу таблицу под блоком ввода кода.

На скриншоте выше, видно, например, что Анна с id 43984 является владельцем жилья в Ирландии на Airbnb с 7 октября 2009 года. “F” в последнем столбце означает, что девушка не явлется супер-хостом (особый статус на сервисе), то есть значение в столбце = false.

Чтобы выдало конкретные столбцы, вместо * прописываем их названия.

SELECT Name, Location

FROM hosts

Так мы получим таблицу из 2х столбцов: имени и местоположения.

SELECT что мы хотим (столбец/-цы) FROM откуда мы хотим (таблица)

Чтобы ограничить строки, используем LIMIT число. Например, LIMIT 3, тогда в нашей таблице появятся только 3 строки.

Слишком просто?

Копаем глубже

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

  • Для вывода числа будет достаточно использовать сами числа. Например:

SELECT *

FROM hosts

WHERE id = 43984

  • Для текста используем кавычки:

SELECT *

FROM hosts

WHERE name = ‘Anna’

  • Для даты — формат “год-месяц-число”

SELECT *

FROM hosts

WHERE host_since = '2009-10-07’

Оператор WHERE задает условие, то есть, например, “Я хочу вывести все данные из таблицы с владельцами жилья, у кого id соответствует 43984” (скорее всего результат получим один, обычно id не повторяются) или “Я хочу вывести все данные владельцев, кого зовут Анна” (здесь уже не факт, что результат будет единственным).

С оператором WHERE также можно использовать знаки больше или меньше: “<”, “>”, они, например, позволяют отфильтровать владельцев жилья, попавших в БД после определенной даты. Сделать это можно так: WHERE host_since > ‘2010-01-01’. В таблице получим всех хостов, присоединившихся к Airbnb после 1 января 2010.

Порядок ключевых слов в SQL

С некоторыми ключевыми словами мы уже познакомились, поэтому обратим внимание на важную особенность работу SQL — все ключевые слова и операторы должны иметь определенный порядок:

  • SELECT
  • FROM
  • WHERE
  • GROUP BY
  • HAVING
  • ORDER BY
  • LIMIT

При нарушении порядка, SQL запутается и перестанет вас понимать :(

Важно еще отметить, что SELECT и FROM — ключевые слова, остальные — опциональные, поэтому использовать WHERE или другие операторы без SELECT FROM не получится.

Парочку интересных фактов

Немного расслабимся и перейдем к рандомным фактам об SQL.

  • SQL был придуман еще в 1970-х, после чего до 2003 стадартизировался и улучшался. Сейчас мы базово все еще работаем на версии двадцитилетней давности, несмотря на несколько доработок и появление множества “диалектов”.
  • Раньше SQL назывался SEQL (Structured English Query Language), поэтому многие специалисты продолжают использовать эту аббревиатуру, произнося “сикуэл”, а не “эс-кью-эл”. В документациях нередко встречаются оба варианта, поэтому оба можно считать верными.
  • SQL не является языком программирования, так как не может делать циклы или архитектуры.
  • Обучаться SQL как аналитикам, так и продактам лучше всего на курсе от ProductStar, ознакомиться с программой и навыками, которые получите после прохождения обучения можно здесь.
0
6 комментариев
Написать комментарий...
Some

Спасибо вам за статью, было познавательно для меня!

Ответить
Развернуть ветку
ProductStar
Автор

Рады, что материал оказался полезен!

Ответить
Развернуть ветку
Шавкат Каримов

А что за женщина на скрине?

Ответить
Развернуть ветку
ProductStar
Автор

Миранда Присли (Мерил Стрип) — героиня из "Дьявол носит Прада"

Ответить
Развернуть ветку
Сергей Паников

Маловато инфы :)

Ответить
Развернуть ветку
ProductStar
Автор

Какой информации не хватило? Статья написана по первым нескольким урокам нашего курса.

Ответить
Развернуть ветку
3 комментария
Раскрывать всегда