SQL INSERT INTO SELECT Statement

एक टेबल से डेटा कॉपी करने और उसे दूसरी टेबल में डालने के लिए INSERT INTO SELECT स्टेटमेंट के बारे में जानें

एसक्यूएल इन्सर्ट इनटू सेलेक्ट स्टेटमेंट

INSERT INTO SELECT स्टेटमेंट एक टेबल से डेटा कॉपी करता है और उसे दूसरी टेबल में डालता है।

INSERT INTO SELECT कथन के लिए आवश्यक है कि स्रोत और लक्ष्य तालिकाओं में डेटा प्रकार मेल खाते हों।

⚠️नोट:

लक्ष्य तालिका में मौजूदा रिकॉर्ड प्रभावित नहीं होते हैं.

चयन वाक्यविन्यास में सम्मिलित करें

सभी स्तंभों को एक तालिका से दूसरी तालिका में कॉपी करने के लिए:

सभी कॉलम

INSERT INTO table2
SELECT * FROM table1
WHERE condition;

केवल कुछ कॉलम

INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

प्रदर्शन डेटाबेस

इस अभ्यास में हम प्रसिद्ध नॉर्थविंड मॉडल डेटाबेस का उपयोग करेंगे।

"ग्राहक" तालिका से एक चयन

CustomerID CustomerName ContactName City Country
1 Alfreds Futterkiste Maria Anders Berlin Germany
2 Ana Trujillo Emparedados Ana Trujillo México D.F. Mexico
3 Antonio Moreno Taquería Antonio Moreno México D.F. Mexico

"आपूर्तिकर्ता" तालिका से एक चयन

SupplierID SupplierName ContactName City Country
1 Exotic Liquid Charlotte Cooper London UK
2 New Orleans Cajun Delights Shelley Burke New Orleans USA
3 Grandma Kelly's Homestead Regina Murphy Ann Arbor USA

SQL चयनित उदाहरणों में सम्मिलित करें

"आपूर्तिकर्ता" तालिका को "ग्राहक" तालिका में कॉपी करने के लिए (डेटा से भरे नहीं गए कॉलम में NULL होगा):

उदाहरण 1

INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers;

"आपूर्तिकर्ता" तालिका को "ग्राहक" तालिका में कॉपी करने के लिए (सभी कॉलम भरें):

उदाहरण 2

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers;

केवल जर्मन आपूर्तिकर्ताओं को "ग्राहक" तालिका में कॉपी करने के लिए:

उदाहरण 3

INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';

💡महत्वपूर्ण नोट:

INSERT INTO SELECT का उपयोग करते समय, सुनिश्चित करें कि स्रोत और लक्ष्य तालिकाओं के कॉलम डेटा प्रकार मेल खाते हैं। अन्यथा त्रुटियाँ हो सकती हैं.

व्यावहारिक उदाहरण

बैकअप निर्माण

निर्दिष्ट डेटा का बैकअप

INSERT INTO CustomerBackup
SELECT * FROM Customers
WHERE Country = 'USA';

डेटा बदलना

विभिन्न तालिकाओं के बीच डेटा परिवर्तित करना

INSERT INTO ArchivedOrders
SELECT OrderID, CustomerID, OrderDate 
FROM Orders 
WHERE OrderDate < '2023-01-01';

फ़िल्टर किया गया डेटा

विशिष्ट स्थितियों पर आधारित डेटा

INSERT INTO PremiumCustomers
SELECT CustomerName, Email, TotalPurchases
FROM Customers
WHERE TotalPurchases > 1000;

अभ्यास

SQL INSERT INTO SELECT स्टेटमेंट का उद्देश्य क्या है?

एक टेबल से डेटा कॉपी करके दूसरी टेबल में डालना
✓ ठीक है! INSERT INTO SELECT का उपयोग एक टेबल से डेटा कॉपी करके दूसरी टेबल में डालने के लिए किया जाता है
एक तालिका से पंक्तियाँ हटाना और उन्हें दूसरी तालिका में सम्मिलित करना
✗ ग़लत! INSERT INTO SELECT डेटा को हटाता नहीं है, केवल उसे कॉपी करता है
यह जांचने के लिए कि सबक्वेरी में कोई रिकॉर्ड मौजूद है या नहीं
✗ ग़लत! यह EXISTS ऐप के लिए है
दो या दो से अधिक तालिकाओं से पंक्तियों को जोड़ने के लिए
✗ ग़लत! यह JOIN के लिए है