Stored Procedure در SQL: آموزش کامل همراه با مثال کاربردی و مهم

Stored Procedure در SQL: آموزش کامل همراه با مثال کاربردی و مهم


در دنیای پایگاه‌داده‌ها، به‌ویژه در SQL، روش‌های مختلفی برای مدیریت داده‌ها و افزایش سرعت اجرای کوئری‌ها وجود دارد. یکی از مهم‌ترین این روش‌ها Stored Procedure یا همان رویه ذخیره‌شده است. Stored Procedure در SQL در واقع مجموعه‌ای از دستورات است که یک بار در پایگاه‌داده ذخیره می‌شود و هر بار که نیاز باشد می‌توان آن را فراخوانی کرد. این قابلیت باعث افزایش سرعت، کاهش پیچیدگی و مدیریت بهتر کدهای SQL می‌شود. در این مقاله به‌صورت کامل Stored Procedure را بررسی می‌کنیم، مزایا و کاربردهای آن را توضیح می‌دهیم و در نهایت با مثال‌های واقعی نشان می‌دهیم که چطور می‌توان از آن استفاده کرد.

Stored Procedure در SQL چیست؟

Stored Procedure یک برنامه کوچک یا مجموعه‌ای از دستورات SQL است که روی سرور پایگاه‌داده ذخیره می‌شود. به‌جای اینکه هر بار دستورات پیچیده SQL را بنویسیم، می‌توانیم آن‌ها را در قالب یک رویه ذخیره کنیم و تنها با یک دستور ساده آن را اجرا نماییم. این موضوع باعث می‌شود حجم کدنویسی در سمت برنامه‌نویس کاهش یابد و اجرای کوئری‌ها سریع‌تر انجام شود.

برای مثال، فرض کنید هر بار برای گرفتن اطلاعات کاربر باید چندین دستور SELECT و JOIN اجرا کنید. به‌جای نوشتن مکرر این دستورات، می‌توانید یک Stored Procedure بسازید و تنها با صدا زدن آن، نتیجه را دریافت کنید.

مزایای Stored Procedure در SQL

Stored Procedure در SQL مزایای فراوانی دارد که در ادامه برخی از مهم‌ترین آن‌ها را بررسی می‌کنیم:

  1. افزایش سرعت اجرا
    چون Stored Procedure یک بار کامپایل می‌شود و در حافظه سرور ذخیره می‌شود، اجرای آن در دفعات بعدی سریع‌تر خواهد بود.

  2. کاهش حجم کد
    به‌جای نوشتن چندباره دستورات SQL، می‌توان تنها یک Stored Procedure نوشت و در قسمت‌های مختلف برنامه آن را استفاده کرد.

  3. امنیت بیشتر
    Stored Procedure می‌تواند از SQL Injection جلوگیری کند، زیرا به‌جای اجرای مستقیم کوئری‌ها، تنها پارامترها به رویه ارسال می‌شود.

  4. مدیریت بهتر
    وقتی نیاز به تغییر در منطق کوئری‌ها باشد، تنها کافی است Stored Procedure ویرایش شود و نیازی به تغییر در همه بخش‌های برنامه نیست.

  5. قابلیت استفاده مجدد
    یک Stored Procedure را می‌توان در بخش‌های مختلف برنامه و حتی توسط کاربران گوناگون استفاده کرد.

Stored Procedure در SQL آموزش کامل همراه با مثال کاربردی و مهم
Stored Procedure در SQL آموزش کامل همراه با مثال کاربردی و مهم

ساخت Stored Procedure در SQL

ساخت یک Stored Procedure در SQL بسیار ساده است. ساختار کلی آن به شکل زیر است:

CREATE PROCEDURE ProcedureName
AS
BEGIN
— دستورات SQL
END;

مثال ساده:

CREATE PROCEDURE GetAllEmployees
AS
BEGIN
SELECT * FROM Employees;
END;

در این مثال، یک Stored Procedure به نام GetAllEmployees ساخته‌ایم که تمام اطلاعات جدول Employees را برمی‌گرداند.

اجرای Stored Procedure در SQL

برای اجرای یک Stored Procedure از دستور EXEC یا EXECUTE استفاده می‌کنیم:

EXEC GetAllEmployees;

با اجرای این دستور، تمامی رکوردهای جدول Employees نمایش داده می‌شود.

استفاده از پارامترها در Stored Procedure

یکی از مهم‌ترین قابلیت‌های Stored Procedure استفاده از پارامترهاست. به‌این‌ترتیب می‌توانیم یک رویه عمومی بسازیم که بسته به ورودی کاربر، خروجی متفاوتی بدهد.

مثال:

CREATE PROCEDURE GetEmployeeById
@EmployeeID INT
AS
BEGIN
SELECT * FROM Employees WHERE EmployeeID = @EmployeeID;
END;

اجرای این Stored Procedure با پارامتر:

EXEC GetEmployeeById @EmployeeID = 3;

در اینجا فقط اطلاعات کارمندی که EmployeeID آن برابر 3 است برگردانده می‌شود.

Stored Procedure با چندین پارامتر

گاهی نیاز داریم چندین شرط مختلف روی داده‌ها اعمال کنیم. در این مواقع می‌توانیم از چند پارامتر استفاده کنیم.

مثال:

CREATE PROCEDURE GetEmployeesByDepartmentAndSalary
@Department NVARCHAR(50),
@MinSalary INT
AS
BEGIN
SELECT *
FROM Employees
WHERE Department = @Department AND Salary >= @MinSalary;
END;

اجرای رویه:

EXEC GetEmployeesByDepartmentAndSalary @Department = ‘IT’, @MinSalary = 5000;

این Stored Procedure تمامی کارمندان بخش IT با حقوق بالاتر از 5000 را نمایش می‌دهد.

تغییر Stored Procedure

اگر بخواهیم محتوای یک Stored Procedure را تغییر دهیم، می‌توانیم از دستور ALTER استفاده کنیم.

ALTER PROCEDURE GetAllEmployees
AS
BEGIN
SELECT EmployeeID, FirstName, LastName FROM Employees;
END;

در اینجا رویه GetAllEmployees تغییر داده شد تا فقط ستون‌های خاصی را برگرداند.

حذف Stored Procedure

برای حذف یک Stored Procedure کافی است از دستور DROP PROCEDURE استفاده کنیم:

DROP PROCEDURE GetAllEmployees;

نکات مهم درباره Stored Procedure

  • بهتر است نام Stored Procedureها معنادار و گویا انتخاب شود.

  • هنگام استفاده از پارامترها، نوع داده باید دقیقاً با نوع ستون جدول مطابقت داشته باشد.

  • می‌توان داخل Stored Procedure از دستورات شرطی مثل IF و CASE و حتی حلقه‌ها استفاده کرد.

  • از آنجا که Stored Procedure روی سرور اجرا می‌شود، بار پردازشی روی کلاینت کاهش می‌یابد.

Stored Procedure در SQL آموزش کامل همراه با مثال کاربردی و مهم
Stored Procedure در SQL آموزش کامل همراه با مثال کاربردی و مهم

مثال پیشرفته: Stored Procedure با شرط و حلقه

برای نشان دادن قدرت Stored Procedure مثالی پیشرفته می‌زنیم:

CREATE PROCEDURE IncreaseSalary
@Department NVARCHAR(50),
@Percent INT
AS
BEGIN
UPDATE Employees
SET Salary = Salary + (Salary * @Percent / 100)
WHERE Department = @Department;

SELECT * FROM Employees WHERE Department = @Department;
END;

اجرای رویه:

EXEC IncreaseSalary @Department = ‘HR’, @Percent = 10;

این رویه حقوق همه کارمندان بخش HR را 10 درصد افزایش داده و سپس لیست آن‌ها را نمایش می‌دهد.

جمع‌بندی

Stored Procedure در SQL یکی از پرکاربردترین ابزارها برای مدیریت بهتر کوئری‌ها و بهینه‌سازی پایگاه‌داده است. با استفاده از Stored Procedure می‌توان سرعت اجرا را افزایش داد، امنیت را بالا برد و کدنویسی را ساده‌تر کرد. در این مقاله با تعریف Stored Procedure، مزایا، نحوه ساخت، استفاده از پارامترها، تغییر و حذف آن آشنا شدیم و مثال‌های کاربردی را بررسی کردیم. اگر در پروژه‌های واقعی با پایگاه‌داده کار می‌کنید، یادگیری و استفاده از Stored Procedure می‌تواند بخش بزرگی از کار شما را ساده و بهینه کند.

بدون دیدگاه

دیدگاهتان را بنویسید