Что такое SQL

Что такое SQL

В этой статье мы познакомимся с языком запросов SQL. Узнаем, что он может делать с данными и как он работает. А также рассмотрим популярные системы управления базами данных.

Когда дело касается работы с огромными базами данных, не поможет ни Python, ни JavaScript. На помощь приходит SQL! Что это за язык? Давайте разберемся ↓

Определение

SQL (Structured Query Language) — это язык структурированных запросов для работы с реляционными базами данных и взаимодействий с их содержимым.

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

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

Где используют SQL и для чего он нужен

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

  • Бизнес-аналитика: для создания отчетов о ключевых метриках, производительности, финансах и других аспектах деятельности компании.
  • Веб-разработка: для взаимодействия с пользовательскими данными, информацией о заказах, статистикой и прочей информацией оттуда. Базы данных есть у всех интернет-магазинов.
  • Аналитика данных: для создания аналитических моделей и выявления паттернов (закономерностей) в данных.
  • Мобильные приложения: для кэширования данных, синхронизации пользовательских профилей и истории действий.
  • Наука: для анализов результатов исследований и составления отчетов.
  • Финансовые учреждения: для управления клиентскими данными, генерации финансовой отчетности, анализа рисков и прогнозирование рыночной динамики.
  • Государственных системы: с помощью SQL-запросов осуществляется обновление и анализ данных о демографии, здравоохранении, образовании населения. Информация о гражданах, документах, доходах и налогах также хранится в реляционных базах данных.
  • Gamedev: для работы MMORPG с миллионами игроков. Эти игры предусматривают наличие обширных хранилищ с информацией о пользователе, его персонажах, их характеристиках и инвентаре.
  • Маркетинг: для таких вещей, как анализ поведения и сегментация клиентов и исследование маркетинговых каналов.

Примеры компаний, работающих с реляционными базами

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

  • Google. С помощью SQL компания управляет поисковыми запросами, анализирует поведение пользователей, повышает эффективность рекламных кампаний и управляет облачной инфраструктурой.
  • Facebook. Социальная сеть хранит данные о пользователях и метаданные, управляет трафиком и оптимизирует алгоритмы подбора контента. Эта информация хранится в базах данных, которые требуют управления.
  • Ozon. Интернет-магазину необходимо постоянно вносить, удалять и обновлять информацию о товарах, заказах, транзакциях и пользователях.
  • Microsoft. Компания понимает ценность SQL, как никто другой. Ее командой была разработана собственная реляционная система управления базами данных SQL Server. Она используется для разработки и тестирования программного обеспечения.
  • Uber. С помощью запросов в базу данных осуществляется обновление информации о тарифах, акциях, водителях, клиентах и поездках.

Кому нужно знать язык запросов

Язык запросов SQL в своей работе используют разработчики программного обеспечения, бизнес-аналитики, мобильные разработчики, специалисты по машинному обучению, разработчики и тестировщики игр, NLP-специалисты и инженеры по кибербезопасности. Простота языка позволяет работать с базами данных даже тем, кто не связан с IT: например, маркетологам и менеджерам. Давайте подробнее пройдемся по профессиям, где знание SQL необходимо как воздух ↓

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

Data Scientist и Data Analyst. Специалисты по данным постоянно работают с базами данных. Процесс извлечения информации, ее анализа и выявление паттернов можно упростить и ускорить с помощью SQL-запросов.

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

QA инженер. Тестировщикам необходимо проверять корректность работы API, тестировать взаимодействия между элементами веб-сервисов и приложений, проверять целостность данных. И все это можно делать с помощью грамотных SQL-запросов.

Web-, backend- и fullstack- разработчики. Большинство веб-приложений хранят свои данные в базах. Их создание, настройка и последующее взаимодействие с ними ложатся на плечи специалиста, отвечающего за backend.

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

* Обо всех видах баз данных читайте тут.

Как вы уже знаете, SQL работает с реляционными базами данных. Они напоминают таблицы Excel, где информация строго упорядочена в строки и столбцы. Вот основные понятия, которые пригодятся для работы с базами данных SQL:

  • Отношение — сама таблица
  • Атрибут — столбец с одним параметром, например, ценой
  • Домен — тип данных, которые могут относиться к столбцу, например, только числа
  • Кортеж — строка с порядковым номером, принадлежащая одному объекту
  • Первичный ключ — уникальный идентификатор одного объекта
  • Потенциальный ключ — альтернативный идентификатор
  • Внешний ключ — ссылка, связывающая таблицы
  • Значение — содержимое ячейки в таблице.

Виды СУБД и их различия

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

По языку запросов:

  • SQL
  • NoSQL — используется для работы с Big Data и нереляционными базами данных.

По способу расположения баз данных:

  • Локальные — все данные на одном носителе
  • Распределенные — база данных находится в облаке или на разных устройствах.

По количеству пользователей:

  • Однопользовательская — для самостоятельной работы
  • Многопользовательская — для коллективного пользования.

По способу хранения данных:

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

По области применения:

  • Бизнес-ориентированные — предназначены для хранения и управления данными бизнес-приложений
  • Геоинформационные — специализированные СУБД для работы с географической информацией
  • Временные — специализируются на обработке временных данных, таких как журналы событий и логи.

Популярные СУБД

SQLite. Встраиваемая реляционная СУБД, подходящая для небольших проектов, например, мобильных приложений.

Oracle Database. Мощная клиент-серверная система с высокой производительностью. Используется в корпоративной среде, финансах и здравоохранении.

PostgreSQL. СУБД может обрабатывать большое количество запросов одномоментно, поддерживает многозадачные транзакции и отлично ладит даже с самыми объемными базами данных.

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

Microsoft SQL Server. Система интегрируется с другими технологиями Microsoft, например, Excel. Оттуда можно выгружать данные, в том числе с помощью облачной платформы Microsoft Azure.

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

Важно понять, что SQL — язык запросов. Вы не сможете использовать его для написания кода. Если вам нужна помощь в выборе хорошего языка программирования, загляните сюда. Главными особенностями SQL являются:

  • Декларативность. Это означает, что пользователь описывает результат, который он хочет получить, а не шаги, необходимые для достижения этого результата.
  • Понятность. Язык имеет четкую структуру и небольшой синтаксис, ведь изначально он задумывался как инструмент для обычного пользователя.
  • Управление доступом. Он позволяет закрыть, ограничить доступ к информации или предоставить определенный набор прав одному пользователю или группе.
  • Совместный доступ. Это означает, что язык запросов позволяет работать с данными в реальном времени, создавая интерактивные запросы и мгновенно получая ответы.

Синтаксис SQL

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

DDL

Язык определения данных (Data Definition Language) нужен для создания, изменения и удаления таблиц, самой базы или индекса. Главными операторами DDL являются:

  • CREATE — создать объект
  • DROP — удалить объект
  • ALTER — внести изменения
  • JOIN — объединить таблицу.

DML

Язык манипуляции данными (Data Manipulation Language) используется для создания, удаления, изменения, поиска данных.

  • SELECT — создать выборку данных, удовлетворяющих заданным критериям
  • INSERT — добавить новые данные
  • UPDATE — изменить существующие данные
  • DELETE — удалить данные.

DCL

Язык определения доступа к данным (Data Control Language). С его помощью можно менять уровни доступа пользователей к базе.

  • GRANT — дать одному или группе пользователей права на некоторые операции с объектом
  • REVOKE — отозвать ранее выданные привилегия
  • DENY — ввести запрет.

TCL

Язык управления транзакциями (Transaction Control Language) используется для работы с последовательностью команд.

  • COMMIT — применить изменения транзакции
  • ROLLBACK — откатить все изменения
  • SAVEPOINT — установить точку сохранения внутри транзакции, чтобы команда ROLLBACK не удаляла изменения, внесенные до сохранения.

Вспомогательные ключевые слова

Кроме основных операторов, которые задают действие, синтаксис SQL содержит слова, которые помогают конкретизировать команду, например:

  • FROM — указать таблицу, из которой следует извлечь данные
  • WHERE — указать условия для фильтрации данных в результате запроса
  • GROUP BY — сгруппировать данные по признаку
  • INTO — указать конкретную таблицу, куда стоит добавить данные (с помощью команды INSERT)
  • LIMIT — установить лимит количества результатов
  • ORDER BY — отсортировать данные по признаку. По умолчанию сортировка производиться в порядке возрастания. Чтобы отсортировать данные в порядке убывания нужно использовать слово DESC.

Как работают SQL-запросы

SQL-запросы используются для извлечения, вставки, обновления или удаления данных из реляционных баз данных. Давайте пройдем весь процесс от и до на простом примере:

1. Формулировка задачи. Руководитель компании дает программисту задачу: найти в базе данных компании имена, фамилии и возраст всех сотрудников IT-отдела.

2. Создание запроса. Программист, используя операторы SQL, формулирует SQL-запрос в СУДБ. Запрос будет выглядеть так:

SELECT FirstName, LastName, Age
/ Запрашиваем выборку данных: имена, фамилии и возраст /

FROM Employees
/ Указываем таблицу: сотрудники /

WHERE Department = 'IT'
/ Вводим условие: только те результаты, где в графе «отдел» значится «IT» /

ORDER BY LastName;
/ Просим сортировать по фамилиям /

3. Обработка запроса. Программа выстраивает оптимальный план выполнения задачи: она проверяет синтаксис запроса, обрабатывает команды и ищет соответствующие данные.

4. Получение ответа. Программа сортирует информацию и выдает ее программисту. Например, так:

|FirstName | LastName |  Age |
------------------------------
|Николай   | Антонов  |  28  |
|Петр      | Бобров   |  32  |
|Алиса     | Воронина |  26  |

5. Передача ответа. После этого программист передает данные в удобном виде для своего работодателя.

А что делать, если заказчик — это обычный пользователь интернета, у которого нет под боком собственного программиста, но ему нужно получить на сайте по продаже стиральных машинок выборку, только тех машин, которые стоят не больше 30 тысяч рублей и фирмы Bosch?

Когда пользователь заходит на сайт, код сайта (написанный разработчиком) отправляет запрос к базе данных. Запрос вводится через клиента — это может быть как специальное поле, фильтр или кнопка сайта, так и запрос в поисковой строке браузера. В нашем случае это будет фильтр по фирме производителю и по цене.  Далее запрос обрабатывается и показываются нужные данные.

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

С чего начать изучать SQL

Все достаточно просто, обратите внимание на эти 5 пунктов:

  1. Базы данных — изучите их функциональность и виды
  2. CRUD — освойте основные опции для работы с базами данных: создание (create), чтение (read), модификация (update), удаление (delete)
  3. Базовые команды — ознакомьтесь с простейшими SQL-запросами и попробуйте решить первые задачи
  4. СУБД — рассмотрите популярные системы, выберите интересующую, установите и настройте ее для дальнейшей работы
  5. Синтаксис — изучите возможности языка SQL и взаимодействия с данными.

Теория

Для более близкого знакомства с SQL, базами данных и СУБД используйте бесплатные видеокурсы на YouTube. Вы также можете ознакомиться с такими книгами, как:

  • Алан Болье «Изучаем SQL»
  • Уолтер Шилдс «SQL: быстрое погружение»
  • Бен Форт «Освой самостоятельно SQL за 10 минут»
  • Джеймс Грофф и Пол Вайнберг «SQL. Полное руководство».

Практика

Полученные знания следует закреплять упражнениями. В этом вам помогут онлайн-тренажеры: sql-practice.com, hackerrank.com, sql-ex.ru.

Софья Пирогова

Софья Пирогова

автор статей / копирайтер
Александра Боченкова

Александра Боченкова

автор статей / копирайтер