Helaian Rujukan MySQL
Rujukan MySQL yang boleh dicari dan dicetak — pertanyaan, join, indeks, fungsi, jenis data dan perintah pentadbiran. Percuma.
Pertanyaan
10SELECT * FROM users;
Pilih semua lajur dan baris
SELECT id, name FROM users;
Pilih lajur tertentu
SELECT DISTINCT city FROM users;
Nilai unik sahaja
WHERE age > 18 AND active = 1
Tapis baris mengikut syarat
WHERE name LIKE 'A%'
Padanan corak (% = sebarang aksara)
WHERE id IN (1, 2, 3)
Padan sebarang nilai dalam set
WHERE age BETWEEN 18 AND 30
Penapis julat inklusif
ORDER BY created_at DESC
Isih menurun
LIMIT 10 OFFSET 20
Halaman hasil
WHERE email IS NULL
Padan nilai null
Cantuman
8INNER JOIN orders ON orders.user_id = users.id
Baris sepadan dalam kedua-dua jadual
LEFT JOIN orders ON ...
Semua baris kiri + padanan
RIGHT JOIN orders ON ...
Semua baris kanan + padanan
CROSS JOIN colors
Hasil darab Cartesan
SELF JOIN: FROM emp e JOIN emp m ON e.mgr = m.id
Cantum jadual dengan dirinya
USING (user_id)
Cantum pada lajur nama sama
UNION / UNION ALL
Gabungkan set hasil
SELECT u.*, o.total FROM users u JOIN orders o
Alias jadual untuk kejelasan
Pengagregatan
9COUNT(*)
Kira baris
SUM(amount)
Jumlah lajur berangka
AVG(price)
Nilai purata
MIN(price), MAX(price)
Terkecil dan terbesar
GROUP BY country
Kumpulkan baris untuk pengagregatan
HAVING COUNT(*) > 5
Tapis pada kumpulan teragregat
GROUP_CONCAT(name)
Cantumkan nilai berkumpulan
COUNT(DISTINCT city)
Kira nilai unik
ROW_NUMBER() OVER (ORDER BY id)
Pemeringkatan fungsi window
Mengubah data
8INSERT INTO users (name) VALUES ('Sam');
Sisip satu baris
INSERT INTO users (name) VALUES ('A'),('B');
Sisip beberapa baris
UPDATE users SET active = 1 WHERE id = 5;
Kemas kini baris sepadan
DELETE FROM users WHERE id = 5;
Padam baris sepadan
TRUNCATE TABLE logs;
Buang semua baris dengan pantas
INSERT ... ON DUPLICATE KEY UPDATE
Upsert pada kunci unik
REPLACE INTO users ...
Padam + sisip semasa konflik
INSERT IGNORE INTO ...
Langkau baris yang akan ralat
Skema / DDL
9CREATE TABLE users (id INT PRIMARY KEY);
Cipta jadual baharu
AUTO_INCREMENT
Lajur auto-nombor
ALTER TABLE users ADD COLUMN age INT;
Tambah lajur
ALTER TABLE users DROP COLUMN age;
Buang lajur
ALTER TABLE users MODIFY name VARCHAR(100);
Tukar jenis lajur
DROP TABLE IF EXISTS users;
Padam jadual
FOREIGN KEY (user_id) REFERENCES users(id)
Rujuk jadual lain
ON DELETE CASCADE
Lata padam kepada anak
CREATE TABLE t2 LIKE t1;
Salin struktur jadual
Indeks & kunci
8PRIMARY KEY (id)
Pengenal baris unik
UNIQUE (email)
Kuatkuasakan nilai unik
CREATE INDEX idx_name ON users (name);
Cepatkan carian pada lajur
CREATE INDEX idx_ab ON t (a, b);
Indeks komposit (pelbagai lajur)
DROP INDEX idx_name ON users;
Buang indeks
FULLTEXT (body)
Indeks carian teks penuh
EXPLAIN SELECT ...;
Tunjukkan pelan pertanyaan
SHOW INDEX FROM users;
Senaraikan indeks pada jadual
Jenis data
9INT, BIGINT, TINYINT
Jenis integer mengikut saiz
DECIMAL(10, 2)
Nombor titik tetap tepat
VARCHAR(255)
String panjang berubah
TEXT, LONGTEXT
Blob teks besar
DATE, DATETIME, TIMESTAMP
Jenis tarikh dan masa
BOOLEAN (TINYINT(1))
True/false disimpan sebagai 0/1
JSON
Lajur dokumen JSON asli
ENUM('a', 'b')
Salah satu daripada set nilai tetap
UNSIGNED
Pengubah suai berangka bukan negatif
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
Fungsi
9NOW(), CURDATE()
Tarikh-masa / tarikh semasa
DATE_FORMAT(d, '%Y-%m-%d')
Format tarikh
DATEDIFF(a, b)
Hari antara dua tarikh
CONCAT(a, ' ', b)
Cantumkan string
COALESCE(a, b, 'n/a')
Nilai bukan-null pertama
IFNULL(x, 0)
Ganti null dengan lalai
CASE WHEN x > 0 THEN '+' ELSE '-' END
Ungkapan bersyarat
CAST(x AS CHAR)
Tukar jenis nilai
ROUND(x, 2)
Bundarkan kepada perpuluhan
Transaksi & pentadbiran
9START TRANSACTION;
Mula transaksi
COMMIT;
Kekalkan transaksi
ROLLBACK;
Buat asal transaksi
SAVEPOINT sp1;
Tetapkan titik rollback
SHOW TABLES;
Senaraikan jadual dalam pangkalan data
DESCRIBE users;
Tunjukkan struktur jadual
SHOW PROCESSLIST;
Senaraikan sambungan berjalan
GRANT ALL ON db.* TO 'u'@'%';
Berikan keistimewaan pengguna
mysqldump -u root db > db.sql
Sandar pangkalan data (CLI)
Tiada entri sepadan dengan “:q”.
Perlukan bantuan?
Menemui masalah dengan alat ini? Beritahu pasukan kami.