Aula 05: DML - Manipulação de Dados ⚙️
Gerenciando Informações
Ricardo Pires
Bancos de Dados SQL e NoSQL
🎯 O que vamos aprender hoje?
- A linguagem DML
- Inserindo registros (INSERT)
- Atualizando dados (UPDATE)
- Excluindo registros (DELETE)
- Riscos e Boas Práticas
- Inserção em Massa
🏗️ Relembrando: DDL vs DML
- DDL: Cria o "balde" (Tabela) 🪣
- DML: Coloca a "água" (Dados) 💧
- Um define a estrutura, o outro o conteúdo!
📥 Comando INSERT
Para adicionar novos registros ao banco:
- Ordem das colunas importa!🔢 O Papel do SERIAL
- Você não precisa inserir o ID manualmente
- O PostgreSQL cuida da sequência
- Menos chance de erro de duplicidade! 🆔
📦 Inserção Múltipla
Economize tempo e comandos:
INSERT INTO produtos (nome, preco)
VALUES
('Mouse', 50.00),
('Teclado', 150.00),
('Monitor', 800.00);
✏️ Comando UPDATE
Para mudar dados que já existem:
-SET: O que mudar
- WHERE: Quem mudar 🎯
⚠️ Perigo: UPDATE sem WHERE
- Resultado: Todos os funcionários agora são ricos! 💸 - Na vida real: Você pode ser demitido! 😅🗑️ Comando DELETE
Para remover registros:
- Remove a linha inteira, não apenas uma célula!🛑 Perigo: DELETE sem WHERE
- Apaga TODA a sua tabela de pedidos. - Não há botão "Desfazer" (fora de transações). 🔥🧹 TRUNCATE vs DELETE
DELETE: Apaga linha por linha (mais lento, gera logs).TRUNCATE: Esvazia a tabela de uma vez (instantâneo). ⚡- Use
TRUNCATEpara limpar tabelas de log ou teste.
📊 Ciclo de Vida do Dado
graph LR
I[INSERT] --> D[(Database)]
D --> U[UPDATE]
U --> D
D --> Del[DELETE]
💻 Prática no pgAdmin
- Abrir Query Tool
- Digitar o comando
- Clicar no raio ⚡ ou apertar F5
- Verificar a mensagem de sucesso!
🛡️ Dicas de Segurança
- Sempre faça um
SELECTcom o seuWHEREantes de rodar oDELETE. - Se o
SELECTtrouxer os dados certos, oDELETEtambém trará. 🛡️
🚀 Desafios do DML
- Manter a integridade (FKs)
- Lidar com valores
NULL - Performance em milhões de inserts
🧩 Mini-Desafio
- Como você aumentaria o preço de todos os livros em 15%?
SET preco = preco * 1.15
🏁 Resumo
- Inserir com
INSERT - Mudar com
UPDATE(Precisa de WHERE!) - Apagar com
DELETE(Precisa de WHERE!) - Limpar com
TRUNCATE