русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Создание и модификация хранимых процедур и функций


Дата добавления: 2015-07-09; просмотров: 576; Нарушение авторских прав


Хранимая процедура — объект базы данных, представляющий собой набор SQL-инструкций, который компилируется один раз и хранится на сервере. Хранимые процедуры очень похожи на обыкновенные процедуры языков высокого уровня, у них могут быть входные и выходные параметры и локальные переменные, в них могут производиться числовые вычисления и операции над символьными данными, результаты которых могут присваиваться переменным и параметрам. Хранимые функции являются разновидностью хранимых процедур, основное отличие состоит в том, что хранимые функции могут возвращать скалярное значение и вызываются из оператора точно так же, как и любые другие функции (то есть, через указание имени функции). Процедура вызывается с помощью оператора CALL и может только передавать значения обратно, используя выходные переменные.

Синтаксис создания хранимой процедуры и функции соответственно:

CREATE

[DEFINER = {<пользователь> | CURRENT_USER}]

ROCEDURE <имя хранимой процедуры>([[IN | OUT | INOUT] <имя параметра> <тип> [,...]])

[<характеристика>...]

<тело процедуры>

 

CREATE FUNCTION

[DEFINER = {<пользователь> | CURRENT_USER}]

<имя хранимой процедуры>([<имя параметра> <тип> [,...]]) [RETURNS <тип>]

[<характеристика> ...]

<тело процедуры>

<тип> - любой допустимый тип данных MySQL.

<характеристика>:
LANGUAGE SQL

| [NOT] DETERMINISTIC

| {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}

| SQL SECURITY {DEFINER | INVOKER}

| COMMENT 'строка'

Характеристики DETERMINISTIC и NOT DETERMINISTIC указывают, производит ли функция всегда тот же самый результат для входных данных. Характеристики CONTAINS SQL, NO SQL, READS SQL DATA и MODIFIES SQL DATA обеспечивают информацию относительно того, читает ли функция или записывает данные. NO SQL или READS SQL DATA указывают, что функция не изменяет данные. Характеристика SQL SECURITY может применяться для определения, должна ли процедура выполняться с использованием привилегий пользователя, создающего эту процедуру, или привилегий пользователя, ее вызывающего. Конструкция COMMENT является расширением MySQL и может использоваться для описания хранимой процедуры. Такая информация отображается операторами SHOW CREATE PROCEDURE и SHOW CREATE FUNCTION.



По умолчанию характеристика имеет следующие значение:

NOT DETERMINISTIC

CONTAINS SQL

SQL SECURITY DEFINER

COMMENT ''

 

<тело процедуры> состоит из допустимой инструкций хранимого кода SQL. Это может быть простая инструкция типа SELECT или INSERT, либо это может быть составная инструкция, использующая BEGIN и END. Составные инструкции могут содержать объявления, циклы и другие инструкции управляющей структуры.

Вызов процедуры производится командой CALL:

CALL <имя хранимой процедуры>( [<параметр> [,...]])

Инструкции ALTER PROCEDURE и ALTER FUNCTION используются, чтобы изменить характеристики сохраненной процедуры или функции.

ALTER {PROCEDURE | FUNCTION} <имя хранимой процедуры> [<характеристика>...]

Изменить аргументы или тело функции и процедуры нельзя. По этому используйте конструкцию:

DROP {PROCEDURE | FUNCTION} [IF EXISTS] <имя хранимой процедуры>

Эта инструкция используется, чтобы удалить сохраненную процедуру или функцию. То есть определенная подпрограмма будет удалена с сервера.

Предложение IF EXISTS является расширением MySQL. Это предотвращает ошибку, если процедура или функция не существует.

 



<== предыдущая лекция | следующая лекция ==>
Создание и модификация триггеров | Синтаксис хранимого кода


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.306 сек.