Оглавление
Время чтения: 13 минут
SQL - это язык, на которым разработчики “общаются” с реляционными базами данных - добавляют и извлекают информацию, меняют заданные отношения, передают права доступа и т.д. Реляционной база считается, если в ней хранится несколько взаимосвязанных между собой таблиц. На РБД так или иначе завязана работа подавляющего большинства современных информационных продуктов - от сайтов и мобильных приложений до корпоративных CRM-систем.
Сферы применения SQL
Чаще всего SQL применяется в веб-среде. Например, с его помощью обрабатываются логины и пароли пользователей сайта, хранящиеся в БД на сервере. Но знание SQL будет полезно не только для вебмастеров, но и для:
- тестировщиков, чтобы понимать логику взаимодействия с данными;
- интернет-маркетологов и аналитиков, чтобы работать с большими информационными кластерами;
- администраторам сетей, чтобы корректно поддерживать информационную среду предприятия.
Скажем сразу, что на SQL не пишутся программы как таковые. Язык SQL - это средство для обработки готовых таблиц, действующее в рамках определенного ПО. Но в этом есть и определенный плюс SQL. Синтаксис этого языка достаточно прост. Его основы будут понятны пользователям без знания других инструментов программирования.
Как работают запросы
В мире реляционных баз данных есть три основных понятия, которые стоит усвоить, прежде чем начинать разбираться в языке запросов SQL.
- Клиент.
Это инструмент, через который пользователь вводит свой запрос к базе данных. Обычно клиент представляет собой стандартную поисковую строку, как в Google или Яндекс.
- Система управления базами данных, или СУБД.
Программа, обеспечивающая связь пользователя и РБД. Именно СУБД анализирует запрос пользователя и ищет ответ в базе.
- База данных.
Непосредственно хранилище информации. Сама БД не умеет интерпретировать содержащиеся в ней данные. Она как чистый лист бумаги просто принимает все, что в нее записывают через СУБД.
- Таблица.
Единица БД, в которой структурированной хранятся данные в виде столбцов, строк и ячеек. При создании SQL запроса он проходит следующий путь: Пользователь - Клиент - Запрос к базе - СУБД - База данных - Искомая таблица
Основные компоненты БД
- Отношение.
Непосредственно таблица. По устройству таблицы в БД идентичны листам таблиц из Excel. Просто у них нет визуализации.
- Атрибут.
Конкретный столбец в таблице, описывающий одну характеристику объекта - цвет, размер, дату добавления и т.п.
- Кортеж.
Табличная строка со своим индивидуальным номером. Один кортеж всегда описывает один объект - например, товар, покупателя или компанию.
- Домен.
Формат допустимых значений для атрибутов - числовой, буквенный и т.д.
- Значение.
Единичный элемент в базе, занимающий отдельную ячейку в таблице. К примеру, цена конкретного платья в каталоге товаров.
- Ключ.
Работа реляционных баз данных строится на ключах, то есть идентификаторах. Благодаря ключам возможна связь двух таблиц. Возьмем самый простой случай. Чтобы сформировать строку с заказом покупателя, не нужно писать в графе “товар” конкретное наименование покупки. Достаточно указать id товара из таблицы с каталогом.
В РБД ключи бывают трех видов:
- первичный - основной идентификатор, который, как правило, задается автоматически.
- потенциальный - запасной идентификатор, по которому можно определить строку;
- внешний - служит для связи таблиц.
Внешнему ключу в одной таблице всегда соответствует ключ из другой таблицы, на которую необходимо сослаться.
Распространенные СУБД и их отличия
Система управления базами данных - это оболочка, с помощью которой разработчики и пользователи оперируют информацией в таблицах на сервере. СУБД решает следующие задачи:
- настройка прав доступа к БД;
- создание и удаление таблиц;
- редактирование данных;
- проведение транзакций;
- управление оперативной памятью.
Для разработчиков сейчас доступны как бесплатные СУБД с открытым кодом, так и платные варианты. Разберем несколько самых популярных решений.
MySQL
Функциональная и легкая в освоении СУБД. Чаще всего используется для управления сайтами, браузерными приложениями и CRM системами. MySQL обеспечивает высокий уровень безопасности данных и быструю обработку запросов. ПО полностью свободно для распространения.
PostgreSQL
Более сложная система управления, чем MySQL. За счет объектно-ориентированного принципа PostgreSQL предоставляет широкие возможности для работы с параметрами в таблицах и для применения подзапросов. Еще один плюс системы - поддержка сторонних плагинов. Благодаря расширенной функциональности и модифицируемости PostgreSQL эту систему используют банки, промышленные предприятия и крупные корпорации.
Oracle Database
СУБД с давней историей развития. Первая версия этой системы выпущена еще в 1977 году. Работает СУБД от Oracle по объектно-реляционному принципу, что делает ее максимально гибкой и многозадачной. К другим преимуществам Oracle DB можно отнести кроссплатформенность и высокую производительность.
SQLite
Специфическая упрощенная версия СУБД. За счет своего небольшого веса и однофайловой структуры SQLite является оптимальным решением для небольших сайтов и приложений. Главный недостаток SQLite - невозможность передачи прав пользования базами.
Базовые операторы SQL
Язык SQL представляет собой определенный набор команд (операторов) для управления БД. Основные операторы SQL просты для освоения, особенно если у пользователя есть базовые знания английского.
Рассмотрим несложную задачу.
Нам необходимо найти в базе покупателей интернет-магазина конкретного человека - Иванову Марию Викторовну. Используем для поиска оператор SELECT и указатель WHERE.
SELECT * FROM customers WHERE name = Иванова Мария Викторовна
Часто в задачах бывает несколько условий поиска. Допустим, нам нужно выбрать в базе всех покупателей из Москвы и отсортировать их имена по алфавиту. Чтобы сделать это, просто совместим операторы.
SELECT * FROM customers WHERE city = ‘Moscow’ ORDER BY name
Для удобства все операторы в SQL делятся на 4 большие группы.
- DDL - команды определители данных. Через них можно вносить в базу новые таблицы или удалять и редактировать существующие.
- CREATE - создание новой таблицы;
- ALTER - изменение таблицы в базе;
- DROP - снос таблицы из БД.
- DML - команды редакторы данных. С их помощью таблицы заполняются конкретными строками, столбцами и значениями. Используя DML операторы, можно, например, организовать каталог интернет-магазина или вести реестр обращений в техподдержку.
- SELECT - отбор данных, соответствующих прописанным условиям;
- INSERT - ввод новых данных в таблицы;
- UPDATE - обновление текущих данных;
- DELETE - очистка данных.
- DCL - команды, определяющие права доступа к БД. Позволяют открыть или закрыть конкретным пользователям возможность изменения данных в таблицах.
- GRANT - передача прав на редактирование объектов в БД;
- REVOKE - отзыв действующего доступа;
- DENY - запрет, приоритетный над оператором GRANT.
- TCL - команды для совершения транзакций, то есть, поочередных действий на сайте или в приложении. Для успешного завершения транзакции все условия должны быть выполнены безошибочно. В противном случае система “откатится” к начальному состоянию. Бронирование билетов и онлайн-оплата - типичные примеры транзакций.
- BEGIN TRANSACTION - точка старта транзакции;
- ROLLBACK TRANSLATION - момент отката при невыполнении условий транзакции;
- SAVE TRANSACTION - точка сохранения результатов транзакции.
Создание простой базы данных
Попробовать написать небольшую базу данных можно с помощью сервиса https://www.mycompiler.io/.
В первую очередь определим условия. Допустим, нашей базой будет каталог товаров книжного магазина.
Через оператор CREATE TABLE создадим соответствующую таблицу для дальнейшего добавления в нее книг с указанием жанра и автора.
CREATE TABLE books (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(180) NOT NULL,
gener VARCHAR(180) NOT NULL,
autor VARCHAR(180) NOT NULL
);
Обратите внимание на следующие моменты. Оператор INT AUTO_INCREMENT PRIMARY KEY автоматически генерирует первичный ключ строки (кортежа). Параметр VARCHAR задает максимальную величину значения в байтах.
Далее в созданную таблицу мы можем добавить несколько книг. Удобнее всего это делать в одну строку, указав в начале в нужном порядке заполняемые атрибуты.
CREATE TABLE books (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(180) NOT NULL,
gener VARCHAR(180) NOT NULL,
autor VARCHAR(180) NOT NULL
);
INSERT INTO books (name,gener,autor) VALUES ('Lord of Rings', 'Fantasy', 'John R. R. Tolkien'), ('A Study in Scarlet', 'Detective', 'Arthur Conan Doyle'), ('IT', 'Horror', 'Stiven King');
Теперь мы можем найти в базе нужную книгу, указав ее жанр или автора. Для этого используем уже знакомый оператор SELECT.
SELECT * FROM books WHERE gener = 'Fantasy';
Результат будет таким
Мы рассмотрели элементарный способ ведения SQL базы данных вручную. Конечно, Backend разработчики редко пишут таблицы в БД с нуля. Обычно они настраивают автоматическое заполнение полей или загружают информацию из файлов. Базовые SQL запросы позволяют редактировать параметры и исправлять ошибки при необходимости.
Заключение
SQL - язык для управления реляционными базами данных. С его помощью записываются, структурируются и редактируются данные сайтов и приложений, хранящиеся на серверах.
СУБД - программа для оперирования данными в РБД через язык SQL. Самые распространенные среди разработчиков СУБД - это MySQL, PostgreSQL и Oracle Database. Углубленное знание SQL - прерогатива backend веб разработчиков. Но понимать основы языка не помешает всем специалистам, связанным с IT.
В студии AppFox можно подать заявку на программирование, создание игр или заказать разработку приложений https://appfox.ru и получить бесплатную консультацию по ценам и услугам.