Database
 sql >> база данни >  >> RDS >> Database

Как да създадете съхранени процедури в SQL?

Процедурите са подпрограмите, които могат да бъдат създадени и записани в базата данни като обекти на база данни. Точно както можете на други езици, можете да създавате и пускате процедури и в SQL. В тази статия нека разгледаме процедурите в SQL със синтаксис и примери.

Темите, обсъждани в статията са:

  • Какво е процедура в SQL?
  • Синтаксис на процедурата в SQL
  • Примерна процедура в SQL
  • Предимства на SQL процедурите

Какво е процедура в SQL?

Процедура в SQL (често наричана съхранена процедура) е единица за многократна употреба, която капсулира специфичната бизнес логика на приложението. SQL процедурата е група от SQL изрази и логика, компилирани и съхранявани заедно за изпълнение на конкретна задача.

По-долу са изброени ключови характеристики на SQL процедурите:

  • Лесен за внедряване, защото използват много прост език на високо ниво, силно въведен език
  • Поддържа три типа параметри, а именно входни, изходни и входно-изходни параметри.
  • По-надеждни от еквивалентни външни процедури.
  • SQL процедурите насърчават повторното използване и поддръжка.
  • Поддържа прост, но мощен модел за състояние и обработка на грешки.
  • Върнете стойност на състоянието на извикваща процедура или пакет, за да посочите успех или неуспех и причината за неуспеха.

Сега, когато знаете какво представляват процедурите и защо са необходими, нека обсъдим синтаксиса и примера за процедура в SQL.

Синтаксис на процедурите в SQL

Следното илюстрира основния синтаксис на създаване на процедура в SQL:


CREATE [ OR REPLACE] PROCEDURE procedure_name [
(parameter_name [IN | OUT | IN OUT]  type [ ])]
{IS | AS }
BEGIN [declaration_section]
executable_section 
//SQL statement used in the stored procedure
END
GO

Терминологии на синтаксиса

Параметър

Параметърът е променлива, която съдържа стойност на всеки валиден SQL тип данни, чрез които подпрограмата може да обменя стойностите с основния код. С други думи, параметрите се използват за предаване на стойности към процедурата. Има 3 различни типа параметри, които са както следва:

  • IN :Това е параметърът по подразбиране, който винаги получава стойностите от извикващата програма. Това е променлива само за четене вътре в подпрограмите и нейната стойност не може да се променя вътре в подпрограмата.
  • ИЗХОД: Използва се за получаване на изход от подпрограмите.
  • IN OUT: Този параметър се използва както за даване на вход, така и за получаване на изход от подпрограмите.

Други терминологии

  • име-процедура посочва името на процедурата. Трябва да е уникален.
  • Опцията [ИЛИ ЗАМЕНИ] позволява промяна на съществуваща процедура.
  • IS | AS Клауза, те задават контекста за изпълнение на съхранената процедура. Разликата е, че ключовата дума „IS“ се използва, когато процедурата е вложена в някои други блокове и ако процедурата е самостоятелна, тогава се използва „AS“.
  • Code_Block декларира процедурните оператори, които обработват цялата обработка в рамките на съхранената процедура. Съдържанието на code_block зависи от правилата и процедурния език, използвани от базата данни.

Процедура в SQL:Примери

Пример1

Следващият пример създава проста процедура, която показва съобщението за добре дошли на екрана, когато се изпълни. След това процедурата ще бъде:

CREATE OR REPLACE PROCEDURE welcome_msg
(para1_name IN VARCHAR2)
IS 
BEGIN 
    dbms_output.put_line (‘Hello World! '|| para1_name);
END; 
/

Изпълнете съхранената процедура. Самостоятелна процедура може да бъде извикана по два начина −

  • Използване на EXECUTE ключова дума
  • Извикване на името на процедурата от SQL блок

Горната процедура може да бъде извикана с ключова дума Execute, както следва:

 EXEC welcome_msg (‘Welcome to Edureka!’);

Изход

Hello World! Welcome to Edureka 

Процедурата се изпълнява и съобщението се отпечатва като „Здравей, свят! Добре дошли в Edureka”.

Пример2

Да предположим, че имате таблица с подробности за служителите, като EmployeId, Firstname, Lastname и DepartmentDetails.

Този пример създава SQL процедура, която ще върне име на служител, когато EmployeId се дава като входен параметър към съхранената процедура. След това процедурата ще бъде:

Create  PROCEDURE GetStudentName 
(
@employeeID INT,                       --Input parameter ,  employeID of the employee
@employeName VARCHAR(50)  OUT  --Output parameter, employeeName of employee
AS
BEGIN
SELECT @employeName= Firstname+' '+Lastname FROM Employee_Table WHERE EmployeId=@employeID
END

Стъпки за изпълнение:

  • Декларирайте @employeName като nvarchar(50)
  • EXEC GetStudentName 01, изход @employeName
  • изберете @employeName

Горената процедура за даване на идентификатор на служител като вход връща името на този конкретен служител. Да предположим, че ако имаме изходен параметър, тогава първо трябва да декларираме променливата, за да съберем изходните стойности. Сега нека да проверим предимствата на процедурата в SQL.

Предимства на процедурите в SQL

Основната цел на съхранените процедури в SQL е да скрият директните SQL заявки от кода и да подобрят производителността на операциите в базата данни като избиране, актуализиране и изтриване на данни. Други предимства на процедурата в SQL са:

  • Намалява количеството информация, изпратена до сървъра на базата данни. Това може да стане по-важно предимство, когато честотната лента на мрежата е по-малка.
  • Разрешава повторното използване на кода
  • Подобрява сигурността, тъй като можете да дадете разрешение на потребителя за изпълнение на съхранената процедура, вместо да давате разрешение на таблиците, използвани в съхранената процедура.
  • Поддържа извиквания на вложени процедури към други SQL процедури или процедури, внедрени на други езици.

В заключение, процедурите в SQL (съхранените процедури) не само подобряват възможността за повторно използване на кода, но също така повишават производителността на базата данни. Как? Чрез намаляване на трафика на мрежата чрез намаляване на количеството информация, изпращана по мрежата. С това стигнахме до края на тази статия.

Ако искате да научите повече за MySQL и да се запознаете с тази релационна база данни с отворен код, разгледайте нашетоОбучение за сертифициране на MySQL DBA която идва с обучение на живо от инструктор и реален опит с проекти. Това обучение ще ви помогне да разберете MySQL в дълбочина и ще ви помогне да постигнете майсторство по темата.

Имате въпрос към нас? Моля, споменете го в секцията за коментари на това „Процедури в SQL; статия и ние ще се свържем с вас.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Хекатон с обрат:TVP в паметта – част 2

  2. Как да създадете модел на база данни от нулата

  3. Обявяване на общата наличност на SQL Compliance Manager 5.9

  4. Коя функция за маскиране на данни трябва да използвам?

  5. Съпоставяне на предлагането с търсенето — Решения, част 3