กับ SQL คุณสามารถคัดลอกข้อมูลจากตารางหนึ่งไปยังอีก
แทรกเข้าไปในคำสั่งเลือกคัดลอกข้อมูลจากตารางหนึ่งและแทรกลงในตารางที่มีอยู่
คำสั่ง SQL INSERT INTO SELECT
แทรกลงในคำสั่ง SELECT เลือกข้อมูลจากตารางหนึ่งและแทรกลงในตารางที่มีอยู่ แถวใด ๆ ที่มีอยู่ในตารางเป้าหมายได้รับผลกระทบ
SQL INSERT INTO SELECT ไวยากรณ์
เราสามารถคัดลอกคอลัมน์ทั้งหมดจากตารางหนึ่งไปยังอีกตารางที่มีอยู่:
INSERT INTO table2
SELECT * FROM table1;
หรือเราสามารถคัดลอกเฉพาะคอลัมน์ที่เราต้องการที่จะเข้ามาในอีกตารางที่มีอยู่:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
ฐานข้อมูลการสาธิต
ในการกวดวิชานี้เราจะใช้ที่รู้จักกันดีฐานข้อมูลตัวอย่าง Northwind
ด้านล่างนี้คือการเลือกจาก "Customers" ตาราง:
ลูกค้า | ชื่อลูกค้า | ชื่อผู้ติดต่อ | ที่อยู่ | เมือง | รหัสไปรษณีย์ | ประเทศ |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitucion 2222 | Mexico D.F. | 05021 | Mexico |
3 | Antonio Moreno Taqueria | Antonio Moreno | Mataderos 2312 | Mexico D.F. | 05023 | Mexico |
และเลือกจาก "Suppliers" ตาราง:
SupplierID | ชื่อผู้ผลิต | ชื่อผู้ติดต่อ | ที่อยู่ | เมือง | รหัสไปรษณีย์ | ประเทศ | โทรศัพท์ |
---|---|---|---|---|---|---|---|
1 | ของเหลวที่แปลกใหม่ | ชาร์ลอคูเปอร์ | กิลเบิร์ 49 เซนต์ | ของกรุงลอนดอน | EC1 4SD | สหราชอาณาจักร | (171) 555-2222 |
2 | นิวออร์จัน Delights | เชลลีย์เบิร์ค | PO Box 78934 | New Orleans | 70117 | สหรัฐอเมริกา | (100) 555-4822 |
3 | Homestead ยายของเคลลี่ | เรจิน่าเมอร์ฟี่ | ฟอร์ด 707 ถ | Ann Arbor | 48104 | สหรัฐอเมริกา | (313) 555-5735 |
ตัวอย่าง SQL INSERT INTO SELECT
คัดลอกเพียงไม่กี่คอลัมน์จาก "Suppliers" ลงไปใน "Customers" :
ตัวอย่าง
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;
ลองตัวเอง» คัดลอกเฉพาะซัพพลายเออร์ที่ภาษาเยอรมันเป็น "Customers" :
ตัวอย่าง
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers
WHERE Country='Germany';
ลองตัวเอง»