Lembar Contekan MySQL
Referensi MySQL yang dapat dicari dan dicetak — kueri, join, indeks, fungsi, tipe data, dan perintah administrasi. Gratis.
Kueri
10SELECT * FROM users;
Memilih semua kolom dan baris
SELECT id, name FROM users;
Memilih kolom tertentu
SELECT DISTINCT city FROM users;
Hanya nilai unik
WHERE age > 18 AND active = 1
Memfilter baris berdasarkan kondisi
WHERE name LIKE 'A%'
Pencocokan pola (% = karakter apa pun)
WHERE id IN (1, 2, 3)
Cocok dengan nilai mana pun dalam himpunan
WHERE age BETWEEN 18 AND 30
Filter rentang inklusif
ORDER BY created_at DESC
Mengurutkan menurun
LIMIT 10 OFFSET 20
Memberi paginasi hasil
WHERE email IS NULL
Mencocokkan nilai null
Join
8INNER JOIN orders ON orders.user_id = users.id
Baris yang cocok di kedua tabel
LEFT JOIN orders ON ...
Semua baris kiri + kecocokan
RIGHT JOIN orders ON ...
Semua baris kanan + kecocokan
CROSS JOIN colors
Produk kartesian
SELF JOIN: FROM emp e JOIN emp m ON e.mgr = m.id
Menggabungkan tabel dengan dirinya sendiri
USING (user_id)
Join pada kolom bernama sama
UNION / UNION ALL
Menggabungkan kumpulan hasil
SELECT u.*, o.total FROM users u JOIN orders o
Memberi alias tabel agar jelas
Agregasi
9COUNT(*)
Menghitung baris
SUM(amount)
Total kolom numerik
AVG(price)
Nilai rata-rata
MIN(price), MAX(price)
Terkecil dan terbesar
GROUP BY country
Mengelompokkan baris untuk agregasi
HAVING COUNT(*) > 5
Memfilter grup teragregasi
GROUP_CONCAT(name)
Menggabungkan nilai yang dikelompokkan
COUNT(DISTINCT city)
Menghitung nilai unik
ROW_NUMBER() OVER (ORDER BY id)
Peringkat fungsi window
Mengubah data
8INSERT INTO users (name) VALUES ('Sam');
Menyisipkan satu baris
INSERT INTO users (name) VALUES ('A'),('B');
Menyisipkan beberapa baris
UPDATE users SET active = 1 WHERE id = 5;
Memperbarui baris yang cocok
DELETE FROM users WHERE id = 5;
Menghapus baris yang cocok
TRUNCATE TABLE logs;
Menghapus semua baris dengan cepat
INSERT ... ON DUPLICATE KEY UPDATE
Upsert pada kunci unik
REPLACE INTO users ...
Hapus + sisip saat konflik
INSERT IGNORE INTO ...
Lewati baris yang akan error
Skema / DDL
9CREATE TABLE users (id INT PRIMARY KEY);
Membuat tabel baru
AUTO_INCREMENT
Kolom penomoran otomatis
ALTER TABLE users ADD COLUMN age INT;
Menambahkan kolom
ALTER TABLE users DROP COLUMN age;
Menghapus kolom
ALTER TABLE users MODIFY name VARCHAR(100);
Mengubah tipe kolom
DROP TABLE IF EXISTS users;
Menghapus tabel
FOREIGN KEY (user_id) REFERENCES users(id)
Merujuk tabel lain
ON DELETE CASCADE
Mengaskade penghapusan ke anak
CREATE TABLE t2 LIKE t1;
Menyalin struktur tabel
Indeks & kunci
8PRIMARY KEY (id)
Pengenal baris unik
UNIQUE (email)
Menerapkan nilai unik
CREATE INDEX idx_name ON users (name);
Mempercepat pencarian pada kolom
CREATE INDEX idx_ab ON t (a, b);
Indeks komposit (multi-kolom)
DROP INDEX idx_name ON users;
Menghapus indeks
FULLTEXT (body)
Indeks pencarian full-text
EXPLAIN SELECT ...;
Menampilkan rencana kueri
SHOW INDEX FROM users;
Menampilkan indeks pada tabel
Tipe data
9INT, BIGINT, TINYINT
Tipe integer berdasarkan ukuran
DECIMAL(10, 2)
Angka fixed-point yang presisi
VARCHAR(255)
String panjang variabel
TEXT, LONGTEXT
Blob teks besar
DATE, DATETIME, TIMESTAMP
Tipe tanggal dan waktu
BOOLEAN (TINYINT(1))
true/false disimpan sebagai 0/1
JSON
Kolom dokumen JSON native
ENUM('a', 'b')
Salah satu dari himpunan nilai tetap
UNSIGNED
Pengubah numerik non-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()
Datetime / tanggal saat ini
DATE_FORMAT(d, '%Y-%m-%d')
Memformat tanggal
DATEDIFF(a, b)
Jumlah hari antara dua tanggal
CONCAT(a, ' ', b)
Menggabungkan string
COALESCE(a, b, 'n/a')
Nilai non-null pertama
IFNULL(x, 0)
Mengganti null dengan default
CASE WHEN x > 0 THEN '+' ELSE '-' END
Ekspresi kondisional
CAST(x AS CHAR)
Mengonversi tipe nilai
ROUND(x, 2)
Membulatkan ke desimal
Transaksi & admin
9START TRANSACTION;
Memulai transaksi
COMMIT;
Menyimpan transaksi (commit)
ROLLBACK;
Membatalkan transaksi (rollback)
SAVEPOINT sp1;
Menetapkan titik rollback
SHOW TABLES;
Menampilkan tabel dalam basis data
DESCRIBE users;
Menampilkan struktur tabel
SHOW PROCESSLIST;
Menampilkan koneksi yang berjalan
GRANT ALL ON db.* TO 'u'@'%';
Memberi hak akses pengguna
mysqldump -u root db > db.sql
Mencadangkan basis data (CLI)
Tidak ada entri yang cocok dengan “:q”.
Butuh bantuan?
Menemukan masalah dengan alat ini? Beri tahu tim kami.