Comandos SQL Que Todo Desenvolvedor Deve Saber: Do SELECT ao Trigger
SQL (Structured Query Language) é a linguagem padrão utilizada para gerenciar e manipular bancos de dados relacionais. Com SQL, é possível realizar diversas operações como inserir, atualizar, deletar e consultar dados. Ela é fundamental para desenvolvedores, analistas de dados e administradores de bancos de dados. A simplicidade e a eficácia do SQL fazem dela uma ferramenta indispensável no mundo da tecnologia.
Principais comandos
1. SELECT: Utilizado para consultar dados em um banco de dados. Exemplo: SELECT * FROM clientes; retorna todos os registros da tabela "clientes".
2. INSERT: Usado para adicionar novos registros. Exemplo: INSERT INTO clientes (nome, idade) VALUES ('Ana', 30); insere um novo cliente chamado Ana com 30 anos.
3. UPDATE: Atualiza dados existentes. Exemplo: UPDATE clientes SET idade = 31 WHERE nome = 'Ana'; altera a idade de Ana para 31.
4. DELETE: Remove registros. Exemplo: DELETE FROM clientes WHERE nome = 'Ana'; apaga o registro da cliente Ana.
O que mais é utilizado no dia a dia
Além dos comandos principais, alguns outros são frequentemente utilizados no cotidiano dos desenvolvedores. CREATE TABLE cria novas tabelas, ALTER TABLE modifica a estrutura de uma tabela existente e DROP TABLE remove uma tabela. Comandos como WHERE para filtrar resultados e ORDER BY para ordenar os dados também são essenciais. Utilizar funções agregadas como COUNT, SUM, AVG, MIN, e MAX ajuda a realizar análises estatísticas rápidas e eficazes diretamente no banco de dados.
Esses comandos formam a base do trabalho com SQL, permitindo a manipulação eficiente dos dados e a extração de insights valiosos. Dominar esses comandos é essencial para qualquer desenvolvedor que trabalhe com bancos de dados.
Tipos de JOIN
1. INNER JOIN: Retorna apenas as linhas que têm correspondência em ambas as tabelas. Exemplo:
SELECT *
FROM pedidos
INNER JOIN clientes
ON pedidos.cliente_id = clientes.id;
Esse comando combina as tabelas "pedidos" e "clientes", retornando apenas os registros onde há uma correspondência em ambos os lados.
2. LEFT JOIN (ou LEFT OUTER JOIN): Retorna todas as linhas da tabela à esquerda e as correspondências da tabela à direita. Se não houver correspondência, retorna NULL para a tabela à direita. Exemplo:
SELECT *
FROM clientes
LEFT JOIN pedidos
ON clientes.id = pedidos.cliente_id;
Aqui, todos os clientes serão retornados, juntamente com seus pedidos, se houver. Se um cliente não tiver pedido, ainda será listado com valores NULL para os campos de pedidos.
3. RIGHT JOIN (ou RIGHT OUTER JOIN): Retorna todas as linhas da tabela à direita e as correspondências da tabela à esquerda. Se não houver correspondência, retorna NULL para a tabela à esquerda. Exemplo:
SELECT *
FROM pedidos
RIGHT JOIN clientes
ON pedidos.cliente_id = clientes.id;
Todos os pedidos serão retornados, junto com os dados dos clientes correspondentes. Se um pedido não tiver cliente correspondente, os campos de cliente serão NULL.
4. FULL JOIN (ou FULL OUTER JOIN): Retorna todas as linhas quando há uma correspondência em uma das tabelas. Se não houver correspondência, retorna NULL para a tabela que não tiver dados. Exemplo:
SELECT *
FROM clientes
FULL OUTER JOIN pedidos
ON clientes.id = pedidos.cliente_id;
Este comando retorna todos os clientes e todos os pedidos, combinando onde há correspondências e usando NULL onde não há.
Trigger
Um trigger é um procedimento armazenado que é automaticamente executado ou disparado quando certos eventos ocorrem em uma tabela ou vista. Triggers podem ser utilizados para manter a integridade dos dados, registrar alterações ou aplicar regras de negócio. Existem três tipos principais de triggers:
1. AFTER: Executa a ação após o evento (INSERT, UPDATE, DELETE) ocorrer. Exemplo:
CREATE TRIGGER after_pedido_insert
AFTER INSERT ON pedidos
FOR EACH ROW
BEGIN
INSERT INTO log_pedidos (pedido_id, acao, data)
VALUES (NEW.id, 'INSERT', NOW());
END;
Este trigger insere um registro na tabela "log_pedidos" após um novo pedido ser adicionado à tabela "pedidos".
2. BEFORE: Executa a ação antes do evento (INSERT, UPDATE, DELETE) ocorrer. Exemplo:
CREATE TRIGGER before_cliente_update
BEFORE UPDATE ON clientes
FOR EACH ROW
BEGIN
SET NEW.data_atualizacao = NOW();
END;
Este trigger atualiza o campo "data_atualizacao" antes de qualquer modificação ser feita na tabela "clientes".
3. INSTEAD OF: Executa a ação em vez do evento (geralmente usado em vistas). Exemplo:
CREATE TRIGGER instead_of_delete
INSTEAD OF DELETE ON minha_vista
FOR EACH ROW
BEGIN
DELETE FROM tabela_real WHERE id = OLD.id;
END;
Este trigger executa a ação de deletar na "tabela_real" ao invés da "minha_vista" quando uma operação de DELETE é solicitada na vista.
Triggers são ferramentas poderosas para automatizar ações e garantir que as regras de negócio sejam seguidas no banco de dados.
Conclusão
Dominar os comandos SQL fundamentais e entender o uso de triggers é essencial para qualquer desenvolvedor que trabalhe com bancos de dados. A habilidade de manipular dados de forma eficiente e aplicar automações através de triggers não só otimiza o desenvolvimento de sistemas, mas também garante a integridade e segurança dos dados.