ลองนึกภาพตามนี้
คุณเพิ่งได้งานเป็น Data Analyst ที่ร้าน บ้านเราคาเฟ่ ร้านกาแฟที่มี 12 สาขาทั่วประเทศ วันแรกหัวหน้าถามว่า
“ปีที่แล้วเมนูไหนขายดีที่สุด แล้วสาขาไหนทำยอดได้สูงสุด?”
คำตอบซ่อนอยู่ใน ข้อมูลการขาย ที่ร้านบันทึกไว้ทุกครั้งที่ลูกค้าสั่งเครื่องดื่ม ปีหนึ่งมีหลายพันออเดอร์ จะเปิดไล่ดูทีละรายการคงไม่ไหว เราต้องมีวิธี “ถาม” ข้อมูล แล้วให้คอมพิวเตอร์คำนวณคำตอบออกมาให้
วิธีนั้นก็คือ SQL — และตลอดคอร์สนี้คุณจะได้ตอบคำถามแบบนี้ด้วยตัวเอง
ตาราง (Table): ที่เก็บข้อมูล
ข้อมูลในบริษัทส่วนใหญ่ถูกเก็บเป็น ตาราง หน้าตาคล้ายชีทใน Excel นี่คือตัวอย่างบางส่วนจากตาราง products ซึ่งเก็บเมนูของร้าน
| product_id | product_name | category | price | cost |
|---|
| 101 | เอสเปรสโซ่ | coffee | 55 | 14 |
| 102 | อเมริกาโน่ | coffee | 60 | 15 |
| 103 | ลาเต้ | coffee | 70 | 20 |
| 109 | ชาไทยเย็น | tea | 55 | 14 |
ตารางมีสองส่วนที่ต้องรู้จัก
- คอลัมน์ (Column) คือแนวตั้ง แต่ละคอลัมน์เก็บข้อมูล เรื่องเดียวกัน เช่น คอลัมน์
price เก็บราคาของทุกเมนู
- แถว (Row) คือแนวนอน หนึ่งแถว = ข้อมูลของ หนึ่งสิ่ง เช่น แถวแรกคือข้อมูลทั้งหมดของ “เอสเปรสโซ่”
ถ้าอยากรู้ว่าลาเต้ราคาเท่าไร ก็มองหา แถว ของลาเต้ แล้วดูที่ คอลัมน์ price → 70 บาท
ฐานข้อมูล (Database): ที่รวมหลายตาราง
ฐานข้อมูล คือที่รวมตารางหลายๆ ตารางที่เกี่ยวข้องกัน ฐานข้อมูลของบ้านเราคาเฟ่มี 6 ตาราง
| ตาราง | เก็บข้อมูลอะไร | จำนวนแถว |
|---|
branches | สาขา | 12 |
products | เมนู | 23 |
customers | ลูกค้าที่เป็นสมาชิก | 400 |
employees | พนักงาน | 46 |
orders | ออเดอร์ทั้งปี 2025 | 4,200 |
order_items | สินค้าแต่ละรายการในออเดอร์ | 7,320 |
กดปุ่ม ดูตารางข้อมูล ที่หัวหน้านี้ได้ทุกเมื่อ เพื่อดูว่าแต่ละตารางมีคอลัมน์อะไร และแต่ละคอลัมน์หมายถึงอะไร
SQL: ภาษาที่ใช้ถามฐานข้อมูล
SQL (อ่านว่า “เอส-คิว-แอล” หรือ “ซีเควล”) ย่อมาจาก Structured Query Language แปลตรงตัวคือ “ภาษาสำหรับถามข้อมูลที่มีโครงสร้าง”
ข่าวดีคือ SQL อ่านเกือบเหมือนประโยคภาษาอังกฤษ นี่คือคำสั่งแรกของเรา กดปุ่ม รัน ได้เลย
คุณจะเห็นเมนูทั้ง 23 รายการของร้าน (ครั้งแรกอาจรอสักครู่ เพราะระบบกำลังเตรียมฐานข้อมูลในเบราว์เซอร์ของคุณ)
แยกชิ้นส่วนคำสั่ง
| ส่วนของคำสั่ง | ความหมาย |
|---|
SELECT | “เลือก” — บอกว่าอยากดูข้อมูลอะไร |
* | เครื่องหมายดอกจัน แปลว่า “ทุกคอลัมน์” |
FROM products | “จาก” ตารางชื่อ products |
; | จบคำสั่ง เหมือนจุด full stop ท้ายประโยค |
อ่านรวมกันได้ว่า “เลือกทุกคอลัมน์ จากตาราง products”
ลองเปลี่ยนชื่อตารางในกล่องด้านล่างเป็นตารางอื่น เช่น branches หรือ orders แล้วกดรันดู
เมื่อพิมพ์ผิด: error ไม่ใช่เรื่องน่ากลัว
ทุกคนพิมพ์ผิดได้ แม้แต่โปรแกรมเมอร์ที่เขียนโค้ดมาสิบปี สิ่งสำคัญคือ อ่าน error ให้เป็น ลองรันคำสั่งนี้ซึ่งสะกดชื่อตารางผิด (ขาดตัว s)
ระบบจะบอกว่า ไม่พบตาราง product และยังถามด้วยว่าหมายถึง products หรือเปล่า error ส่วนใหญ่บอกใบ้ไว้แล้วว่าผิดตรงไหน ลองแก้ให้ถูกแล้วรันใหม่ดู
ถึงตาคุณแล้ว
แบบฝึกหัดที่ 1· ดูข้อมูลสาขาทั้งหมด หัวหน้าอยากรู้ว่าร้านมีสาขาอยู่ที่ไหนบ้าง ให้เขียนคำสั่งแสดง ทุกคอลัมน์ ของตาราง branches
แบบฝึกหัดที่ 2· ดูข้อมูลพนักงาน ฝ่ายบุคคลขอดูข้อมูลพนักงานทุกคน ให้แสดงทุกคอลัมน์ของตาราง employees
ลองสังเกตผลลัพธ์ว่ามีพนักงานกี่คน และมีคอลัมน์อะไรบ้าง
แบบฝึกหัดที่ 3· แก้คำสั่งที่พิมพ์ผิด เพื่อนร่วมทีมเขียนคำสั่งด้านล่างเพื่อดูข้อมูลทั้งหมดของตาราง products แต่รันไม่ผ่าน
- กด รัน ก่อน แล้วอ่าน error ว่าบอกอะไร
- แก้คำสั่งให้ถูก แล้วกด ตรวจคำตอบ
สรุป
- ตาราง เก็บข้อมูลเป็นแถวและคอลัมน์ หนึ่งตารางหนึ่งเรื่อง
- ฐานข้อมูล คือที่รวมหลายตารางที่เกี่ยวข้องกัน
- SQL คือภาษาที่ใช้ถามข้อมูลจากฐานข้อมูล
SELECT * FROM ชื่อตาราง; แปลว่า “ขอดูทุกคอลัมน์ของตารางนี้”
- error คือเพื่อน อ่านแล้วจะรู้ว่าต้องแก้ตรงไหน
บทถัดไปเราจะเลือกดู เฉพาะคอลัมน์ที่ต้องการ แทนการดึงมาทั้งหมด ซึ่งเป็นสิ่งที่ทำบ่อยที่สุดในการทำงานจริง