Новичок
5 уроков
(1 час 30 минут)
Курс
Основы SQL для начинающих
На курсе по основам SQL для начинающих вы научитесь работать с такими популярными СУБД, как SQLite, MySQL и PostgreSQL.

#5 – Транзакции SQL и работа с ними

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


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

На официальном сайте SQLite есть подробные схемы построения запросов начала и конца транзакции, сохранения контрольной точки и отката транзакции SQL.

Пример транзакции в SQLite и PostgreSQL

Для того, чтобы создать транзакцию SQL, достаточно группу операций поместить между операторами BEGIN и COMMIT.

BEGIN;
UPDATE table_name SET field_1 = NULL WHERE id = 5;
DELETE FROM other_table WHERE id = 17;
COMMIT;

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

Пример транзакции в MySQL

В MySQL создание транзакции SQL аналогично, кроме необходимости заменить оператор BEGIN на START TRANSACTION.

START TRANSACTION;
UPDATE table_name SET field_1 = NULL WHERE id = 5;
DELETE FROM other_table WHERE id = 17;
COMMIT;

Роль оператора ROLLBACK в транзакции SQL

Оператор ROLLBACK выполняет две функции: отмену транзакции и переход к контрольной точке.

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

BEGIN;
UPDATE table_name SET field_1 = NULL WHERE id = 5;
DELETE FROM other_table WHERE id = 17;
ROLLBACK;

В примере запросы на изменения поля и удаления записи не вступят в силу, и таблицы останутся без изменений

Переход к контрольной точке: если необходимо перейти к контрольной точке SAVEPOINT, которая может объявляться внутри тела транзакции SQL, отменяя при этом последующие за контрольной точкой операции, вызывается все тот же оператор ROLLBACK.

BEGIN;
UPDATE table_name SET field_1 = NULL WHERE id = 5;
DELETE FROM other_table WHERE id = 17;
SAVEPOINT point_name;
DELETE FROM test_table WHERE id = 75;
ROLLBACK TO SAVEPOINT point_name;
ROLLBACK;

В результате данной транзакции SQL будет выполнено только два запроса: изменение записи в таблице table_name и удаление записи из таблицы other_table.

Практическое применение транзакций SQL

Далее автор видео предлагает перейти к практике. Будет разбираться пример со счетами пользователей.

Итак, у нас есть две таблицы: таблица пользователей и их профилей, связанные между собой идентификатором пользователя. В таблице профилей добавлено поле «Баланс». Создается три пользователя с определенными суммами на балансе. Первая транзакция SQL будет добавлять 1-му пользователю на счет 100 рублей. Чтобы сохранить изменение, вводится оператор COMMIT, а отменить – ROLLBACK. Затем все усложняется: 1-му пользователю добавляется на баланс 100 рублей, у 2-го отнимается 200 рублей и у третьего – 300, а затем транзакция отменяется с помощью оператора ROLLBACK. Потом автор переходит к использованию контрольных точек: с баланса 3-го пользователя списывается сумма 300 рублей, ставится метка и выполняются операции с 1-м и 2-м пользователем. Далее все возвращается к поставленной метке, после чего баланс 1-го и 2-го пользователя не изменится. Важно отметить, что такая транзакция SQL считается не законченной. Далее те же операции повторяются в 2-х оставшихся СУБД.

Таким образом, на этом видеоуроке автор подробно разберет тему транзакций SQL и покажет их принцип работы на практике. Желаем успешного обучения

Приятного всем просмотра! Учитесь с удовольствием! Всегда ваш LoftBlog.

Материалы к уроку:
Делись:

Оставь комментарий!

Добавить комментарий

Рекомендуемые курсы