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 livrosSELECT * FROM livros;-- Livros de um autor específicoSELECT * FROM livros WHERE autor = 'Gabriel García Márquez';-- Contar livrosSELECT COUNT(*) AS total_livros FROM livros;
Atualizar registros
-- Atualizar ano de um livroUPDATE livros SET ano_publicacao = 1966WHERE titulo = 'Cem Anos de Solidão';
Deletar registros
-- Deletar um livro específicoDELETE 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
Conectar ao MySQL
mysql -u root -p
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);
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);
Consultas interessantes
-- Livros do OrwellSELECT * FROM livros WHERE autor = 'George Orwell';-- Contar livros por autorSELECT autor, COUNT(*) AS total_livros FROM livros GROUP BY autor;
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:
Listar Todas as Tabelas (você já fez isso):
USE bd2025;SHOW TABLES;
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;
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.
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
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;
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_USAGEWHERE 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.
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:
USE bd2025;
SHOW TABLES;
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).
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).