MySQL ลบแบบสอบถาม: วิธีลบแถวออกจากตาราง
แบบสอบถาม DELETE คืออะไร
MySQL ลบ คำสั่งใช้ในการลบแถวที่ไม่จำเป็นออกจากตารางฐานข้อมูลอีกต่อไป มันจะลบทั้งแถวออกจากตารางและส่งกลับจำนวนแถวที่ถูกลบ คำสั่ง Delete มีประโยชน์ในการลบข้อมูลชั่วคราวหรือล้าสมัยออกจากฐานข้อมูลของคุณ
แบบสอบถามลบใน MySQL สามารถลบข้อมูลได้มากกว่าหนึ่งแถวจากตารางในแบบสอบถามเดียว ซึ่งถือเป็นข้อดีเมื่อต้องลบข้อมูลจำนวนมากจากตารางฐานข้อมูล
เมื่อลบแถวแล้ว MySQL เนื่องจากข้อมูลถูกลบไปแล้ว จึงไม่สามารถกู้คืนได้ ดังนั้นขอแนะนำอย่างยิ่งให้ทำการสำรองข้อมูลฐานข้อมูลก่อนลบข้อมูลใดๆ จากฐานข้อมูล วิธีนี้จะทำให้คุณสามารถกู้คืนฐานข้อมูลและดูข้อมูลในภายหลังได้หากจำเป็น
วิธีการลบแถวใน MySQL
หากต้องการลบแถวใน MySQLมีการใช้คำสั่ง DELETE FROM:
DELETE FROM `table_name` [WHERE condition];
ที่นี่
- ลบจาก `table_name` บอก MySQL เซิร์ฟเวอร์เพื่อลบแถวออกจากตาราง ..
- [เงื่อนไข WHERE] เป็นทางเลือกและใช้เพื่อใส่ตัวกรองที่จำกัดจำนวนแถวที่ได้รับผลกระทบจากไวยากรณ์ DELETE MySQL แบบสอบถามแถว
ถ้า WHERE ข้อ ไม่ได้ใช้ใน MySQL ลบแบบสอบถามจากนั้นแถวทั้งหมดในตารางที่กำหนดจะถูกลบ
ตัวอย่างของการ MySQL ลบแบบสอบถาม
ก่อนที่เราจะพูดถึงรายละเอียดเพิ่มเติมเกี่ยวกับคำสั่ง SQL DELETE เรามาแทรกข้อมูลตัวอย่างบางส่วนลงในตารางภาพยนตร์ที่จะใช้งานได้ก่อน
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7); INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8); INSERT INTO movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);
การดำเนินการตามสคริปต์ข้างต้นจะเพิ่มภาพยนตร์สาม (3) เรื่องลงในตารางภาพยนตร์ ก่อนที่เราจะเข้าสู่บทเรียนไปไกลกว่านี้ เรามาดูภาพยนตร์ทั้งหมดกันก่อน สคริปต์ที่แสดงด้านล่างทำเช่นนั้น
SELECT * FROM `movies`;
เมื่อดำเนินการสคริปต์ข้างต้นจะให้ผลลัพธ์ดังต่อไปนี้
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
18 | The Great Dictator | Chalie Chaplie | 1920 | 7 |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
สมมติว่าไลบรารีวิดีโอ Myflix ไม่ประสงค์ที่จะให้เช่า "The Great Dictator" แก่สมาชิกอีกต่อไป และพวกเขาต้องการลบออกจากฐานข้อมูล รหัสภาพยนตร์คือ 18 เราสามารถใช้สคริปต์ที่แสดงด้านล่างเพื่อลบแถวออกจากตาราง MySQL ตัวอย่าง.
DELETE FROM `movies` WHERE `movie_id` = 18;
ดำเนินการสคริปต์ข้างต้นใน MySQL โต๊ะทำงาน กับ Myflix จะลบภาพยนตร์ที่มี id 18 ออกจากตารางฐานข้อมูล
มาดูสถานะปัจจุบันของตารางภาพยนตร์กัน
SELECT * FROM `movies`;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
หมายเหตุ:
- ภาพยนตร์ที่มีรหัส 18 ยังไม่ได้รับการส่งคืนในชุดผลลัพธ์แบบสอบถาม
- คุณไม่สามารถลบคอลัมน์เดียวสำหรับตารางได้ คุณสามารถลบทั้งแถวได้
สมมติว่าเรามีรายชื่อภาพยนตร์ที่เราต้องการลบ เราสามารถใช้ WHERE clause ร่วมกับ IN ได้
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
การดำเนินการตามสคริปต์ด้านบนจะลบภาพยนตร์ที่มี ID 20 และ 21 ออกจากตารางภาพยนตร์ของเรา
สรุป
- คำสั่ง Delete in MySQLใช้เพื่อลบข้อมูลที่ไม่จำเป็นออกจากตารางอีกต่อไป
- “ส่วนคำสั่ง WHERE” ใช้เพื่อจำกัดจำนวนแถวที่ได้รับผลกระทบจากคำสั่ง DELETE MySQL คำสั่ง
- เมื่อข้อมูลถูกลบไปแล้วจะไม่สามารถกู้คืนได้ ดังนั้นขอแนะนำอย่างยิ่งให้ทำการสำรองข้อมูลก่อนที่จะลบข้อมูล