Хранимая процедура SQL — это подготовленный код SQL, который используется для экономии времени и может использоваться снова и снова. Код хранимой процедуры хранится в базе данных и помогает получить требуемый вывод, передав параметры. Эти хранимые процедуры используются в PL/SQL или SQL SERVER.
PL/SQL — это язык запросов с блочной структурой, который помогает разработчикам сочетать мощь SQL с процедурными операторами.
Хранимая процедура SQL
Хранимая процедура — это подготовленный код SQL, который можно сохранить, чтобы код можно было повторно использовать снова и снова.
Итак, если у вас есть SQL-запрос, который вы пишете снова и снова, сохраните его как хранимую процедуру, а затем вызовите его для выполнения.
Вы также можете передавать параметры в хранимую процедуру, чтобы хранимая процедура могла действовать на основе переданных значений параметров.
Процедура может быть функцией или методом, который можно вызывать через триггеры, приложения на Java или PHP и т. д.
# Синтаксис
Создание процедуры ASBegin EndGo
Давайте разберемся с синтаксисом выше с правильный пример:
ПРИМЕР:
Рассмотрим таблицу КЛИЕНТЫ:
ID | NAME | ВОЗРАСТ | АДРЕС | ЗАРПЛАТА |
1 | Том | 21 | Калькутта | 500 |
2 | Каран | 22 | Аллахабад | 600 |
3 | Хардик | 23 | Дханбад | 700 |
4 | Komal | 24 | Мумбаи | 800 |
#Query
CREATE PROCEDURE SampleASSELECT * FROM Testdb.CustomersGo;
#Output:
ID | ИМЯ | ВОЗРАСТ | АДРЕС | ЗАРПЛАТА |
1 | Том | 21 | Калькутта | 500 |
2 | Каран | 22 | Аллахабад | 600 |
3 | Хардик | 23 | Дханбад | 700 |
4 | Комал | 24 | Мумбаи | 800 |
Итак, здесь мы создали процедуру с именем Sample, которая отображает подробную информацию о таблице клиента, которая была сохранена в базе данных Testdb.
# ИЗМЕНЕНИЕ СУЩЕСТВУЮЩЕЙ ПРОЦЕДУРЫ
Мы можем изменить процедуру с помощью оператора ALTER.
#Syntax
Процедура ALTER ASBegin EndGo
#Query:
ALTER ПРОЦЕДУРА SampleASSELECT * FROM Testdb. New_CustomersGo;
Итак, здесь данные таблицы клиентов не будут отображаться в New_customers; вместо этого будут отображаться данные, которые ранее были явно созданы в базе данных Testdb.
# УДАЛЕНИЕ ПРОЦЕДУРЫ:
созданную процедуру можно отбросить с помощью ключевого слова DROP.
#Syntax
DROP PROCEDURE имя_процедуры;
#Query
DROP PROCEDURE sample;
Итак, здесь отбрасывается процедура с именем sample, которая была ранее создана выше.
Давайте посмотрим на недостатки процедур.
# Хранимая процедура с одним параметром
Следующий оператор SQL создает хранимую процедуру, которая выбирает клиентов из определенного города из таблицы «Клиенты»:
CREATE PROCEDURE SelectAllCustomers @City nvarchar (30) ASSELECT * FROM Клиенты WHERE City = @CityGO;
Выполните указанную выше хранимую процедуру следующим образом:
EXEC SelectAllCustomers City = "Marbella";
# Сохраненная процедура с несколькими параметрами
Установить несколько параметров очень просто. Просто перечислите каждый параметр и тип данных через запятую, как показано ниже.
Следующий оператор SQL создает хранимую процедуру, которая выбирает клиентов из определенного города с определенным кодом PostalCode из таблицы «Customers»:
СОЗДАТЬ ПРОЦЕДУРУ SelectAllCustomers @City nvarchar (30), @PostalCode nvarchar (10) ASSELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCodeGO;
Выполните указанную выше хранимую процедуру следующим образом.
EXEC SelectAllCustomers City = "Perth", PostalCode = "6021";
# Преимущества хранимой процедуры
- Они приводят к повышению производительности статьи. Каждый раз, когда процедура часто вызывается в приложении в одном соединении, доставляется скомпилированная версия этой процедуры.
- Они сокращают трафик между базой данных и приложением, поскольку длинные операторы уже загружены в базы данных и не требуют повторной отправки приложением.
- Они похожи на возможность повторного использования кода, как и функции и методы в C/C ++ и JAVA.
# Недостатки
- Отладка хранимой процедуры не поддерживается MySQL.
- Хранимые процедуры приводят к большому использованию памяти.
# Заключение
Он группирует один или несколько операторов Transact-SQL в логическую единицу и сохраняется как объект на сервере базы данных. Когда хранимая процедура вызывается в первый раз, MySQL создает план выполнения и сохраняет его в кэше планов.
При последующих выполнениях этой хранимой процедуры MySQL повторно использует план так, чтобы сохраненный процедура может выполняться очень быстро с надежной производительностью.
Наконец, урок по хранимой процедуре в SQL завершен.