🔵 PostgreSQL

คู่มือการจัดการตารางใน PostgreSQL: CREATE, ALTER และ TRUNCATE สำหรับมือใหม่

7 นาที 19 views บันทึกเป็น PDF
คู่มือการจัดการตารางใน PostgreSQL: CREATE, ALTER และ TRUNCATE สำหรับมือใหม่

เรียนรู้วิธีจัดการตารางใน PostgreSQL ตั้งแต่การสร้าง (CREATE) การปรับโครงสร้าง (ALTER) ไปจนถึงการล้างข้อมูล (TRUNCATE) แบบมือโปร เข้าใจง่าย ทำตามได้จริง

ทำความเข้าใจโครงสร้างฐานข้อมูลเหมือนการจัดแฟ้มเอกสาร

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

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

เมื่อเราเข้าใจโครงสร้างพื้นฐานแล้ว การเรียนรู้คำสั่ง SQL (ภาษาที่ใช้คุยกับฐานข้อมูล) จะง่ายขึ้นมาก เพราะมันคือชุดคำสั่งที่บอกให้ระบบสร้าง แก้ไข หรือล้างตารางทิ้ง ตามที่เราต้องการนั่นเอง เดี๋ยวเราไปดูวิธีสร้างตารางแรกกันเลย

การสร้างตารางด้วยคำสั่ง CREATE TABLE

คำสั่ง CREATE TABLE คือการเริ่มสร้างตารางใหม่ขึ้นมาในฐานข้อมูล โดยเราต้องระบุชื่อตารางและกำหนด Column (คอลัมน์ หรือช่องแนวตั้งที่เก็บข้อมูลประเภทเดียวกัน) ให้ชัดเจนว่าแต่ละช่องจะเก็บข้อมูลแบบไหน

สิ่งสำคัญที่มือใหม่ต้องระวังคือ Data Type (ประเภทของข้อมูล) เพราะถ้าเรากำหนดไม่ตรงกับสิ่งที่ต้องเก็บ โปรแกรมจะทำงานผิดพลาด เช่น ถ้าเราจะเก็บตัวเลขเงิน แต่ไปตั้งค่าเป็นตัวอักษร เราก็จะเอาเงินไปบวกลบกันไม่ได้

ลองมาดูตัวอย่างการสร้างตารางเก็บข้อมูลพนักงานกัน โดยเราจะใช้ SERIAL (เลขรันอัตโนมัติ) สำหรับไอดี และ VARCHAR (ข้อความที่มีความยาวจำกัด) สำหรับชื่อพนักงาน

-- สร้างตารางพนักงาน
CREATE TABLE employees (
    id SERIAL PRIMARY KEY, -- ไอดีพนักงาน เพิ่มเลขเองอัตโนมัติ
    name VARCHAR(100),     -- ชื่อพนักงาน เก็บตัวอักษรได้ไม่เกิน 100 ตัว
    salary INTEGER         -- เงินเดือน เก็บเป็นตัวเลขจำนวนเต็ม
);

บรรทัดแรก CREATE TABLE employees คือการสั่งสร้างตารางชื่อพนักงาน ส่วนในวงเล็บคือการกำหนดช่องต่างๆ โดย PRIMARY KEY (กุญแจหลัก) คือการบอกว่าไอดีนี้ห้ามซ้ำกันเด็ดขาดเพื่อให้เราแยกแยะพนักงานแต่ละคนได้

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

การปรับแต่งตารางด้วย ALTER TABLE

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

เราไม่จำเป็นต้องลบทารางทิ้งแล้วสร้างใหม่ แต่เราใช้คำสั่ง ALTER TABLE (คำสั่งปรับเปลี่ยนโครงสร้างตาราง) เพื่อเพิ่มหรือแก้ไขคอลัมน์ได้เลย วิธีนี้ช่วยประหยัดเวลาและรักษาข้อมูลเดิมที่มีอยู่ไว้ได้ครบถ้วน

มาลองเพิ่มช่องอีเมลเข้าไปในตารางพนักงานที่เราสร้างไว้ก่อนหน้านี้กันดูครับ การเพิ่มคอลัมน์ใหม่ทำได้ง่ายมากด้วยคำสั่งนี้

-- เพิ่มคอลัมน์อีเมลเข้าไปในตารางพนักงาน
ALTER TABLE employees 
ADD COLUMN email VARCHAR(255);

คำสั่ง ALTER TABLE employees เป็นการบอกว่าจะเข้าไปแก้ไขตารางพนักงานนะ ส่วน ADD COLUMN email คือการสั่งให้เพิ่มช่องใหม่ชื่ออีเมลเข้ามา โดยกำหนดให้เป็นข้อความยาวสูงสุด 255 ตัวอักษร

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

การล้างข้อมูลในตารางด้วย TRUNCATE TABLE

บางครั้งระหว่างการทดสอบโปรแกรม เราอาจจะใส่ข้อมูลขยะเข้าไปเยอะมากจนอยากจะล้างตารางให้สะอาดเหมือนเพิ่งสร้างใหม่ คำสั่ง TRUNCATE TABLE คือทางเลือกที่เร็วและดีที่สุดสำหรับงานนี้

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

ถ้าคุณกำลังทำโปรเจกต์และต้องการรีเซ็ตข้อมูลเพื่อเริ่มทดสอบใหม่ นี่คือคำสั่งที่ต้องใช้ครับ

-- ล้างข้อมูลทั้งหมดในตารางพนักงาน
TRUNCATE TABLE employees;

คำสั่ง TRUNCATE TABLE จะสั่งให้ฐานข้อมูลเคลียร์ข้อมูลทั้งหมดที่อยู่ในตาราง employees ออกไปให้หมดสิ้น ข้อควรสังเกตคือมันไม่เหมือนกับการสั่งลบแถวทีละบรรทัด แต่มันคือการสั่งล้างทั้งตารางในคราวเดียว

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

ข้อผิดพลาดที่มือใหม่มักเจอและวิธีแก้ไข

ข้อผิดพลาดอันดับหนึ่งคือการลืมใส่ Semicolon (เครื่องหมายอัฒภาค ;) ปิดท้ายคำสั่ง ทำให้โปรแกรมไม่รู้ว่าคำสั่งจบตรงไหน คอมพิวเตอร์จะรอให้เราพิมพ์คำสั่งเพิ่มไปเรื่อยๆ จนเรางงว่าทำไมโค้ดไม่ทำงาน

อีกเรื่องคือการตั้งชื่อตารางหรือคอลัมน์ที่ไปซ้ำกับ Reserved Words (คำสงวน หรือคำที่ฐานข้อมูลจองไว้ใช้เอง) เช่น ถ้าเราตั้งชื่อคอลัมน์ว่า order หรือ user ระบบจะแจ้งเตือนว่ามีข้อผิดพลาด เพราะคำพวกนี้เป็นคำสั่งเฉพาะของตัวฐานข้อมูลเอง

วิธีแก้คือการตั้งชื่อให้ชัดเจนและสื่อความหมาย เช่น ใช้ employee_name แทนคำว่า name หรือถ้าจำเป็นต้องใช้ชื่อที่ใกล้เคียง ให้ใช้เครื่องหมาย Double Quote (เครื่องหมายคำพูดคู่ "") ครอบชื่อนั้นไว้เพื่อให้ระบบรู้ว่าเป็นชื่อที่เราตั้งเอง

สรุปการใช้งานจริงในฐานะโปรแกรมเมอร์

ในโลกของการทำงานจริง คุณจะไม่ได้สร้างตารางครั้งเดียวแล้วจบไป แต่คุณจะต้องปรับเปลี่ยนมันตามฟีเจอร์ใหม่ๆ ที่เพิ่มเข้ามาในแอปพลิเคชัน การเข้าใจ CREATE, ALTER และ TRUNCATE จึงเป็นทักษะพื้นฐานที่ต้องแม่นยำ

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

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

แชร์บทความ

Facebook X LINE

บทความที่เกี่ยวข้อง

จัดการ PostgreSQL เบื้องต้น: การคุมสิทธิ์ User, การ Backup และ Restore ข้อมูลบน Windows
PostgreSQL

จัดการ PostgreSQL เบื้องต้น: การคุมสิทธิ์ User, การ Backup และ Restore ข้อมูลบน Windows

มือใหม่ต้องรู้! วิธีจัดการสิทธิ์ผู้ใช้งาน (Role) และการสำรองข้อมูล (Backup) ใน PostgreSQL ให้ปลอดภัย พร้อมวิธี Restore ข้อมูลกลับมาใช้ได้จริงผ่าน Command Line

4 weeks ago 8 นาที
25 views
เจาะลึก PostgreSQL Triggers: วิธีเขียนคำสั่งทำงานอัตโนมัติเมื่อข้อมูลเปลี่ยน
PostgreSQL

เจาะลึก PostgreSQL Triggers: วิธีเขียนคำสั่งทำงานอัตโนมัติเมื่อข้อมูลเปลี่ยน

อยากให้ฐานข้อมูลทำงานอัตโนมัติเมื่อมีการเพิ่มหรือแก้ไขข้อมูลไหม? มาเรียนรู้การใช้ PostgreSQL Triggers (ตัวสั่งการอัตโนมัติ) ทั้ง BEFORE และ AFTER เพื่อลดงานซ้ำซ้อน

4 weeks ago 8 นาที
19 views
เจาะลึก PostgreSQL PL/pgSQL: เขียนฟังก์ชันและ Stored Procedures ฉบับมือใหม่
PostgreSQL

เจาะลึก PostgreSQL PL/pgSQL: เขียนฟังก์ชันและ Stored Procedures ฉบับมือใหม่

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

4 weeks ago 8 นาที
18 views