منشور

سلسلة دروس SQL| عبارة Insert Into Select

هذه المقالة جزء من سلسلة دروس SQL، يمكنك الاطلاع على الفهرس

عبارة INSERT INTO SELECT في SQL

تقوم عبارة INSERT INTO SELECT بنسخ البيانات من جدول واحد وإدراجها في جدول آخر.

  • يتطلب INSERT INTO SELECT تطابق أنواع البيانات في جداول كل من المصدر والهدف

  • لا تتأثر السجلات الموجودة في جدول الهدف

بناء جملة INSERT INTO SELECT

انسخ جميع الأعمدة من جدول إلى جدول آخر:

1
2
3
4
5
6
7
		INSERT INTO table2

		SELECT * FROM table1

		WHERE condition;

انسخ بعض الأعمدة فقط من جدول واحد إلى جدول آخر:

1
2
3
4
5
6
7
8
9
		INSERT INTO table2 (column1, column2, column3, ...)

		SELECT column1, column2, column3, ...

		FROM table1

		WHERE condition; 

استعراض قاعدة البيانات

فيما يلي مجموعة مختارة من جدول “العملاء”في قاعدة البيانات النموذجية Northwind:

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

واختيار من جدول “الموردين”:

SupplierID SupplierName ContactName Address City Postal Code Country
1 Exotic Liquid Charlotte Cooper 49 Gilbert St. Londona 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

أمثلة عن INSERT INTO SELECT في SQL

تقوم عبارة SQL التالية بنسخ “الموردين” إلى “العملاء” (ستحتوي الأعمدة التي لم يتم تعبئتها بالبيانات على NULL):

1
2
3
4
5
		INSERT INTO Customers (CustomerName, City, Country)

		SELECT SupplierName, City, Country FROM Suppliers;

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

1
2
3
4
5
		INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)

		SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers;

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

1
2
3
4
5
6
7
		INSERT INTO Customers (CustomerName, City, Country)

		SELECT SupplierName, City, Country FROM Suppliers

		WHERE Country='Germany';

التالي: عبارة Case

هذا المنشور تحت ترخيص CC BY 4.0 بواسطة المؤلف.