Анализ данных  •  27 июля 2022  •  5 мин чтения

Как устроен язык SQL и почему он так востребован

Каждый день вы проверяете почту, переводите деньги другу, покупаете онлайн или пользуетесь поисковиком. Все они в своей работе используют базы данных и язык запросов SQL. Рассказываем, как научиться с ним работать, каким специалистам нужен SQL, в чём его преимущества и недостатки.
Мария Ефимова
Яндекс Практикум
Код-ревьюер на курсе «Аналитик данных»
Ася Зуйкова
Яндекс Практикум
Редактор

Для чего нужен SQL

SQL (сокращение от англ. Structured Query Language) — это язык запросов, который применяют, чтобы работать с базами данных, структурированных особым образом. Главные задачи SQL — составлять запросы так, чтобы находить среди большого объёма информации ту, что нужна для конкретных целей, сортировать её, структурировать и представлять в наиболее простом и понятном виде.

Чтобы понять, зачем нужен язык SQL, представьте, что женщина выбирает в интернет-магазине летнее платье жёлтого цвета и хочет уложиться в 5 тысяч рублей. Всего в магазине 10 тысяч платьев. Если просто перебирать их по каталогу, уйдёт несколько часов. Но можно задать в фильтрах настройки по категории, сезону, цвету, цене и сразу найти нужные модели. Эти фильтры работают за счёт языка SQL.

Первый прототип SQL представила в 1979 году компания-разработчик Oracle. Сначала это был простейший инструмент для извлечения нужных данных, вроде фильтров в Excel-таблицах. С годами он усложнился, и теперь его применяют в качестве одного из основных инструментов для обработки данных. С помощью SQL можно:

● собирать и хранить данные в виде таблиц;

● изменять их содержимое и структуру;

● объединять данные и выполнять вычисления;

● защищать и распределять доступ.

Например, в компании работает 500 сотрудников. 100 из них занимаются продажами и постоянно пользуются CRM, чтобы вносить данные о клиентах: новые договоры, суммы, скидки и контакты. И есть 15 IT-специалистов, которые настраивают, обновляют и меняют структуру CRM, когда это требуется. 20 сотрудников бухгалтерии регулярно выгружают из системы данные об оплатах, выставленные счета и акты на подпись. При помощи SQL можно предоставить всем им доступ только к нужной части CRM, чтобы никто случайно не повредил важные данные или элементы кода.

Особенности языка SQL

● Это язык запросов, а не программирования. Его используют в дополнение к Python, JavaScript или C++, но только для работы с базами данных. Написать на нём полноценный сайт или приложение невозможно.

● Чёткая и понятная структура. Это делает язык относительно простым для начинающих.

● Универсальность. Есть единые стандарты построения запросов для любых баз данных и браузеров, которые позволяют обрабатывать аже очень большие объёмы информации.

● Совместный доступ. SQL позволяет создавать интерактивные запросы. Это значит, что можно получать нужные данные онлайн и принимать решения на их основе.

● Управление доступом. При помощи SQL можно предоставить, закрыть или ограничить доступ к данным для разных групп пользователей, а также выдать им определённый набор функций: чтение, изменение, создание, удаление, копирование. Это защищает базы данных от взлома или несогласованных изменений.

Сфера использования SQL

SQL используют в Facebook, Google, Amazon, Uber, Netflix, Airbnb. Например, для того, чтобы показывать пользователям персональные рекомендации на основе того, что они смотрят, читают и лайкают.

Язык SQL нужен разработчикам, тестировщикам, аналитикам данных, администраторам, маркетологам — всем тем, кому по работе нужно выгружать и обрабатывать большие объёмы данных. Правильно организованные запросы помогают извлекать полезную информацию о клиентах и пользователях, сортируют её по определённым категориям, анализируют работу сайта или бизнеса.

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

Что такое база данных SQL

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

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

Реляционная база данных интернет-магазина объединяет таблицы с данными о клиентах, заказах и товарах
Структура базы данных SQL состоит из шести элементов:

● Ключ — самый главный столбец, который связывает таблицы данных.

Ключи разного уровня в таблицах с данными
      Они бывают:

      - первичными — содержат уникальный идентификатор для каждого объекта, например,          артикул;

      - потенциальными — содержат альтернативный идентификатор;

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

● Отношение — таблица с данными, представленными в строках и столбцах.

● Атрибут — столбец, который содержит наименование, тип, цену или другой параметр.

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

● Кортеж — пронумерованная строка, где содержатся все данные о каком-либо объекте.

● Значение — содержимое ячейки в таблице.

Чтобы работать с базами данных при помощи SQL, используют систему управления базами данных, или СУБД — посредник между пользователем и сервером, где находятся таблицы. СУБД представляют собой комплекс ПО, которое позволяет создавать базы данных и управлять ими.

СУБД бывают бесплатными и коммерческими — например, MySQL, Microsoft SQL Server, SQLite, Oracle, Ingres.

Список платных и бесплатных СУБД и компаний, которые их используют

Работа с SQL: основные операторы

Когда пользователь делает запрос к таблице с данными, поэтапно это выглядит так:

  1. Клиент — интерфейс, который используется для создания запроса. Например, строка поиска в Яндексе.
  2. СУБД (система управления базами данных) — отвечает за передачу запроса от пользователя к базе данных и возвращает ответ в понятном ему виде.
  3. База данных — таблицы, где данные структурированы и связаны друг с другом так, чтобы быстро находить нужное.

Чтобы система проделала все эти операции, используют язык баз данных SQL. Это делают с помощью специальных команд — операторов.

Вот основные типы операторов SQL:

● DDL (Data Definition Language) — операторы определения данных, которые работают с целыми таблицами. Например: CREATE — чтобы создать таблицу (TABLE) или базу данных (DATABASE), DROP (TABLE/DATABASE) — чтобы удалить всю таблицу или базу данных, USE — чтобы выбрать нужную базу данных.

● DML (Data Manipulation Language) — операторы манипуляции данными, которые работают с содержимым таблиц. Например, UPDATE — чтобы обновить данные, DELETE — чтобы удалить, INSERT — чтобы добавить новые, SELECT (FROM/WHERE) — чтобы выбрать нужные данные по заданному параметру.

● DCL (Data Control Language) — оператор определения доступа к данным для разных пользователей. Например, GRANT — чтобы открыть доступ или DENY — чтобы запретить.

● SQL клиент-сервер — для управления доступом к данных для разных пользователей.

● SQL трёхуровневой архитектуры — для защиты данных от несанкционированного копирования и распространения.

Кроме операторов используют TCL (Transaction Control Language) — язык управления транзакциями, то есть сериями команд, которые выполняются поочередно. Если хотя бы одна из команд не выполнена, все последующие тоже отменяются. Так происходит, к примеру, с оплатой онлайн, когда нужно последовательно ввести данные и подтвердить платёж. Например, BEGIN TRANSACTION — начало транзакции, COMMIT TRANSACTION — изменение команд в цепочке, а SAVE TRANSACTION — промежуточная точка сохранения внутри транзакции.

Как начать работу с SQL

Шаг 1: Посмотреть обучающие ролики и прочитать книги по теме.

Например, «SQL. Полное руководство», «Программирование баз данных SQL. Типичные ошибки и их устранение» или «Введение в системы баз данных». Это поможет понять в теории, как устроены базы данных и СУБД, как писать запросы и создавать таблицы.

Шаг 2: Ознакомиться с самыми популярными СУБД.

Основные — это Oracle, MySQL, PostgreSQL, Microsoft SQL Server. С помощью книг, видеороликов или онлайн-курсов можно разобраться, в чём особенности и отличия каждой СУБД, и какую выбрать.

Шаг 3: Попробовать силы в онлайн-тренажёрах.

Это поможет набить руку на простейших командах, а затем переходить к более сложным упражнениям или даже реальным СУБД.

С помощью онлайн-тренажёра на курсе «SQL для работы с данными и аналитики» можно попрактиковаться в написании самых простых или более сложных запросов.

Пример задачи в демо-тренажёре: нужно отобразить все данные из таблицы с аэропортами
Шаг 4: Пройти курсы.

На курсах дают систематизированные знания, которые можно сразу применить на практике.

Например, курс «SQL для работы с данными и аналитики» подойдёт и тем, кто уже знаком с SQL или Python, и тем, кто хочет изучить его с нуля, чтобы применять для рабочих задач, продуктовой аналитики, маркетинговых исследований. Он поможет освоить нужные навыки за полтора месяца. Обучение построено так, чтобы полученные знания сразу отрабатывали на практике и понимали, для чего они нужны.

Главное об SQL

● Язык запросов SQL используется для работы с большими базами данных, в которых информация структурирована особым образом. Он поможет быстро извлекать нужные данные, отфильтровывать их по десяткам разных параметров.

● SQL и СУБД используют крупнейшие IT-компании, интернет-магазины и онлайн-сервисы, где нужно быстро отображать информацию в ответ на миллионы запросов. Среди них — Netflix, Google, Microsoft, Amazon. Поэтому специалисты, которые владеют SQL, очень востребованы.

● Изучить основы языка запросов будет проще тем, кто уже знаком с формулами в Excel-таблицах.

● Знание SQL пригодится аналитикам данных, маркетологам, продакт-менеджерам, специалистам по финансам.

Поделиться 
Fri Sep 09 2022 22:11:41 GMT+0300 (Moscow Standard Time)