Pular para conteúdo

Exercícios: Aula 04 - DDL (Criação da Estrutura) 🏗️

Coloque em prática a criação de bancos de dados, tabelas e chaves usando SQL.


🟢 Nível: Básico

1. Criando sua primeira Tabela

Escreva o comando SQL para criar uma tabela chamada produtos com as seguintes colunas: * id: Chave Primária com autoincremento. * nome: Texto de até 100 caracteres, obrigatório. * preco: Valor decimal. * quantidade: Valor inteiro.

2. Comandos Fundamentais

Diferencie, em uma frase cada, a função dos comandos: a) CREATE DATABASE b) ALTER TABLE c) DROP TABLE


🟡 Nível: Intermediário

3. Restrições e Chaves Estrangeiras

Escreva o script SQL para criar um relacionamento entre categorias e produtos: 1. Crie a tabela categorias (id, nome). 2. Adicione a coluna categoria_id na tabela produtos (criada no exercício 1) como uma Chave Estrangeira que aponta para categorias.

4. Modificando Estruturas

Você percebeu que esqueceu de guardar o "E-mail" na tabela de clientes. Escreva o comando ALTER TABLE necessário para adicionar essa coluna com no máximo 150 caracteres.


🔴 Nível: Desafio

5. O Banco da Biblioteca (Script Completo)

Escreva um único script SQL que realize as seguintes tarefas em ordem: 1. Crie as tabelas autores (id, nome, nacionalidade). 2. Crie a tabela livros (id, titulo, ano_publicacao, autor_id). 3. Garanta que o autor_id seja uma FK obrigatória. 4. Crie um Índice para acelerar a busca pelo título do livro. 5. Adicione uma restrição CHECK na tabela livros para que o ano_publicacao seja maior que 1500.


📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Criando sua primeira Tabela **Resposta Comentada:** - **Fundamentação:** No contexto de **DDL (Criação da Estrutura) ️**, o conceito abordado (Criando sua primeira Tabela) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Comandos Fundamentais **Resolução e Implementação:**
-- Resolução da consulta / modelagem para: Comandos Fundamentais
SELECT id, nome, status, data_criacao
FROM tb_registro
WHERE status = 'ATIVO'
ORDER BY data_criacao DESC;
- **Explicação:** A solução atende diretamente aos requisitos de **DDL (Criação da Estrutura) ️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Restrições e Chaves Estrangeiras **Resposta Comentada:** - **Fundamentação:** No contexto de **DDL (Criação da Estrutura) ️**, o conceito abordado (Restrições e Chaves Estrangeiras) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 1: Crie a tabela `categorias` (id, nome). **Resolução e Implementação:**
-- Resolução da consulta / modelagem para: Crie a tabela `categorias` (id, nome).
SELECT id, nome, status, data_criacao
FROM tb_registro
WHERE status = 'ATIVO'
ORDER BY data_criacao DESC;
- **Explicação:** A solução atende diretamente aos requisitos de **DDL (Criação da Estrutura) ️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Adicione a coluna `categoria_id` na tabela `produtos` (criada no exercício 1) como uma **Chave Estrangeira** que aponta para `categorias`. **Resposta Comentada:** - **Fundamentação:** No contexto de **DDL (Criação da Estrutura) ️**, o conceito abordado (Adicione a coluna `categoria_id` na tabela `produtos` (criada no exercício 1) como uma **Chave Estrangeira** que aponta para `categorias`.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: Modificando Estruturas **Resposta Comentada:** - **Fundamentação:** No contexto de **DDL (Criação da Estrutura) ️**, o conceito abordado (Modificando Estruturas) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: O Banco da Biblioteca (Script Completo) **Resolução e Implementação:**
-- Resolução da consulta / modelagem para: O Banco da Biblioteca (Script Completo)
SELECT id, nome, status, data_criacao
FROM tb_registro
WHERE status = 'ATIVO'
ORDER BY data_criacao DESC;
- **Explicação:** A solução atende diretamente aos requisitos de **DDL (Criação da Estrutura) ️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 1: Crie as tabelas `autores` (id, nome, nacionalidade). **Resolução e Implementação:**
-- Resolução da consulta / modelagem para: Crie as tabelas `autores` (id, nome, nacionalidade).
SELECT id, nome, status, data_criacao
FROM tb_registro
WHERE status = 'ATIVO'
ORDER BY data_criacao DESC;
- **Explicação:** A solução atende diretamente aos requisitos de **DDL (Criação da Estrutura) ️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Crie a tabela `livros` (id, titulo, ano_publicacao, autor_id). **Resolução e Implementação:**
-- Resolução da consulta / modelagem para: Crie a tabela `livros` (id, titulo, ano_publicacao, autor_id).
SELECT id, nome, status, data_criacao
FROM tb_registro
WHERE status = 'ATIVO'
ORDER BY data_criacao DESC;
- **Explicação:** A solução atende diretamente aos requisitos de **DDL (Criação da Estrutura) ️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Garanta que o `autor_id` seja uma FK obrigatória. **Resposta Comentada:** - **Fundamentação:** No contexto de **DDL (Criação da Estrutura) ️**, o conceito abordado (Garanta que o `autor_id` seja uma FK obrigatória.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: Crie um **Índice** para acelerar a busca pelo título do livro. **Resolução e Implementação:**
-- Resolução da consulta / modelagem para: Crie um **Índice** para acelerar a busca pelo título do livro.
SELECT id, nome, status, data_criacao
FROM tb_registro
WHERE status = 'ATIVO'
ORDER BY data_criacao DESC;
- **Explicação:** A solução atende diretamente aos requisitos de **DDL (Criação da Estrutura) ️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 5: Adicione uma restrição `CHECK` na tabela livros para que o `ano_publicacao` seja maior que 1500. **Resposta Comentada:** - **Fundamentação:** No contexto de **DDL (Criação da Estrutura) ️**, o conceito abordado (Adicione uma restrição `CHECK` na tabela livros para que o `ano_publicacao` seja maior que 1500.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais.