#7 – Представления и транзакции

#7 – Представления и транзакции

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

Видеоурок

В PostgreSQL команды CREATE VIEW и транзакции играют важную роль в построении гибких, безопасных и удобных систем работы с базами данных. Первая помогает упростить сложные запросы, вторая — гарантирует целостность данных. Разберём обе темы по порядку.


Что такое VIEW и зачем он нужен

Представление (или VIEW) — это виртуальная таблица, результат заранее определённого SQL-запроса. Она не хранит данные физически, а лишь показывает их так, как вы задали в момент создания. Это позволяет скрыть сложную логику запросов и упростить доступ к данным.


Пример:

CREATE VIEW sales_report AS
SELECT users.name, SUM(orders.price) AS total_price
FROM users
FULL JOIN orders ON orders.user_id = users.id
GROUP BY users.name;

Теперь вместо длинного JOIN-запроса вы можете просто обращаться к sales_report:

SELECT * FROM sales_report;


Представления часто используют для:

  • создания аналитических отчётов (как в примере выше);
  • ограничения доступа к чувствительным данным (например, показывать только имя и email без паролей);
  • упрощения повторяющихся запросов в больших проектах;
  • логического разделения слоёв данных — как аналог “представления” таблиц в приложении.


Транзакции: безопасность изменений

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


Основные команды:

BEGIN; // начало транзакции

UPDATE users SET age = 10 WHERE id = 1;
INSERT INTO users (name, email) VALUES ('John', '[email protected]');

COMMIT; -- подтверждение изменений

Если в процессе вы поняли, что допустили ошибку, можно отменить всё:

ROLLBACK; // отмена изменений

После COMMIT транзакция завершается, и ROLLBACK уже не сработает — данные зафиксированы в базе.


Зачем нужны транзакции

Транзакции особенно важны в следующих случаях:

  • При множественных изменениях данных (например, при оформлении заказа и изменении баланса пользователя).
  • При обработке финансовых операций, где нельзя потерять часть данных.
  • Для защиты от ошибок во время выполнения SQL-команд.
  • В многопользовательских системах — чтобы разные запросы не конфликтовали между собой.

Исходный код

Весь код будет доступен после подписки на проект!

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

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

Также стоит посмотреть

Изучение C# WPF на практике. Создание программ на C#
10 уроков
Программа на C# .NET Windows Forms
7 уроков
Изучение языка PHP, а также MySQL
28 уроков
Уроки Java для профессионалов
14 уроков
Изучение MongoDB / Работа с базой данных
8 уроков
Создание динамического веб сайта
7 уроков
Комментарии
Добавить комментарий

Пока комментариев нет