Pedro's dev blog

Utilizando Temrinal MySql

Published on
Published on
/6 mins read/---

Guia Completo de MySQL no Terminal

Pré-requisitos

Antes de começar, certifique-se de ter o MySQL instalado:

  • Para Ubuntu/Debian: sudo apt-get install mysql-server
  • Para CentOS/RHEL: sudo yum install mysql-server
  • Para macOS: brew install mysql
  • Para Windows: Baixe o instalador do site oficial do MySQL

Conectando ao MySQL

1. Conectar como root

mysql -u root -p

Você será solicitado a digitar a senha do root

2. Conectar com usuário específico

mysql -u [nome_usuario] -p

Comandos Básicos de Gerenciamento de Banco de Dados

Listar bancos de dados

SHOW DATABASES;

Criar banco de dados

CREATE DATABASE biblioteca;

Selecionar banco de dados

USE biblioteca;

Criar tabela de exemplo

CREATE TABLE livros (
    id INT AUTO_INCREMENT PRIMARY KEY,
    titulo VARCHAR(200) NOT NULL,
    autor VARCHAR(100) NOT NULL,
    ano_publicacao INT,
    quantidade INT DEFAULT 1
);

Operações CRUD (Create, Read, Update, Delete)

Inserir registros

INSERT INTO livros (titulo, autor, ano_publicacao) VALUES 
('Dom Quixote', 'Miguel de Cervantes', 1605),
('Cem Anos de Solidão', 'Gabriel García Márquez', 1967);

Consultar registros

-- Todos os livros
SELECT * FROM livros;
 
-- Livros de um autor específico
SELECT * FROM livros WHERE autor = 'Gabriel García Márquez';
 
-- Contar livros
SELECT COUNT(*) AS total_livros FROM livros;

Atualizar registros

-- Atualizar ano de um livro
UPDATE livros 
SET ano_publicacao = 1966 
WHERE titulo = 'Cem Anos de Solidão';

Deletar registros

-- Deletar um livro específico
DELETE FROM livros WHERE id = 1;

Gerenciamento de Usuários

Criar novo usuário

CREATE USER 'bibliotecario'@'localhost' IDENTIFIED BY 'senha_segura';

Dar permissões ao usuário

GRANT ALL PRIVILEGES ON biblioteca.* TO 'bibliotecario'@'localhost';
FLUSH PRIVILEGES;

Dicas Importantes

  • Sempre termine comandos SQL com ;
  • Use \q ou EXIT para sair do MySQL
  • Senhas devem ser fortes e únicas
  • Faça backup regular do banco de dados

Exemplo de Fluxo Completo

  1. Conectar ao MySQL
mysql -u root -p
  1. Criar banco e tabela
CREATE DATABASE biblioteca;
USE biblioteca;
 
CREATE TABLE livros (
    id INT AUTO_INCREMENT PRIMARY KEY,
    titulo VARCHAR(200) NOT NULL,
    autor VARCHAR(100) NOT NULL,
    ano_publicacao INT,
    quantidade INT DEFAULT 1
);
  1. Inserir alguns livros
INSERT INTO livros (titulo, autor, ano_publicacao) VALUES 
('1984', 'George Orwell', 1949),
('O Pequeno Príncipe', 'Antoine de Saint-Exupéry', 1943),
('A Revolução dos Bichos', 'George Orwell', 1945);
  1. Consultas interessantes
-- Livros do Orwell
SELECT * FROM livros WHERE autor = 'George Orwell';
 
-- Contar livros por autor
SELECT autor, COUNT(*) AS total_livros 
FROM livros 
GROUP BY autor;

Comandos Úteis no Terminal

Backup de banco de dados

mysqldump -u root -p biblioteca > backup_biblioteca.sql

Restaurar backup

mysql -u root -p biblioteca < backup_biblioteca.sql

Okay, para explorar a estrutura completa do banco de dados bd2025 pelo terminal MySQL, incluindo tabelas, colunas, tipos de dados, chaves primárias, chaves estrangeiras (relacionamentos) e índices, você pode usar uma combinação dos comandos SHOW e consultas na base de dados information_schema.

Aqui estão os comandos mais úteis:

  1. Listar Todas as Tabelas (você já fez isso):

    USE bd2025;
    SHOW TABLES;
  2. Descrever a Estrutura de uma Tabela Específica: Mostra as colunas, tipos de dados, se permite nulos, se é chave (PRI, MUL, UNI), valor padrão e informações extras (como auto_increment).

    DESCRIBE nome_da_tabela;
    -- ou a forma mais longa:
    -- SHOW COLUMNS FROM nome_da_tabela;
     
    -- Exemplo:
    DESCRIBE cliente;
    DESCRIBE venda;
    DESCRIBE itemvenda;
  3. Mostrar o Comando CREATE TABLE Completo: Este é um dos comandos mais úteis, pois mostra a definição exata da tabela, incluindo:

    • Colunas, tipos, nullability, defaults.
    • Chave primária (PRIMARY KEY).
    • Índices (KEY ou INDEX).
    • Chaves estrangeiras (FOREIGN KEY ... REFERENCES ...) - mostra os relacionamentos explicitamente.
    • Engine da tabela (ex: InnoDB), character set e collation.
    SHOW CREATE TABLE nome_da_tabela;
     
    -- Exemplo:
    SHOW CREATE TABLE venda;
    SHOW CREATE TABLE itemvenda;
    SHOW CREATE TABLE funcionario;

    Dica: Para tabelas com definições longas, adicione \G no final em vez de ; para formatar a saída verticalmente, tornando-a mais legível:

    SHOW CREATE TABLE itemvenda\G
  4. Listar Índices de uma Tabela: Mostra detalhes sobre todos os índices (incluindo chave primária, chaves únicas e índices normais) de uma tabela.

    SHOW INDEX FROM nome_da_tabela;
     
    -- Exemplo:
    SHOW INDEX FROM cliente;
  5. Listar Chaves Estrangeiras (Relacionamentos) Usando information_schema: Esta é a maneira padrão SQL e mais programática de obter informações sobre os relacionamentos. A tabela KEY_COLUMN_USAGE contém informações sobre colunas que são restrições (como FKs).

    SELECT
        CONSTRAINT_NAME,          -- Nome da restrição da chave estrangeira
        TABLE_NAME,               -- Tabela que TEM a chave estrangeira
        COLUMN_NAME,              -- Coluna que É a chave estrangeira
        REFERENCED_TABLE_SCHEMA,  -- Banco de dados da tabela referenciada
        REFERENCED_TABLE_NAME,    -- Tabela que É referenciada (onde está a PK)
        REFERENCED_COLUMN_NAME    -- Coluna que É referenciada (a PK na outra tabela)
    FROM
        information_schema.KEY_COLUMN_USAGE
    WHERE
        TABLE_SCHEMA = 'bd2025'          -- Filtra pelo seu banco de dados
        AND REFERENCED_TABLE_NAME IS NOT NULL; -- Garante que é uma chave estrangeira

    Este comando listará todas as chaves estrangeiras definidas dentro do banco bd2025, mostrando qual coluna em qual tabela referencia qual coluna em qual outra tabela.

  6. Listar Outros Objetos (Opcional):

    • Views:
      SHOW FULL TABLES WHERE Table_type = 'VIEW';
      -- ou para ver a definição:
      -- SHOW CREATE VIEW nome_da_view;
      (Você tem a view vw_cliente_bai_estcivil)
    • Stored Procedures:
      SHOW PROCEDURE STATUS WHERE Db = 'bd2025';
      -- ou para ver a definição:
      -- SHOW CREATE PROCEDURE nome_do_procedure;
    • Stored Functions:
      SHOW FUNCTION STATUS WHERE Db = 'bd2025';
      -- ou para ver a definição:
      -- SHOW CREATE FUNCTION nome_da_function;

Resumo Recomendado:

Para ter uma visão geral rápida e depois detalhada:

  1. USE bd2025;
  2. SHOW TABLES;
  3. Para cada tabela de interesse, use SHOW CREATE TABLE nome_da_tabela\G. Isso geralmente fornece a maioria das informações que você precisa, incluindo relacionamentos (FKs).
  4. Se quiser uma lista consolidada apenas dos relacionamentos (FKs) de todo o banco, use a consulta no information_schema.KEY_COLUMN_USAGE (comando 5 acima).