การเพิ่ม แก้ไข และลบข้อมูลด้วย INSERT, UPDATE และ DELETE ในภาษา SQL (MySQL)
DML คืออะไร
เมื่อสร้างฐานข้อมูลและตารางเรียบร้อยแล้ว ขั้นตอนต่อไปคือการจัดการข้อมูลภายในตาราง ซึ่งภาษา SQL มีชุดคำสั่งที่เรียกว่า DML (Data Manipulation Language) สำหรับจัดการข้อมูล ได้แก่
- INSERT เพิ่มข้อมูลใหม่
- UPDATE แก้ไขข้อมูลเดิม
- DELETE ลบข้อมูลออกจากตาราง
คำสั่งเหล่านี้เป็นพื้นฐานที่ใช้ในทุกระบบสารสนเทศ เช่น ระบบร้านค้า ระบบทะเบียนนักศึกษา ระบบโรงพยาบาล และระบบธนาคาร
ตารางตัวอย่าง
ใช้ตาราง products
CREATE TABLE products (
product_id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(100),
category VARCHAR(50),
price DECIMAL(10,2),
stock INT,
brand VARCHAR(50),
created_date DATE
);INSERT คืออะไร
คำสั่ง INSERT INTO ใช้สำหรับเพิ่มข้อมูลใหม่เข้าไปในตาราง
โครงสร้าง
INSERT INTO table_name(column1,column2,...)
VALUES(value1,value2,...);เพิ่มข้อมูล 1 รายการ
INSERT INTO products
(product_name,category,price,stock,brand,created_date)
VALUES
('Notebook Dell Inspiron', 'Computer', 25900, 10, 'Dell', '2026-07-14');ผลลัพธ์
| product_id | product_name | category | price |
|---|---|---|---|
| 21 | Notebook Dell Inspiron | Computer | 25900.00 |
ตรวจสอบข้อมูล
SELECT * FROM products;จะพบว่ามีข้อมูลเพิ่มเข้ามาอีก 1 แถว
เพิ่มหลายรายการพร้อมกัน
INSERT INTO products
(product_name,category,price,stock,brand,created_date)
VALUES
('Mechanical Keyboard','Accessory',1590,30,'Keychron','2026-07-14'),
('Gaming Mouse','Accessory',990,50,'Logitech','2026-07-14'),
('USB Type-C Cable','Accessory',250,100,'Ugreen','2026-07-14');ข้อดี
- เพิ่มข้อมูลได้หลายรายการพร้อมกัน
- ลดจำนวนครั้งที่ติดต่อกับฐานข้อมูล
- ทำงานได้รวดเร็วกว่า
UPDATE คืออะไร
ใช้แก้ไขข้อมูลที่มีอยู่เดิมในตาราง
โครงสร้าง
UPDATE table_name
SET column=value
WHERE เงื่อนไข;แก้ไขราคาสินค้า
UPDATE products
SET price=24900
WHERE product_id=21;ผลลัพธ์
| ก่อนแก้ไข | หลังแก้ไข |
|---|---|
| 25900.00 | 24900.00 |
แก้ไขหลายคอลัมน์พร้อมกัน
UPDATE products
SET
price=23900,
stock=20,
brand='Dell Thailand'
WHERE product_id=21;UPDATE โดยใช้เงื่อนไขแบบกลุ่ม
เพิ่มจำนวนสินค้าในหมวด Accessory ขึ้นอีกชิ้นละ 10 รายการ
UPDATE products
SET stock=stock+10
WHERE category='Accessory';ผลลัพธ์: สินค้าทุกชิ้นในหมวด Accessory จะมีจำนวนเพิ่มขึ้น 10 ชิ้นทันที
⚠️ ข้อควรระวังที่สุด!
หากคุณลืมระบุเงื่อนไข WHERE เช่น:
UPDATE products
SET price=0;ผลลัพธ์คือ ข้อมูลราคาสินค้าทุกแถวในตารางจะกลายเป็น 0 ทันที! ดังนั้นควรตรวจสอบเงื่อนไขให้ดีก่อนกด Execute เสมอ
DELETE คืออะไร
คำสั่ง DELETE ใช้สำหรับลบข้อมูลออกจากตาราง
โครงสร้าง
DELETE FROM table_name
WHERE เงื่อนไข;ลบข้อมูล 1 รายการ
DELETE FROM products
WHERE product_id=21;ข้อมูลสินค้าที่มีรหัส 21 จะถูกลบออกจากตาราง
ลบข้อมูลตามเงื่อนไข
ลบสินค้าที่มีราคาต่ำกว่า 300 บาท
DELETE FROM products
WHERE price < 300;ผลลัพธ์: สินค้าประเภทสายเชื่อมต่อหรืออุปกรณ์ที่ราคาต่ำกว่า 300 บาททั้งหมดจะถูกลบไป
⚠️ ข้อควรระวังสูงสุด!
DELETE FROM products;คำสั่งนี้จะลบข้อมูลทั้งหมดที่อยู่ในตาราง แต่โครงสร้างตาราง (Columns และ Data Types) ยังคงอยู่เหมือนเดิม
เปรียบเทียบ INSERT vs UPDATE vs DELETE
| คำสั่ง | หน้าที่การทำงาน |
|---|---|
| INSERT | ใช้เพิ่มข้อมูลแถวใหม่เข้าไปในตาราง |
| UPDATE | ใช้แก้ไขรายละเอียดของข้อมูลเดิมที่มีอยู่แล้ว |
| DELETE | ใช้ลบข้อมูลที่ไม่จำเป็นออกจากตาราง |
ตัวอย่างจำลองการทำงานในชีวิตจริง
เมื่อร้านค้าได้รับสินค้าประเภท Storage ตัวใหม่เข้ามาในระบบ:
1. เพิ่มสินค้าใหม่
INSERT INTO products
(product_name,category,price,stock,brand,created_date)
VALUES
('SSD Samsung 2TB', 'Storage', 4590, 25, 'Samsung', CURDATE());2. ต่อมาพบว่าใส่ราคาขายผิด จึงต้องการแก้ไขให้ถูกต้อง
UPDATE products
SET price=4290
WHERE product_name='SSD Samsung 2TB';3. เมื่อสินค้ารุ่นนี้ขายหมดและเลิกจัดจำหน่ายถาวร
DELETE FROM products
WHERE product_name='SSD Samsung 2TB';แนวทางปฏิบัติ
- ใช้คำสั่ง
SELECTเพื่อตรวจสอบข้อมูลก่อนทำการUPDATEหรือDELETEทุกครั้ง เพื่อความมั่นใจ - ห้ามลืมระบุเงื่อนไข
WHEREเด็ดขาดในคำสั่งเขียนแก้ไขและลบ เว้นแต่จะตั้งใจทำกับข้อมูลทั้งตารางจริงๆ - ควรสำรองฐานข้อมูล (Backup) เสมอก่อนแก้ไขข้อมูลชุดใหญ่ในระบบใช้งานจริง
สรุปเนื้อหาสำคัญ
คำสั่ง DML ทั้งสามตัวนี้ถือเป็นหัวใจของการพัฒนาโปรแกรมเชื่อมโยงระบบฐานข้อมูล:
- INSERT: เพิ่มแถวใหม่
- UPDATE: แก้ไขของเก่าที่มีอยู่
- DELETE: ลบแถวที่ไม่ต้องการออก
ขอให้นักเรียนทุกคนให้ความระมัดระวังเป็นพิเศษเมื่อต้องใช้ UPDATE และ DELETE ครับ
แบบฝึกหัดท้ายบท
- ให้นักเรียนทดลองเขียนคำสั่งเพิ่มข้อมูลสินค้าใหม่จำนวน 2 รายการ
- เขียนคำสั่งเพิ่มสินค้าประเภท Printer จำนวน 1 รายการ
- เขียนคำสั่งแก้ไขราคาสินค้า Notebook ในระบบให้ลดราคาลง 1,000 บาท
- เขียนคำสั่งเพิ่มจำนวนสินค้า (Stock) ในหมวด "Mobile" อีก 5 ชิ้น
- เขียนคำสั่งเปลี่ยนชื่อยี่ห้อ (Brand) จากเดิม 'Logitech' ให้เป็น 'Logitech G' ทั้งหมด
- เขียนคำสั่งลบสินค้าที่มีจำนวนคงเหลือ (Stock) เป็น 0
- เขียนคำสั่งลบสินค้าที่มีราคาต่ำกว่า 500 บาท
- จงใช้คำสั่ง
SELECTเพื่อแสดงผลเปรียบเทียบข้อมูลก่อนและหลังปรับปรุง (Update) - ให้นักเรียนสังเกตและวิเคราะห์ความแตกต่างของผลลัพธ์ระหว่างการรัน
DELETEแบบระบุWHEREและไม่ระบุWHERE - จงเขียนสรุปสั้นๆ เพื่ออธิบายความแตกต่างของ
INSERT,UPDATEและDELETEพร้อมยกตัวอย่างกรณีศึกษาในชีวิตประจำวัน
