دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
Attribute در سی شارپ
1403/12/23 -
متغیرها در پایگاه داده SQL
1403/12/22 -
آشنایی با Multi-Threaded در سی شارپ
1403/12/22 -
ایجاد و حذف View در پایگاه داده SQL
1403/12/21 -
view در پایگاه داده SQL
1403/12/20
متغیرها در پایگاه داده SQL

متغیرها در پایگاه داده SQL
متغیرها در پایگاه داده SQL برای ذخیره مقادیر موقت در طول اجرای یک بلاک T-SQL استفاده میشوند.
این متغیرها معمولاً با دستور DECLARE تعریف شده و مقداردهی اولیه آنها با SET یا SELECT انجام میشود.
متغیرها میتوانند انواع مختلفی از دادهها مانند INTEGER، VARCHAR، DATETIME و غیره را نگهداری کنند.
استفاده از متغیرها در SQL Server به بهبود خوانایی کد و کاهش تعداد درخواستهای پایگاه داده کمک میکند.
متغیرها اغلب در Stored Procedureها، Functions و Triggers استفاده میشوند تا مقادیر موقت را مدیریت کنند.
بر خلاف Table Variables یا Temporary Tables، متغیرهای معمولی فقط یک مقدار منفرد را نگه میدارند و در محدوده اجرای همان بلاک کد معتبر هستند.
برای مثال، متغیری که در یک Stored Procedure تعریف شده است، فقط در همان رویه قابل دسترسی است.
استفاده از متغیرها بهینهتر از Temporary Tables است، زیرا نیازی به ایجاد و حذف جداول در پایگاه داده ندارد.
انواع متغیرها در SQL
در SQL، متغیرها معمولاً به چهار دسته کلی تقسیم میشوند:
-
متغیرهای محلی (Local Variables)
این متغیرها فقط در محدودهای که تعریف شدهاند قابل دسترسی هستند و پس از اتمام اجرای آن بخش از کد از بین میروند.
برای مثال در توابع یا پروسیجرهای ذخیره شده، متغیرها معمولاً محلی هستند.
مثال:
DECLARE @myVariable INT;
SET @myVariable = 10;
-
متغیرهای سیستمی (System Variables)
این متغیرها برای ذخیرهسازی اطلاعات سیستمعامل و تنظیمات محیط پایگاه داده استفاده میشوند.
این متغیرها معمولاً به صورت پیشفرض در پایگاه داده موجود هستند و نمیتوان آنها را تغییر داد.
مثال:
SELECT @@VERSION;
-
متغیرهای پارامتر (Parameter Variables)
این متغیرها معمولاً در توابع و پروسیجرهای ذخیره شده برای دریافت داده از خارج استفاده میشوند.
آنها میتوانند ورودیهایی را از کاربر دریافت کنند و در طول فرآیند پردازش دادهها مورد استفاده قرار گیرند.
مثال:
CREATE PROCEDURE GetEmployeeDetails (@EmployeeID INT)
AS
BEGIN
SELECT * FROM Employees WHERE EmployeeID = @EmployeeID;
END;
-
متغیرهای جدول (Table Variables)
این نوع از متغیرها برای ذخیرهسازی مجموعهای از دادهها استفاده میشود که میتواند شامل چندین ردیف و ستون باشد. متغیرهای جدول مانند جداول معمولی هستند، اما فقط در طول اجرای اسکریپت موجود میمانند.
مثال:
DECLARE @MyTable TABLE
(
EmployeeID INT,
EmployeeName VARCHAR(100)
);
INSERT INTO @MyTable (EmployeeID, EmployeeName)
VALUES (1, 'John Doe'), (2, 'Jane Smith');
SELECT * FROM @MyTable;
نحوه ایجاد متغیر در SQL
برای ایجاد متغیر در SQL از دستور DECLARE استفاده میشود.
پس از اعلام متغیر، میتوان مقدار آن را با استفاده از دستور SET یا SELECT اختصاص داد.
-
استفاده از دستور DECLARE
دستور DECLARE برای ایجاد متغیر در SQL استفاده میشود. با استفاده از این دستور، نوع داده متغیر نیز مشخص میشود.
مثال:
DECLARE @myVariable INT;
DECLARE @name VARCHAR(50);
-
استفاده از دستور SET
پس از ایجاد متغیر، میتوان از دستور SET برای اختصاص مقدار به آن استفاده کرد.
همچنین میتوان از دستور SELECT نیز برای اختصاص مقدار به متغیرها استفاده کرد.
مثال با SET:
SET @myVariable = 10;
SET @name = 'John Doe';
مثال با SELECT:
SELECT @myVariable = 10;
SELECT @name = 'John Doe';
نحوه حذف متغیر در SQL
در SQL، متغیرها به طور خودکار پس از اتمام اجرای اسکریپت از بین میروند و نیازی به حذف دستی آنها نیست.
با این حال، اگر بخواهید یک متغیر را به صورت دستی حذف کنید، میتوانید از دستور DEALLOCATE استفاده کنید.
توجه داشته باشید که دستور DEALLOCATE بیشتر برای متغیرهای نوع جدول (Table Variables) کاربرد دارد.
مثال:
DECLARE @MyTable TABLE
(
ID INT,
Name VARCHAR(100)
);
-- انجام عملیات با جدول
-- حذف جدول متغیر
DEALLOCATE @MyTable;
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
همین حالا شروع کنید و به دنیای دادهها بپیوندید!
نحوه ویرایش متغیر در SQL
برای ویرایش مقدار یک متغیر در SQL، از دستور SET یا SELECT استفاده میشود.
میتوانید مقدار یک متغیر را با یک مقدار جدید جایگزین کنید یا آن را به مقدار جدیدی تغییر دهید.
مثال:
DECLARE @myVariable INT;
SET @myVariable = 10;
-- ویرایش مقدار متغیر
SET @myVariable = 20;
SELECT @myVariable; -- خروجی: 20
مثالهای کاربردی از متغیرها در پایگاه داده sql
-
استفاده از متغیرها در پروسیجرها
در اینجا یک مثال از استفاده از متغیر در یک پروسیجر SQL آورده شده است. این پروسیجر اطلاعات یک کارمند را بر اساس شناسه کارمند (EmployeeID) جستجو میکند.
مثال:
CREATE PROCEDURE GetEmployeeInfo
@EmployeeID INT
AS
BEGIN
DECLARE @EmployeeName VARCHAR(100);
DECLARE @EmployeeSalary DECIMAL(10, 2);
SELECT @EmployeeName = Name, @EmployeeSalary = Salary
FROM Employees
WHERE EmployeeID = @EmployeeID;
SELECT @EmployeeName AS Name, @EmployeeSalary AS Salary;
END;
-
استفاده از متغیر جدول برای ذخیره دادهها
در این مثال، از متغیر جدول برای ذخیره و نمایش دادهها استفاده شده است.
مثال:
DECLARE @EmployeeTable TABLE
(
EmployeeID INT,
EmployeeName VARCHAR(100)
);
INSERT INTO @EmployeeTable (EmployeeID, EmployeeName)
VALUES (1, 'Alice'), (2, 'Bob');
SELECT * FROM @EmployeeTable;
نکات مهم درباره استفاده از متغیرها در SQL
-
متغیرها به طور پیشفرض فقط در همان اسکریپت یا پروسیجر قابل استفاده هستند و پس از اتمام کار از بین میروند.
-
استفاده از متغیرهای مناسب میتواند عملکرد پایگاه داده را بهبود بخشد و کدهای پیچیده را سادهتر کند.
-
اگر نیاز به ذخیرهسازی دادههای موقت دارید، از متغیرهای جدول استفاده کنید.
-
از متغیرهای سیستم برای دسترسی به اطلاعات سیستمی مثل نسخه SQL Server یا نام کاربر جاری استفاده کنید.
مثال پروژه محور از متغیرها در پایگاه داده sql
پروژه: محاسبه مجموع فروش محصولات در یک دوره خاص
مرحله 1: تعریف جداول پایگاهداده
ابتدا جدولهای مورد نیاز را ایجاد میکنیم. فرض میکنیم که جدولها شامل اطلاعات سفارشات و محصولات باشند.
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(100),
Price DECIMAL(10, 2)
);
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
ProductID INT,
Quantity INT,
OrderDate DATE,
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
مرحله 2: وارد کردن دادهها
دادههایی برای محصولات و سفارشات وارد میکنیم.
-- وارد کردن محصولات
INSERT INTO Products (ProductID, ProductName, Price)
VALUES (1, 'Product A', 50.00), (2, 'Product B', 30.00), (3, 'Product C', 20.00);
-- وارد کردن سفارشات
INSERT INTO Orders (OrderID, ProductID, Quantity, OrderDate)
VALUES (1, 1, 2, '2025-02-01'), (2, 2, 5, '2025-02-02'), (3, 1, 3, '2025-03-01');
مرحله 3: محاسبه مجموع فروش محصولات در یک تاریخ خاص
در این مرحله، میخواهیم مجموع فروش محصولات را برای یک دوره زمانی خاص محاسبه کنیم. برای این کار از متغیرها استفاده میکنیم.
DECLARE @StartDate DATE, @EndDate DATE;
SET @StartDate = '2025-02-01';
SET @EndDate = '2025-02-28';
DECLARE @TotalSales DECIMAL(10, 2);
SET @TotalSales = 0;
-- محاسبه مجموع فروش
SELECT @TotalSales = SUM(p.Price * o.Quantity)
FROM Orders o
JOIN Products p ON o.ProductID = p.ProductID
WHERE o.OrderDate BETWEEN @StartDate AND @EndDate;
SELECT @TotalSales AS TotalSalesInPeriod;
توضیحات کد:
- در ابتدا، تاریخ شروع و پایان دوره به متغیرهای @StartDate و @EndDate اختصاص داده میشود.
- سپس، یک متغیر @TotalSales برای ذخیره مجموع فروش در طول دوره تعریف میشود.
- از یک JOIN برای ترکیب دادههای سفارشات و محصولات استفاده شده و مجموع فروش محصولات با ضرب قیمت محصول در تعداد سفارشات محاسبه میشود.
- در نهایت، مجموع فروش برای دوره تعیینشده در قالب یک متغیر به نمایش درمیآید.
دوره های مرتبط

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