درج از انتخاب (Insert Into Select)
دستور «INSERT INTO SELECT» داده ها را از یک جدول می خواند و در جدول دیگری درج می کند. «نوع داده (Data Type)» ستون های مبدأ و مقصد باید سازگار باشند. همچنین، رکوردهای موجود در جدول مقصد دست نخورده می مانند.
INSERT INTO SELECT چیست؟
این دستور شبیه کپی پیست هوشمند است. اما به جای فایل، بین جدول ها جابه جا می کند. می توانی همه ستون ها یا فقط برخی ستون ها را منتقل کنی. همچنین، با WHERE فقط ردیف های لازم را بفرست.
قالب: کپی همه ستون ها
INSERT INTO table2;
SELECT * FROM table1;
WHERE condition;
قالب: کپی برخی ستون ها
INSERT INTO table2 (column1, column2, column3);
SELECT column1, column2, column3 FROM table1;
WHERE condition;
نمونه های INSERT INTO SELECT
کپی رکوردهای Suppliers به Customers؛ ستون های خالی NULL می شوند.
INSERT INTO Customers (CustomerName, City, Country);
SELECT SupplierName, City, Country FROM Suppliers;
پر کردن همه ستون ها با تطابق ترتیب و نوع داده.
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country);
SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers;
درج فقط تامین کنندگان آلمانی با شرط WHERE.
INSERT INTO Customers (CustomerName, City, Country);
SELECT SupplierName, City, Country FROM Suppliers;
WHERE Country = 'Germany';
گام های عملی سریع
- ستون های مقصد را دقیق بنویس.
- SELECT متناظر از جدول مبدأ بساز.
- در صورت نیاز WHERE اضافه کن.
- ابتدا روی محیط تست اجرا کن.
نکته: ترتیب ستون های SELECT و INSERT باید یکسان باشد. ناسازگاری نوع داده خطا می دهد. برای آشنایی با ساخت جدول جدید، SELECT INTO را ببین.
پیوندهای مفید
راهنمای تکمیلی: انتقال داده با درج از انتخاب (Insert Into Select) و ساخت جدول با SELECT INTO. همچنین اپراتورهای شرطی در WHERE کمک می کنند.
جمع بندی سریع
- INSERT INTO SELECT داده ها را بین جدول ها جابه جا می کند.
- انواع ستون ها باید سازگار باشند.
- می توانی فقط ردیف های هدف را درج کنی.
- رکوردهای قبلی جدول مقصد تغییر نمی کنند.