Kujundaja

1. Добавление данных  (INSERT) в любую произвольную таблицу из БД кинотеатр

Таблица rezisoor

Создание процедуры lisaRezisoor на добавление нового режиссера в таблицу rezisoor

Вызов процедуры lisaRezisoor

Результат выполненной процедуры lisaRezisoor, добавлены новые данные в таблицу

Команда для добавления данных в таблицу rezisoor:

SET @p0='Christopher'; SET @p1='Nolan'; CALL `lisaRezisoor`(@p0, @p1);


2. Удаление записей в таблице žanr по введенному id

Таблица zanr

Создание процедуры zanrKustutamine на удаление записи в таблице zanr по id

Вызов процедуры zanrKustutamine

Результат выполненной процедуры zanrKustutamine, записи по ID (12) – удалены

Команда для удаления записей по ID в таблице zanr:

SET @p0='12'; CALL `zanrKustutamine`(@p0);


3. Удаление таблицы по введенному имени (таблица не должна содержать вторичного ключа)

Создание таблицы pilet (для теста процедуры удаления)

Создание процедуры drop_table на удаление таблицы

Вызов процедуры drop_table

Результат выполненной процедуры drop_table, таблица pilet – удалена

Команда для удаления таблицы по имени:

SET @p0=’pilet’; CALL `drop_table`(@p0);


4. Процедура на обновление (UPDATE) таблицы режиссёр

таблица rezisoor

Создание процедуры на обновление таблицы

Вызов процедуры rezisoorUpdate

Результат выполненной процедуры rezisoorUpdate

SET @p0=’4′; SET @p1=’Stanley’; SET @p2=’Kubrick’; CALL `rezisoorUpdate`(@p0, @p1, @p2);


5. Процедура на изменение (ALTER) таблицы режиссёр

Создание процедуры на изменение таблицы (добавление или удаление столбца)

Вызов процедуры altertable

Результат выполненной процедуры altertable

Команда для изменение таблицы

SET @p0='add'; SET @p1='rezisoor'; SET @p2='test'; SET @p3='int'; CALL `altertable`(@p0, @p1, @p2, @p3);


6. Своя процедура с действием отличным от предыдущих

Процедура, которая высчитывает и выводит общий доход от билетов для конкретного фильма

Выбираем название фильма и доход (умножаем количество проданных билетов на цену билета)
Цена билета из таблицы kinokava и количество билетов из таблицы piletimyyk

  • Связываем продажи билетов с расписанием по полю kinokavaID
  • Связываем таблицу расписания с таблицей фильмов по filmID
  • Фильтруем только нужный фильм по его ID, который передается в процедуру

Вызываем процедуру, вводим в поиск ID фильма

Результат выполненной процедуры otsiFilmiKogutulu, показывает доход с фильма Vabastatud Django

Команда для высчитывания дохода по ID фильма

SET @p0=’2′; CALL `otsiFilmiKogutulu`(@p0);


Добавление пользователя Opilane /пароль 12345, который может запускать процедуры/функции и видеть только те таблицы, которые отмечены в процедурах

Создаем пользователя Opilane с паролем 12345

Даем возможность просмотра данных в базе данных kinoteatrsmolina

Переходим к функциям/процедурам и даем право на запуск функций

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

Выходим из root и логинимся на Opilane

Функции/процедуры горят серым, запустить нельзя, но можно вызвать через SQL

Проверяем процедуру rezisoorUpdate через SQL, меняем имя режиссёра под ID 4 с “Stanley Kubrick” на “Steven Spielberg”

таблица до изменений

Результат – процедура работает, режиссёр под ID 4 поменялся

Проверяем процедуру altertable через SQL, добавляем в таблицу rezisoor столбец test2

Результат – процедура работает, столбец test2 добавился