حلقه WHILE در پایگاه داده SQL

تیم تحریریه 1403/12/24 0 69
لینک کوتاه https://zoheirsoftware.com/z/1cfee103f |
حلقه WHILE در پایگاه داده SQL,نحوه کار حلقه WHILE در SQL,نحوه ایجاد دستور WHILE در SQL

حلقه WHILE در پایگاه داده SQL

حلقه WHILE در پایگاه داده SQL برای اجرای مکرر یک سری دستورات تا زمانی که یک شرط خاص برقرار باشد، استفاده می‌شود.

ساختار آن به این صورت است که ابتدا شرط مورد نظر بررسی می‌شود و اگر درست باشد، دستورات داخل حلقه اجرا می‌شوند.

این فرآیند تکرار می‌شود تا زمانی که شرط غلط شود. حلقه‌های WHILE معمولاً در پروسیجرها و توابع ذخیره‌شده برای انجام عملیات‌های تکراری و پیچیده‌تر به کار می‌روند.

یک نکته مهم در استفاده از حلقه WHILE این است که باید مراقب باشید که شرط به‌گونه‌ای تنظیم شود که در نهایت به اشتباه وارد حلقه بی‌پایان نشوید.

در غیر این صورت، حلقه بدون توقف ادامه خواهد یافت و ممکن است منابع سیستم را مصرف کند.

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

 

حلقه WHILE در پایگاه داده SQL

 

ساختار حلقه WHILE در SQL

حلقه WHILE در SQL به شما این امکان را می‌دهد که یک بخش از کد را تا زمانی که شرط خاصی برقرار باشد، تکرار کنید. ساختار پایه آن به صورت زیر است:

WHILE شرط

BEGIN

    -- دستورات SQL برای اجرا در هر تکرار

END

 

 

در اینجا، شرط یک عبارت منطقی است که باید نتیجه آن در هر تکرار بررسی شود.

این شرط می‌تواند هر چیزی باشد که به صورت TRUE یا FALSE ارزیابی می‌شود. وقتی شرط به FALSE تغییر کند، حلقه متوقف می‌شود و اجرای دستورهای بعدی ادامه می‌یابد.

 

 

 

🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!

 

 

نحوه کار حلقه WHILE در SQL

  • بررسی شرط

    ابتدا شرط حلقه بررسی می‌شود. اگر شرط TRUE باشد، حلقه شروع به اجرا می‌کند.
  • اجرا

    پس از بررسی شرط، دستورات داخل بلوک BEGIN...END اجرا می‌شود.
  • بازگشت به شرط

    پس از اجرای دستورات، مجدداً شرط بررسی می‌شود.
    اگر همچنان TRUE باشد، حلقه دوباره اجرا می‌شود.
    این روند تا زمانی که شرط FALSE شود، ادامه می‌یابد.
  • اتمام

    وقتی شرط به FALSE تغییر کند، حلقه متوقف می‌شود و دستورات بعد از حلقه اجرا می‌شود.

 

نحوه کار حلقه WHILE در SQL

 

نحوه ایجاد دستور WHILE در SQL

برای ایجاد دستور WHILE، شما باید یک متغیر یا یک شرط منطقی داشته باشید که به صورت مداوم بررسی شود.

در اینجا، به مثال‌هایی از نحوه استفاده از حلقه WHILE در SQL می‌پردازیم.

 

مثال 1: حلقه WHILE ساده برای شمارش

در این مثال، ما یک متغیر @counter داریم که از 1 شروع می‌کند و هر بار با اجرای حلقه، مقدار آن یک واحد افزایش می‌یابد تا زمانی که به 10 برسد.

 

DECLARE @counter INT = 1;




WHILE @counter <= 10

BEGIN

    PRINT 'Counter value: ' + CAST(@counter AS VARCHAR);

    SET @counter = @counter + 1;

END

شرح:

در این مثال ابتدا متغیر @counter با مقدار 1 مقداردهی اولیه می‌شود.

شرط حلقه @counter <= 10 است. یعنی حلقه تا زمانی که @counter کمتر از یا برابر با 10 باشد، ادامه می‌یابد.

در داخل حلقه، مقدار @counter چاپ می‌شود و سپس یک واحد به آن افزوده می‌شود.

 

مثال 2: حلقه WHILE برای بروزرسانی رکوردها

در این مثال، فرض کنید که یک جدول به نام Employees دارید که در آن اطلاعات کارکنان ذخیره شده است.

شما می‌خواهید حقوق کارکنان را به مقدار 1000 افزایش دهید تا زمانی که حقوق آنها کمتر از 5000 باشد.

 



DECLARE @salary INT = 1000;




WHILE @salary < 5000

BEGIN

    UPDATE Employees

    SET Salary = Salary + 1000

    WHERE Salary = @salary;




    SET @salary = @salary + 1000;

END

شرح:

در این مثال متغیر salary@ از 1000 شروع می‌شود.

حلقه بررسی می‌کند که آیا salary@ کمتر از 5000 است.

در هر تکرار، حقوق کارکنانی که حقوقشان برابر با salary@ است، به اندازه 1000 افزایش می‌یابد.

سپس، salary@ به مقدار 1000 افزایش می‌یابد و حلقه مجدداً اجرا می‌شود.

 

مثال 3: استفاده از حلقه WHILE برای محاسبه مجموع اعداد

در این مثال، از حلقه WHILE برای محاسبه مجموع اعداد از 1 تا 100 استفاده می‌کنیم.

 

 

DECLARE @sum INT = 0;

DECLARE @i INT = 1;




WHILE @i <= 100

BEGIN

    SET @sum = @sum + @i;

    SET @i = @i + 1;

END




PRINT 'Total sum: ' + CAST(@sum AS VARCHAR);

شرح:

در اینجا ابتدا متغیرهای @sum و @i تعریف می‌شوند.

در داخل حلقه، مقدار @i به متغیر @sum اضافه می‌شود.

سپس، مقدار @i افزایش می‌یابد و حلقه ادامه می‌یابد تا زمانی که @i به 100 برسد.

در نهایت، مجموع اعداد از 1 تا 100 در متغیر @sum ذخیره شده و چاپ می‌شود.

 

نکات مهم در استفاده از حلقه WHILE

  • اجتناب از حلقه‌های بی‌پایان

    اگر شرط در حلقه به درستی تغییر نکند، ممکن است حلقه به صورت نامحدود اجرا شود.
    این موضوع می‌تواند باعث مصرف زیاد منابع سیستم و کند شدن پایگاه داده شود.
    به عنوان مثال، اگر فراموش کنید که مقدار متغیرهای شرطی را به درستی تغییر دهید، حلقه وارد یک چرخه بی‌پایان می‌شود.
  • استفاده از دستورات BREAK و CONTINUE

    • BREAK: این دستور باعث می‌شود که حلقه فوراً متوقف شود.
    • CONTINUE: این دستور باعث می‌شود که تکرار بعدی حلقه بدون انجام دستورات باقی‌مانده، شروع شود.

به عنوان مثال:

DECLARE @counter INT = 1;




WHILE @counter <= 10

BEGIN

    IF @counter = 5

    BEGIN

        BREAK;  -- حلقه را متوقف می‌کند

    END

    PRINT 'Counter value: ' + CAST(@counter AS VARCHAR);

    SET @counter = @counter + 1;

END
  • مراقب عملکرد باشید

    اگرچه حلقه‌های WHILE در SQL قدرتمند هستند، اما باید مراقب باشید که از آنها برای انجام عملیات‌های پیچیده یا غیرضروری استفاده نکنید.
    به جای استفاده از حلقه‌ها، در بسیاری از مواقع می‌توان از دستورات SQL مبتنی بر مجموعه (مثل JOIN یا UPDATE) استفاده کرد که کارآمدتر هستند.

 

نکات مهم در استفاده از حلقه WHILE

مثال پروژه محور از حلقه WHILE در پایگاه داده SQL

 

پروژه: افزایش تدریجی فروش محصولات تا رسیدن به هدف

ساختار جدول Sales



CREATE TABLE Sales (

    ProductID INT PRIMARY KEY,

    ProductName VARCHAR(100),

    DailySales INT,

    TargetSales INT

);

فرض کنید شما محصولات مختلفی دارید و می‌خواهید فروش روزانه آنها را به تدریج افزایش دهید تا زمانی که به هدف فروش روزانه هر محصول برسید.

 

داده‌های اولیه جدول Sales

INSERT INTO Sales (ProductID, ProductName, DailySales, TargetSales)

VALUES

(1, 'Product A', 50, 100),

(2, 'Product B', 30, 90),

(3, 'Product C', 70, 120);

 

هدف پروژه:

افزایش فروش روزانه هر محصول به تدریج تا زمانی که به TargetSales هر محصول برسیم. این کار را با استفاده از حلقه WHILE انجام خواهیم داد.

کد پروژه

DECLARE @ProductID INT;

DECLARE @DailySales INT;

DECLARE @TargetSales INT;




-- انتخاب اولین محصول از جدول

DECLARE product_cursor CURSOR FOR

SELECT ProductID, DailySales, TargetSales

FROM Sales;




-- باز کردن کرسر

OPEN product_cursor;




-- خواندن اولین رکورد

FETCH NEXT FROM product_cursor INTO @ProductID, @DailySales, @TargetSales;




-- اجرای حلقه برای هر محصول

WHILE @@FETCH_STATUS = 0

BEGIN

    -- افزایش فروش روزانه تا رسیدن به هدف

    WHILE @DailySales < @TargetSales

    BEGIN

        -- بروزرسانی فروش روزانه

        UPDATE Sales

        SET DailySales = DailySales + 1

        WHERE ProductID = @ProductID;




        -- خواندن مجدد مقدار فروش روزانه

        SELECT @DailySales = DailySales

        FROM Sales

        WHERE ProductID = @ProductID;

    END




    -- خواندن رکورد بعدی

    FETCH NEXT FROM product_cursor INTO @ProductID, @DailySales, @TargetSales;

END




-- بستن کرسر

CLOSE product_cursor;

DEALLOCATE product_cursor;




-- مشاهده نتایج نهایی

SELECT * FROM Sales;

شرح پروژه

  • ایجاد کرسر: برای انتخاب رکوردهای محصولات از جدول Sales یک کرسر ایجاد می‌کنیم.
  • حلقه اول (کرسر): برای هر محصول، مقدار فروش روزانه و هدف فروش آن محصول بررسی می‌شود.
  • حلقه دوم (WHILE): برای هر محصول، فروش روزانه آن افزایش می‌یابد تا به هدف فروش برسد.
  • بروزرسانی داده‌ها: در هر تکرار حلقه داخلی، مقدار فروش روزانه محصول به اندازه 1 واحد افزایش می‌یابد.
  • اتمام فرآیند: پس از افزایش فروش هر محصول، کرسر به رکورد بعدی می‌رود و حلقه‌ها تکرار می‌شوند.
  • نتایج: در پایان، تمامی رکوردهای جدول Sales به‌روزرسانی می‌شوند و می‌توانید نتیجه را مشاهده کنید.

خروجی نهایی

این کد باعث می‌شود که فروش هر محصول تا رسیدن به هدف مشخص‌شده افزایش یابد.

به عنوان مثال، اگر فروش روزانه محصول A برابر با 50 و هدف آن 100 است، حلقه فروش روزانه را 50 بار افزایش خواهد داد تا به هدف 100 برسد.

 

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .

997,000 تومان

2.6k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.