عبارت INSERT INTO SELECT

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Sql-menu.png
موارد آموزشی
۱خانه
۲مقدمه
۳دستور زبان
۴عبارت SELECT
۵عبارت SELECT DISTINCT
۶شرط WHERE
۷عملگرهای AND, OR, NOT
۸کلمهٔ کلیدی ORDER BY
۹عبارت INSERT INTO
۱۰مقدارهای NULL
۱۱عبارت UPDATE
۱۲عبارت DELETE
۱۳عبارت‌های TOP ،LIMIT یا ROWNUM
۱۴توابع MIN و MAX
۱۵توابع COUNT ،AVG و SUM
۱۶عملگر LIKE
۱۷کاراکترهای Wildcard
۱۸عملگر IN
۱۹عملگر BETWEEN
۲۰نام‌های مستعار (Aliases)
۲۱متصل کردن (Join)
۲۲کلمهٔ کلیدی INNER JOIN
۲۳کلمهٔ کلیدی LEFT JOIN
۲۴کلمهٔ کلیدی RIGHT JOIN
۲۵کلمهٔ کلیدی FULL OUTER JOIN
۲۶دستور Self JOIN
۲۷عملگر UNION
۲۸عبارت GROUP BY
۲۹عبارت HAVING
۳۰عملگر EXISTS
۳۱عملگرهای ANY و ALL
۳۲عبارت SELECT INTO
۳۳عبارت INSERT INTO SELECT
۳۴عبارت CASE
۳۵توابع NULL
۳۶Stored Procedure
۳۷یادداشت‌ها
بانک اطلاعاتی
مرجع
مثال‌ها

عبارت INSERT INTO SELECT در SQL

عبارت INSERT INTO SELECT داده‌ها را از یک جدول کپی می‌کند و آنها را در جدول دیگر وارد می‌کند.[۱]

  • برای INSERT INTO SELECT لازم است که نوع داده‌های جدول‌های مبدأ و مقصد مطابقت داشته باشند
  • رکوردهای در جدول مقصد تحت تأثیر قرار نمی‌گیرند

نحو INSERT INTO SELECT

همه ستون‌ها را از یک جدول به جدول دیگر کپی می‌کند:

1 INSERT INTO table2
2 SELECT * FROM table1
3 WHERE condition;

فقط برخی از ستون‌ها را از یک جدول در دیگری کپی می‌کند:

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

نسخه نمایشی بانک اطلاعاتی

در این آموزش از بانک اطلاعاتی نمونه معروف Northwind استفاده می‌کنیم.

در ادامه انتخابی از جدول “Customers” آمده‌است:

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

و انتخابی از جدول “Suppliers”:

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

مثال‌های SQL INSERT INTO SELECT

عبارت SQL زیر "Suppliers" را در "Customers" کپی می‌کند (ستون‌هایی که با داده پر نشده‌اند، NULL خواهد داشت):

مثال
1 INSERT INTO Customers (CustomerName, City, Country)
2 SELECT SupplierName, City, Country FROM Suppliers;

عبارت SQL زیر "Suppliers" را در "Customers" کپی می‌کند (همه ستون‌ها را پر می‌کند):

مثال
1 INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
2 SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers;

عبارت SQL زیر فقط تأمین کننده‌های آلمانی را در "Customers" کپی می‌کند:

مثال
1 INSERT INTO Customers (CustomerName, City, Country)
2 SELECT SupplierName, City, Country FROM Suppliers
3 WHERE Country='Germany';



منابع آموزشی