Questão de Banco de Dados — SQL — Quadrix 2024
- 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.

- CCerto
- EErrado

GabaritoE — Errado
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 |
|
|
|
3 |
|
|
|
4 |
|
| (sem restrição) |
5 |
|
|
|
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.
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.
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.
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