November 12, 2012

SQL: สร้าง เพิ่ม ลบ อัพเดทข้อมูลในฐานข้อมูล

ในตอนก่อน พูดถึงการแสดงข้อมูล และค้นหาข้อมูลตามที่ต้องการ คราวนี้มาดูวิธีการสร้างฐานข้อมูล ตาราง และการเพิ่ม ลบ แก้ไขเปลี่ยนแปลงข้อมูลของตารางกันกันบ้าง

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

นอกจากนี้ ยังต้องคำนึงด้วยว่าระบบฐานข้อมูลที่ใช้อยู่เป็นตัวไหน เพราะคำสั่งนี้บางส่วนในบางระบบจะใช้ไม่เหมือนกัน (อย่างเช่นการกำหนด primary key และ การเพิ่มค่าอัตโนมัติในตัวอย่าง) ตอนนี้ก็จะมีตาราง application เปล่า ๆ ขึ้นมาอันหนึ่ง
idnamecategorydeveloperyear
การเพิ่มข้อมูล (แถว) เข้าตารางจะใช้คำสั่ง INSERT INTO ในที่นี้คอลัมภ์ id จะเพิ่มโดยอัตโนมัติ (auto_increment) ถ้าส่งค่า null ไประบบฐานข้อมูลจะใส่ค่าถัดไปให้โดยอัตโนมัติ และถ้าต้องการเพิ่มข้อมูลที่ละหลาย ๆ แถวก็สามารถใส่ค่าของ VALUES ลงไปหลาย ๆ ชุดได้เช่นกัน ผลที่ได้จะเป็น
idnamecategorydeveloperyear
1WindowsOSMicrosoft1985
2OS XOSApple Inc.2001
3Microsoft OfficeOffice SuiteMicrosoft1990
4Libre OfficeOffice SuiteThe Document Foundation2011
5Adobe PhotoshopGraphic EditorAdobe1990
6GIMPGraphic EditorThe GIMP Development Team1996
7FirefoxBrowserMozilla2004
ถ้าตารางนั้นมีข้อมูลเริ่มต้นอยู่ หรือไม่จำเป็นต้องใส่ค่าลงไปได้ สามารถที่จะระบุเฉพาะคอลัมภ์ที่ต้องการใส่ข้อมูลลงไปได้เช่นเดียวกัน ผลที่ได้จะเป็น
idnamecategorydeveloperyear
1WindowsOSMicrosoft1985
2OS XOSApple Inc.2001
3Microsoft OfficeOffice SuiteMicrosoft1990
4Libre OfficeOffice SuiteThe Document Foundation2011
5Adobe PhotoshopGraphic EditorAdobe1990
6GIMPGraphic EditorThe GIMP Development Team1996
7FirefoxBrowserMozilla2004
8Chromium  2008
ส่วนการแก้ไขข้อมูลนั้นจะใช้ UPDATE ผลที่ได้จะเป็น
idnamecategorydeveloperyear
1WindowsOSMicrosoft1985
2OS XOSApple Inc.2001
3Microsoft OfficeOffice SuiteMicrosoft1990
4Libre OfficeOffice SuiteThe Document Foundation2011
5Adobe PhotoshopGraphic EditorAdobe1990
6GIMPGraphic EditorThe GIMP Development Team1996
7FirefoxBrowserMozilla2004
8Google ChromeBrowserGoogle Inc.2008
สิ่งที่ควรจำให้ขึ้นใจคือ จะแก้ไขข้อมูลต้องมี WHERE เสมอ ไม่เช่นนั้นจะเป็นการแก้ไขข้อมูลทั้งตาราง! และควรจะใช้เงื่อนไขของ WHERE อย่างรอบคอบ เพื่อไม่ให้ข้อมูลที่ไม่เกี่ยวข้องได้รับผลกระทบ

ส่วนการลบข้อมูลก็จะใช้ DELETE ซึ่งจำเป็นต้องมี WHERE เช่นกัน และที่สำคัญคือถ้าใช้ WHERE ไม่รอบคอบ หรือไม่ใช้ ข้อมูลอาจจะหายไปทั้งตารางได้เช่นกัน
idnamecategorydeveloperyear
1WindowsOSMicrosoft1985
2OS XOSApple Inc.2001
5Adobe PhotoshopGraphic EditorAdobe1990
6GIMPGraphic EditorThe GIMP Development Team1996
7FirefoxBrowserMozilla2004
8Google ChromeBrowserGoogle Inc.2008
แม้ว่าจะใช้ DELETE ลบข้อมูลทั้งตารางทิ้งไป แต่โครงสร้างตาราง ค่า index (ที่ใช้ในการค้นหาข้อมูล) รวมถึงค่าคุณลักษณะ (attribute) ต่าง ๆ ของตารางยังคงอยู่ ไม่ได้ถูกลบไปด้วย ตามด้วย ผลจะเป็น
idnamecategorydeveloperyear
9Internet ExplorerOSMicrosoft1995
แต่หากต้องการจะลบข้อมูลในตารางทิ้งจริง ๆ แนะนำให้ใช้ TRUNCATE เพราะมันรวดเร็วกว่า และใช้ทรัพยากรน้อยกว่า หากจะลบตารางทั้งตารางทิ้งจะใช้คำสั่ง DROP ตาราง application ทั้งตารางรวมทั้งโครงสร้างจะหายไปจากฐานข้อมูล ถ้าจะใช้ตารางนี้อีก ต้องสร้างตารางขึ้นมาใหม่เสียก่อน

นอกจากลบตารางทิ้งแล้ว DROP ยังสามารถลบฐานข้อมูลทั้งฐานข้อมูลทิ้งได้เช่นกัน (ทั้งนี้ขึ้นอยู่กับสิทธิ์ในการเข้าถึงฐานข้อมูลของบัญชีผู้ใช้อันนั้น ๆ ด้วย ว่าสามารถทำได้ถึงขั้นไหน)

No comments:

Post a Comment