Sumário

Introdução

Manipular bancos de dados via terminal é uma habilidade essencial para desenvolvedores. O terminal oferece rapidez e eficiência para tarefas cotidianas. A seguir, apresento uma lista de comandos básicos do MySQL, organizados por categoria, para auxiliar no seu dia a dia.

Todos os comandos apresentados neste post podem ser executados no terminal de sua preferência.

1. Conexão e Navegação

Conectar ao MySQL

1
mysql -u [usuário] -p
ParâmetroPropósito
-uInformar qual o nome de usuário deseja usar para se conectar ao MySQL
-pExige que a senha seja informada

Conectar diretamente a um banco de dados

1
mysql -u [usuário] -p [nome_do_banco]

Listar todos os bancos de dados

1
SHOW DATABASE;

Selecionar um banco de dados

1
USE [nome_do_banco];

Listar tabelas do banco selecionado

1
SHOW TABLES;

Ver estrutura de uma tabela

1
DESCRIBE [nome_da_tabela];

2. Gerenciamento de Bancos e Tabelas

Criar um novo banco de dados

1
CREATE DATABASE [nome_do_banco];

Apagar um banco de dados

1
DROP DATABASE [nome_do_banco];

Atenção! Use com cautela, pois o banco de dados será APAGADO!

Criar uma nova tabela

1
2
3
4
5
CREATE TABLE [nome_da_tabela] (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nome VARCHAR(100),
  data_criacao DATE
);

Exemplo:

1
2
3
4
5
6
7
CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  email VARCHAR(255) NOT NULL UNIQUE,
  password VARCHAR(255)  NOT NULL,
  created_at DATETIME
);

Apagar uma tabela

1
DROP TABLE [nome_da_tabela];

Atenção! Use com cautela, pois a tabela e seus dados serão APAGADOS!

3. Manipulação de Dados

Inserir dados em uma tabela

1
2
3
4
INSERT INTO [nome_da_tabela]
(coluna1, coluna2)
VALUES
('valor1', 'valor2');

Exemplo:

1
2
3
4
5
INSERT INTO users
(name, email, password)
VALUES
("José Couves", "couves.jose@couves.com", "$2y$10$uZs5/2rONn8vn1zSGMybDO2p0G9qz9jLddqbQNE2TNLQaRPb9PyNe
");

Inserir de múltiplos dados em uma tabela

1
2
3
4
5
6
7
8
INSERT INTO [nome_da_tabela]
(coluna1, coluna2)
VALUES
('valor1', 'valor2'),
('valor1', 'valor2'),
('valor1', 'valor2'),
('valor1', 'valor2'),
('valor1', 'valor2');

Exemplo:

1
2
3
4
5
6
7
INSERT INTO users
(name, email, password)
VALUES
("José Couves", "couves.jose@couves.com", "$2y$10$uZs5/2rONn8vn1zSGMybDO2p0G9qz9jLddqbQNE2TNLQaRPb9PyNe"),
("Ana Couves", "couves.ana@couves.com", "$2y$10$GexKU3b3xD48gEB0upptSOKQKj9fGHyB9v5A5U/jNDcC6ElpL9zDi"),
("Carlos Couves", "couves.carlos@couves.com", "$2y$10$Jj8iD/6RgDCug6OgZqzRXOw5x0tx91/nx/2mQeRpbM65czYgJIoUy"),
("Beatriz Couves", "couves.beatriz@couves.com", "$2y$10$9cfZIl/BDpdaC4l4qV6JHOGcGCrVfUMN8G2Sg97Zq2oSeVqMnx6dW");

Consultar dados de uma tabela

1
SELECT * FROM [nome_da_tabela];

Exemplo:

1
2
SELECT name, email
FROM users;

Atualizar dados em uma tabela

1
2
3
UPDATE [nome_da_tabela]
SET [coluna] = 'novo_valor'
WHERE [condição];

Exemplo:

1
2
3
4
UPDATE users
SET name = 'Antônio Carlos Couves',
    email = "couves.antonio@couves.com"
WHERE id = 4;

Deletar dados de uma tabela

1
DELETE FROM [nome_da_tabela] WHERE [condição];

Exemplo:

1
DELETE FROM users WHERE id = 4;

4. Backup e Restauração

Exportar (dump) um banco de dados

1
mysqldump -u [usuário] -p [nome_do_banco] > backup.sql

Exportar (dump) apenas a estrutura do banco de dados

1
mysqldump -u [usuário] -p [nome_do_banco] --no-data > backup.sql;

Exportar todas as bases de dados

1
mysqldump -u [usuário] -p --all-databases > todos_bancos.sql

Importar um banco de dados

1
mysql -u [usuário] -p [nome_do_banco] < backup.sql

Observação: Esse comando importa qualquer conteúdo SQL presente no arquivo, não apenas a estrutura de um banco.

5. Gerenciamento de Usuários e Permissões

Criar um novo usuário

1
CREATE USER 'novo_usuario'@'localhost' IDENTIFIED BY 'senha';
ParâmetroAção
“localhost”O usuário apenas se conecta por meio da máquina local
“%”O usuário pode se conectar de qualquer IP remoto

Obs.: Ambos os tipos de conexão são válidas, a “localhost” seria mais restritiva, porém, tudo dependerá das suas necessidades.

Conceder privilégios a um usuário

1
GRANT ALL PRIVILEGES ON [nome_do_banco].* TO 'novo_usuario'@'localhost';

Atenção! Privilégios devem ser concedidos apenas a usuários que realmente necessitam. Caso contrário, não!

Visualizar privilégios de um usuário

1
SHOW GRANTS FOR 'novo_usuario'@'localhost';

Revogar privilégios de um usuário

1
REVOKE ALL PRIVILEGES ON [nome_do_banco].* FROM 'novo_usuario'@'localhost';

6. Comandos Úteis

Ver versão do MySQL

1
mysql -V

Limpar a tela do terminal

  • No terminal: Ctrl + L;
  • No MySQL Shell: \clear.

Sair do MySQL

1
EXIT;

Tabela de Referência Rápida

AçãoComando
Listar bancosSHOW DATABASES;
Selecionar bancoUSE nome_do_banco;
Listar tabelasSHOW TABLES;
Ver estrutura da tabelaDESCRIBE nome_da_tabela;
Inserir dadosINSERT INTO ... VALUES (...);
Exportar bancomysqldump -u user -p db > backup.sql
Importar backupmysql -u user -p db < backup.sql
Criar usuárioCREATE USER 'user'@'host' IDENTIFIED BY 'senha';

Considerações Finais

Compreender os comandos básicos do MySQL permite atuar com mais autonomia, entender melhor o funcionamento de ORMs e resolver problemas rapidamente, mesmo sem interface gráfica.

Referências