คัดลอกตารางใน SQL

Khad Lxk Tarang Ni Sql



ในขณะที่อยู่บนพื้นผิว การทำสำเนาข้อมูลอาจดูเหมือนไม่มีประสิทธิภาพ บางครั้งอาจมีบทบาทสำคัญมากในกรณีที่คุณจำเป็นต้องมีสำเนาที่ใกล้เคียงกันของตารางเดียวกัน

ใน SQL เราสามารถใช้วิธีการและเทคนิคต่างๆ เพื่อคัดลอกตารางที่มีอยู่และมีตารางใหม่ภายใต้ชื่อใหม่ แต่มีข้อมูลเดียวกัน สิ่งนี้มีประโยชน์มากในงานบางอย่าง เช่น การสำรองข้อมูล การแปลงข้อมูล การเปลี่ยนแปลงข้อมูลชั่วคราวโดยไม่ส่งผลกระทบต่อตารางหลัก และอื่นๆ







ในคู่มือนี้ เราจะสำรวจวิธีการเหล่านี้และเรียนรู้วิธีคัดลอกตารางในฐานข้อมูล SQL เนื่องจากความแตกต่างในวิธีที่กลไกฐานข้อมูล SQL ต่างๆ จัดการกับการคัดลอกตาราง เราจะไม่ครอบคลุมวิธีการทั้งหมดสำหรับแต่ละฐานข้อมูล



เราจะพยายามครอบคลุมอย่างน้อยหนึ่งรายการสำหรับกลไกฐานข้อมูลแต่ละตัว เมื่อใดก็ตามที่ได้รับการสนับสนุน เพื่อแสดงให้คุณเห็นว่าคุณสามารถคัดลอกตารางสำหรับกลไกฐานข้อมูลแต่ละตัวที่รองรับได้อย่างไร



วิธีที่ 1: ทั่วโลก (โดยใช้คำสั่ง CREATE TABLE)

วิธีทั่วไปและง่ายที่สุดในการคัดลอกตารางคือการใช้คำสั่ง CREATE TABLE





ไม่เหมือนกับคำสั่ง CREATE TABLE ปกติ เราจะส่งคำสั่ง SELECT ที่มีโครงสร้างและข้อมูลของตารางต้นฉบับ

ไวยากรณ์มีดังนี้:



สร้างตาราง new_table AS
เลือก * จาก source_table;

สิ่งนี้ช่วยให้เราสามารถสร้างตารางใหม่ด้วยชื่อที่ระบุจากตารางต้นฉบับ

ยกตัวอย่างฐานข้อมูลตัวอย่าง Sakila สมมติว่าเราต้องการสร้างตารางที่คล้ายกันกับตารางการเช่า

เราสามารถใช้เทคนิคก่อนหน้านี้ดังที่แสดงในแบบสอบถามตัวอย่างต่อไปนี้:

สร้างตาราง rent_copy AS
เลือก * จากการเช่า

สิ่งนี้ควรสร้างตารางใหม่ชื่อ “rental_copy” ซึ่งมีโครงสร้างและข้อมูลเดียวกันกับตารางการเช่า

คุณสามารถตรวจสอบได้โดยเลือกข้อมูลจากตารางดังนี้

เลือก * จาก rental_copy;

ซึ่งควรมีข้อมูลตรงตามตารางการเช่า

วิธีที่ 2: ทั่วโลก (โดยใช้คำสั่ง INSERT INTO)

อีกวิธีหนึ่งที่ได้รับการสนับสนุนทั่วโลกโดยฐานข้อมูล SQL ที่หลากหลายคือการใช้คำสั่ง INSERT INTO

เทคนิคนี้ช่วยให้เราสามารถคัดลอกจากตารางหนึ่งไปยังอีกตารางหนึ่งได้ วิธีนี้แตกต่างจาก CREATE TABLE และ SELECT ตรงที่ช่วยให้เราสามารถเลือกดึงข้อมูลได้

สิ่งนี้มีประโยชน์เมื่อเราต้องการการควบคุมที่มากขึ้นในกระบวนการคัดลอก เราสามารถใช้ไวยากรณ์ดังแสดงต่อไปนี้:

แทรก ลงใน target_table ( คอลัมน์1, คอลัมน์2, ... )
เลือกคอลัมน์1, คอลัมน์2, ...
จาก source_table;

ในกรณีนี้ เราสามารถระบุคอลัมน์ที่เราต้องการรวมไว้ในตารางใหม่โดยไม่ต้องดึงข้อมูลทุกอย่างจากตารางเดิมจริงๆ

ใช้แบบสอบถามต่อไปนี้เป็นตัวอย่าง:

แทรก
เข้าไปข้างใน
เช่า_สำเนา ( เช่า_id,
เช่า_วันที่,
กลับ_วันที่ )
เลือก
เช่า_id,
เช่า_วันที่,
กลับ_วันที่
จาก
เช่าร;

ข้อเสียเปรียบประการหนึ่งของวิธีนี้คือคุณอาจต้องสร้างตารางที่คล้ายกันโดยมีคอลัมน์ที่คุณต้องการรวมไว้ ซึ่งอาจเกิดขึ้นซ้ำๆ และมีประสิทธิภาพเมื่อทำงานกับชุดข้อมูลขนาดใหญ่

วิธีที่ 3: คัดลอกโครงสร้างตาราง

ในกรณีอื่นๆ คุณอาจพบกรณีที่คุณสนใจโครงสร้างตารางโดยไม่จำเป็นต้องจัดเก็บข้อมูลในตาราง

ในสถานการณ์ดังกล่าว คุณสามารถใช้คำสั่ง CREATE TABLE ร่วมกับส่วนคำสั่ง LIKE ได้ดังต่อไปนี้:

สร้างตาราง new_table ( ชอบ source_table ) ;

สิ่งนี้ควรสร้างตารางใหม่ที่มีชื่อที่ระบุและโครงสร้างที่คล้ายกันเป็น “source_table” โดยไม่ต้องคัดลอกข้อมูลจริงๆ

การคัดลอกตารางระหว่างฐานข้อมูล

หากต้องการคัดลอกตารางระหว่างฐานข้อมูลต่างๆ เราสามารถส่งออกข้อมูลจากฐานข้อมูลต้นทางและนำเข้าไปยังฐานข้อมูลเป้าหมายได้

โดยทั่วไปเกี่ยวข้องกับการใช้รูปแบบไฟล์ เช่น CSV หรือเครื่องมือเฉพาะฐานข้อมูล คุณสามารถอ้างอิงเอกสารประกอบสำหรับฐานข้อมูลของคุณเกี่ยวกับวิธีการดำเนินการให้สำเร็จได้ เนื่องจากอาจแตกต่างกันไปขึ้นอยู่กับกลไกฐานข้อมูล

วิธีที่ 4: การใช้เซิร์ฟเวอร์ที่เชื่อมโยง (SQL Server)

ใน SQL Server เราสามารถคัดลอกตารางระหว่างฐานข้อมูลโดยใช้เซิร์ฟเวอร์ที่เชื่อมโยง

เซิร์ฟเวอร์ที่เชื่อมโยงช่วยให้เราสามารถสร้างการเชื่อมต่อกับฐานข้อมูลระยะไกลและสอบถามหรือถ่ายโอนข้อมูลระหว่างกัน

ไวยากรณ์มีดังนี้:

ใส่ลงใน [ ชื่อเซิร์ฟเวอร์ที่เชื่อมโยง ] . [ ชื่อฐานข้อมูล ] . [ SchemaName ] . [ เป้าหมาย_ตาราง ]
เลือก * จาก source_table;

ซึ่งเปิดใช้งานการเชื่อมต่อระยะไกลและการถ่ายโอนข้อมูลระหว่างเซิร์ฟเวอร์ระยะไกล

บทสรุป

ในบทช่วยสอนนี้ เราได้เรียนรู้วิธีใช้และทำงานกับวิธีการและเทคนิคต่างๆ ในการคัดลอกตารางใน SQL