SQL คือภาษาสำหรับจัดการฐานข้อมูลเชิงสัมพันธ์ ครอบคลุมการอ่าน/เขียน/วิเคราะห์ข้อมูลด้วยคำสั่งมาตรฐาน
SQL (Structured Query Language) เป็นภาษามาตรฐานสำหรับจัดการฐานข้อมูลเชิงสัมพันธ์
Open source, เว็บทั่วไป
Advanced features, JSON
Enterprise, .NET
Embedded, mobile
-- สร้างตาราง
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);-- ดึงทุก column SELECT * FROM users; -- ดึงเฉพาะ column ที่ต้องการ SELECT id, name, email FROM users; -- ตั้งชื่อ alias SELECT name AS user_name, email AS user_email FROM users; -- DISTINCT - ค่าไม่ซ้ำ SELECT DISTINCT status FROM orders; -- LIMIT - จำกัดจำนวน SELECT * FROM users LIMIT 10; SELECT * FROM users LIMIT 10 OFFSET 20; -- skip 20
-- เปรียบเทียบ
SELECT * FROM users WHERE age >= 18;
SELECT * FROM users WHERE status = 'active';
-- AND / OR
SELECT * FROM products
WHERE price > 100 AND category = 'electronics';
SELECT * FROM users
WHERE age < 18 OR status = 'inactive';
-- BETWEEN
SELECT * FROM products
WHERE price BETWEEN 100 AND 500;
-- IN
SELECT * FROM users
WHERE country IN ('TH', 'JP', 'KR');
-- LIKE (pattern matching)
SELECT * FROM users WHERE name LIKE 'Som%'; -- ขึ้นต้นด้วย Som
SELECT * FROM users WHERE email LIKE '%@gmail.com'; -- ลงท้ายด้วย
-- NULL
SELECT * FROM users WHERE phone IS NULL;
SELECT * FROM users WHERE phone IS NOT NULL;-- เรียงจากน้อยไปมาก (default) SELECT * FROM users ORDER BY name ASC; -- เรียงจากมากไปน้อย SELECT * FROM users ORDER BY created_at DESC; -- หลาย column SELECT * FROM products ORDER BY category ASC, price DESC;
-- เพิ่ม 1 row
INSERT INTO users (name, email, age)
VALUES ('Somchai', '[email protected]', 20);
-- เพิ่มหลาย rows
INSERT INTO users (name, email, age) VALUES
('John', '[email protected]', 25),
('Jane', '[email protected]', 22),
('Bob', '[email protected]', 30);-- แก้ไขตาม condition UPDATE users SET age = 21, status = 'active' WHERE id = 1; -- ⚠️ ระวัง! ถ้าไม่มี WHERE จะแก้ทุก row UPDATE products SET price = price * 1.1; -- ขึ้นราคา 10%
-- ลบตาม condition DELETE FROM users WHERE id = 1; -- ลบหลาย rows DELETE FROM users WHERE status = 'inactive'; -- ⚠️ ระวัง! ลบทุก row DELETE FROM logs WHERE created_at < '2024-01-01';