ชีตสรุป MySQL
ข้อมูลอ้างอิง MySQL ที่ค้นหาและพิมพ์ได้ — คิวรี joins ดัชนี ฟังก์ชัน ชนิดข้อมูล และคำสั่งจัดการระบบ ฟรี
การคิวรี
10SELECT * FROM users;
เลือกทุกคอลัมน์และแถว
SELECT id, name FROM users;
เลือกคอลัมน์ที่ระบุ
SELECT DISTINCT city FROM users;
เฉพาะค่าที่ไม่ซ้ำ
WHERE age > 18 AND active = 1
กรองแถวตามเงื่อนไข
WHERE name LIKE 'A%'
จับคู่รูปแบบ (% = ตัวอักษรใดก็ได้)
WHERE id IN (1, 2, 3)
จับคู่ค่าใดๆ ในชุด
WHERE age BETWEEN 18 AND 30
กรองช่วงแบบรวมขอบ
ORDER BY created_at DESC
เรียงจากมากไปน้อย
LIMIT 10 OFFSET 20
แบ่งหน้าผลลัพธ์
WHERE email IS NULL
จับคู่ค่า null
Joins
8INNER JOIN orders ON orders.user_id = users.id
แถวที่ตรงกันทั้งสองตาราง
LEFT JOIN orders ON ...
ทุกแถวฝั่งซ้าย + ที่ตรงกัน
RIGHT JOIN orders ON ...
ทุกแถวฝั่งขวา + ที่ตรงกัน
CROSS JOIN colors
ผลคูณคาร์ทีเซียน
SELF JOIN: FROM emp e JOIN emp m ON e.mgr = m.id
join ตารางกับตัวเอง
USING (user_id)
join บนคอลัมน์ชื่อเดียวกัน
UNION / UNION ALL
รวมชุดผลลัพธ์
SELECT u.*, o.total FROM users u JOIN orders o
ตั้งชื่อย่อตารางให้ชัดเจน
การรวมข้อมูล
9COUNT(*)
นับแถว
SUM(amount)
ผลรวมของคอลัมน์ตัวเลข
AVG(price)
ค่าเฉลี่ย
MIN(price), MAX(price)
ค่าน้อยสุดและมากสุด
GROUP BY country
จัดกลุ่มแถวเพื่อรวมข้อมูล
HAVING COUNT(*) > 5
กรองบนกลุ่มที่รวมข้อมูล
GROUP_CONCAT(name)
เชื่อมค่าที่จัดกลุ่ม
COUNT(DISTINCT city)
นับค่าที่ไม่ซ้ำ
ROW_NUMBER() OVER (ORDER BY id)
การจัดอันดับด้วย window function
การแก้ไขข้อมูล
8INSERT INTO users (name) VALUES ('Sam');
เพิ่มแถวเดียว
INSERT INTO users (name) VALUES ('A'),('B');
เพิ่มหลายแถว
UPDATE users SET active = 1 WHERE id = 5;
อัปเดตแถวที่ตรงกัน
DELETE FROM users WHERE id = 5;
ลบแถวที่ตรงกัน
TRUNCATE TABLE logs;
ลบทุกแถวอย่างรวดเร็ว
INSERT ... ON DUPLICATE KEY UPDATE
upsert บน unique key
REPLACE INTO users ...
ลบ + เพิ่มเมื่อขัดแย้ง
INSERT IGNORE INTO ...
ข้ามแถวที่จะเกิด error
Schema / DDL
9CREATE TABLE users (id INT PRIMARY KEY);
สร้างตารางใหม่
AUTO_INCREMENT
คอลัมน์เลขอัตโนมัติ
ALTER TABLE users ADD COLUMN age INT;
เพิ่มคอลัมน์
ALTER TABLE users DROP COLUMN age;
ลบคอลัมน์
ALTER TABLE users MODIFY name VARCHAR(100);
เปลี่ยนชนิดคอลัมน์
DROP TABLE IF EXISTS users;
ลบตาราง
FOREIGN KEY (user_id) REFERENCES users(id)
อ้างอิงตารางอื่น
ON DELETE CASCADE
ลบต่อเนื่องไปยังตารางลูก
CREATE TABLE t2 LIKE t1;
คัดลอกโครงสร้างตาราง
Indexes และ keys
8PRIMARY KEY (id)
ตัวระบุแถวที่ไม่ซ้ำ
UNIQUE (email)
บังคับค่าไม่ซ้ำ
CREATE INDEX idx_name ON users (name);
เร่งการค้นหาบนคอลัมน์
CREATE INDEX idx_ab ON t (a, b);
index แบบหลายคอลัมน์
DROP INDEX idx_name ON users;
ลบ index
FULLTEXT (body)
index ค้นหาแบบ full-text
EXPLAIN SELECT ...;
แสดงแผนการคิวรี
SHOW INDEX FROM users;
แสดง index ของตาราง
ชนิดข้อมูล
9INT, BIGINT, TINYINT
ชนิด integer ตามขนาด
DECIMAL(10, 2)
ตัวเลขทศนิยมตายตัวแม่นยำ
VARCHAR(255)
สตริงความยาวแปรผัน
TEXT, LONGTEXT
ก้อนข้อความขนาดใหญ่
DATE, DATETIME, TIMESTAMP
ชนิดวันที่และเวลา
BOOLEAN (TINYINT(1))
true/false เก็บเป็น 0/1
JSON
คอลัมน์เอกสาร JSON ในตัว
ENUM('a', 'b')
หนึ่งในชุดค่าที่กำหนด
UNSIGNED
ตัวขยายตัวเลขแบบไม่ติดลบ
Type sizes & limits
20TINYINT
1 byte: -128..127 (0..255 UNSIGNED)
SMALLINT
2 bytes: -32,768..32,767 (0..65,535)
MEDIUMINT
3 bytes: -8.39M..8.39M (0..16.78M)
INT
4 bytes: -2.15B..2.15B (0..4.29B)
BIGINT
8 bytes: ±9.22×10^18 (0..1.84×10^19)
DECIMAL(M, D)
Exact: M up to 65 digits, D up to 30
FLOAT / DOUBLE
4 / 8 bytes approximate floating point
CHAR(M)
Fixed length, 0..255 characters
VARCHAR(M)
0..65,535 bytes (shared 64KB row limit)
TINYTEXT
Up to 255 bytes (~255 chars)
TEXT
Up to 65,535 bytes (64 KB)
MEDIUMTEXT
Up to 16,777,215 bytes (16 MB)
LONGTEXT
Up to 4,294,967,295 bytes (4 GB)
BLOB types
TINY/—/MEDIUM/LONG: 255B..4GB (binary)
JSON
Stored as LONGBLOB, up to ~4 GB
ENUM / SET
ENUM: 65,535 members; SET: 64 members
DATE
1000-01-01 to 9999-12-31 (3 bytes)
DATETIME
1000 to 9999, microseconds (5–8 bytes)
TIMESTAMP
1970-01-01 to 2038-01-19 UTC (4 bytes)
TIME / YEAR
±838:59:59 / 1901..2155
ฟังก์ชัน
9NOW(), CURDATE()
วันเวลา / วันที่ปัจจุบัน
DATE_FORMAT(d, '%Y-%m-%d')
จัดรูปแบบวันที่
DATEDIFF(a, b)
จำนวนวันระหว่างสองวันที่
CONCAT(a, ' ', b)
เชื่อมสตริง
COALESCE(a, b, 'n/a')
ค่าแรกที่ไม่ใช่ null
IFNULL(x, 0)
แทนที่ null ด้วยค่าเริ่มต้น
CASE WHEN x > 0 THEN '+' ELSE '-' END
expression แบบมีเงื่อนไข
CAST(x AS CHAR)
แปลงชนิดของค่า
ROUND(x, 2)
ปัดเป็นทศนิยม
Transactions และการดูแลระบบ
9START TRANSACTION;
เริ่ม transaction
COMMIT;
บันทึก transaction
ROLLBACK;
ยกเลิก transaction
SAVEPOINT sp1;
ตั้งจุด rollback
SHOW TABLES;
แสดงตารางในฐานข้อมูล
DESCRIBE users;
แสดงโครงสร้างตาราง
SHOW PROCESSLIST;
แสดงการเชื่อมต่อที่ทำงานอยู่
GRANT ALL ON db.* TO 'u'@'%';
ให้สิทธิ์ผู้ใช้
mysqldump -u root db > db.sql
สำรองฐานข้อมูล (CLI)
ไม่มีรายการที่ตรงกับ “:q”
ต้องการความช่วยเหลือ?
พบปัญหากับเครื่องมือนี้หรือไม่? แจ้งทีมงานของเรา