Home > Database > การใช้ Query copy table และ การ insert from query selection

การใช้ Query copy table และ การ insert from query selection

March 23rd, 2009

ในบทความนี้จะเป็นการใช้งานคำสั่ง Insert ในรูปแบบย่อยๆ อีกรูปแบบหนึ่งนะครับ ซึ่งเป็นเกร็ดเล็กๆน้อยๆ แต่สามารถนำไปประยุกต์ใช้งานได้อย่างดีเยี่ยม

1. การใช้งานคำสั่ง Query Insert copy table การสร้าง คำสั่งนี้เราจะใช้บ่อยในกรณี การทำ temp table เพื่อออกรายงาน เนื่องจาก การออกรายงาน อาจจะต้องทำสรุปผลข้อมูล จากหลายๆ table มาประมวลผลเพื่อให้ได้ข้อมูลสุดท้าย แล้วเก็บไว้ใน temp table เพื่อให้หน้ารายการเรียกข้อมูล สรุปผลมาแสดงทั้งนี้เพื่อความรวดเร็วในการแสดงผลข้อมูลนั่นเอง คำสั่ง copy table นั้นเหมาะกับกรณีที่เราต้องการสร้าง temp table แรก หรือ summary table แรกขึ้นมา ทั้งจำนวน field และ ชนิดข้อมูล เราไม่จำเป็นจะต้อง ไปสร้าง table เปล่าๆ แล้ว ค่อยๆใส่ fields ตามที่เราต้องการ เนื่องจากมันอาจจะมีปริมาณค่อนข้างมาก จึงใช้คำสั่งนี้ สร้างขึ้นมาครั้งแรกนั่นเอง


รูปแบบการใช้งานคำสั่ง copy table
SELECT * INTO [ชื่อ table ใหม่]
 from [table ที่นำมาแสดง]

2. การ insert from query selection ในรูปแบบการ insert นี้ ก็เหมือนกับการ insert ธรรมดา เพียงแต่ สามารถ insert ได้หลายๆ record ตามแต่ที่จะ selection ขึ้นมานั่นเอง โดยปกติ การ insert 1 คำสั่ง จะเป็นการ insert 1 record หากต้องการ insert ครั้งละ หลายๆ record ก็ต้องการ insert from selection นะครับ ซึ่งในรูปแบบนี้ เราจะใช้งาน ในการนำข้อมูลเพื่อไปใส่ใน temp table หรือ summary table

รูปแบบการใช้งานคำสั่ง insert from selection
 insert into  [ชื่อ table] select * from [table ที่จะ นำไปใส่]

โดยปกติ เวลา update summary หรือ temp table นั้น จะสร้างเป้น store procedure ขึ้นมา เพื่อเรียก update ข้อมูลนะครับเช่น
Create Proc sp_updateTable
as
– ลบข้อมูลเก่าออกก่อน
 delete from [ชื่อ table] 
– แล้ว insert ข้อมูลใหม่ลงไป
 insert into  [ชื่อ table] select * from [table ที่จะ นำไปใส่]

ทั้งนี้ ข้อมูลที่จะ select เพื่อนำไปใส่ จะต้อง แสดง fields ให้เท่ากันด้วย

admin Database

  1. September 15th, 2009 at 13:11 | #1

    Excellent tips .I really appreciate all these points, and I agree completely…

  2. October 23rd, 2009 at 15:55 | #2

    Thanks for the great article here at your blog. I know it will help me and many others.

  1. No trackbacks yet.