
SQL 101: เริ่มเขียน Query ดึงข้อมูลฉบับคนเริ่มต้น
November 9, 2025
Database
เคยสงสัยไหมครับว่าข้อมูลมหาศาลที่อยู่ในแอปพลิเคชันต่าง ๆ เช่น รายชื่อเพื่อนใน Facebook, ประวัติการสั่งซื้อใน Shopee, หรือรายชื่อเพลงใน Spotify... เขาจัดเก็บและดึงออกมาแสดงผลให้เราดูได้ยังไง? 🤔
คำตอบก็คือ SQL อ่านได้สองแบบหลักๆ คือ เอส-คิว-แอล (ตามตัวอักษรย่อ) และ ซี-เควล (มาจากชื่อเดิม SEQUEL) มันคือภาษากลางที่ใช้ในการพูดคุยกับฐานข้อมูล และวันนี้เราจะมาลองเป็น "นักสืบข้อมูล" โดยใช้คำสั่ง SQL พื้นฐานเพื่อค้นหาสิ่งที่เราต้องการกัน!
ก่อนจะเริ่ม: รู้จักกับ "ตาราง" กันก่อน
ฐานข้อมูลส่วนใหญ่จะเก็บข้อมูลในรูปแบบของ ตาราง (Table) ซึ่งหน้าตาจะคล้าย ๆ กับตารางใน Excel เลยครับ
- คอลัมน์ (Column): คือหัวข้อของข้อมูลแต่ละประเภท (เช่น id, title, price)
- แถว (Row): คือข้อมูล 1 ชุด หรือ 1 "Record" (เช่น ข้อมูลหนังสือ 1 เล่ม)
สมมติว่าเรามีตาราง books ในร้านหนังสือออนไลน์ของเราแบบนี้:
Table: books
| id | title | category | price | publish_date |
|---|---|---|---|---|
| 1 | The Midnight Library | Fiction | 350 | 2020-08-13 |
| 2 | Atomic Habits | Self-Help | 420 | 2018-10-16 |
| 3 | Sapiens | Non-Fiction | 550 | 2015-02-10 |
| 4 | Dune | Fiction | 495 | 1965-08-01 |
| 5 | The Psychology of Money | Self-Help | 380 | 2020-09-08 |
พร้อมแล้วใช่ไหมครับ? ไปเริ่มเขียน Query แรกกันเลย! 🚀
1. SELECT และ FROM: ขอดูหน่อย...จากไหน?
คำสั่งที่ใช้บ่อยที่สุดและเป็นหัวใจของการดึงข้อมูลคือ SELECT ครับ
- SELECT: บอกว่าเราต้องการ "เลือกดูคอลัมน์อะไรบ้าง"
- FROM: บอกว่าให้ไปหาจาก "ตารางไหน"
ขอดูทุกอย่างในตาราง books
ถ้าเราอยากเห็นข้อมูลทุกคอลัมน์ ทุกแถวในตาราง books เราจะใช้เครื่องหมาย * (ดอกจัน) ซึ่งแปลว่า "ทั้งหมด"
SQL
SELECT * FROM books;ผลลัพธ์: เราจะได้ข้อมูลทั้งตาราง books กลับมาเลย!
ขอดูแค่บางคอลัมน์
แต่ส่วนใหญ่เราไม่ได้อยากเห็นทุกอย่างใช่ไหมครับ? เราสามารถระบุชื่อคอลัมน์ที่ต้องการได้ โดยคั่นด้วยเครื่องหมาย , (จุลภาค)
SQL
SELECT title, price FROM books;ผลลัพธ์:
| title | price |
|---|---|
| The Midnight Library | 350 |
| Atomic Habits | 420 |
| Sapiens | 550 |
| ... | ... |
2. WHERE: กรองข้อมูลตามเงื่อนไข 🔍
ตอนนี้เราเริ่มสนุกขึ้นแล้ว! WHERE คือคำสั่งที่ใช้ในการ "กรอง" ข้อมูล เพื่อเอามาเฉพาะแถวที่ตรงตามเงื่อนไขที่เราต้องการ
หาหนังสือที่เป็นหมวด Fiction
SQL
SELECT * FROM books
WHERE category = 'Fiction';ข้อสังเกต: สำหรับข้อมูลที่เป็นข้อความ (Text/String) เราต้องใส่ไว้ในเครื่องหมาย ' ' (Single Quote) นะครับ
ผลลัพธ์:
| id | title | category | price | publish_date |
|---|---|---|---|---|
| 1 | The Midnight Library | Fiction | 350 | 2020-08-13 |
| 4 | Dune | Fiction | 495 | 1965-08-01 |
หาหนังสือที่ราคามากกว่า 400 บาท 💰
SQL
SELECT title, price FROM books
WHERE price > 400;ผลลัพธ์:
| title | price |
|---|---|
| Atomic Habits | 420 |
| Sapiens | 550 |
| Dune | 495 |
เงื่อนไขแบบซับซ้อนด้วย AND และ OR
เราสามารถรวมหลาย ๆ เงื่อนไขเข้าด้วยกันได้:
- AND: ต้องเป็นจริง "และ" ทั้งสองเงื่อนไข
- OR: เป็นจริงแค่เงื่อนไขใดเงื่อนไขหนึ่ง "หรือ" ทั้งสองก็ได้
ตัวอย่าง: หาหนังสือหมวด Self-Help และ ราคาถูกกว่า 400 บาท
SQL
SELECT title, category, price FROM books
WHERE category = 'Self-Help' AND price < 400;ผลลัพธ์:
| title | category | price |
|---|---|---|
| The Psychology of Money | Self-Help | 380 |
3. ORDER BY: จัดเรียงผลลัพธ์ 📈
ข้อมูลที่ได้มาอาจจะยังดูไม่เป็นระเบียบ เราสามารถใช้ ORDER BY เพื่อ "จัดเรียง" ผลลัพธ์ตามคอลัมน์ที่ต้องการได้
- ASC (Ascending): เรียงจากน้อยไปมาก (เป็นค่า default)
- DESC (Descending): เรียงจากมากไปน้อย
ตัวอย่าง: แสดงหนังสือทั้งหมด โดยเรียงตามราคาจาก แพงที่สุดไปถูกที่สุด
SQL
SELECT title, price FROM books
ORDER BY price DESC;ผลลัพธ์:
| title | price |
|---|---|
| Sapiens | 550 |
| Dune | 495 |
| Atomic Habits | 420 |
| The Psychology of Money | 380 |
| The Midnight Library | 350 |
4. LIMIT: จำกัดจำนวนผลลัพธ์
บางทีเราก็ไม่ได้อยากได้ข้อมูลทั้งหมด แต่ต้องการแค่ไม่กี่แถวแรก (เช่น 5 อันดับแรก) เราสามารถใช้ LIMIT ในการ "จำกัดจำนวน" แถวที่แสดงผลได้
ตัวอย่าง: หาหนังสือ 3 เล่มที่แพงที่สุดในร้าน
SQL
SELECT title, price FROM books
ORDER BY price DESC
LIMIT 3;ผลลัพธ์:
| title | price |
|---|---|
| Sapiens | 550 |
| Dune | 495 |
| Atomic Habits | 420 |
Putting It All Together: ประกอบร่าง!
ตอนนี้เรามีเครื่องมือครบแล้ว! มาลองสร้าง Query ที่ซับซ้อนขึ้นโดยการรวมทุกอย่างเข้าด้วยกัน
ภารกิจ: "หาหนังสือหมวด Fiction ที่ราคาไม่เกิน 400 บาท โดยเรียงตามวันที่ตีพิมพ์จากเก่าที่สุดไปใหม่ที่สุด"
SQL
SELECT
title,
category,
price,
publish_date
FROM
books
WHERE
category = 'Fiction' AND price <= 400
ORDER BY
publish_date ASC;ผลลัพธ์:
| title | category | price | publish_date |
|---|---|---|---|
| The Midnight Library | Fiction | 350 | 2020-08-13 |
(ในเคสนี้มีแค่เล่มเดียวที่ตรงเงื่อนไข)
สรุป
ยินดีด้วยครับ! ตอนนี้คุณได้เรียนรู้คำสั่งพื้นฐานที่ทรงพลังที่สุดของ SQL แล้ว:
- SELECT: เลือกคอลัมน์
- FROM: จากตารางไหน
- WHERE: กรองตามเงื่อนไข
- ORDER BY: จัดเรียงผลลัพธ์
- LIMIT: จำกัดจำนวน
นี่เป็นเพียงก้าวแรกเท่านั้น โลกของ SQL ยังมีอะไรให้เรียนรู้อีกเยอะแยะ เช่น การเชื่อมข้อมูลหลายตารางเข้าด้วยกัน (JOIN), การนับหรือรวมข้อมูล (COUNT, SUM) แต่แค่คุณเข้าใจพื้นฐานเหล่านี้ ก็สามารถเริ่มต้นเส้นทางการเป็น "นักสืบข้อมูล" ได้แล้วครับ! ขอให้สนุกกับการ Query นะครับ
Related Blogs
September 25, 2025
Database: RDBMS vs. NoSQL จะเลือกอะไร?
ไขข้อข้องใจระหว่างฐานข้อมูลแบบตาราง (RDBMS) และแบบยืดหยุ่น (NoSQL) พร้อมแนวทางปฏิบัติที่ดีที่สุดในการเลือกใช้ให้ปัง!

September 25, 2025
Redis: Cache ตัวเก่ง เสริมพลังเว็บให้เร็วปรู๊ดปร๊าด!
เคยไหมที่เว็บโหลดช้าเพราะฐานข้อมูลทำงานหนัก? มาดู Redis ในบทบาท Caching ตัวเทพที่จะมาช่วยให้ระบบของคุณเร็วขึ้น พร้อมเทคนิค Invalidation และการใช้ Queue
