Лабораторная работа №1 Ознакомление с интерфейсом субд mysql



Pdf көрінісі
бет37/51
Дата11.10.2023
өлшемі1.29 Mb.
#480346
1   ...   33   34   35   36   37   38   39   40   ...   51
Metod BDiAKS 11.03.04 2017

CREATE PROCEDURE p () 
LANGUAGE SQL 
NOT DETERMINISTIC 
SQL SECURITY DEFINER 
COMMENT 'A Procedure' <-- 
SELECT CURRENT_DATE, RAND() FROM t
В данном случае мы создали процедуру с именем p, которая возвращает текущую дату и 
псевдослучайное число из таблицы t. Пример ее вызова и возвращаемого результата:
mysql> call p2()
+--------------+-----------------+ 
| CURRENT_DATE | RAND() | 
+--------------+-----------------+ 
| 2005-06-27 | 0.7822275075896 | 
+--------------+-----------------+ 
1 row in set (0.26 sec) 
Query OK, 0 rows affected (0.26 sec)
Чуть более сложный пример создания и использования функции:
CREATE FUNCTION factorial (n DECIMAL(3,0)) 
RETURNS DECIMAL(20,0) 
DETERMINISTIC 
BEGIN 
DECLARE factorial DECIMAL(20,0) DEFAULT 1; 
DECLARE counter DECIMAL(3,0); 
SET counter = n; 
factorial_loop: REPEAT 
SET factorial = factorial * counter; 
SET counter = counter - 1; 
UNTIL counter = 1 
END REPEAT; 
RETURN factorial; 
END
В приложении:
INSERT INTO t VALUES (factorial(pi))
SELECT s1, factorial (s1) FROM t
UPDATE t SET s1 = factorial(s1) 
WHERE factorial(s1) < 5
Разумеется эффективность применения хранимых процедур существенно возрастает при 
вызове их с параметрами (аргументами). Ниже дан пример процедуры с обработкой пере-
данных ей параметров:
CREATE PROCEDURE p1 (IN parameter1 INT) 
BEGIN 
52




Достарыңызбен бөлісу:
1   ...   33   34   35   36   37   38   39   40   ...   51




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет