Включите исполнение JavaScript в браузере, чтобы запустить приложение.

Язык SQL: что это такое и как начать с ним работать

3 сен 2024
Что такое SQL и зачем он нужен? Сферы применения языка, его преимущества и недостатки, основные операторы. Как и с чего начать работу с SQL и базами данных — читайте в блоге GitVerse.

Язык SQL: что это такое и как начать с ним работать

Что такое SQL

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

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

Особенности SQL

Язык структурированных запросов сильно отличается от языков программирования. Его цель — оперирование данными в базе, а не написание скриптов или обработка файлов, отсюда и специфические свойства. Этот язык:

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

Преимущества и недостатки

Преимущества:

  • Структурированность запросов помогает решать сложные задачи анализа больших объемов информации.
  • Это понятный и легкий в освоении язык, что позволяет начать пользоваться им на практике уже в процессе изучения.
  • Гибкость схемы БД дает возможность взаимодействовать с разными типами данных.
  • SQL широко применяется, поэтому в популярных языках программирования есть специальные библиотеки и модули для взаимодействия с ним.

Недостатки:

  • Его сложно использовать для написания циклов; с его помощью невозможно осуществить многие операции, которые позволяют реализовывать популярные языки программирования.
  • Из-за фиксированной структуры реляционной БД не получится изменять структуру данных быстро и легко.
  • Масштабировать реляционные БД — долго и дорого.

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

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

SQL используют все, кто работает с большим объемом информации:

  • разработчики,
  • тестировщики,
  • аналитики,
  • администраторы,
  • ученые.

SQL на практике: области применения языка

Язык структурированных запросов используется везде и выполняет различные задачи в разных сферах:

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

SQL применяют и крупные ИТ-гиганты, и небольшие чат-боты.

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

  • Дата-сайентисты извлекают большие объемы данных из разнообразных информационных ресурсов, формируют сложные структуры и, анализируя их, готовят эффективные стратегии для бизнеса.
  • Разработчики БД пишут блоки скриптов, позволяющие автоматизированно создавать БД и манипулировать ими. Также разработчики проводят тестирования, которые помогают отладить и оптимизировать работу БД, повысить ее производительность или дать оценку эффективности функционирования.
  • Администраторы БД подготавливают требования ко всему жизненному циклу БД: разработке, использованию, поддержке. Они управляют учетными записями пользователей, задают права доступа к информации.

В каждой из упомянутых профессий умение использовать язык структурированных запросов — основной и активно используемый навык.

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

До этого в статье часто употреблялся термин «база данных» как интуитивно понятный. Теперь, когда стало понятнее, как оперируют данными и как их организуют, дадим определение.

База данных SQL (или реляционная БД) — это система хранения информации, в которой эта информация организована в виде таблиц из неограниченного набора строк или записей и конечного набора столбцов.

Признаки, отличающие реляционную БД от других:

  • Данные организованы по таблицам.
  • Таблицы имеют связи друг с другом.
  • В таблицах используются внешние ключи как инструменты определения соответствия между данными.
  • Для манипуляции с данными необходимо применение SQL.

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

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

Основные функции СУБД:

  • управление информацией в памяти компьютера;
  • журнализация изменений, позволяющая восстановить БД до предыдущего состояния в случае отказов;
  • осуществление транзакций;
  • поддержка языков определения и манипулирования данными.

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

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

После того как СУБД выбрана, перейдем к обучению на практике.

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

Основные этапы процесса подготовки:

  • теоретический,
  • практический.

Традиционное начало обучения — теоретическая подготовка, знакомство с основными понятиями:

  • БД,
  • СУБД,
  • таблицы,
  • атрибуты,
  • типы данных,
  • внутренние и внешние ключи,
  • соединение таблиц.

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

Перейдем к следующему этапу — практике. Любые данные прежде всего необходимо организовать. Поэтому первые шаги в практическом изучении SQL будут такими:

  • создание БД,
  • создание таблиц с необходимыми столбцами (атрибутами) и определением подходящих типов данных.

Виды типов данных:

  • числовые,
  • денежные,
  • символьные,
  • логические,
  • дата и время — и прочие.

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

После того как БД наполнена, можно приступить к изучению основных операций с данными:

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

Подробнее об этом можно узнать в обучающих материалах, например:

  • в учебниках,
  • в туториалах и гайдах,
  • на курсах,
  • из обучающих видео,
  • из документации к СУБД.

SQL разработали более 40 лет назад, и за это время его неоднократно совершенствовали. Поэтому, если планируете использовать учебник, обратите внимание на год издания: ищите наиболее свежий.

Основные SQL-операторы

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

В зависимости от решаемых задач операторы SQL делят на группы.

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

  • CREATE DATABASE — создать,
  • DROP DATABASE — удалить.

Когда БД создана, следующий уровень организации — таблицы. Подходящие операторы:

  • CREATE TABLE — создать,
  • ALTER TABLE — изменить (переименовать, удалить или добавить столбец),
  • DROP TABLE — удалить.

При создании таблиц указывают названия их столбцов (атрибутов), типы данных и ограничения. Под ограничениями подразумевают, что ячейка может быть пустой (NULL) или должна содержать значение (NOT NULL).

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

  • INSERT — внести,
  • DELETE — удалить,
  • SELECT — выбрать список столбцов (атрибутов), для которых пользователь хочет получить строки.

Эти операции выполняют совместно с INTO и FROM, после которых указывают название таблицы.

  • UPDATE — обновить. После SET указывают столбцы, информацию в которых нужно обновить, и новые значения;
  • UNION — объединить;
  • JOIN — соединить две и более таблицы, объединив их столбцы.

В зависимости от поставленных задач,используют INNER и OUTER JOIN — внутреннее и внешнее соединение. Также существуют LEFT, RIGHT и FULL OUTER JOIN — левое, правое и полное внешнее соединение. Это более сложные операции, которые изучаются после освоения основ. 

Важно не путать соединение и объединение. Если операторы JOIN в результате дают таблицу, состоящую из столбцов исходных таблиц, соединяя их «горизонтально», то UNION не увеличивает число столбцов. Операция объединения используется для однотипных таблиц — с одинаковыми столбцами, и данные одной добавляются в конец другой снизу, расширяя последнюю «вертикально».

Когда нужно ограничить число интересующих данных или отсортировать выдачу, используют следующие операторы:

  • LIMIT — ограничить число записей в количестве, указанном после LIMIT;
  • ORDER BY — отсортировать строки выдачи по столбцу, указанному после оператора.

Чтобы сортировать строки в порядке возрастания или убывания, после столбца, по которому идет сортировка, указывают ASC или DESC.

Примеры

Как создать БД

Рассмотрим пример. Для организации необходимо создать БД о сотрудниках всех отделов и их зарплате для ведения отчетности. Это можно осуществить командой CREATE DATABASE our_company.

Результатом такого обращения к СУБД станет БД с названием «our_company» («наша компания»).

Реляционные БД называют понятно для удобства написания кода и простоты восприятия структуры обращений и результатов.

Как создать таблицу

Еще один пример. Необходимо сохранить данные о сотрудниках, отделах, в которых они работают, и их зарплатах. Это можно осуществить так:

CREATE TABLE employees

(employee_id int not null,

employee_firstname varchar not null,

employee_lastname varchar not null,

employee_surname varchar null,

department_name varchar not null,

salary float not null);

Это означает:

Создать таблицу employees (сотрудники) со столбцами:

employee_id, employee_firstname, employee_lastname, employee_surname, department_name, salary

(идентификатор сотрудника, его имя, фамилия, отчество, название отдела, размер зарплаты).

Каждая ячейка, кроме ячеек столбца employee_surname, должна быть заполнена: на это указывают слова not null и null. Кроме того, в обращении к БД определены типы данных:

  • int — целые числа,
  • varchar — строка символов,
  • float — число с плавающей точкой.

Как внести информацию

Обращение к БД с целью внесения записей выглядит так:

INSERT INTO employees (employee_id, employee_firstname, employee_lastname, employee_surname, department_name, salary)

VALUES (1, Дмитрий, Котов, Иванович, Маркетинг, 45900);

Это означает:

Вставить данные в employees в столбцы, названия которых заключены в скобках. Данные тоже размещают в скобках и пишут после ключевого слова VALUES. Важно, чтобы количество слов в скобках до VALUES и после совпадало, иначе случится ошибка.

Как получить информацию

Рассмотрим классический запрос в качестве примера: получить информацию о первых трех сотрудниках, зарплата которых выше 50 000. Вот как это сделать:

SELECT employee_id, employee_lastname, employee_firstname, department_name, salary

from employees

where salary > 50 000

order by salary desc

limit 3;

Такой запрос можно прочесть так:

Выбрать идентификаторы служащего, его имя, идентификатор отдела, название отдела и зарплату из таблицы работников, у которых зарплата больше 50 000, отсортировать от большего к меньшему и ограничиться первыми тремя.

Такой запрос даст результат:

employee_idemployee_lastnameemployee_firstnamedepartment_namesalary
14СмирновЮрийУправление122 300
2ЛебедеваАннаСтрахование96 500
64ПетровСергейМаркетинг87 990

На этом примере хорошо видно, что структура обращения к БД проста и понятна.