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 FundamentaisSELECTid,nome,status,data_criacaoFROMtb_registroWHEREstatus='ATIVO'ORDERBYdata_criacaoDESC;
- **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).SELECTid,nome,status,data_criacaoFROMtb_registroWHEREstatus='ATIVO'ORDERBYdata_criacaoDESC;
- **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)SELECTid,nome,status,data_criacaoFROMtb_registroWHEREstatus='ATIVO'ORDERBYdata_criacaoDESC;
- **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).SELECTid,nome,status,data_criacaoFROMtb_registroWHEREstatus='ATIVO'ORDERBYdata_criacaoDESC;
- **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).SELECTid,nome,status,data_criacaoFROMtb_registroWHEREstatus='ATIVO'ORDERBYdata_criacaoDESC;
- **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.SELECTid,nome,status,data_criacaoFROMtb_registroWHEREstatus='ATIVO'ORDERBYdata_criacaoDESC;
- **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.