SQL UNION ALL Operator

இரண்டு அல்லது அதற்கு மேற்பட்ட SELECT statements-ன் முடிவு-தொகுப்புகளை இணைக்க UNION ALL operator பற்றி அறிந்து கொள்ளுங்கள்

SQL UNION ALL Operator என்றால் என்ன?

UNION ALL operator இரண்டு அல்லது அதற்கு மேற்பட்ட SELECT statements-ன் முடிவு-தொகுப்புகளை இணைக்கப் பயன்படுகிறது.

UNION ALL operator ஒவ்வொரு statement-ல் இருந்தும் அனைத்து வரிசைகளையும் உள்ளடக்குகிறது, எந்த நகல்கள் உட்பட.

UNION ALL-க்கான தேவைகள்:

  • UNION ALL-ல் உள்ள ஒவ்வொரு SELECT statement-க்கும் ஒரே எண்ணிக்கையிலான நெடுவரிசைகள் இருக்க வேண்டும்
  • நெடுவரிசைகளும் ஒத்த தரவு வகைகளைக் கொண்டிருக்க வேண்டும்
  • ஒவ்வொரு SELECT statement-ல் உள்ள நெடுவரிசைகளும் ஒரே வரிசையில் இருக்க வேண்டும்

UNION ALL தொடரியல்

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

குறிப்பு:

UNION operator இயல்பாக நகல் மதிப்புகளை நீக்குகிறது, ஆனால் UNION ALL நகல் மதிப்புகளை உள்ளடக்குகிறது.

ஆர்ப்பாட்ட தரவுத்தளம்

இந்த பயிற்சியில் நாம் நன்கு அறியப்பட்ட Northwind மாதிரி தரவுத்தளத்தைப் பயன்படுத்துவோம்.

"Customers" அட்டவணையில் இருந்து ஒரு தேர்வு கீழே உள்ளது:

Customers அட்டவணை

+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| CustomerID | CustomerName                   | ContactName    | Address           | City     | PostalCode | Country |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| 1          | Alfreds Futterkiste            | Maria Anders   | Obere Str. 57     | Berlin   | 12209      | Germany |
| 2          | Ana Trujillo Emparedados...    | Ana Trujillo   | Avda. Constitución| México   | 05021      | Mexico  |
| 3          | Antonio Moreno Taquería        | Antonio Moreno | Mataderos 2312    | México   | 05023      | Mexico  |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+

மற்றும் "Suppliers" அட்டவணையில் இருந்து ஒரு தேர்வு:

Suppliers அட்டவணை

+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+
| SupplierID | SupplierName                | ContactName       | Address         | City         | PostalCode | Country |
+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+
| 1          | Exotic Liquid               | Charlotte Cooper  | 49 Gilbert St.  | London       | EC1 4SD    | UK      |
| 2          | New Orleans Cajun Delights  | Shelley Burke     | P.O. Box 78934  | New Orleans  | 70117      | USA     |
| 3          | Grandma Kelly's Homestead   | Regina Murphy     | 707 Oxford Rd.  | Ann Arbor    | 48104      | USA     |
+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+

SQL UNION ALL உதாரணம்

பின்வரும் SQL statement "Customers" மற்றும் "Suppliers" அட்டவணைகளில் இருந்து நகரங்களை (நகல் மதிப்புகளும் உட்பட) திரும்பப் பெறுகிறது:

உதாரணம்

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;

முடிவு

City
Ann Arbor
Berlin
London
London
México
México
New Orleans

WHERE உடன் SQL UNION ALL

பின்வரும் SQL statement "Customers" மற்றும் "Suppliers" அட்டவணைகளில் இருந்து ஜெர்மன் நகரங்களை (நகல் மதிப்புகளும் உட்பட) திரும்பப் பெறுகிறது:

உதாரணம்

SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;

UNION vs UNION ALL காட்சிப் பிரதிநிதித்துவம்

Customers நகரங்கள்

Berlin
México
México
London

Suppliers நகரங்கள்

London
New Orleans
Ann Arbor

UNION முடிவு

Ann Arbor
Berlin
London
México
New Orleans

நகல்கள் நீக்கப்பட்டன

UNION ALL முடிவு

Ann Arbor
Berlin
London
London
México
México
New Orleans

அனைத்து நகல்களும் சேர்க்கப்பட்டன

கவனிக்க: UNION தானாகவே நகல் மதிப்புகளை நீக்குகிறது, ஆனால் UNION ALL அனைத்து நகல் மதிப்புகளையும் பாதுகாக்கிறது.

UNION vs UNION ALL ஒப்பீடு

UNION

  • நகல் வரிசைகளை தானாகவே நீக்குகிறது
  • தனித்த மதிப்புகளை மட்டும் தரும்
  • மெதுவாக செயல்படக்கூடும் (தனித்துவத்தை சரிபார்க்கும்)
  • தரவு ஒருமைப்பாட்டிற்கு ஏற்றது
  • குறைவான வரிசைகளை தரும்
SELECT City FROM Table1
UNION
SELECT City FROM Table2;

UNION ALL

  • நகல் வரிசைகளை பாதுகாக்கிறது
  • அனைத்து மதிப்புகளையும் தரும்
  • வேகமாக செயல்படும் (தனித்துவம் சரிபார்க்கப்படாது)
  • முழுமையான தரவிற்கு ஏற்றது
  • அதிக வரிசைகளை தரும்
SELECT City FROM Table1
UNION ALL
SELECT City FROM Table2;

செயல்திறன் குறிப்பு:

நகல்கள் தேவையில்லாத சூழ்நிலைகளில் UNION ALL-ஐப் பயன்படுத்தவும், ஏனெனில் இது தனித்துவத்தை சரிபார்க்காமல் இருப்பதால் வேகமாக செயல்படும்.

செயல்திறன் கருத்துகள்

UNION ALL வேகமானது

தனித்துவத்தை சரிபார்க்க தேவையில்லை

-- வேகமானது
SELECT * FROM Table1
UNION ALL
SELECT * FROM Table2;

UNION மெதுவானது

தனித்துவத்தை சரிபார்க்க வேண்டும்

-- மெதுவானது
SELECT * FROM Table1
UNION
SELECT * FROM Table2;

பெரிய தரவுத்தளங்கள்

பெரிய அட்டவணைகளுக்கு UNION ALL பயன்படுத்தவும்

-- பெரிய தரவிற்கு ஏற்றது
SELECT CustomerID FROM LargeTable1
UNION ALL
SELECT CustomerID FROM LargeTable2;

பயன்பாட்டு நிகழ்வுகள்

முழுமையான புள்ளிவிவரங்கள்

அனைத்து நிகழ்வுகளையும் உள்ளடக்கிய புள்ளிவிவர பகுப்பாய்வுக்கு

SELECT 'Customer' AS Type, City 
FROM Customers
UNION ALL
SELECT 'Supplier', City 
FROM Suppliers;

பதிவு கணக்கீடுகள்

முழுமையான பதிவு எண்ணிக்கைக்கு

SELECT COUNT(*) AS TotalCount
FROM (
    SELECT * FROM Table1
    UNION ALL
    SELECT * FROM Table2
) AS CombinedTable;

தரவு இணைப்பு

பல மூலங்களில் இருந்து தரவை இணைக்க

SELECT ProductName FROM CurrentProducts
UNION ALL
SELECT ProductName FROM ArchivedProducts;

பயிற்சி

SQL UNION operator-ன் முதன்மை நோக்கம் என்ன?

இணைந்த நெடுவரிசைகளுடன் புதிய அட்டவணையை உருவாக்க
✗ தவறு! UNION புதிய அட்டவணையை உருவாக்காது
ஒரு அட்டவணையில் நகல் வரிசைகளை நீக்க
✗ தவறு! இது DISTINCT அல்லது DELETE-ன் வேலை
Self join செய்ய
✗ தவறு! Self join வேறு வகையான JOIN ஆகும்
இரண்டு அல்லது அதற்கு மேற்பட்ட SELECT statements-ன் முடிவு-தொகுப்புகளை இணைக்க
✓ சரி! UNION operator பல SELECT queries-ன் முடிவுகளை ஒரே result set-ஆக இணைக்கப் பயன்படுகிறது