Создание процедур в MySQL

Пусть нам задается задача: Создать процедуру, которая по коду страны возвращает город с максимальным населением. (Тут не делается выбор между использованием функций и процедур, иначе преимущество первых было однозначным)

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

  1. CREATE
  2. [DEFINER = { user | CURRENT_USER }]
  3. PROCEDURE sp_name ([proc_parameter[,...]])
  4. [characteristic ...] routine_body

Пусть нам задается задача: Создать процедуру, которая по коду страны возвращает город с максимальным населением. (Тут не делается выбор между использованием функций и процедур, иначе преимущество первых было однозначным)

Задача задана по БД world, стандартной БД MySQL, находящейся в открытом доступе. Для решения задачи нужно использовать собственный разделитель вместо ";" (только на время описания MySQL-процедуры. В текущем примере это двойной слеш "//").

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

Сама процедура должна вывести или вернуть через входную-выходную переменную какое-нибудь значение (если через переменную, то только скаляр - одно значение простого типа)

  1. delimiter //
  2. DROP PROCEDURE IF EXISTS getcity;
  3. CREATE PROCEDURE getcity(INOUT converter varchar(20))
  4. BEGIN
  5. SELECT name INTO converter
  6. FROM city
  7. WHERE countrycode = converter
  8. ORDER BY population DESC
  9. LIMIT 1;
  10. //
  11. delimiter ;

Задания для написания процедур для базы данных MySQL

  1. Создать процедуру, которая по названию города возвращает население города
  2. Создать процедуру, которая по названию страны возвращает население страны
  3. Написать продедуру, по коду страны выводящую на экран все языки в стране. Используйте SELECT внутри процедуры
  4. Написать процедуру, устанавливающую новое название для города.
  5. Создать процедуру, добавляющую город (то есть, оболочку для оператора INSERT)
  6. Написать процедуру, удаляющую страну по коду