CREATE FUNCTION function_name [(parameter datatype [, parameter datatype])]
RETURNS return_datatype
BEGIN
declaration_section
executable_section
END;
function_name — наименование функции в MySQL
parameter — один или несколько параметров передаются в функцию. При создании функции все параметры считаются параметрами IN (не OUT или IN OUT), где параметры могут ссылаться на функцию, но не могут быть перезаписаны функцией.
return_datatype — тип данных возвращаемого значения функции.
declaration_section — место в функции, где вы объявляете локальные переменные.
executable_section — место в функции, в которой вы создаете код функции.
Рассмотрим пример, как создать функцию в MySQL:
DELIMITER ||
CREATE FUNCTION functionname()
RETURNS INT
BEGIN
RETURN 12;
END;
||
DELIMITER;
Примечание: сиволы которые могут быть использованы как DELIMITER: // ,%%, $$, ##, @@, …, кроме символа «\\».
Вызов этой функции выполняется следующим образом:
SELECT functionname();
+----------------+
| functionname() |
+----------------+
| 12 |
+----------------+
DELIMITER $$
CREATE FUNCTION add_2 ( my_arg INT )
RETURNS INT
BEGIN
RETURN (my_arg + 2);
END;
$$
DELIMITER;
SELECT add_2(12);
+-----------+
| add_2(12) |
+-----------+
| 14 |
+-----------+
После того, как вы создали функцию в MySQL, вам может понадобиться удалить ее из базы данных.
Конструкции IF, CASE, LOOP, WHILE, REPLACE ITERATE и LEAVE
Инструкция IF
IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list]
...
[ELSE statement_list]
END IF
IF реализован как базисная условная конструкция. Если выражение search_condition истинно, соответствующий список инструкции SQL выполнен. Если пары search_condition не нашлось, будет выполнен операторный список в предложении ELSE. Каждый statement_list состоит из одной или большего количества инструкций.
Обратите внимание: имеется также функция IF(), которая отличается от команды IF, описанной здесь.
Инструкция CASE
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
Инструкция LOOP
[begin_label:] LOOP
statement_list
END LOOP [end_label]
LOOP осуществляет простую конструкцию цикла, допуская повторенное выполнение операторного списка, который состоит из одной или большего количества инструкций. Инструкции внутри цикла повторены, пока цикл не покидается. Обычно это выполнено инструкцией LEAVE.
Do'stlaringiz bilan baham: |