+7 (499) 288-06-73

Скопировать

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

29.08.2022
#

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

Где применяется SQL

Хоть SQL и называют языком программирования, непосредственно программу на нем написать нельзя. Это скорее вспомогательный инструмент. Без него не обходятся backend web разработка, CRM системы, аналитические модули и бизнес-приложения. Знание SQL пригодится:

  1. Разработчикам, для проектирования и управления БД. Если на сайте принимаются и обрабатываются заявки или заказы от пользователей, это обязательно происходит через базу данных и SQL команды.

  2. Тестировщикам, чтобы проверять код, связанный с SQL обработкой информации.

  3. Аналитикам и маркетологам, которым необходимо быстро обрабатывать большие массивы данных.

Принцип работы запросов

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

  1. Клиент - или терминал для ввода запроса. Например, поисковая строка в интерфейсе программы или на странице сайта.

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

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

Как организована база данных

#

Из структуры, описанной ранее, понятно, что главный элемент БД - таблицы. По сути, знакомый всем Excel является базой данных. Информация в нем хранится в виде строк, столбцов и ячеек, а функция ”Сводные таблицы” позволяет объединять несколько источников данных в единую систему.

Для работы с реляционными базами через SQL стоит прояснить основные понятия.

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

    Это, собственно таблица, в которой информация разбита на столбцы и строки.

  2. Атрибут.

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

  3. Домен.

    Возможные значения атрибутов и их ограничения. Например, только числа или только буквы. При этом для буквенных доменов можно задать правила, что они не должны начинаться с символов ы, ь, ъ.

  4. Кортеж.

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

  5. Значение.

    Конкретный параметр в базе. То же, что и ячейка в Excel.

  6. Ключ.

    Определяющий элемент для реляционных БД, служащий для связки различных таблиц в базе. По сути, ключ - это индивидуальный номер строки (кортежа), выступающий ее идентификатором.

В РБД есть три вида ключей.

  • первичный - непосредственный определитель строки, ее id;

  • потенциальный - дополнительный идентификатор;

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

Разновидности СУБД

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

  1. создание и редактирование таблиц;

  2. управление оперативной памятью;

  3. перенос и изменение данных;

  4. определение прав доступа к данным;

  5. поиск значений по запросу.

Среди разработчиков наиболее популярны следующие СУБД.

  1. MySQL.

    #

    Программное обеспечение, которое используют системы управления сайтами (CMS) и различные web-приложения. MySQL бесплатна и проста в освоении, за что и полюбилась разработчикам. Кроме того, система отличается функциональностью и безопасностью.

  2. PostgreSQL

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

  3. Oracle Database.

    #

    Первопроходец среди СУБД. Первая версия программы разработана еще в 1977 году. Среди преимуществ Oracle - кроссплатформенность, гибкость, высокая производительность и объектно-реляционная направленность.

  4. SQlite.

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

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

#

Разработчик манипулирует данными в базе с помощью специальных команд - операторов.

Приведем несложный пример - поиск сотрудника по ФИО в общей базе компании. Чтобы найти строку с упоминанием Иванова Петра Михайловича, нужно ввести в СУБД такой запрос:

SELECT * FROM employee WHERE name = Иванов Петр Михайлович

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

Операторы могут комбинироваться. Допустим, нам нужно найти в базе всех сотрудников отдела продаж из Москвы, при этом отсортировать их по алфавиту. Для этого создаем команду:

SELECT * FROM employee WHERE department = ‘sales’ AND city = ‘Moscow’ ORDER BY name

В целом все операторы SQL делятся на 3 большие группы.

  1. DDL - команды для работы с таблицами. С помощью операторов DDL разработчики добавляют, удаляют и редактируют таблицы в базе.

    • CREATE - запись новой таблицы;

    • ALTER - редактирование;

    • DROP- полное удаление.

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

    • SELECT - поиск данных, соответствующих указанным критериям;

    • INSERT - запись новых параметров;

    • UPDATE - редактирование текущих значений;

    • DELETE - удаление значений.

  3. DCL - команды для управления правами доступа к БД. Открывают или закрывают права конкретного сотрудника на редактирование данных.

    • GRANT - предоставление прав на изменение объекта;

    • REVOKE - отзыв имеющегося доступа.

  4. TCL - команды программирования транзакций. Под транзакцией понимается очередная последовательность действий в системе. Чтобы транзакция считалась завершенной, должны быть выполнены все заданные условия. Иначе произойдет “откат”. Самый распространенный пример транзакций - прием онлайн-платежей на сайтах.

    • BEGIN TRANSACTION - старт последовательности;

    • ROLLBACK TRANSACTION - точка отката;

    • SAVE TRANSACTION - сохранение результатов транзакции на определенном этапе.

Как создать базу данных

Чтобы потренироваться в написании БД, воспользуемся сервисом https://www.mycompiler.io/.

В первую очередь создадим саму базу. В нашем примере это будет небольшая таблица с товарами - столами и стульями из разных коллекций.

CREATE TABLE items (

id INT AUTO_INCREMENT PRIMARY KEY,

category VARCHAR(30) NOT NULL,

collection VARCHAR(30) NOT NULL

);

Оператор AUTO_INCREMENT PRIMARY KEY задает автоматически генерируемый первичный ключ для каждой строки.

Параметр VARCHAR ограничивает максимальное количество битов в строке.

Точка с запятой означает конец команды.

Далее зададим несколько сущностей и присвоим им атрибуты.

CREATE TABLE items (

id INT AUTO_INCREMENT PRIMARY KEY,

category VARCHAR(30) NOT NULL,

collection VARCHAR(30) NOT NULL

);

INSERT INTO items (category,collection) VALUES ('table', 'Mary'), ('chair', 'Mary'), ('table', 'Lisa'), ('chair', 'Diana');

После этого мы можем найти в созданной базе все товары из коллекции Mary, добавив в конце программы строчку:

SELECT * FROM items WHERE collection = 'Mary';

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

#

Данные в таблицу можно вносить и из внешнего файла с помощью команды LOAD DATA LOCAL INFILE. Но это уровень операций для уверенного back-end разработчика.

Заключение

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

Команды на языке SQL пишутся в специальных системах управления базами данных - СУБД. Самые распространенные программы такого рода - MySQL, PostgreSQL и Oracle Database.

Без SQL невозможна работа сайтов и веб-приложений. Поэтому основы языка желательно знать всем разработчикам.