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

Первая часть кода создаёт процедуру: название процедуры, характеристики. Само тело процедуры помещается между BEGIN и END.


Создание процедуры в графическом редакторе
Создаём процедуру через графический редактор. Называем процедуру piletihindSuur. В ней создадим переменную rohkem с типом INT. Цель в том, чтобы функция выводила не только цены билетов выше введенной пользователем, но и названия фильмов из другой таблицы.

Запустим процедуру и посмотрим результат:


Процедура поиска фильма по первой букве/первым буквам.
Создадим процедуру для поиска фильма по первой букве либо нескольким первым буквам названия и в выводе хотим видеть еще жанр и цены на билеты. Введём переменную nimi, которая будет заменяться на вводимые пользователем буквы.



Все работает:))
Процедура по добавлению данных в таблицу keel БД.
Для начала посмотрим, какие есть колонки в таблице keel:

Теперь у нас есть названия колонок. Приступаем к созданию процедуры:

Процедура создана, давайте ее протестируем:


Отлично, запрос вернул шестую строку.
Удаление данных из таблицы zanr по ID.
Для начала добавим в таблицу zanr записи, которые будем удалять.

Добавим новую процедуру:

Задействуем эту процедуру, введя ID добавленной нами заранее строки и посмотрим результат.


Строка 11 была успешно удалена.
Процедура UPDATE для таблицы rezisoor.
Сделаем процедуру, при помощи которой можно будет обновлять данные в таблице rezisoor. Нам потребуются три переменных — ID типа INT, а так же uuseesnimi и uusperenimi типа VARCHAR и ограничением в 25 символов в соответствии с параметрами таблицы.

Посмотрим ID того режиссера, которого переименуем:)).

Пусть эта участь выпадет Woody Allen. Он у нас не долго побудет Васей Пупкиным;)).


Процедура ALTER для таблицы rezisoor.
При помощи данной процедуры мы сможем выполнить команду ALTER TABLE и таким образом изменить структуру таблицы, например, добавив некоторые столбцы. Данная процедура будет несколько отличаться от предыдущих.
В процедуре будет использоваться переменная veerunimi типа VARCHAR c ограничением в 25 символов. С помощью этой переменной мы будем задавать имя новому столбцу.

Вот как работает эта процедура:
3.Установка значения переменной @stmt. В данном случае, используется функция CONCAT, чтобы создать строку, содержащую команду ALTER TABLE для добавления столбца в таблицу rezisoor. В данном примере, создается столбец типа VARCHAR с длиной 25 символов, который не может содержать нулевые значения.
4. Подготовка SQL выражения с использованием строки, содержащей команду ALTER TABLE. Результат подготовки присваивается переменной P.
5. Выполнение подготовленного выражения. Данная команда выполнит ALTER TABLE, чтобы добавить указанный столбец в таблицу rezisoor.
6. Разрешение использования подготовленного выражения. Это очищает память, занимаемую подготовленным выражением.
7. Выборка всех данных из таблицы rezisoor после выполнения ALTER TABLE. Это демонстрирует изменения, произошедшие в таблице после добавления нового столбца.
8. Завершение выполнения процедуры.
В результате выполнения данной процедуры, в таблице rezisoor будет создан новый столбец с указанными параметрами, и эта операция будет подтверждена выборкой всех данных из таблицы.


Как видим, процедура добавила новую колонку.
Создание BACKUP и DELETE процедур.
Прежде чем будем удалять таблицы, нам нужно сделать бэкап. Напишем для этого еще одну процедуру:

Сделаем резервную копию таблицы zanr.

Во вкладке «Дизайнер» проверим, как эта функция работает:

Теперь можно с помощью следующей процедуры table_delete удалить эту новую таблицу:


Запускаем и проверяем результат:


Таблицы почти в своем первозданном виде.
Да, про Woody Allen, конечно я не забыл:)). Я ему вернул его законное имя.