511.64K

Лекция 7.2

1.

PostgreSQL PL/pgSQL

2.

Оператор PL/pgSQL IF
Вы узнаете как использовать операторы PL/pgSQL if для выполнения команды
на основе определенного условия.

3.

Введение в оператор PL/pgSQL IF
Оператор if позволяет вам выполнить один или несколько
операторов на основе условия. PL/pgSQL предоставляет вам три
формы операторов if:
• if then
• if then else
• if then elsif

4.


CREATE TABLE film (
id serial PRIMARY KEY,
title VARCHAR(255),
director VARCHAR(255),
release_year INT,
genre VARCHAR(255),
duration_minutes INT
);
INSERT INTO film (title, director, release_year, genre, duration_minutes)
VALUES
('Фильм 1', 'Режиссер 1', 2020, 'Драма', 120),
('Фильм 2', 'Режиссер 2', 2019, 'Комедия', 95),
('Фильм 3', 'Режиссер 3', 2021, 'Боевик', 130),
('Фильм 4', 'Режиссер 4', 2018, 'Фантастика', 150),
('Фильм 5', 'Режиссер 5', 2022, 'Триллер', 110),
('Фильм 6', 'Режиссер 6', 2017, 'Ужасы', 90),
('Фильм 7', 'Режиссер 7', 2023, 'Криминал', 125),
('Фильм 8', 'Режиссер 8', 2016, 'Комедия', 100),
('Фильм 9', 'Режиссер 9', 2020, 'Драма', 115),
('Фильм 10', 'Режиссер 10', 2015, 'Фантастика', 140),
('Фильм 11', 'Режиссер 11', 2022, 'Криминал', 105),
('Фильм 12', 'Режиссер 12', 2019, 'Триллер', 125),
('Фильм 13', 'Режиссер 13', 2021, 'Боевик', 135),
('Фильм 14', 'Режиссер 14', 2017, 'Ужасы', 95),
('Фильм 15', 'Режиссер 15', 2018, 'Драма', 110);

5.

1) Оператор PL/pgSQL if-then

6.

found
• В этом примере мы выбираем фильм
по определенному идентификатору
фильма (0).
• found — это глобальная переменная,
доступная в PL/pgSQL. Оператор select
into устанавливает переменную found,
если строка назначена, или false, если
строка не возвращена.
• Мы используем оператор if, чтобы
проверить, существует ли фильм с
идентификатором (0), и выдать
уведомление, если его нет.

7.

2) Оператор PL/pgSQL if-then-else
• Оператор if...then...else выполняет операторы в ветви if, если
условие оценивается как истинное; в противном случае он
выполняет операторы в ветви else.

8.

В следующем примере оператор if…then…else используется
для отображения сообщения о том, существует ли фильм с
определенным идентификатором:

9.

Оператор PL/pgSQL if-then-elsif
• В отличие от операторов if и if...then...else, которые оценивают
только одно условие, оператор if then elsif позволяет оценивать
несколько условий и выполнять один или несколько операторов,
если условие истинно.

10.

11.

• Используйте оператор if..then для выполнения одного или
нескольких операторов, когда условие истинно.
• Используйте оператор if...then...else для выполнения операторов,
когда условие истинно, и выполнения других операторов, когда
условие ложно.
• Используйте оператор if...then...elsif для оценки нескольких
условий и выполнения операторов, когда соответствующее
условие истинно.

12.

Введение в оператор CASE
PL/pgSQL
Помимо оператора if, PostgreSQL предоставляет операторы case, которые
позволяют выполнять блок кода на основе условий.

13.

Simple case statement

14.

15.

Searched case

16.

17.

• Используйте оператор case для выполнения раздела на основе
определенных условий.
• Используйте простой оператор case для сравнения значения со
списком значений и, если совпадение найдено, выполните
раздел.
• Используйте поисковый оператор case для оценки списка условий
и выполните раздел, если условие истинно.
English     Русский Rules