-
СОЗДАТЬ ПРОЦЕДУРУ
Создайте хранимую процедуру, сохраняющую таблицу в базе данных MySQL.
СОЗДАТЬ ФУНКЦИЮ
Создайте определяемую пользователем функцию, особенно хранимую процедуру, возвращающую данные.
ИЗМЕНИТЬ ПРОЦЕДУРУ
Изменения в заранее заданной хранимой процедуре, созданной с помощью CREATE PROCEDURE, не влияют на связанные хранимые процедуры или хранимые функции. .
ИЗМЕНИТЬ ФУНКЦИЮ
Изменения в заранее заданной хранимой процедуре, созданной с помощью CREATE FUNCTION, не влияют на связанные хранимые процедуры или хранимые функции. .
ПРОЦЕДУРА СНИЖЕНИЯ
Удалите одну или несколько хранимых процедур из таблицы MySQL.
ФУНКЦИЯ ПЕРЕДАЧИ
Удалите одну или несколько сохраненных функций из таблицы MySQL.
ПОКАЗАТЬ ПРОЦЕДУРУ СОЗДАНИЯ
Возвращает текст заранее заданной хранимой процедуры, созданной с помощью CREATE PROCEDURE. Это объявление является расширением MySQL спецификации SQL:2003.
ПОКАЗАТЬ СОЗДАТЬ ФУНКЦИЮ
Возвращает текст заранее заданной хранимой процедуры, созданной с помощью CREATE FUNCTION. Это объявление является расширением MySQL спецификации SQL:2003.
ПОКАЗАТЬ СТАТУС ПРОЦЕДУРЫ
Возвращает характеристики заранее заданной хранимой процедуры, включая имя, тип, создателя, дату создания и дату изменения. Это объявление является расширением MySQL спецификации SQL:2003.
ПОКАЗАТЬ СТАТУС ФУНКЦИИ
Возвращает характеристики заранее заданной хранимой функции, включая имя, тип, создателя, дату создания и дату изменения. Это объявление является расширением MySQL спецификации SQL:2003.
ВЫЗОВ
Вызовите заранее заданную хранимую процедуру, созданную с помощью CREATE PROCEDURE.
НАЧАЛО... КОНЕЦ
Содержит набор нескольких выполненных операторов.
ОБЪЯВЛЯТЬ
Используется для указания локальных переменных, сред, процессоров и указателей.
НАБОР
Используется для изменения значений локальных и глобальных переменных сервера.
ВЫБРАТЬ... ВТО
Столбец, используемый для хранения отображаемых переменных.
ОТКРЫТЬ
Используется для открытия указателя.
ПРИНЕСТИ
Используйте определенный указатель, чтобы получить следующий столбец.
ЗАКРЫВАТЬ
Используется для закрытия и открытия указателя.
ЕСЛИ
Оператор if-then-else-end if.
СЛУЧАЙ...КОГДА
Структура оператора случая
ПЕТЛЯ
Простая структура цикла; выход из него можно выполнить с помощью оператора LEAVE.
ОСТАВЛЯТЬ
Используется для выхода из операторов IF, CASE, LOOP, REPEAT и WHILE.
ПЕРЕДАТЬ
Используется для перезапуска цикла.
ПОВТОРИТЬ
В конце цикл проверяется.
ПОКА
Цикл, который тестируется в начале.
ВОЗВРАТЫ
Возвращает значение хранимой процедуры.
MySQL 5.0 поддерживает операторы хранимых процедур.
1. Создайте хранимую процедуру
1.Основная грамматика:
создать процедуру sp_name()
начинать
.........
конец
2. Передача параметров
2. Вызов хранимой процедуры
1.Основной синтаксис: вызов sp_name().
Примечание. После имени хранимой процедуры необходимо добавлять круглые скобки, даже если хранимой процедуре не переданы параметры.
3. Удалить хранимые процедуры
1.Основная грамматика:
удалить процедуру sp_name//
2. Меры предосторожности
(1) Вы не можете удалить другую хранимую процедуру в одной хранимой процедуре, вы можете только вызвать другую хранимую процедуру.
4. Блоки, условия, циклы
1. Определение блока, обычно используемое
начинать
...
конец;
Вы также можете дать блоку псевдоним, например:
метка: начало
...........
конечная метка;
Вы можете использовать метку выхода, чтобы выйти из блока и выполнить код после блока.
2. Условное утверждение
если условие, то
заявление
еще
заявление
конец, если;
3. Оператор цикла
(1).цикл while
[метка:] WHILE выражение DO
заявления
КОНЕЦ ПОКА [метка];
(2).петля петля
[метка:] ПЕТЛЯ
заявления
КОНЕЦ ПЕТЛИ [метка];
(3).Повторяйте до цикла
[метка:] ПОВТОРИТЬ
заявления
ДО тех пор, пока выражение
КОНЕЦ ПОВТОРА [метка];
5. Другие часто используемые команды
1. показать статус процедуры
Отображает основную информацию обо всех хранимых процедурах в базе данных, включая базу данных, которой она принадлежит, имя хранимой процедуры, время создания и т. д.
2.покажите процедуру создания sp_name
Синтаксис создания хранимой процедуры:
CREATE PROCEDURE имя_процедуры ([параметр[,...])
[ЯЗЫК SQL]
[ [НЕ] ДЕТЕРМИНИРОВАННЫЙ ]
[{СОДЕРЖИТ SQL|ИЗМЕНЯЕТ ДАННЫЕ SQL|ЧИТАЕТ ДАННЫЕ SQL|БЕЗ SQL}]
[БЕЗОПАСНОСТЬ SQL {DEFINER|INVOKER}]
[КОММЕНТАРИЙ строка комментария]
процедуры_операторства
Вы можете использовать SHOW PROCEDURE STATUS или SHOW CREATE PROCEDURE для просмотра информации о хранимых процедурах. Кроме того, системная таблица INFORMATION_SCHEMA.ROUTINES также содержит некоторую информацию о хранимых процедурах. Аналогично, функции также можно просмотреть таким же образом (SHOW FUNCTION STATUS).
Создание функций
СОЗДАТЬ ФУНКЦИЮ имя_функции (параметр[,...])
ВОЗВРАЩАЕТ тип данных
[ЯЗЫК SQL]
[ [НЕ] ДЕТЕРМИНИРОВАННЫЙ ]
[ {СОДЕРЖИТ SQL | НЕТ SQL | ИЗМЕНЯЕТ ДАННЫЕ SQL ЧИТАЕТ ДАННЫЕ SQL} ]
[БЕЗОПАСНОСТЬ SQL {DEFINER|INVOKER}]
[КОММЕНТАРИЙ строка комментария]
Тело заявления
Функции в основном такие же, как хранимые процедуры. Основные различия:
1. Чтобы использовать RETURNS для указания типа возвращаемого значения
2. Функция должна возвращать значение и использовать RETURN в теле инструкции (примечание: используйте RETURNS для указания типа возвращаемого значения и RETURN для возвращаемого значения).
3. Параметры не различают IN и OUT, все имеют тип IN.
пример:
СОЗДАТЬ ФУНКЦИЮ cust_status(in_status CHAR(1))
ВОЗВРАЩАЕТ ВАРЧАР(20)
НАЧАТЬ ОБЪЯВИТЬ long_status VARCHAR(20);
ЕСЛИ in_status="O" ТО УСТАНАВЛИВАЕТ long_status="Просрочено";
ELSEIF in_status="U" THEN SET long_status="Обновлено";
ELSEIF in_status="N" THEN SET long_status="new";
КОНЕЦ ЕСЛИ;
ВОЗВРАТ (длинный_статус);
КОНЕЦ;
Вызов:
SELECT cust_status('O');
курок
CREATE [DEFINER={user|CURRENT_USER}] TRIGGER имя_триггера
{ПЕРЕД|ПОСЛЕ} {ОБНОВЛЕНИЕ|ВСТАВКА|УДАЛЕНИЕ}
ВКЛ имя_таблицы
ДЛЯ КАЖДОГО РЯДА
триггер_выражения
Значение: операция оператора ignore_statements запускается до (до) или после (после) выполнения операций обновления, вставки и удаления в таблице table_name.
пример:
mysql> СОЗДАТЬ ТРИГГЕР account_balance_au
ПОСЛЕ ОБНОВЛЕНИЯ account_balance ДЛЯ КАЖДОЙ СТРОКИ
НАЧИНАТЬ
ОБЪЯВИТЬ фиктивный INT;
ЕСЛИ НОВЫЙ.баланс<0 ТО
УСТАНОВИТЬ НОВЫЙ.баланс = NULL;
КОНЕЦ ЕСЛИ;
КОНЕЦ
Вышеупомянутый триггер означает: после обновления таблицы account_balance, если обновленное значение баланса меньше 0, измените его на NULL.
Примечание. Если это OLD.balance, это означает исходное значение до обновления.