دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
کلمهی کلیدی sealed و object type در سی شارپ
1403/11/02 -
عملگر UNION در پایگاه داده SQL
1403/10/30 -
کلاسهای انتزاعی در سی شارپ
1403/10/30 -
توابع تبدیل کننده در پایگاه داده SQL
1403/10/29 -
متدهای override در سی شارپ
1403/10/28 -
توابع پنجره ای در پایگاه داده SQL
1403/10/28
عملگر UNION در پایگاه داده SQL
عملگر UNION در پایگاه داده SQL
عملگر UNION در SQL برای ترکیب نتایج دو یا چند دستور SELECT استفاده میشود.
این عملگر دادهها را بهصورت عمودی ترکیب میکند و به طور پیشفرض، تمامی مقادیر تکراری را حذف کرده و فقط رکوردهای یکتا را نمایش میدهد.
شرط اصلی استفاده از UNION این است که تعداد و ترتیب ستونها و همچنین نوع دادهها در تمام پرسوجوهای ترکیبشده یکسان باشد.
این ابزار زمانی مفید است که بخواهید دادههای مرتبط از جداول مختلف را در یک خروجی منسجم گردآوری کنید.
علاوه بر UNION، عملگر UNION ALL نیز وجود دارد که مشابه UNION عمل میکند، اما برخلاف آن، تمامی رکوردها (شامل مقادیر تکراری) را نمایش میدهد.
این ویژگی باعث افزایش سرعت اجرای پرسوجوها میشود، زیرا نیازی به حذف مقادیر تکراری ندارد.
برای بهینهسازی پرسوجوها، بهتر است از UNION ALL در مواقعی که حذف مقادیر تکراری ضروری نیست، استفاده کنید.
همچنین میتوان شرایط خاصی را با استفاده از WHERE روی هر پرسوجوی SELECT اعمال کرده و خروجی را با عبارت ORDER BY مرتب کرد.
عملگر UNION چیست؟
این عملگر به شما امکان میدهد تا نتایج پرسوجوهای مختلف را در یک مجموعه داده واحد ادغام کنید.
دادههای برگشتی توسط UNION دارای این ویژگیها هستند:
-
فقط رکوردهای یونیک (غیر تکراری) در خروجی نهایی نمایش داده میشوند.
-
ترتیب ستونها و نوع دادهها در تمامی دستورات SELECT باید مشابه باشد.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
همین حالا شروع کنید و به دنیای دادهها بپیوندید!
ساختار کلی دستور UNION
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
ویژگیهای کلیدی عملگر UNION
-
حذف مقادیر تکراری
به طور پیشفرض، UNION تمامی رکوردهای تکراری را حذف میکند و فقط رکوردهای یکتا را در خروجی نمایش میدهد. -
ترتیب ستونها
تعداد و ترتیب ستونها در تمامی دستورات SELECT باید یکسان باشد. -
سازگاری نوع دادهها
نوع دادهها در ستونهای مورد استفاده باید سازگار باشند. -
قابلیت ادغام دادهها از چندین جدول
میتوانید دادهها را از جداول مختلف در یک خروجی ترکیب کنید.
مثالهای عملی از UNION
مثال ساده: ادغام دادهها از دو جدول
فرض کنید دو جدول Employees_2023 و Employees_2024 دارید و میخواهید تمامی کارکنان هر دو جدول را در یک خروجی مشاهده کنید.
-
ساختار جداول
CREATE TABLE Employees_2023 (
EmployeeID INT,
EmployeeName VARCHAR(50),
Department VARCHAR(50)
);
CREATE TABLE Employees_2024 (
EmployeeID INT,
EmployeeName VARCHAR(50),
Department VARCHAR(50)
);
-
پرسوجوی UNION
SELECT EmployeeID, EmployeeName, Department
FROM Employees_2023
UNION
SELECT EmployeeID, EmployeeName, Department
FROM Employees_2024;
خروجی:
+------------+----------------+-------------+
| EmployeeID | EmployeeName | Department |
+------------+----------------+-------------+
| 1 | John Doe | HR |
| 2 | Jane Smith | IT |
| 3 | Alice Johnson | Sales |
+------------+----------------+-------------+
استفاده از UNION ALL برای نمایش دادههای تکراری
اگر بخواهید تمامی دادهها از جداول مورد نظر نمایش داده شود (شامل مقادیر تکراری)، از UNION ALL استفاده کنید.
دستور:
SELECT EmployeeID, EmployeeName, Department
FROM Employees_2023
UNION ALL
SELECT EmployeeID, EmployeeName, Department
FROM Employees_2024;
شرایط WHERE در هر پرسوجو
میتوانید برای هر دستور SELECT شرایط خاصی تعریف کنید.
مثال: نمایش کارکنان واحد فروش از دو جدول
SELECT EmployeeID, EmployeeName, Department
FROM Employees_2023
WHERE Department = 'Sales'
UNION
SELECT EmployeeID, EmployeeName, Department
FROM Employees_2024
WHERE Department = 'Sales';
ترتیب نتایج با ORDER BY
میتوانید از عبارت ORDER BY برای مرتبسازی نتایج نهایی استفاده کنید.
توجه داشته باشید که عبارت ORDER BY فقط در آخرین دستور SELECT قابل استفاده است.
مثال: مرتبسازی نتایج بر اساس نام کارکنان
SELECT EmployeeID, EmployeeName, Department
FROM Employees_2023
UNION
SELECT EmployeeID, EmployeeName, Department
FROM Employees_2024
ORDER BY EmployeeName ASC;
نکات مهم هنگام استفاده از UNION
-
همگامسازی ستونها و نوع دادهها
تعداد ستونها و نوع دادهها در تمامی دستورات SELECT باید یکسان باشد.
اگر نوع دادهها دقیقاً مشابه نیستند، میتوانید از تبدیل نوع (Type Casting) استفاده کنید.مثال تبدیل نوع:
SELECT EmployeeID, CAST(EmployeeName AS NVARCHAR(50)), Department
FROM Employees_2023
UNION
SELECT EmployeeID, EmployeeName, Department
FROM Employees_2024;
-
بهینهسازی عملکرد
حذف مقادیر تکراری توسط UNION میتواند پرهزینه باشد.
اگر نیازی به حذف مقادیر تکراری ندارید، از UNION ALL استفاده کنید. -
محدودیت روی تعداد ستونها
اگر تعداد ستونها یا ترتیب آنها در دستورات SELECT ناهماهنگ باشد، با خطا مواجه میشوید.
مقایسه UNION با JOIN
در حالی که عملگر UNION دادهها را به صورت عمودی ترکیب میکند، عملگرهای JOIN (مانند INNER JOIN یا LEFT JOIN) دادهها را به صورت افقی ترکیب میکنند.
مثال JOIN
SELECT e.EmployeeID, e.EmployeeName, d.DepartmentName
FROM Employees e
INNER JOIN Departments d
ON e.DepartmentID = d.DepartmentID;
خطاهای رایج در استفاده از UNION
-
عدم تطابق تعداد ستونها
اگر تعداد ستونها در دستورات SELECT ناهماهنگ باشد، با خطای زیر مواجه خواهید شد:
Error: All queries combined using a UNION must have the same number of columns.
-
عدم تطابق نوع دادهها
اگر نوع دادهها در ستونهای مرتبط ناسازگار باشد، خطای زیر نمایش داده میشود:
Error: Conversion failed when converting data types.
بهترین شیوهها برای استفاده از UNION
-
استفاده از UNION ALL در صورت عدم نیاز به حذف مقادیر تکراری
این کار سرعت اجرا را افزایش میدهد. -
استفاده از ALIAS برای وضوح بیشتر
برای خوانایی بیشتر، از نام مستعار ستونها استفاده کنید. -
فیلتر کردن دادهها قبل از استفاده از UNION
برای کاهش حجم دادههای پردازششده، از شرایط WHERE استفاده کنید. -
مرتبسازی پس از ترکیب
از ORDER BY در خروجی نهایی استفاده کنید.
مثال پروژه محور از عملگر UNION در پایگاه داده SQL
مثال پروژه محور: ادغام لیست مشتریان از دو جدول
فرض کنید دو جدول دارید:
-
Customers_Online (مربوط به مشتریان آنلاین)
-
Customers_Store (مربوط به مشتریان حضوری)
و میخواهید لیستی از تمامی مشتریان بدون تکرار تهیه کنید.
ساختار جداول
CREATE TABLE Customers_Online (
CustomerID INT,
CustomerName VARCHAR(50)
);
CREATE TABLE Customers_Store (
CustomerID INT,
CustomerName VARCHAR(50)
);
پرسوجوی UNION
SELECT CustomerID, CustomerName
FROM Customers_Online
UNION
SELECT CustomerID, CustomerName
FROM Customers_Store;
توضیح
این دستور رکوردهای مشتریان آنلاین و حضوری را ترکیب میکند.
UNION فقط مشتریان یکتا را در خروجی نمایش میدهد.
خروجی نمونه
+------------+---------------+
| CustomerID | CustomerName |
+------------+---------------+
| 1 | Ali Rezaei |
| 2 | Sara Ahmadi |
| 3 | John Smith |
+------------+---------------+
این مثال نشان میدهد چگونه میتوان با UNION دادهها را از دو منبع مختلف ترکیب و یکپارچه کرد.
دوره های مرتبط
آموزش پایگاه داده SqlServer
پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .