กลับไปหน้าบทความ
#MySQL#SQL#Database#SELECT#มือใหม่

เริ่มเขียน SQL ใน MySQL: SELECT, WHERE, ORDER BY และ LIMIT สำหรับมือใหม่

บทความนี้สรุปพื้นฐานการเขียน SQL ใน MySQL สำหรับมือใหม่ โดยอธิบายการใช้ SELECT, WHERE, ORDER BY และ LIMIT ผ่านตัวอย่างจากตาราง students แบบเข้าใจง่ายและนำไปใช้ได้จริง

20 กรกฎาคม 2569อ่านประมาณ 2 นาที

แชร์บทความ

เริ่มเขียน SQL ใน MySQL: SELECT, WHERE, ORDER BY และ LIMIT สำหรับมือใหม่

เริ่มเขียน SQL ใน MySQL: SELECT, WHERE, ORDER BY และ LIMIT สำหรับมือใหม่

การเริ่มเขียน SQL ไม่จำเป็นต้องมองว่าเป็นการสั่งคอมพิวเตอร์แบบซับซ้อนเสมอไป จริง ๆ แล้ว SQL คือการ “ถามข้อมูล” จากตารางในฐานข้อมูลให้ได้คำตอบที่เราต้องการ

ลองนึกภาพว่าเรากำลังถามคำถามง่าย ๆ เช่น

  • ขอดูรายชื่อลูกค้าหน่อย
  • ขอดูเฉพาะคนที่อยู่กรุงเทพ
  • เรียงจากคนสมัครล่าสุด
  • เอามาแค่ 10 แถวพอ

แนวคิดแบบนี้จะช่วยให้การเขียน SQL เข้าใจง่ายขึ้นมาก โดยเฉพาะสำหรับผู้เริ่มต้น

ในบทความนี้ เราจะใช้ตัวอย่างตารางชื่อ students ซึ่งมีคอลัมน์ดังนี้

  • id
  • name
  • age
  • city
  • created_at

เริ่มจาก SELECT: เลือกข้อมูลที่ต้องการ

คำสั่งพื้นฐานที่สุดใน SQL คือ SELECT ใช้สำหรับเลือกข้อมูลจากตาราง

SELECT * FROM students;

เครื่องหมาย * หมายถึงเลือกทุกคอลัมน์จากตาราง students

คำสั่งนี้แปลเป็นภาษาคนได้ว่า: ขอดูข้อมูลทั้งหมดจากตาราง students

แม้ว่าจะสะดวกและเหมาะสำหรับการตรวจข้อมูลแบบเร็ว ๆ แต่ในงานจริงไม่ควรใช้ * บ่อยเกินไป เพราะ:

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

ทางที่ดีกว่าคือเลือกเฉพาะคอลัมน์ที่ต้องใช้

SELECT name, age, city FROM students;

คำสั่งนี้หมายถึง: เอาเฉพาะชื่อ อายุ และเมือง จากตาราง students

นี่ถือเป็นรูปแบบ SQL ที่ดีขึ้นทันที เพราะชัดเจนว่าต้องการข้อมูลอะไรแน่

ใช้ WHERE เพื่อกรองข้อมูล

เมื่อไม่ได้ต้องการข้อมูลทั้งหมด เราสามารถใช้ WHERE เพื่อกำหนดเงื่อนไขในการกรองข้อมูลได้

ตัวอย่างเช่น ถ้าต้องการดูเฉพาะนักเรียนที่อยู่เชียงใหม่

SELECT name, city
FROM students
WHERE city = 'Chiang Mai';

สิ่งที่ควรสังเกตคือ:

  • ข้อความหรือ string ต้องใส่เครื่องหมาย quote เช่น 'Chiang Mai'
  • ตัวเลขมักไม่ต้องใส่ quote

ตัวอย่างการกรองด้วยตัวเลข เช่น ต้องการดูคนอายุ 18 ปีขึ้นไป

SELECT name, age
FROM students
WHERE age >= 18;

ตัวดำเนินการเงื่อนไขที่ใช้บ่อยใน WHERE ได้แก่

  • = เท่ากับ
  • != ไม่เท่ากับ
  • > มากกว่า
  • < น้อยกว่า
  • >= มากกว่าหรือเท่ากับ
  • <= น้อยกว่าหรือเท่ากับ

ใช้ AND และ OR เมื่อต้องมีหลายเงื่อนไข

หากต้องการกรองข้อมูลมากกว่าหนึ่งเงื่อนไข สามารถใช้ AND และ OR ได้

กรณีใช้ AND

SELECT name, age, city
FROM students
WHERE age >= 18 AND city = 'Bangkok';

ความหมายคือ: เอาเฉพาะนักเรียนที่อายุอย่างน้อย 18 ปี และอยู่กรุงเทพ

ทั้งสองเงื่อนไขต้องเป็นจริงพร้อมกัน

กรณีใช้ OR

SELECT name, city
FROM students
WHERE city = 'Bangkok' OR city = 'Chiang Mai';

ความหมายคือ: เอานักเรียนที่อยู่กรุงเทพ หรือเชียงใหม่ก็ได้

อย่างน้อยหนึ่งเงื่อนไขต้องเป็นจริง

ใช้ ORDER BY เพื่อจัดลำดับผลลัพธ์

หลังจากเลือกและกรองข้อมูลแล้ว เรามักต้องการจัดลำดับผลลัพธ์ด้วย ORDER BY

ตัวอย่างเช่น เรียงอายุน้อยไปมาก

SELECT name, age
FROM students
ORDER BY age ASC;

ASC ย่อมาจาก ascending หมายถึงเรียงจากน้อยไปมาก

ถ้าต้องการเรียงจากมากไปน้อย ให้ใช้ DESC

SELECT name, age
FROM students
ORDER BY age DESC;

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

ดังนั้น หากผลลัพธ์ต้องมีลำดับที่แน่นอน อย่าเดา ให้สั่งเรียงอย่างชัดเจน

ตัวอย่างที่ใช้บ่อยมากในงานจริงคือการดูข้อมูลล่าสุดก่อน

SELECT name, created_at
FROM students
ORDER BY created_at DESC;

คำสั่งนี้จะเรียงนักเรียนจากคนที่สมัครล่าสุดไปเก่าสุด

ใช้ LIMIT เพื่อจำกัดจำนวนแถว

เมื่อข้อมูลในตารางมีจำนวนมาก เรามักไม่จำเป็นต้องดึงข้อมูลทั้งหมดกลับมา สามารถใช้ LIMIT เพื่อจำกัดจำนวนแถวได้

SELECT name, created_at
FROM students
ORDER BY created_at DESC
LIMIT 10;

คำสั่งนี้หมายถึง:

  • เลือกชื่อและวันสมัคร
  • เรียงจากคนสมัครล่าสุด
  • คืนมาแค่ 10 คนแรก

นี่เป็นรูปแบบที่ใช้บ่อยมากในงานจริง เช่น:

  • หน้าแรกของระบบ
  • รายการล่าสุด
  • dashboard
  • การแบ่งข้อมูลแสดงทีละส่วน

ลำดับการเขียน SQL ที่จำง่าย

สำหรับ query พื้นฐาน ลำดับที่ควรจำคือ

  1. SELECT เลือกคอลัมน์
  2. FROM เลือกตาราง
  3. WHERE กรองข้อมูล
  4. ORDER BY เรียงผลลัพธ์
  5. LIMIT จำกัดจำนวน

ตัวอย่างรวมทุกอย่างเข้าด้วยกัน

SELECT id, name, age, city
FROM students
WHERE age >= 18
ORDER BY name ASC
LIMIT 20;

แปลเป็นภาษาคนได้ว่า:

ขอ id, ชื่อ, อายุ, เมือง จากตาราง students เฉพาะคนที่อายุ 18 ปีขึ้นไป เรียงตามชื่อจาก A ถึง Z และเอามาแค่ 20 แถว

เทคนิคสำหรับมือใหม่: เขียนจากง่ายไปยาก

วิธีที่ช่วยลดความสับสนได้ดีมากคือค่อย ๆ ต่อ query ทีละส่วน

แนวทางที่แนะนำคือ:

  1. เริ่มจาก SELECT และ FROM ก่อน
  2. รันดูว่าได้ข้อมูลตามต้องการหรือไม่
  3. ค่อยเติม WHERE
  4. ค่อยเติม ORDER BY
  5. ค่อยเติม LIMIT

ข้อดีของวิธีนี้คือ ถ้า query มีปัญหา เราจะหาสาเหตุได้ง่ายขึ้นว่าพังตรงจุดไหน

SQL ที่ดีควรเป็นอย่างไร

SQL ที่ดีไม่จำเป็นต้องดูซับซ้อนหรือเท่เสมอไป สิ่งสำคัญคือมันควร:

  • อ่านแล้วเข้าใจทันที
  • ถามข้อมูลได้ตรงจุด
  • ดึงเฉพาะข้อมูลที่จำเป็น
  • ไม่ทำให้ฐานข้อมูลทำงานหนักเกินไป

การเลือกเฉพาะคอลัมน์ที่ต้องใช้ การกรองข้อมูลอย่างเหมาะสม การเรียงลำดับอย่างชัดเจน และการจำกัดจำนวนผลลัพธ์ ล้วนเป็นพื้นฐานสำคัญของการเขียน SQL ที่ดี

สรุป

การเริ่มต้นเขียน SQL ใน MySQL สามารถมองเป็นการ “ถามข้อมูล” จากตารางได้อย่างเป็นธรรมชาติ โดยคำสั่งพื้นฐานที่ควรรู้ตั้งแต่แรกคือ SELECT, WHERE, ORDER BY และ LIMIT

ถ้าเข้าใจ 4 ส่วนนี้ดี คุณจะสามารถเขียน query ที่ใช้งานได้จริงในสถานการณ์ทั่วไปจำนวนมาก และต่อยอดไปสู่คำสั่งที่ซับซ้อนขึ้นได้ง่ายขึ้นในอนาคต

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