Questão de Banco de Dados — Consultas e Comandos em SQL — Quadrix 2024
Banco de Dados›Consultas e Comandos em SQL
Código
qa630734
Banca
Quadrix
Órgão
CRQ 12 (GO, TO e DF)
Ano
2024
Cargo
Ana (CRQ 12)
1. CREATE TABLE Empresa ( 2. Cod_Empresa INT PRIMARY KEY, 3. Nome VARCHAR(100) NOT NULL, 4. Endereco VARCHAR(200), 5. Telefone INT NOT NULL 6. ); 7. 8. CREATE TABLE Produto_Quimico ( 9. Cod_Produto_Quimico INT PRIMARY KEY, 10. Nome VARCHAR(100) NOT NULL, 11. Composicao VARCHAR(300) 12. ); 13. 14. CREATE TABLE Empresa_Produto_Quimico ( 15. Cod_Empresa INT, 16. Cod_Produto_Quimico INT, 17. PRIMARY KEY (Cod_Empresa, Cod_Produto_Quimico), 18. FOREIGN KEY (Cod_Empresa) REFERENCES Empresa(Cod_Empresa), 19. FOREIGN KEY (Cod_Produto_Quimico) REFERENCES Produto_Quimico(Cod_Produto_Quimico) );
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.
CCerto
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”.
Criação de tabelas com CREATE TABLE e a restrição NOT NULL
Gabarito: ERRADO (letra E). A criação da tabela Empresa não gera erro na linha 4, pois a coluna Endereco foi definida sem a restrição NOT NULL, o que é perfeitamente válido em SQL — a ausência dessa restrição significa que a coluna aceita valores nulos (NULL). O erro apontado no enunciado não existe, pois a sintaxe do comando CREATE TABLE está correta.
O comando CREATE TABLE é um comando da sublinguagem DDL (Data Definition Language), responsável pela definição da estrutura do banco de dados. Ao criar uma tabela, cada coluna pode ser declarada com ou sem a restrição NOT NULL. Quando a restrição NOT NULL é omitida, a coluna passa a aceitar valores nulos por padrão — essa é a regra geral do padrão SQL. Portanto, a linha 4 do código, que define a coluna Endereco VARCHAR(200) sem NOT NULL, está sintaticamente correta e não causa erro na execução.
A confusão que a banca explora aqui é achar que toda coluna precisa ser NOT NULL para ser válida. Na verdade, a restrição NOT NULL é opcional e serve para garantir que um valor obrigatoriamente seja informado naquela coluna. No caso da tabela Empresa, apenas as colunas Cod_Empresa (que é chave primária) e Nome e Telefone foram definidas como NOT NULL; a coluna Endereco ficou opcional, podendo receber valores nulos.
Para entender melhor, veja a estrutura da tabela Empresa:
Coluna
Tipo
Restrição
Aceita NULL?
Cod_Empresa
INT
PRIMARY KEY (implicitamente NOT NULL)
Não
Nome
VARCHAR(100)
NOT NULL
Não
Endereco
VARCHAR(200)
(nenhuma)
Sim
Telefone
INT
NOT NULL
Não
A chave primária (PRIMARY KEY) já garante a não nulidade da coluna Cod_Empresa, mesmo sem a declaração explícita de NOT NULL. As demais colunas seguem a regra padrão: sem a restrição, aceitam NULL.
NÃO CAIA NESSA!
A banca tenta induzir o candidato a acreditar que a ausência de NOT NULL é um erro de sintaxe. Na verdade, a ausência dessa restrição é perfeitamente válida e torna a coluna opcional (aceita NULL). O erro seria se a coluna fosse declarada com NOT NULL e depois recebesse um valor nulo — mas isso é um erro de inserção de dados, não de criação da tabela.
Alternativa E — ✅ Correta (gabarito)
A afirmação de que "ocorrerá um erro na linha 4, pois o referido campo não foi definido como NOT NULL" está errada. A coluna Endereco foi definida como VARCHAR(200) sem a restrição NOT NULL, o que é perfeitamente válido em SQL. A ausência dessa restrição significa que a coluna aceita valores nulos, e isso não gera erro na criação da tabela. O comando CREATE TABLE Empresa é executado com sucesso, criando a tabela com as quatro colunas especificadas.