Folha de consulta MySQL
Uma referência pesquisável e imprimível de MySQL: consultas, joins, índices, funções, tipos de dados e comandos de administração. Grátis.
Querying
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
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
USING (user_id)
UNION / UNION ALL
SELECT u.*, o.total FROM users u JOIN orders o
Aggregation
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)
Modifying data
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
REPLACE INTO users ...
INSERT IGNORE INTO ...
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);
DROP INDEX idx_name ON users;
FULLTEXT (body)
EXPLAIN SELECT ...;
SHOW INDEX FROM users;
Data types
9INT, BIGINT, TINYINT
DECIMAL(10, 2)
VARCHAR(255)
TEXT, LONGTEXT
DATE, DATETIME, TIMESTAMP
BOOLEAN (TINYINT(1))
JSON
ENUM('a', 'b')
UNSIGNED
Type sizes & limits
20TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
DECIMAL(M, D)
FLOAT / DOUBLE
CHAR(M)
VARCHAR(M)
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
BLOB types
JSON
ENUM / SET
DATE
DATETIME
TIMESTAMP
TIME / YEAR
Functions
9NOW(), CURDATE()
DATE_FORMAT(d, '%Y-%m-%d')
DATEDIFF(a, b)
CONCAT(a, ' ', b)
COALESCE(a, b, 'n/a')
IFNULL(x, 0)
CASE WHEN x > 0 THEN '+' ELSE '-' END
CAST(x AS CHAR)
ROUND(x, 2)
Transactions & admin
9START TRANSACTION;
COMMIT;
ROLLBACK;
SAVEPOINT sp1;
SHOW TABLES;
DESCRIBE users;
SHOW PROCESSLIST;
GRANT ALL ON db.* TO 'u'@'%';
mysqldump -u root db > db.sql
Nenhuma entrada corresponde a “:q”.
Sobre Folha de consulta MySQL
Esta folha de referência de MySQL reúne o SQL que realmente escreve numa única referência pesquisável: consultas, joins, agregação, modificação de dados, instruções de esquema e DDL, índices e chaves, tipos de dados com os seus tamanhos e limites, funções incorporadas, e transações e comandos de administração.
É útil tanto como lembrete de sintaxe (a forma exata de um LEFT JOIN, um UPSERT ou um ALTER TABLE) como para consultar os detalhes que ninguém decora, como intervalos de inteiros, limites de VARCHAR e que tipo de índice se adequa a uma consulta.
Como todas as folhas de referência nas ferramentas, é gratuita e do lado do cliente: filtre linhas ao vivo com a caixa de pesquisa, salte entre secções com o índice fixo, copie qualquer instrução com um clique e imprima a página para consulta na sua secretária.
Como usar Folha de consulta MySQL
- Abra a folha e reveja as secções, desde Consultas e Joins até Esquema/DDL, passando por Transações e administração.
- Pesquise uma palavra-chave como JOIN, INDEX ou GROUP BY para filtrar todos os excertos ao vivo.
- Salte para Tipos de dados ou Tamanhos e limites de tipos quando precisar de detalhes de armazenamento em vez de sintaxe.
- Clique numa instrução ou no seu ícone de cópia para copiar o SQL para a área de transferência.
- Use Imprimir para uma cópia em papel de toda a referência de MySQL.