Каждый день вы проверяете почту, переводите деньги другу, покупаете онлайн или пользуетесь поисковиком. Все они в своей работе используют базы данных и язык запросов SQL.
SQL (сокращение от англ. Structured Query Language) — это язык запросов, который применяют, чтобы работать с базами данных, структурированных особым образом. Главные задачи SQL — составлять запросы так, чтобы находить среди большого объёма информации ту, что нужна для конкретных целей, сортировать её, структурировать и представлять в наиболее простом и понятном виде.
Чтобы понять, зачем нужен язык SQL, представьте, что женщина выбирает в интернет-магазине летнее платье жёлтого цвета и хочет уложиться в 5 тысяч рублей. Всего в магазине 10 тысяч платьев. Если просто перебирать их по каталогу, уйдёт несколько часов. Но можно задать в фильтрах настройки по категории, сезону, цвету, цене и сразу найти нужные модели. Эти фильтры работают за счёт языка запросов SQL.
Первый прототип языка SQL представила в 1979 году компания-разработчик Oracle. Сначала это был простейший инструмент для извлечения нужных данных, вроде фильтров в Excel-таблицах. С годами он усложнился, и теперь его применяют в качестве одного из основных инструментов для обработки данных. С помощью SQL можно:
● собирать и хранить данные в виде таблиц; ● изменять их содержимое и структуру; ● объединять данные и выполнять вычисления; ● защищать и распределять доступ.
● Это язык запросов, а не программирования. Его используют в дополнение к Python, JavaScript или C++, но только для работы с базами данных. Написать на нём полноценный сайт или приложение невозможно. ● Чёткая и понятная структура. Это делает язык SQL для работы с данными относительно простым для начинающих. ● Универсальность. Есть единые стандарты построения запросов для любых баз данных и браузеров, которые позволяют обрабатывать даже очень большие объёмы информации. ● Совместный доступ. SQL позволяет создавать интерактивные запросы. Это значит, что можно получать нужные данные онлайн и принимать решения на их основе. ● Управление доступом. При помощи SQL можно предоставить, закрыть или ограничить доступ к данным для разных групп пользователей, а также выдать им определённый набор функций: чтение, изменение, создание, удаление, копирование. Это защищает базы данных от взлома или несогласованных изменений.
SQL используют в Facebook, Google, Amazon, Uber, Netflix, Airbnb. Например, для того, чтобы показывать пользователям персональные рекомендации на основе того, что они смотрят, читают и лайкают.
Язык SQL нужен разработчикам, тестировщикам, аналитикам данных, администраторам, маркетологам — всем тем, кому по работе нужно выгружать и обрабатывать большие объёмы данных. Правильно организованные запросы помогают извлекать полезную информацию о клиентах и пользователях, сортируют её по определённым категориям, анализируют работу сайта или бизнеса.
Например, интернет-магазин доставляет товары по всей стране. У него обширная база клиентов. Владелец магазина хочет понять, как улучшить доставку и на какие регионы обратить внимание. Для этого он ставит задачу аналитику, который с помощью SQL-запросов выгружает данные о каждом регионе и сортирует их по объёму заказов.
База данных — это способ хранения и организации данных, которые структурированы так, чтобы пользоваться ими могли и человек, и алгоритм.
При помощи SQL можно работать с реляционными базами данных — то есть теми, где данные представлены в виде таблиц. Это отчасти похоже на таблицы в Excel, при этом все таблицы в рамках одной базы данных связаны между собой сквозным поиском.
|Реляционная база данных интернет-магазина объединяет таблицы с данными о клиентах, заказах и товарах|
Структура базы данных SQL состоит из шести элементов:
● Ключ — самый главный столбец, который связывает таблицы данных.
|Ключи разного уровня в таблицах с данными|
Они бывают: - первичными — содержат уникальный идентификатор для каждого объекта, например, артикул; - потенциальными — содержат альтернативный идентификатор; - внешними — содержат ссылку, которая позволяет связать две таблицы, при этом значения ключей в одной таблице соответствуют первичному ключу в другой.
● Отношение — таблица с данными, представленными в строках и столбцах. ● Атрибут — столбец, который содержит наименование, тип, цену или другой параметр. ● Домен — значения, которые допустимы для данного атрибута: например, стоимость в рублях или название кириллическими символами. ● Кортеж — пронумерованная строка, где содержатся все данные о каком-либо объекте. ● Значение — содержимое ячейки в таблице.
Чтобы работать с базами данных при помощи SQL, используют систему управления базами данных, или СУБД — посредник между пользователем и сервером, где находятся таблицы. СУБД представляют собой комплекс ПО, которое позволяет создавать базы данных и управлять ими.
СУБД бывают бесплатными и коммерческими — например, MySQL, Microsoft SQL Server, SQLite, Oracle, Ingres.
|Список платных и бесплатных СУБД и компаний, которые их используют|
Когда пользователь делает запрос к таблице с данными, поэтапно это выглядит так:
Чтобы система проделала все эти операции, используют язык баз данных 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 используется для работы с большими базами данных, в которых информация структурирована особым образом. Он поможет быстро извлекать нужные данные, отфильтровывать их по десяткам разных параметров. ● SQL и СУБД используют крупнейшие IT-компании, интернет-магазины и онлайн-сервисы, где нужно быстро отображать информацию в ответ на миллионы запросов. Среди них — Netflix, Google, Microsoft, Amazon. Поэтому специалисты, которые владеют SQL, очень востребованы. ● Изучить основы языка запросов SQL будет проще тем, кто уже знаком с формулами в Excel-таблицах. ● Знание языка SQL пригодится аналитикам данных, маркетологам, продакт-менеджерам, специалистам по финансам.