Skip to content

🗄️ 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)