Fundamentos do MySQL para Iniciantes

O MySQL é um sistema de gerenciamento de banco de dados relacional de código aberto, amplamente utilizado no desenvolvimento de aplicações web. Seu percurso de desenvolvimento inclui a superação de limitações iniciais em relação a concorrentes como o Oracle e o SQL Server.

Obtendo e Instalando o MySQL

Recomenda-se baixar o software diretamente do site oficial. Para instalação em ambientes Windows, utilizar o pacote comprimido de código-fonte (ZIP) é preferível, pois evita alterações complexas no registro do sistema.

Após extrair o arquivo, é necessário configurar as variáveis de ambiente do sistema, adicionando o diretório \bin da instalação ao PATH. A instalação do serviço e a configuração inicial são realizadas através do prompt de comando com privilégios de administrador.

-- Exemplo de configuração inicial no arquivo my.ini
[mysqld]
basedir=C:\caminho\para\mysql
datadir=C:\caminho\para\mysql\data
port=3306

É comum encontrar problemas de autenticação na primeira conexão. Após iniciar o serviço, acessar sem senha e definir uma nova credencial para o usuário root geralmente resolve a questão.

Tipos de Dados Essenciais

Escolher o tipo de dados adequado para cada coluna é crucial para a performance e a integridade dos dados.

  • Cadeias de Caracteres: CHAR para comprimento fixo, VARCHAR para comprimento variável, e TEXT para grandes volumes de texto.
  • Datas e Horas: DATE, TIME e DATETIME para armazenar informações tepmorais de diferentes granularidades.
  • Numéricos: INT e TINYINT para inteiros, FLOAT e DOUBLE para ponto flutuante.

Manipulação de Tabelas e Estruturas

A Linguagem de Definição de Dados (DDL) permite criar e modificar a estrutuar do banco.

Gerenciamento de Colunas

-- Adicionar uma nova coluna
ALTER TABLE cliente ADD COLUMN data_cadastro DATE;

-- Remover uma coluna
ALTER TABLE cliente DROP COLUMN apelido;

-- Alterar o tipo de dados de uma coluna
ALTER TABLE cliente MODIFY COLUMN nome VARCHAR(100);

Tipos de Restrições (Constraints)

As restrições garantem a integridade dos dados.

  • Chave Primária (PRIMARY KEY): Identifica unicamente cada registro. Pode ser simples ou composta.
  • Chave Estrangeira (FOREIGN KEY): Cria um vínculo entre duas tabelas, garantindo a referencialidade.
  • Verificação (CHECK): Limita os valores que podem ser inseridos em uma coluna.
  • Único (UNIQUE): Garante que todos os valores em uma coluna sejam diferentes.
  • Não Nulo (NOT NULL): Impede que valores nulos sejam inseridos.
  • Padrão (DEFAULT): Fornece um valer padrão quando nenhum é especificado.

Motores de Armazenamento: InnoDB vs. MyISAM

A escolha do motor de armazenamento impacta diretamente a funcionalidade.

Característica MyISAM InnoDB
Suporte a Transações Não Sim
Bloqueio de Linha Não Sim
Chaves Estrangeiras Não Sim
Espaço em Disco Menor Maior

Manipulação de Dados (DML)

A Linguagem de Manipulação de Dados (DML) é usada para consultar e modificar os dados.

Consultas Básicas

-- Seleção com filtros e ordenação
SELECT primeiro_nome, sobrenome FROM funcionarios WHERE departamento = 'TI' ORDER BY sobrenome;

-- Paginação de resultados
SELECT * FROM produtos LIMIT 10, 20; -- Pula 10 registros e retorna os próximos 20.

Junções (JOINs)

As junções combinam linhas de duas ou mais tabelas com base em uma coluna relacionada.

-- Exemplo de INNER JOIN
SELECT pedidos.id, clientes.nome
FROM pedidos
INNER JOIN clientes ON pedidos.cliente_id = clientes.id;

-- Exemplo de LEFT JOIN
SELECT clientes.nome, pedidos.id
FROM clientes
LEFT JOIN pedidos ON clientes.id = pedidos.cliente_id;

Subconsultas e Filtragem Avançada

-- Encontrar clientes que fizeram pedidos acima da média
SELECT nome FROM clientes WHERE id IN (
    SELECT cliente_id FROM pedidos WHERE valor > (SELECT AVG(valor) FROM pedidos)
);

-- Usar GROUP BY e HAVING para filtrar grupos
SELECT departamento, COUNT(*) AS total_funcionarios
FROM funcionarios
GROUP BY departamento
HAVING COUNT(*) > 5;

Funções de Agregação e Outras Úteis

Funções como COUNT(), SUM(), AVG(), MAX() e MIN() são frequentemente usadas com GROUP BY. Funções de data, como NOW() e CURDATE(), e funções de string, como CONCAT(), também são ferramentas essenciais no dia a dia.

Tags: MySQL SQL database InnoDB MyISAM

Publicado em 7-16 23:08