دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
Class Library در سی شارپ
1404/01/10 -
دستور BREAK در پایگاه داده sql
1404/01/02 -
دستور CONTINUE در پایگاه داده SQL
1404/01/01 -
دستور WAITFOR در پایگاه داده SQL
1403/12/26 -
دستور GOTO در پایگاه داده SQL
1403/12/25 -
حلقه WHILE در پایگاه داده SQL
1403/12/24
دستورات شرطی در SQL

دستورات شرطی در SQL
دستورات شرطی IF و IF ELSE در SQL برای کنترل جریان اجرای دستورات بر اساس شرایط مختلف استفاده میشوند.
دستور IF زمانی کاربرد دارد که بخواهید یک یا چند دستور را تنها در صورت برقرار بودن یک شرط خاص اجرا کنید.
به عبارت دیگر، اگر شرط درست باشد، دستورات بعد از آن اجرا خواهند شد و در غیر این صورت هیچ عملیاتی انجام نمیشود.
این دستور در پروسیجرها و توابع ذخیرهشده معمولاً استفاده میشود و به شما امکان میدهد منطقهایی مانند بررسی مقادیر یا تصمیمگیریها را پیادهسازی کنید.
دستور IF ELSE گسترشیافتهای از دستور IF است که علاوه بر بررسی یک شرط خاص، در صورت نادرست بودن آن شرط، دستورات دیگری را اجرا میکند.
این دستور به شما این امکان را میدهد که در دو حالت مختلف، عملیات متفاوتی انجام دهید.
در صورتی که شرط برقرار باشد، دستورات داخل بلاک IF اجرا میشود و در غیر این صورت، دستوراتی که در بلاک ELSE قرار دارند اجرا خواهند شد.
این ویژگی باعث انعطافپذیری بیشتر در برنامهنویسی SQL و ایجاد منطقهای پیچیدهتر میشود.
ساختار دستور IF در SQL
ساختار عمومی دستور IF به شکل زیر است:
IF شرط
BEGIN
-- دستورات SQL که در صورتی که شرط درست باشد اجرا میشوند
END
در اینجا، اگر شرط مشخصشده در قسمت IF درست باشد، دستورات داخل بلوک BEGIN و END اجرا خواهند شد.
دستور IF ELSE در SQL
دستور IF ELSE در SQL به شما این امکان را میدهد که دو مسیر مختلف را برای اجرا انتخاب کنید:
-
یکی برای زمانی که شرط درست باشد
-
برای زمانی که شرط اشتباه باشد.
ساختار عمومی دستور IF ELSE به شکل زیر است:
IF شرط
BEGIN
-- دستورات SQL برای شرایط درست
END
ELSE
BEGIN
-- دستورات SQL برای شرایط اشتباه
END
در اینجا، اگر شرط درست باشد، دستورات داخل بلوک BEGIN اول اجرا میشوند و اگر شرط اشتباه باشد، دستورات داخل بلوک BEGIN دوم (که بعد از ELSE آمده است) اجرا خواهند شد.
.🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
همین حالا شروع کنید و به دنیای دادهها بپیوندید!
مثالهای عملی از دستور IF و IF ELSE
مثال 1: استفاده از دستور IF در SQL
فرض کنید یک جدول به نام employees داریم که اطلاعات کارکنان را ذخیره میکند و میخواهیم بررسی کنیم که آیا حقوق یک کارمند بیشتر از 5000 است یا خیر.
DECLARE @salary INT;
SET @salary = 6000;
IF @salary > 5000
BEGIN
PRINT 'حقوق بیشتر از 5000 است';
END
در این مثال، اگر متغیر @salary بیشتر از 5000 باشد، پیام "حقوق بیشتر از 5000 است" چاپ خواهد شد.
مثال 2: استفاده از دستور IF ELSE در SQL
در این مثال، میخواهیم حقوق یک کارمند را بررسی کنیم و بسته به اینکه حقوق بیشتر از 5000 است یا خیر، یک پیام مناسب را چاپ کنیم.
DECLARE @salary INT;
SET @salary = 4000;
IF @salary > 5000
BEGIN
PRINT 'حقوق بیشتر از 5000 است';
END
ELSE
BEGIN
PRINT 'حقوق کمتر از 5000 است';
END
در اینجا، چون حقوق کارمند کمتر از 5000 است، پیام "حقوق کمتر از 5000 است" چاپ خواهد شد.
کاربرد دستور IF در ذخیرهسازی مقادیر
دستورات شرطی میتوانند در SQL برای محاسبه یا ذخیرهسازی مقادیر مختلف استفاده شوند.
مثلاً اگر بخواهیم یک مقدار را فقط در صورتی که مقدار دیگری بیشتر از یک مقدار خاص است ذخیره کنیم، میتوانیم از دستور IF استفاده کنیم.
DECLARE @value INT;
SET @value = 100;
IF @value > 50
BEGIN
INSERT INTO my_table (column_name) VALUES (@value);
END
در این مثال، فقط اگر مقدار @value بیشتر از 50 باشد، آن را در جدول my_table وارد خواهیم کرد.
ترکیب دستور IF با سایر دستورات SQL
دستور IF میتواند با دستورات دیگر SQL مانند SELECT، UPDATE، و DELETE ترکیب شود تا از آنها در مواقع خاص استفاده شود.
به عنوان مثال، میتوانیم با استفاده از دستور IF، رکوردهایی را در یک جدول UPDATE کنیم.
DECLARE @age INT;
SET @age = 30;
IF @age > 18
BEGIN
UPDATE users SET status = 'adult' WHERE user_id = 1;
END
در این مثال، اگر متغیر age@ بیشتر از 18 باشد، وضعیت کاربر با user_id برابر با 1 به "adult" تغییر خواهد کرد.
استفاده از دستور IF در توابع و پروسیجرها
دستور IF میتواند در توابع (functions) و پروسیجرها (stored procedures) برای کنترل جریان اجرایی و تصمیمگیری در اجرای دستورات مختلف استفاده شود.
CREATE PROCEDURE CheckSalary
@salary INT
AS
BEGIN
IF @salary > 5000
BEGIN
PRINT 'حقوق زیاد است';
END
ELSE
BEGIN
PRINT 'حقوق کم است';
END
END
در این مثال، یک پروسیجر به نام CheckSalary تعریف شده که حقوق یک کارمند را بررسی کرده و پیام مناسبی را چاپ میکند.
دستور IF در SQL Server و MySQL
دستور IF در SQL Server و MySQL مشابه است، اما تفاوتهایی در نحوه استفاده از آن در داخل اسکریپتها و توابع وجود دارد.
به طور کلی، دستور IF در SQL Server بیشتر در داخل پروسیجرها یا توابع استفاده میشود، در حالی که در MySQL بیشتر در داخل دستورات معمولی SQL مورد استفاده قرار میگیرد.
نکات مهم در استفاده از دستور IF در SQL
-
دقت در استفاده از پارامترهای ورودی
هنگام استفاده از دستور IF در پروسیجرها و توابع، مطمئن شوید که پارامترهای ورودی به درستی مقداردهی شدهاند. -
عملکرد بهینه
استفاده زیاد از دستورات شرطی در کوئریها ممکن است باعث کاهش کارایی شود، به ویژه زمانی که با حجم زیاد دادهها سروکار دارید. -
خوانایی کد
برای افزایش خوانایی و فهم بهتر کد، از تو رفتگی مناسب و نوشتن کامنتها برای توضیح شرایط مختلف استفاده کنید.
مثال پروژه محور از دستورات شرطی در SQL
در این مثال پروژهمحور، یک سیستم مدیریت موجودی کالا (Inventory Management) را طراحی میکنیم که از دستورات شرطی IF و IF ELSE برای بررسی و بهروزرسانی موجودی کالاها استفاده میکند.
فرض کنید یک جدول products داریم که اطلاعات محصولات را ذخیره میکند.
ساخت جدول products
ابتدا جدول products را ایجاد میکنیم که شامل شناسه کالا، نام کالا، قیمت و موجودی است.
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(100),
price DECIMAL(10, 2),
stock_quantity INT
);
اضافه کردن دادهها به جدول
سپس دادههای نمونهای به جدول products وارد میکنیم.
INSERT INTO products (product_id, product_name, price, stock_quantity)
VALUES
(1, 'Laptop', 1000.00, 5),
(2, 'Smartphone', 500.00, 10),
(3, 'Headphones', 100.00, 0);
ایجاد یک پروسیجر برای بررسی و بهروزرسانی موجودی کالا
در این مرحله، یک پروسیجر به نام update_stock میسازیم که تعداد موجودی یک کالا را بررسی کرده و در صورت کافی بودن موجودی، موجودی را بهروز میکند.
CREATE PROCEDURE update_stock(
IN p_product_id INT,
IN p_quantity INT
)
BEGIN
DECLARE current_stock INT;
-- گرفتن موجودی فعلی کالا
SELECT stock_quantity INTO current_stock
FROM products
WHERE product_id = p_product_id;
-- بررسی موجودی و بهروزرسانی
IF current_stock >= p_quantity THEN
UPDATE products
SET stock_quantity = stock_quantity - p_quantity
WHERE product_id = p_product_id;
PRINT 'موجودی با موفقیت بهروز شد';
ELSE
PRINT 'موجودی کافی نیست';
END IF;
END;
توضیح پروسیجر
در این پروسیجر، ابتدا موجودی کالا از جدول products خوانده میشود.
سپس با استفاده از دستور IF, بررسی میشود که آیا موجودی کالا به اندازه درخواست شده است یا خیر.
اگر موجودی کافی باشد، موجودی کالا کاهش مییابد، در غیر این صورت پیام "موجودی کافی نیست" نمایش داده میشود.
استفاده از پروسیجر
حالا که پروسیجر را ایجاد کردهایم، میتوانیم آن را برای بهروزرسانی موجودی کالا فراخوانی کنیم.
مثال 1: موجودی کافی است
CALL update_stock(1, 3);
در این مثال، چون موجودی لپتاپ 5 عدد است و درخواست 3 عدد است، موجودی با موفقیت بهروز میشود.
مثال 2: موجودی کافی نیست
CALL update_stock(3, 1);
در این مثال، چون موجودی هدفونها صفر است، پیام "موجودی کافی نیست" نمایش داده میشود.
دوره های مرتبط

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