WHERE Clause ใน MySQL เป็นคำสั่งที่ช่วยให้เราสามารถกรองข้อมูลจากฐานข้อมูลได้อย่างมีประสิทธิภาพ แทนที่จะดึงข้อมูลทั้งหมดจากตาราง เราสามารถใช้ WHERE เพื่อเลือกเฉพาะข้อมูลที่ตรงตามเงื่อนไขที่กำหนดได้
ในบทความนี้ เราจะเรียนรู้การเขียน WHERE Clause อย่างละเอียด พร้อมตัวอย่างการใช้งานในสถานการณ์จริง เพื่อให้สามารถนำไปประยุกต์ใช้กับงานจริงได้อย่างมีประสิทธิภาพ
ความหมายของ WHERE Clause ใน MySQL
WHERE Clause คือการเพิ่มเงื่อนไขให้กับคำสั่ง SELECT (หรือคำสั่งอื่น ๆ เช่น UPDATE, DELETE) เพื่อดึงเฉพาะแถวข้อมูลที่ตรงกับเงื่อนไขที่ระบุเท่านั้น ช่วยให้การทำงานกับฐานข้อมูลมีความแม่นยำและมีประสิทธิภาพสูงขึ้น
รูปแบบการใช้งาน (Syntax)
SELECT column1, column2, ...
FROM table_name
WHERE condition;
- SELECT: ระบุคอลัมน์ที่ต้องการดึงข้อมูล
- FROM: ระบุชื่อตาราง
- WHERE: กำหนดเงื่อนไขที่ต้องการใช้ในการกรองข้อมูล
ตัวอย่างการใช้งาน
ตัวอย่างที่ 1: กรองข้อมูลด้วยเงื่อนไขเท่ากับ (=)
SELECT * FROM employees WHERE department = 'IT';การทำงาน:
ดึงข้อมูลพนักงานทั้งหมดที่อยู่ในแผนก IT
ตัวอย่างที่ 2: กรองข้อมูลด้วยเงื่อนไขมากกว่า (>)
SELECT first_name, salary FROM employees WHERE salary > 50000;การทำงาน:
แสดงชื่อและเงินเดือนของพนักงานที่มีเงินเดือนมากกว่า 50,000
ตัวอย่างที่ 3: กรองข้อมูลด้วยเงื่อนไขหลายเงื่อนไข (AND)
SELECT first_name, department FROM employees WHERE department = 'IT' AND salary > 60000;การทำงาน:
ดึงพนักงานที่อยู่แผนก IT และมีเงินเดือนมากกว่า 60,000
ตัวอย่างที่ 4: กรองข้อมูลด้วยเงื่อนไขอย่างใดอย่างหนึ่ง (OR)
SELECT first_name, department FROM employees WHERE department = 'IT' OR department = 'HR';การทำงาน:
แสดงพนักงานที่อยู่แผนก IT หรือ HR
ตัวอย่างที่ 5: กรองข้อมูลด้วย NOT
SELECT * FROM employees WHERE department != 'Finance';การทำงาน:
แสดงข้อมูลพนักงานที่ไม่ได้อยู่ในแผนกการเงิน
ตัวอย่างการประยุกต์ใช้งานในสถานการณ์จริง (H2)
สมมติเรามีข้อมูลพนักงานดังนี้
| id | first_name | department | salary |
|---|---|---|---|
| 1 | John | IT | 50000 |
| 2 | Jane | HR | 55000 |
| 3 | Alice | IT | 65000 |
| 4 | Bob | Finance | 48000 |
ตัวอย่าง SQL: ดึงพนักงานแผนก IT ที่มีเงินเดือนมากกว่า 55,000
SELECT first_name, salary
FROM employees
WHERE department = 'IT' AND salary > 55000;การทำงาน:
- กรองข้อมูลแผนก IT ก่อน
- ตรวจสอบเงินเดือนที่มากกว่า 55,000
- มีเพียง Alice เท่านั้นที่ตรงกับเงื่อนไข
ผลลัพธ์ที่ได้:
- จะแสดงเฉพาะ Alice ที่อยู่แผนก IT และมีเงินเดือน 65,000
หมายเหตุ
- หากมีหลายเงื่อนไข ควรใช้วงเล็บ
( )เพื่อควบคุมลำดับการประเมินเงื่อนไข - การใช้ AND และ OR รวมกันควรวางแผนอย่างรอบคอบ เพื่อไม่ให้ได้ผลลัพธ์ผิดพลาด
- ระวังเรื่องการเปรียบเทียบข้อมูลประเภทตัวอักษรกับตัวเลขที่แตกต่างกัน
