Tutti gli strumenti
Gratuito

Un riferimento ricercabile e stampabile di MySQL — query, join, indici, funzioni, tipi di dati e comandi di amministrazione. Gratis.

Interrogazione

10
SELECT * FROM users;
Seleziona tutte le colonne e righe
SELECT id, name FROM users;
Seleziona colonne specifiche
SELECT DISTINCT city FROM users;
Solo valori unici
WHERE age > 18 AND active = 1
Filtra le righe per condizioni
WHERE name LIKE 'A%'
Corrispondenza di pattern (% = qualsiasi carattere)
WHERE id IN (1, 2, 3)
Corrisponde a un valore di un insieme
WHERE age BETWEEN 18 AND 30
Filtro per intervallo inclusivo
ORDER BY created_at DESC
Ordina in ordine decrescente
LIMIT 10 OFFSET 20
Pagina i risultati
WHERE email IS NULL
Corrisponde ai valori null

Join

8
INNER JOIN orders ON orders.user_id = users.id
Righe corrispondenti in entrambe le tabelle
LEFT JOIN orders ON ...
Tutte le righe a sinistra + corrispondenze
RIGHT JOIN orders ON ...
Tutte le righe a destra + corrispondenze
CROSS JOIN colors
Prodotto cartesiano
SELF JOIN: FROM emp e JOIN emp m ON e.mgr = m.id
Join di una tabella con sé stessa
USING (user_id)
Join su una colonna con lo stesso nome
UNION / UNION ALL
Combina insiemi di risultati
SELECT u.*, o.total FROM users u JOIN orders o
Alias delle tabelle per chiarezza

Aggregazione

9
COUNT(*)
Conta le righe
SUM(amount)
Totale di una colonna numerica
AVG(price)
Valore medio
MIN(price), MAX(price)
Minimo e massimo
GROUP BY country
Raggruppa le righe per aggregazione
HAVING COUNT(*) > 5
Filtra sui gruppi aggregati
GROUP_CONCAT(name)
Concatena valori raggruppati
COUNT(DISTINCT city)
Conta i valori unici
ROW_NUMBER() OVER (ORDER BY id)
Ranking con window function

Modifica dei dati

8
INSERT INTO users (name) VALUES ('Sam');
Inserisce una singola riga
INSERT INTO users (name) VALUES ('A'),('B');
Inserisce più righe
UPDATE users SET active = 1 WHERE id = 5;
Aggiorna le righe corrispondenti
DELETE FROM users WHERE id = 5;
Elimina le righe corrispondenti
TRUNCATE TABLE logs;
Rimuove tutte le righe rapidamente
INSERT ... ON DUPLICATE KEY UPDATE
Upsert su una chiave unica
REPLACE INTO users ...
Elimina + inserisce in caso di conflitto
INSERT IGNORE INTO ...
Salta le righe che darebbero errore

Schema / DDL

9
CREATE TABLE users (id INT PRIMARY KEY);
Crea una nuova tabella
AUTO_INCREMENT
Colonna auto-numerata
ALTER TABLE users ADD COLUMN age INT;
Aggiunge una colonna
ALTER TABLE users DROP COLUMN age;
Rimuove una colonna
ALTER TABLE users MODIFY name VARCHAR(100);
Cambia il tipo di una colonna
DROP TABLE IF EXISTS users;
Elimina una tabella
FOREIGN KEY (user_id) REFERENCES users(id)
Riferimento a un'altra tabella
ON DELETE CASCADE
Eliminazione a cascata sui figli
CREATE TABLE t2 LIKE t1;
Copia la struttura di una tabella

Indici e chiavi

8
PRIMARY KEY (id)
Identificatore univoco di riga
UNIQUE (email)
Impone valori unici
CREATE INDEX idx_name ON users (name);
Velocizza le ricerche su una colonna
CREATE INDEX idx_ab ON t (a, b);
Indice composito (multi-colonna)
DROP INDEX idx_name ON users;
Rimuove un indice
FULLTEXT (body)
Indice di ricerca full-text
EXPLAIN SELECT ...;
Mostra il piano di esecuzione
SHOW INDEX FROM users;
Elenca gli indici di una tabella

Tipi di dato

9
INT, BIGINT, TINYINT
Tipi interi per dimensione
DECIMAL(10, 2)
Numeri a virgola fissa esatti
VARCHAR(255)
Stringa a lunghezza variabile
TEXT, LONGTEXT
Grandi blocchi di testo
DATE, DATETIME, TIMESTAMP
Tipi di data e ora
BOOLEAN (TINYINT(1))
true/false memorizzati come 0/1
JSON
Colonna documento JSON nativa
ENUM('a', 'b')
Uno di un insieme fisso di valori
UNSIGNED
Modificatore numerico non negativo

Type sizes & limits

20
TINYINT
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

Funzioni

9
NOW(), CURDATE()
Data e ora / data correnti
DATE_FORMAT(d, '%Y-%m-%d')
Formatta una data
DATEDIFF(a, b)
Giorni tra due date
CONCAT(a, ' ', b)
Unisce stringhe
COALESCE(a, b, 'n/a')
Primo valore non null
IFNULL(x, 0)
Sostituisce null con un valore predefinito
CASE WHEN x > 0 THEN '+' ELSE '-' END
Espressione condizionale
CAST(x AS CHAR)
Converte il tipo di un valore
ROUND(x, 2)
Arrotonda ai decimali

Transazioni e amministrazione

9
START TRANSACTION;
Avvia una transazione
COMMIT;
Conferma la transazione
ROLLBACK;
Annulla la transazione
SAVEPOINT sp1;
Imposta un punto di rollback
SHOW TABLES;
Elenca le tabelle del database
DESCRIBE users;
Mostra la struttura di una tabella
SHOW PROCESSLIST;
Elenca le connessioni attive
GRANT ALL ON db.* TO 'u'@'%';
Concede privilegi all'utente
mysqldump -u root db > db.sql
Effettua il backup di un database (CLI)

Nessuna voce corrisponde a “:q”.


Hai bisogno di aiuto?
Hai riscontrato un problema con questo strumento? Faccelo sapere.
Segnala un problema

Aggiungi questo strumento gratuito al tuo sito web — copia e incolla il codice qui sotto.