Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2024

Banco de DadosSQL
Código
qg352877
Banca
Quadrix
Órgão
CRQ - 12ª Região (GO, TO e DF)
Ano
2024
Nível
Superior
Cargo
Analista de T.I.

Imagem da questão


Com referência ao código SQL (Structured Query Language) acima, julgue o item.Ao executar a primeira parte do código, a criação da tabela Empresa, ocorrerá um erro na linha 4, pois o referido campo não foi definido como NOT NULL.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL: criação de tabela e a restrição NOT NULL

Gabarito: ERRADO (letra E). A criação da tabela Empresa não gera erro na linha 4, pois o campo Telefone foi definido como INT NOT NULL, e não há nenhum problema de sintaxe ou de restrição nessa definição. A linha 4 está perfeitamente válida dentro do comando CREATE TABLE.

O comando CREATE TABLE é a instrução da sublinguagem DDL (Data Definition Language) responsável por criar uma nova tabela no banco de dados. Sua sintaxe básica é:

CREATE TABLE nome_da_tabela (
    coluna1 tipo_de_dado [restrição],
    coluna2 tipo_de_dado [restrição],
    ...
);

Cada coluna é definida por um nome, um tipo de dado e, opcionalmente, uma ou mais restrições. A restrição NOT NULL é usada para garantir que uma coluna não aceite valores nulos, ou seja, que todo registro inserido na tabela tenha um valor obrigatório para aquele campo. No código apresentado, a linha 4 define a coluna Telefone como INT NOT NULL, o que significa que ela é do tipo inteiro e não pode ficar vazia. Essa é uma definição válida e não causa erro.

A confusão que a banca explora é pensar que a ausência de NOT NULL em um campo seria um erro. Na verdade, por padrão, uma coluna pode conter valores NULL (vazios), a menos que a restrição NOT NULL seja explicitamente adicionada. Portanto, a linha 4 não tem nenhum problema: ela está definindo corretamente o campo Telefone como obrigatório.

Para fixar o entendimento, veja a estrutura da tabela Empresa:

Linha

Coluna

Tipo

Restrição

2

Cod_Empresa

INT

PRIMARY KEY

3

Nome

VARCHAR(100)

NOT NULL

4

Endereco

VARCHAR(200)

(sem restrição)

5

Telefone

INT

NOT NULL

A linha 4, que define o campo Endereco, não possui a restrição NOT NULL, mas isso não é um erro — é apenas uma definição que permite valores nulos. A linha 5, que define Telefone, possui NOT NULL, e também não é um erro. O enunciado afirma que o erro ocorreria na linha 4, mas a linha 4 é a do campo Endereco, que não tem NOT NULL — e isso é perfeitamente válido.

NÃO CAIA NESSA!

A banca tenta confundir o candidato ao afirmar que a ausência de NOT NULL na linha 4 seria um erro. Na verdade, a ausência de NOT NULL é o comportamento padrão do SQL: uma coluna pode aceitar valores nulos a menos que a restrição seja explicitamente adicionada. O erro não existe, pois a linha 4 está correta.

Alternativa C — ❌ Incorreta

A alternativa afirma que a criação da tabela Empresa gerará um erro na linha 4, pois o campo não foi definido como NOT NULL. Isso é falso. A linha 4 define o campo Endereco como VARCHAR(200), sem a restrição NOT NULL, o que é perfeitamente válido. A ausência de NOT NULL não causa erro; ela apenas permite que o campo aceite valores nulos. O comando CREATE TABLE está sintaticamente correto e será executado sem problemas.

Alternativa E — ✅ Correta ⟵ GABARITO

A alternativa está correta ao afirmar que a criação da tabela Empresa não gerará erro na linha 4. A linha 4 define o campo Endereco como VARCHAR(200), sem a restrição NOT NULL, o que é uma definição válida. A ausência de NOT NULL não é um erro, pois, por padrão, uma coluna pode aceitar valores nulos. Portanto, o comando CREATE TABLE será executado com sucesso.

Gabarito: letra E

Link permanente: /questoes/qg352877