🏁 CONSIDERAÇÕES FINAIS: UNIDADE III
Você concluiu a jornada pelos fundamentos da linguagem SQL. Agora você é capaz de estruturar bancos de dados e manipular informações com precisão técnica. 🛡️🧩
Objetivo: Consolidar os conhecimentos de DDL e DML através de exercícios práticos e desafios de lógica SQL.
📗 Tabelas de Referência Acadêmica
Utilize as estruturas abaixo para resolver os desafios:
🎓 Tabela: ALUNO
| ID (PK) | Nome | Sobrenome | RA (Unique) | |
|---|---|---|---|---|
| 1 | João | Silva | 202401 | joao@univ.br |
👨🏫 Tabela: PROFESSOR
| ID (PK) | Nome | Sobrenome | Titulação |
|---|---|---|---|
| 10 | Rafael | Petry | Doutor |
✅ Verificação de Aprendizagem (Unidade III)
📝 Questões Objetivas
1. Qual bloco da linguagem SQL é responsável pela criação, alteração e exclusão de estruturas de dados (como tabelas e índices)? a) DML (Data Manipulation Language). b) DDL (Data Definition Language). c) DCL (Data Control Language). d) TCL (Transaction Control Language).
2. Durante a manipulação de dados em uma tabela transacional corporativa, um DBA esqueceu a cláusula WHERE em um comando UPDATE. Qual será a consequência arquitetural dessa ação no SGBD PostgreSQL 17?
a) O comando falhará imediatamente devido à proteção de segurança nativa contra perdas (Safe Updates block).
b) Todas as linhas (tuplas) da tabela sofrerão a atualização mencionada.
c) Apenas a última linha modificada será revertida (Rollback automático).
d) O PostgreSQL exigirá a confirmação do comando.
🧠 Atividades Práticas: Unidade III
📝 Parte 1: Engenharia de Estruturas (DDL)
- 🏗️ Nova Entidade: Crie a tabela
CURSOcomID(PK),NOME(Not Null) eDURACAO_HORAS. - ⚙️ Evolução: Adicione a coluna
DATA_CONTRATACAO(DATE) à tabelaPROFESSOR.
📝 Parte 2: Manipulação de Dados (DML)
- ➕ Inserção: Insira a professora 'Ana Souza', 'Mestre'.
- 🔄 Atualização: Altere o e-mail do 'João Silva' para
joao.silva@nova.br. - ❌ Remoção: Remova alunos com
RA IS NULL.
📝 Parte 3: Inteligência de Dados (SELECT)
- 🔍 Filtro: Selecione alunos com e-mail terminando em
@univ.br. - 🔢 Ordenação: Liste professores por
NOME(A-Z).
➡️ Clique aqui para revelar o Gabarito e Soluções (SPOILER) ⬅️
📊 Gabarito das Questões Objetivas:
- Letra B (DDL). É a sub-linguagem para definição da estrutura do banco (CREATE, ALTER, DROP).
- Letra B. Um UPDATE sem WHERE altera todos os registros da tabela indiscriminadamente. Diferente do MySQL (que possui modo Safe Updates por padrão no Workbench), um SGBD sem travas executará a alteração em todas as tuplas.
🏗️ Resolução Parte 1 (DDL):
CREATE TABLE CURSO (
ID INT PRIMARY KEY,
NOME VARCHAR(100) NOT NULL,
DURACAO_HORAS INT
);
ALTER TABLE PROFESSOR ADD COLUMN DATA_CONTRATACAO DATE;
📝 Resolução Parte 2 (DML):
INSERT INTO PROFESSOR (ID, NOME, SOBRENOME, TITULACAO)
VALUES (11, 'ANA', 'SOUZA', 'MESTRE');
UPDATE ALUNO
SET EMAIL = 'JOAO.SILVA@NOVA.BR'
WHERE ID = 1;
DELETE FROM ALUNO WHERE RA IS NULL;
🔍 Resolução Parte 3 (SELECT):
SELECT NOME, SOBRENOME
FROM ALUNO
WHERE EMAIL LIKE '%@univ.br';
SELECT * FROM PROFESSOR ORDER BY NOME ASC;
💡 Dica de Engenheiro: A SQL exige prática. Tente modificar as resoluções acima adicionando filtros mais complexos ou usando
LIMITpara restringir resultados. 🚀🛡️