Guia de Comandos do MySQL e MariaDB com Exemplos Práticos

Informações do SGBD

Comendos para verificar detalhes do sistema de gerenciamento de banco de dados.

Exibir a versão do SGBD
SELECT VERSION();

Verificar o status do SGBD
STATUS;

Listar recursos e estatísticas do SGBD
SHOW STATUS;

Mostrar permissões suportadas
SHOW PRIVILEGES;

Checar permissões de um usuário específico
SHOW GRANTS FOR 'nome_do_usuario';

Variáveis de Configuração

Consultar variáveis de ambiente e configurações do SGBD.

Listar todas as variáveis e seus valores
SHOW VARIABLES;

Filtrar variáveis por nome, como a porta de conexão
SHOW VARIABLES LIKE 'port';

Exibir configurações de codificação de caracteres
SHOW VARIABLES LIKE 'character%';

Encontrar o caminho dos arquivos de dados
SHOW VARIABLES LIKE '%datadir%';

Ver o limite máximo de conexões simultâneas
SHOW VARIABLES LIKE '%max_connections%';

Operações com Bancos de Dados

Gerenciar bancos de dados dentro do SGBD.

Listar todos os bancos de dados disponíveis
SHOW DATABASES;

Criar um novo banco de dados
CREATE DATABASE nome_do_banco;

Remover um banco de dados existente
DROP DATABASE nome_do_banco;

Selecionar um banco de dados para uso
USE nome_do_banco;

Identificar o banco de dados atual em uso
SELECT DATABASE();

Confirmar o usuário logado
SELECT USER();

Exibir mecanismos de armazenamento disponíveis e o padrão
SHOW ENGINES;

Listar triggers definidas no banco atual
SHOW TRIGGERS;

Gerenciamento de Tabelas

Comandos para criar, modificar e inspecionar tabelas.

Mostrar tabelas no banco de dados selecionado
SHOW TABLES;

Criar uma nova tabela
CREATE TABLE nome_da_tabela (colunas);

Excluir uma tabela
DROP TABLE nome_da_tabela;

Obter informações de status das tabelas
SHOW TABLE STATUS;

Descrever a estrutura de uma tabela
DESCRIBE nome_da_tabela;
ou
SHOW COLUMNS FROM nome_da_tabela;

Recuperar todos os registros de uma tabela
SELECT * FROM nome_da_tabela;

Verificação de Status e Definições

Comandos para inspecionar status de objetos e suas definições.

Consultar status de tabelas, procedures e funções
SHOW TABLE STATUS;
SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;

Visualizar o código de criação de objetos
SHOW CREATE PROCEDURE nome_da_procedure;
SHOW CREATE FUNCTION nome_da_funcao;
SHOW CREATE VIEW nome_da_view;
SHOW CREATE TABLE nome_da_tabela;

Tratamento de Avisos e Erros

Verificar mensagens de feedback após a execução de comandos.

Exibir erros da última instrução executada
SHOW ERRORS;

Mostrar avisos da última instrução executada
SHOW WARNINGS;

Exemplo Prático 1: Criação e Manipulação de Dados

1.1 Estabelecer um Banco de Dados

Conectar ao servidor MariaDB e criar um banco de dados chamado "exemplo_db"
MariaDB [(none)]> CREATE DATABASE exemplo_db;
MariaDB [(none)]> USE exemplo_db;

1.2 Definir Tabelas

Imagine um cenário acadêmico com tabelas para alunos, disciplinas e notas.

Tabela para informações dos alunos
CREATE TABLE Alunos (
    id_aluno CHAR(10) PRIMARY KEY,
    nome_aluno VARCHAR(50) NOT NULL,
    idade INT
);

Tabela para disciplinas
CREATE TABLE Disciplinas (
    id_disciplina CHAR(10) PRIMARY KEY,
    nome_disciplina VARCHAR(50) NOT NULL
);

Tabela para registrar as notas dos alunos
CREATE TABLE Notas (
    id_aluno CHAR(10),
    id_disciplina CHAR(10),
    pontuacao VARCHAR(20)
);

1.3 Inserir Registros

Popular a tabela Alunos
INSERT INTO Alunos (id_aluno, nome_aluno, idade) VALUES ('A01', 'Carlos', 20);
INSERT INTO Alunos (id_aluno, nome_aluno, idade) VALUES ('A02', 'Maria', 22);
INSERT INTO Alunos (id_aluno, nome_aluno, idade) VALUES ('A03', 'Pedro', 19);

Inserir disciplinas usando UNION ALL
INSERT INTO Disciplinas (id_disciplina, nome_disciplina)
SELECT 'D100', 'Banco de Dados' UNION ALL
SELECT 'D200', 'Programação Web';

Registrar notas
INSERT INTO Notas (id_aluno, id_disciplina, pontuacao) VALUES ('A01', 'D100', '85');
INSERT INTO Notas (id_aluno, id_disciplina, pontuacao) VALUES ('A02', 'D100', '90');
INSERT INTO Notas (id_aluno, id_disciplina, pontuacao) VALUES ('A01', 'D200', '78');

1.4 Consultar Informações

Listar todos os alunos maiores de 20 anos
SELECT nome_aluno, idade FROM Alunos WHERE idade > 20;

Encontrar alunos inscritos em uma disciplina específica
SELECT id_aluno, nome_aluno FROM Alunos
WHERE id_aluno IN (SELECT id_aluno FROM Notas WHERE id_disciplina = 'D100');

Contar quantos alunos se inscreveram em pelo menos uma disciplina
SELECT COUNT(DISTINCT id_aluno) FROM Notas;

1.5 Atualizar e Modificarr Estruturas

Alterar a nota de um aluno em uma disciplina
UPDATE Notas SET pontuacao = '95' WHERE id_aluno = 'A01' AND id_disciplina = 'D100';

Adicionar uma nova coluna à tabela Disciplinas
ALTER TABLE Disciplinas ADD COLUMN carga_horaria INT;

Remover a coluna adicionada
ALTER TABLE Disciplinas DROP COLUMN carga_horaria;

1.6 Remover Dados e Objetos

Excluir um registro específico
DELETE FROM Notas WHERE id_aluno = 'A02' AND id_disciplina = 'D100';

Deletar uma tabela inteira
DROP TABLE Notas;

Excluir o banco de dados
DROP DATABASE exemplo_db;

Exemplo Prático 2: Cálculo de Estoque

2.1 Criar Tabelas de Exemplo

Simule um sistema de inventário com produtos e saídas.

Tabela de estoque inicial
CREATE TABLE Inventario (
    produto CHAR(1),
    quantidade_inicial INT
);
INSERT INTO Inventario (produto, quantidade_inicial) VALUES ('X', 1000);
INSERT INTO Inventario (produto, quantidade_inicial) VALUES ('Y', 1500);

Tabela de vendas/saídas
CREATE TABLE Vendas (
    produto CHAR(1),
    quantidade_saida INT
);
INSERT INTO Vendas (produto, quantidade_saida) VALUES ('X', 150);
INSERT INTO Vendas (produto, quantidade_saida) VALUES ('X', 300);
INSERT INTO Vendas (produto, quantidade_saida) VALUES ('Y', 200);
INSERT INTO Vendas (produto, quantidade_saida) VALUES ('Y', 350);

2.2 Calcular Estoque Restente

Usar uma consulta com junção e agregação para determinar o estoque atual.

Primeiro, veja os dados brutos
SELECT * FROM Inventario;
SELECT produto, SUM(quantidade_saida) AS total_saida FROM Vendas GROUP BY produto;

Calcular o estoque restante por produto
SELECT
    i.produto,
    i.quantidade_inicial - COALESCE(v.total_saida, 0) AS estoque_restante
FROM Inventario i
LEFT JOIN (
    SELECT produto, SUM(quantidade_saida) AS total_saida
    FROM Vendas
    GROUP BY produto
) v ON i.produto = v.produto;

2.3 Limpar Objetos de Exemplo

DROP TABLE Inventario;
DROP TABLE Vendas;

Tags: MySQL MariaDB SQL banco-de-dados linha-de-comando

Publicado em 7-21 13:22