Бесплатно по России

С 10:00 до 21:00

С 10:00 до 21:00

Заполнить бриф

Онлайн заявка

С 10:00 до 21:00

Бесплатно по России

Заполнить бриф

Онлайн заявка

#

SQL программирование и базы данных

Редакция Appfox

Редакция Appfox

Время чтения: 13 минут

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

Сферы применения SQL

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

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

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

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

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

  1. Клиент.

Это инструмент, через который пользователь вводит свой запрос к базе данных. Обычно клиент представляет собой стандартную поисковую строку, как в Google или Яндекс.

  1. Система управления базами данных, или СУБД.

Программа, обеспечивающая связь пользователя и РБД. Именно СУБД анализирует запрос пользователя и ищет ответ в базе.

  1. База данных.

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

  1. Таблица.

Единица БД, в которой структурированной хранятся данные в виде столбцов, строк и ячеек. При создании SQL запроса он проходит следующий путь: Пользователь - Клиент - Запрос к базе - СУБД - База данных - Искомая таблица

Основные компоненты БД

#
  1. Отношение.

Непосредственно таблица. По устройству таблицы в БД идентичны листам таблиц из Excel. Просто у них нет визуализации.

  1. Атрибут.

Конкретный столбец в таблице, описывающий одну характеристику объекта - цвет, размер, дату добавления и т.п.

  1. Кортеж.

Табличная строка со своим индивидуальным номером. Один кортеж всегда описывает один объект - например, товар, покупателя или компанию.

  1. Домен.

Формат допустимых значений для атрибутов - числовой, буквенный и т.д.

  1. Значение.

Единичный элемент в базе, занимающий отдельную ячейку в таблице. К примеру, цена конкретного платья в каталоге товаров.

  1. Ключ.

Работа реляционных баз данных строится на ключах, то есть идентификаторах. Благодаря ключам возможна связь двух таблиц. Возьмем самый простой случай. Чтобы сформировать строку с заказом покупателя, не нужно писать в графе “товар” конкретное наименование покупки. Достаточно указать 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 большие группы.

  1. DDL - команды определители данных. Через них можно вносить в базу новые таблицы или удалять и редактировать существующие.
  • CREATE - создание новой таблицы;
  • ALTER - изменение таблицы в базе;
  • DROP - снос таблицы из БД.
  1. DML - команды редакторы данных. С их помощью таблицы заполняются конкретными строками, столбцами и значениями. Используя DML операторы, можно, например, организовать каталог интернет-магазина или вести реестр обращений в техподдержку.
  • SELECT - отбор данных, соответствующих прописанным условиям;
  • INSERT - ввод новых данных в таблицы;
  • UPDATE - обновление текущих данных;
  • DELETE - очистка данных.
  1. 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 и получить бесплатную консультацию по ценам и услугам.

Автор

Редакция Appfox

Редакция Appfox