با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره آموزش کامل SQL را دنبال می کنند. این آموزش در واقع در ادامه ی آموزش قبلی و برای تکمیل مبحث کپی داده ها بین جداول مختلف در SQL، ارائه شده است. در بخش قبلی گفتیم که دستور SELECT INTO برای کپی داده ها از یک جدول به یک جدول جدید، کاربرد دارد. حال در این آموزش چگونگی کپی داده ها از یک جدول به جدول دیگری که در بانک اطلاعاتی موجود است را بررسی خواهیم کرد. در ادامه آموزش برای آشنایی با دستور INSERT INTO SELECT در SQL و ساختار دستور INSERT INTO SELECT در SQL ، با ما همراه باشید.
دستور INSERT INTO SELECT داده ها را از یک جدول به سایر جداول کپی می کند.
در دستور INSERT INTO SELECT، دو ویژگی مهم وجود دارد:
برای کپی تمام داده ها از یک جدول به جدول دیگر از این ساختار استفاده می شود:
1 2 3 | INSERT INTO table2 SELECT * FROM table1 WHERE condition; |
برای کپی داده های تعدادی از فیلدها به جدول مقصد، از ساختار زیر استفاده می شود:
1 2 3 4 | INSERT INTO table2 (column1, column2, column3, ...) SELECT column1, column2, column3, ... FROM table1 WHERE condition; |
در این قسمت، به بخشی از رکوردهای دو جدول که در مثال های این آموزش، از آنها، استفاده خواهیم کرد، اشاره می کنیم.
بخشی از رکوردهای جدول “Customers” :
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
۱ | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | ۱۲۲۰۹ | Germany |
۲ | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | ۰۵۰۲۱ | Mexico |
۳ | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | ۰۵۰۲۳ | Mexico |
بخشی از رکوردهای جدول “Suppliers” :
SupplierID | SupplierName | ContactName | Address | City | Postal Code | Country |
---|---|---|---|---|---|---|
۱ | Exotic Liquid | Charlotte Cooper | ۴۹ Gilbert St. | Londona | EC1 4SD | UK |
۲ | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | ۷۰۱۱۷ | USA |
۳ | Grandma Kelly’s Homestead | Regina Murphy | ۷۰۷ Oxford Rd. | Ann Arbor | ۴۸۱۰۴ | USA |
مثال زیر، فیلدهای انتخابی از جدول Suppliers را به فیلدهای متناظر آن در جدول Customers ، کپی می کند(فیلدهای که مقدار ندارد با NULL پرمی شود):
1 2 | INSERT INTO Customers (CustomerName, City, Country) SELECT SupplierName, City, Country FROM Suppliers; |
مثال زیر، فیلدهای انتخابی از جدول Suppliers را به فیلدهای متناظر آن در جدول Customers ، کپی می کند(تمام فیلدها پر می شود):
1 2 | INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers; |
مثال زیر، فیلدهای انتخابی از جدول Suppliers را به فیلدهای متناظر آن در جدول Customers به شرطی که فیلد Country آنها برابر با مقدار “Germany'”باشد، کپی می کند:
1 2 3 | INSERT INTO Customers (CustomerName, City, Country) SELECT SupplierName, City, Country FROM Suppliers WHERE Country='Germany'; |
در این آموزش، مباحث کپی داده ها از جدولی به جدول دیگر را در SQL ، تمام کردیم. و ما در این بخش چگونگی کپی داده ها از جدولی به جدولی که در بانک اطلاعاتی موجود است را بررسی کردیم. امیدواریم که آموزش آشنایی با دستور INSERT INTO SELECT در SQL، مورد استفاده ی شما قرار گرفته باشد.