Перейти к содержимому
Меню
Дневник начинающего айтишника
  • О себе
  • Магазин
    • Обратная связь
    • Корзина
    • Мой аккаунт
    • Оформление заказа
  • Разработка ПО
    • Инкрементная модель
    • Схема базы данных
    • Прототипирование
    • UML схемы
      • Диаграмма прецедентов
      • Диаграмма развёртывания
      • Диаграммы активностей 
      • ДИАГРАММА БД
  • К веб приложениям
    • SEO: настройка плагина
  • SQL. Процедуры.
  • Системы баз данных
  • Системы контроля версий (VCS)
  • et
Дневник начинающего айтишника

SQL. Процедуры.

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

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

Пример простой процедуры tervist:
Результат вызова процедуры:

Создание процедуры в графическом редакторе

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

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

SQL- запрос вернул три строки с ценами больше 4 и объединил в одной таблице и названия фильмов.

Процедура поиска фильма по первой букве/первым буквам.

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

Объединение данных в одну таблицу из разных, как и в прошлом примере с помощью INNER JOIN.
Введем ‘pupl’ и посмотрим результат:

Все работает:))

Процедура по добавлению данных в таблицу keel БД.

Для начала посмотрим, какие есть колонки в таблице keel:

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

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

Ввод данных об испанском языке

Отлично, запрос вернул шестую строку.

Удаление данных из таблицы zanr по ID.

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

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

В простых процедурах версия 8.0.31 phpMyAdmin не требует BEGIN и END.

Задействуем эту процедуру, введя 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, конечно я не забыл:)). Я ему вернул его законное имя.

et
©2025 Дневник начинающего айтишника | На платформе SuperbThemes