Appearance
🗄️ MySQL & Database Basics
MySQL คือระบบจัดการฐานข้อมูล (Database Management System - DBMS) แบบ Relational (RDBMS) ที่เก็บข้อมูลในรูปแบบตารางที่มีความสัมพันธ์กัน
ในหลักสูตรนี้ เราจะใช้ MySQL เป็นฐานข้อมูลหลักของ Laravel Backend
🏗️ 1. Relational Database คืออะไร?
ลองนึกภาพ Excel ที่มีหลาย Sheet (Table) แต่ละ sheet เชื่อมโยงกันได้
- Database: เหมือนไฟล์ Excel 1 ไฟล์
- Table: เหมือน Sheet ใน Excel (เช่น ตาราง Users, ตาราง Products)
- Column (Field): หัวข้อคอลัมน์ (เช่น ชื่อ, ราคา, วันที่ผลิต)
- Row (Record): ข้อมูลแต่ละบรรทัด (เช่น นาย A, iPhone 15, 2024-01-01)
คุณสมบัติเด่น (ACID)
- Atomicity: ทำงานสำเร็จทั้งก้อน หรือไม่ทำเลย
- Consistency: ข้อมูลต้องถูกต้องตามกฎเสมอ
- Isolation: การทำงานซ้อนกันต้องไม่กวนกัน
- Durability: บันทึกแล้วข้อมูลต้องอยู่ถาวร แม้ไฟดับ
🛠 2. เครื่องมือที่เราใช้
MySQL Server (Back-end)
โปรแกรมที่ทำงานเบื้องหลัง คอยรับคำสั่ง SQL และจัดการไฟล์ข้อมูล
- XAMPP / MAMP / Laragon: ชุดโปรแกรมสำเร็จรูปที่ติดตั้ง MySQL มาให้แล้ว
- Docker: (Advance) รัน MySQL ใน Container
Database Client (Front-end)
โปรแกรมที่เราใช้ดูและแก้ไขข้อมูล
- phpMyAdmin: (แถมมากับ XAMPP) ใช้งานง่ายผ่านเว็บ
- DBeaver: ฟรี ครบเครื่อง รองรับหลาย Database
- TablePlus: หน้าตาสวย ทันสมัย (มีเวอร์ชันฟรี/เสียเงิน)
- HeidiSQL: เบา เร็ว (Windows only)
📝 3. SQL เบื้องต้น
Structured Query Language (SQL) คือภาษาที่ใช้คุยกับ Database
SELECT (ดึงข้อมูล)
sql
SELECT * FROM users;
SELECT name, email FROM users WHERE id = 1;INSERT (เพิ่มข้อมูล)
sql
INSERT INTO users (name, email) VALUES ('John', '[email protected]');UPDATE (แก้ไขข้อมูล)
sql
UPDATE users SET name = 'Johnny' WHERE id = 1;DELETE (ลบข้อมูล)
sql
DELETE FROM users WHERE id = 1;Laravel จะเขียน SQL ให้เรา!
ข่าวดีคือ เราแทบไม่ต้องเขียน SQL เองเลย เพราะ Laravel Eloquent จะแปลง code PHP ของเราให้เป็น SQL โดยอัตโนมัติ (เช่น User::find(1) -> SELECT * FROM users WHERE id = 1 LIMIT 1)