3.2 SQL - INSERT INTO SELECT

جملة SQL INSERT INTO SELECT

تُستخدم INSERT INTO SELECT لنسخ البيانات من جدول موجود وإضافتها إلى جدول آخر موجود مسبقًا.

ملاحظة مهمة: يجب أن تكون أنواع البيانات متوافقة بين الجدولين. ⚠️ الصفوف الموجودة مسبقًا في الجدول الهدف لن تتأثر بهذه العملية.


🔹 الصيغة العامة:

✅ نسخ كل الأعمدة:

INSERT INTO table2
SELECT * FROM table1
WHERE condition;

✅ نسخ أعمدة محددة فقط:

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

🧪 أمثلة عملية من قاعدة Northwind:

1. نسخ بيانات من Suppliers إلى Customers (أعمدة محددة):

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.
  • ممكن تستخدم JOIN داخل SELECT لجلب بيانات من عدة جداول.
  • لو الجدولين في قاعدتين مختلفتين على نفس السيرفر، ممكن تكتبهم بصيغة:
    DatabaseName.SchemaName.TableName

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework