TOP

SQL INSERT INTO SELECT

INSERT INTO SELECT الوصف

تقوم جملة SQL 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

قاعدة بيانات مظاهرة

سنستخدم في هذا البرنامج التعليمي نموذج قاعدة البيانات الشهير "Northwind".

يوجد أدناه نموذج من الجدول "Customers" ("العملاء"):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

والعينة من الجدول "Suppliers" ("الموردون"):

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountryPhone
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonaEC1 4SDUK(171) 555-2222
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA(100) 555-4822
3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA(313) 555-5735
4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan(03) 3555-5011
5Cooperativa de Quesos 'Las Cabras'Antonio del Valle SaavedraCalle del Rosal 4Oviedo33007Spain(98) 598 76 54

INSERT INTO SELECT أمثلة

ينسخ استعلام SQL التالي "Suppliers" ("الموردون") إلى "Customers" ("العملاء") (ستحتوي الأعمدة التي لم يتم ملؤها بالبيانات على NULL):

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

نسخة أخرى من استعلام SQL تنسخ البيانات من جدول "الموردين" إلى "العملاء" (تملأ كل الأعمدة):

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

ينسخ بيان SQL التالي الموردين الألمان فقط إلى جدول العملاء:

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