Представление может быть создано на основе различных параметров предложения
SELECT, при этом можно ссылаться на другие таблицы и представления. Конструкция мо-
жет использовать оператор
UNION
и другие подзапросы
.
Синтаксис команды ALTER VIEW
Для внесения изменений в представление используется команда ALTER VIEW
ALTER
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = {
user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW
view_name [(
column_list)]
AS
select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
Синтаксис команды DROP VIEW
Для удаления представления используется команда DROP VIEW
VIEW [IF EXISTS]
view_name [,
view_name] ...
[RESTRICT | CASCADE]
ПРИМЕР
mysql>
CREATE TABLE t (qty INT, price INT);
mysql>
INSERT INTO t VALUES(3, 50);
mysql>
CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;
mysql>
SELECT * FROM v;
+------+-------+-------+
| qty | price | value |
+------+-------+-------+
| 3 | 50 | 150 |
Хранимые процедуры и функции
В СУБД MySQL появилась возможность создания и хранения функций и процедур.
Объявление и работа с процедурами и функциями отличаются в следующем:
•
в заголовке функции помимо описания формальных
параметров обязательно
указывается тип возвращаемого ею результата;
•
для возврата функцией значения в точку вызова среди ее операторов должен
быть хотя бы один, в котором имени функции или переменной Result при-
сваивается значение результата;
•
вызов процедуры выполняется отдельным
оператором;
•
вызов функции может выполняться там, где допускается ставить выраже-
ние, в частности, в правой части оператора присваивания.
Пользовательские функции по функциональности похожи на хранимые процедуры.
Разница заключается в том, что возможностей у них меньше (в частности, они должны воз-
вращать только одно значение, например, скалярное или табличное), но их удобнее исполь-
зовать с точки зрения синтаксиса.
51
Как процедуры, так и функции могут возвращать значения (в виде набора записей). Раз-
личие состоит в том, что функция вызывается из запроса, а процедура из отдельной ко-
манды.
На настоящий момент реализация хранимых процедур не поддерживает никаких внеш-
них языков, но (по
крайней мере, так заявляется) соответствует стандарту SQL:2003, позво-
ляющему
применять условные конструкции, итерации и обработку ошибок.
Пример создания хранимой процедуры в MySQL 5:
Достарыңызбен бөлісу: