跳到主要内容

เนื้อหาภาษาไทย / 泰语内容

系统指南 内容已审核

INSERT, UPDATE, DELETE: จัดการข้อมูลใน Table

INSERT, UPDATE, DELETE: จัดการข้อมูลใน Table

ในบทที่แล้ว เราได้เรียนรู้วิธีการสร้าง Table เพื่อจัดเก็บข้อมูลต่างๆ ในฐานข้อมูล PostgreSQL ของเรา ในบทนี้ เราจะมาเรียนรู้วิธีการจัดการข้อมูลเหล่านั้น ไม่ว่าจะเป็นการเพิ่มข้อมูลใหม่, แก้ไขข้อมูลที่มีอยู่, หรือลบข้อมูลที่ไม่ต้องการอีกต่อไป โดยเราจะใช้คำสั่ง SQL พื้นฐาน 3 คำสั่ง ได้แก่ INSERT, UPDATE, และ DELETE

INSERT INTO: เพิ่มข้อมูลใหม่ลงใน Table

คำสั่ง INSERT INTO ใช้สำหรับเพิ่มข้อมูลใหม่ลงใน Table ที่เราสร้างไว้ รูปแบบคำสั่งพื้นฐานมีดังนี้:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

โดย:

  • table_name คือ ชื่อของ Table ที่เราต้องการเพิ่มข้อมูล
  • column1, column2, column3, ... คือ ชื่อของ Column ที่เราต้องการระบุค่า (ไม่จำเป็นต้องใส่ทุก Column ถ้า Column นั้นอนุญาตให้เป็น NULL หรือมีค่า Default)
  • value1, value2, value3, ... คือ ค่าที่เราต้องการใส่ในแต่ละ Column ตามลำดับ

ตัวอย่าง: สมมติว่าเรามี Table ชื่อ products ที่เก็บข้อมูลสินค้า ดังนี้:

CREATE TABLE products (
    product_id SERIAL PRIMARY KEY,
    product_name VARCHAR(255) NOT NULL,
    price DECIMAL(10, 2),
    category VARCHAR(50)
);

เราสามารถเพิ่มสินค้าใหม่เข้าไปใน Table ได้ดังนี้:

INSERT INTO products (product_name, price, category)
VALUES ('เสื้อยืดคอกลม', 199.00, 'เสื้อผ้า');

คำสั่งนี้จะเพิ่มสินค้าใหม่ชื่อ "เสื้อยืดคอกลม" ราคาราคา 199 บาท ในหมวดหมู่ "เสื้อผ้า" เข้าไปใน Table products โดยที่ product_id จะถูกกำหนดโดยอัตโนมัติเนื่องจากเป็น SERIAL

ถ้าเราต้องการเพิ่มข้อมูลให้กับทุก Column ใน Table เราสามารถละเว้นส่วนของ Column list ได้ ดังนี้:

INSERT INTO products
VALUES (DEFAULT, 'กางเกงยีนส์', 499.00, 'เสื้อผ้า');

DEFAULT ในที่นี้หมายถึงการใช้ค่า Default ของ Column นั้นๆ ซึ่งในกรณีของ product_id ที่เป็น SERIAL ก็คือการสร้างลำดับเลขโดยอัตโนมัติ

ข้อผิดพลาดที่พบบ่อย:

  • Data Type ไม่ตรงกัน: ค่าที่ใส่ต้องมี Data Type ที่ตรงกับ Column ที่กำหนดไว้ เช่น ถ้า Column เป็น INTEGER เราไม่สามารถใส่ String ลงไปได้
  • Column ที่ NOT NULL ไม่ได้ใส่ค่า: ถ้า Column ถูกกำหนดให้เป็น NOT NULL เราต้องใส่ค่าเสมอ จะเว้นว่างไม่ได้
  • จำนวน Column และ Value ไม่เท่ากัน: จำนวน Column ที่ระบุในวงเล็บต้องเท่ากับจำนวน Value ที่ใส่

UPDATE: แก้ไขข้อมูลใน Table

คำสั่ง UPDATE ใช้สำหรับแก้ไขข้อมูลที่มีอยู่แล้วใน Table รูปแบบคำสั่งพื้นฐานมีดังนี้:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

โดย:

  • table_name คือ ชื่อของ Table ที่เราต้องการแก้ไขข้อมูล
  • column1 = value1, column2 = value2, ... คือ Column และค่าใหม่ที่เราต้องการแก้ไข
  • WHERE condition คือ เงื่อนไขที่ใช้ระบุแถวที่เราต้องการแก้ไข (สำคัญมาก! ถ้าไม่มี WHERE จะแก้ไขทุกแถวใน Table)

ตัวอย่าง: สมมติว่าเราต้องการเปลี่ยนราคาสินค้า "เสื้อยืดคอกลม" เป็น 249 บาท:

UPDATE products
SET price = 249.00
WHERE product_name = 'เสื้อยืดคอกลม';

คำสั่งนี้จะแก้ไขราคาของสินค้าที่มีชื่อว่า "เสื้อยืดคอกลม" ให้เป็น 249 บาท

เราสามารถแก้ไขหลาย Column พร้อมกันได้:

UPDATE products
SET price = 299.00, category = 'เสื้อผ้าแฟชั่น'
WHERE product_name = 'เสื้อยืดคอกลม';

คำสั่งนี้จะแก้ไขทั้งราคาและหมวดหมู่ของสินค้า "เสื้อยืดคอกลม"

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

กรณีใช้งานจริง: สมมติว่าเราต้องการลดราคาสินค้าทุกชิ้นในหมวด "เสื้อผ้า" ลง 10%:

UPDATE products
SET price = price * 0.9
WHERE category = 'เสื้อผ้า';

ข้อผิดพลาดที่พบบ่อย:

  • ลืม WHERE clause: ทำให้แก้ไขข้อมูลทุกแถวโดยไม่ได้ตั้งใจ
  • เงื่อนไข WHERE ไม่ถูกต้อง: ทำให้แก้ไขข้อมูลผิดแถว
  • Data Type ไม่ตรงกัน: พยายามใส่ค่าที่มี Data Type ไม่ตรงกับ Column

DELETE: ลบข้อมูลออกจาก Table

คำสั่ง DELETE ใช้สำหรับลบข้อมูลออกจาก Table รูปแบบคำสั่งพื้นฐานมีดังนี้:

DELETE FROM table_name
WHERE condition;

โดย:

  • table_name คือ ชื่อของ Table ที่เราต้องการลบข้อมูล
  • WHERE condition คือ เงื่อนไขที่ใช้ระบุแถวที่เราต้องการลบ (สำคัญมาก! ถ้าไม่มี WHERE จะลบทุกแถวใน Table)

ตัวอย่าง: สมมติว่าเราต้องการลบสินค้าที่มีชื่อว่า "เสื้อยืดคอกลม" ออกจาก Table:

DELETE FROM products
WHERE product_name = 'เสื้อยืดคอกลม';

คำสั่งนี้จะลบสินค้าที่มีชื่อว่า "เสื้อยืดคอกลม" ออกจาก Table products

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

กรณีใช้งานจริง: สมมติว่าเราต้องการลบสินค้าที่ไม่มีการขายออกไปนานแล้ว (เช่น สินค้าที่อยู่ในหมวด "สินค้าตกรุ่น"):

DELETE FROM products
WHERE category = 'สินค้าตกรุ่น';

ข้อผิดพลาดที่พบบ่อย:

  • ลืม WHERE clause: ทำให้ลบข้อมูลทุกแถวโดยไม่ได้ตั้งใจ
  • เงื่อนไข WHERE ไม่ถูกต้อง: ทำให้ลบข้อมูลผิดแถว

สรุป

ในบทนี้ เราได้เรียนรู้คำสั่ง SQL พื้นฐาน 3 คำสั่งที่ใช้ในการจัดการข้อมูลใน Table ได้แก่ INSERT สำหรับเพิ่มข้อมูล, UPDATE สำหรับแก้ไขข้อมูล, และ DELETE สำหรับลบข้อมูล การเข้าใจและใช้งานคำสั่งเหล่านี้ได้อย่างถูกต้องเป็นสิ่งสำคัญในการพัฒนาและบริหารจัดการฐานข้อมูล PostgreSQL

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

Office.in.th Custom Service

想基于此结构开发或定制系统?

Office.in.th 承接企业级 Web Application、API Integration 以及政府/企业管理系统的设计与开发,并提供长期支持。

查看软件开发服务