इस लेख में, हम SQL सर्वर जॉइन पर करीब से नज़र डालने जा रहे हैं। हम सिंटैक्स, विज़ुअल इलस्ट्रेशन और उदाहरणों के साथ सभी समर्थित SQL सर्वर जॉइन प्रकारों की समीक्षा करेंगे।
जैसा कि हम सभी जानते हैं, टेबल डेटा किसी भी SQL डेटाबेस का मूल है। इसे प्रभावी ढंग से उपयोग करने के लिए, डेटाबेस प्रशासकों को नियमित रूप से कुछ शर्तों के आधार पर कई तालिकाओं से रिकॉर्ड निकालने की आवश्यकता होती है। और ठीक यही SQL जॉइन के लिए है।
जॉइन एक SQL क्लॉज है जिसका उपयोग पुनः प्राप्त करने के लिए किया जाता है द तालिकाओं के बीच तार्किक संबंधों के आधार पर दो या दो से अधिक तालिकाओं का डेटा। जॉइन इंगित करता है कि SQL सर्वर को किसी अन्य तालिका में पंक्तियों का चयन करने के लिए एक तालिका से डेटा का उपयोग कैसे करना चाहिए।
SQL में विभिन्न प्रकार के जॉइन
SQL सर्वर INNER JOIN . सहित विभिन्न प्रकार के जॉइन का समर्थन करता है , स्वयं शामिल हों , क्रॉस जॉइन करें , और बाहरी शामिल हों . वास्तव में, प्रत्येक जॉइन प्रकार एक क्वेरी में दो तालिकाओं के संबंधित होने के तरीके को परिभाषित करता है। OUTER JOINS को, बदले में, बाएँ OUTER JOINS में विभाजित किया जा सकता है , दाएं बाहरी जुड़ाव , और पूर्ण बाहरी जुड़ाव ।
जॉइन कैसे काम करता है, इसे बेहतर ढंग से प्रदर्शित करने के लिए, हम दो टेबल बनाएंगे।
CREATE TABLE AdventureWorks2019.dbo.users (
auid INT IDENTITY
,username VARCHAR(50) NOT NULL
,password VARCHAR(50) NOT NULL
,createdate DATETIME NOT NULL
,isActive TINYINT NOT NULL
);
CREATE TABLE AdventureWorks2019.dbo.userprofile (
apid INT NOT NULL
,auid INT NOT NULL
,firstname VARCHAR(50) NOT NULL
,lastname VARCHAR(50) NOT NULL
,email VARCHAR(100) NOT NULL
,phone VARCHAR(45) NOT NULL
);
इसके बाद, हमें बनाई गई तालिकाओं में डेटा सम्मिलित करना होगा।
USE AdventureWorks2019
GO
Insert into dbo.users
(auid, username,password, createdate, isActive)
values
(1,'admin','pswrd123', GETDATE(), 1);
Insert into dbo.userprofile
(apid, auid, firstname, lastname, email, phone)
values
(1,1,'Jack', 'Wolf', '[email protected]','600075764216');
Insert into dbo.users
(auid,username,password, createdate, isActive)
values
(2, 'admin1','pass506', GETDATE(), 1);
Insert into dbo.userprofile
(apid, auid, firstname, lastname, email, phone)
values
(2, 3, 'Tom', 'Collins', '[email protected]','878511311054');
Insert into dbo.users
(auid, username,password, createdate, isActive)
values
(4,'fox12','[email protected]', GETDATE(), 1);
Insert into userprofile
(apid, auid, firstname, lastname, email, phone)
values
(4,5,'Bill', 'Fonskin', '[email protected]','450985764216');
Insert into dbo.users
(auid,username,password, createdate, isActive)
values
(6, 'lexus1267','98hnfRT6', GETDATE(), 1);
Insert into dbo.userprofile
(apid, auid, firstname, lastname, email, phone)
values
(7, 7, 'John', 'Hopkins', '[email protected]','878511311054');
एसक्यूएल इनर जॉइन
इनर जॉइन स्टेटमेंट उन रिकॉर्ड्स को लौटाता है जिनमें दोनों टेबलों में मेल खाने वाले मान होते हैं।
SQL INNER JOIN क्लॉज का सिंटैक्स इस प्रकार है:
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
SQL OUTER JOINs
इनर जॉइन क्लॉज के विपरीत, आउटर जॉइन न केवल मेल खाने वाले रिकॉर्ड बल्कि गैर-मिलान वाले भी लौटाते हैं। यदि किसी सम्मिलित तालिका में मेल न खाने वाली पंक्तियाँ हैं, तो उनके लिए NULL मान दिखाए जाएंगे।
SQL सर्वर में निम्नलिखित दो प्रकार के OUTER JOIN होते हैं:SQL LEFT JOIN और SQL RIGHT JOIN। आइए उनमें से प्रत्येक पर करीब से नज़र डालें।
एसक्यूएल लेफ्ट जॉइन
SQL लेफ्ट जॉइन लेफ्ट टेबल (टेबल ए) से सभी रिकॉर्ड्स और राइट टेबल (टेबल बी) से मैचिंग रिकॉर्ड लौटाता है। यदि कोई मेल नहीं है तो परिणाम दाईं ओर से 0 रिकॉर्ड है।
SQL लेफ्ट जॉइन क्लॉज का सिंटैक्स इस प्रकार है:
SELECT column_name(s)
FROM tableA
LEFT JOIN tableB
ON tableA.column_name = tableB.column_name;
एसक्यूएल राइट जॉइन
राइट जॉइन कीवर्ड राइट टेबल (टेबल 2) से सभी रिकॉर्ड्स और लेफ्ट टेबल (टेबल 1) से मैचिंग रिकॉर्ड्स लौटाता है। यदि कोई मेल नहीं है तो परिणाम बाईं ओर से 0 रिकॉर्ड है।
SQL राइट जॉइन क्लॉज का सिंटैक्स इस प्रकार है:
SELECT column_name(s)
FROM tableA
RIGHT JOIN tableB
ON tableA.column_name = tableB.column_name;
SQL पूर्ण बाहरी जॉइन
जब बाएँ (तालिका A) या दाएँ (तालिका B) तालिका रिकॉर्ड में कोई मिलान होता है, तो FULL OUTER JOIN सभी रिकॉर्ड लौटाता है।
SQL FULL OUTER JOIN क्लॉज का सिंटैक्स इस प्रकार है:
SELECT column_name(s)
FROM tableA
FULL OUTER JOIN tableB
ON tableA.column_name = tableB.column_name
WHERE condition;
एसक्यूएल क्रॉस जॉइन
SQL क्रॉस जॉइन, जिसे कार्टेशियन जॉइन के रूप में भी जाना जाता है, प्रत्येक तालिका से पंक्तियों के सभी संयोजनों को पुनः प्राप्त करता है। इस प्रकार के JOIN में, यदि कोई अतिरिक्त शर्त पेश नहीं की जाती है, तो तालिका A की प्रत्येक पंक्ति को तालिका B की सभी पंक्तियों से गुणा करके परिणाम सेट वापस किया जाता है।
क्रॉस जॉइन को बेहतर ढंग से समझने के लिए, आइए नीचे दिए गए वेन आरेख पर एक नज़र डालें।
SQL क्रॉस जॉइन का सिंटैक्स इस प्रकार है:
SELECT *
FROM tableA
CROSS JOIN tableB;
एसक्यूएल सेल्फ जॉइन
एक सेल्फ-जॉइन एक नियमित जॉइन है, लेकिन टेबल खुद से जुड़ जाती है। इसका तात्पर्य है कि तालिका की प्रत्येक पंक्ति स्वयं के साथ और तालिका की प्रत्येक दूसरी पंक्ति के साथ संयुक्त है।
SQL सेल्फ जॉइन का सिंटैक्स इस प्रकार है:
SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;
निष्कर्ष
एसक्यूएल जॉइन क्लॉज का उपयोग करने में ज्ञान और विशेषज्ञता किसी भी डीबीए या विश्लेषक के लिए आवश्यक कौशल हैं। इसकी तारकीय कोड पूर्णता कार्यक्षमता के साथ, SQL सर्वर के लिए dbForge Studio सबसे जटिल जॉइन क्लॉज को भी लिखने में अपना समय और प्रयास बचा सकता है। आपको सैकड़ों कॉलम नामों या उपनामों को ध्यान में रखने की आवश्यकता नहीं है, SQL के लिए dbForge Studio एक पूर्ण SQL JOIN क्लॉज का संकेत देगा। टूल की समृद्ध कार्यक्षमता जटिल SQL क्वेरीज़ को डिज़ाइन करना और JOIN स्थितियों को त्वरित, आसान और सुविधाजनक प्रबंधित करना बनाती है।