Professor EBTT - Informática: Engenharia de Software e Banco de Dados
Considere que um administrador de banco de dados (DBA) deseja criar uma nova tabela para registrar os colaboradores de uma empresa. A regra de negócio exige que a matrícula atue como o identificador principal e exclusivo do registro, que o nome seja um texto de tamanho variável (até 100 caracteres) com preenchimento obrigatório, e que exista uma coluna temporal para armazenar a data de contratação. O comando SQL a ser executado para atender a essa especificação é:CREATE TABLE funcionario (matricula INT ____________,nome ____________(100) ____________,data_contratacao ____________);Assinale a alternativa que preenche, correta e respectivamente, as lacunas do script acima.
AMAIN KEY – VARCHAR – NOT NULL – TIMESTAMP
BMAIN KEY – VARCHAR – REQUIRED – DATETIME
CUNIQUE – STRING – NOT NULL – DATETIME
DPRIMARY KEY – VARCHAR – NOT NULL – DATE
EPRIMARY KEY – STRING – REQUIRED – DATE
Revelar gabarito e comentário▾
GabaritoD — PRIMARY KEY – VARCHAR – NOT NULL – DATE
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 CREATE TABLE: definindo colunas e constraints
Gabarito: letra D. A ordem correta de preenchimento é: PRIMARY KEY (identificador único e exclusivo), VARCHAR(100) (texto de tamanho variável), NOT NULL (preenchimento obrigatório) e DATE (data de contratação sem horário). É a única alternativa que respeita a sintaxe padrão SQL e os requisitos do enunciado.
A banca testa o conhecimento dos tipos e restrições mais comuns da DDL. Vamos analisar cada lacuna:
1ª lacuna (matrícula): constraint de chave primária
PRIMARY KEY é o termo correto – garante unicidade e identificação exclusiva.
"MAIN KEY" não existe no SQL; é um anglicismo incorreto.
"UNIQUE" apenas impede duplicatas, mas não define a chave primária (que por si só já é única e não nula).
2ª lacuna (nome): tipo de dado + tamanho
VARCHAR(100) é o tipo padrão para strings de tamanho variável com limite máximo.
"STRING" não é um tipo SQL nativo (embora alguns SGBDs o aceitem como sinônimo, não é o termo correto na sintaxe canônica).
A definição VARCHAR(100) é universal e obrigatória para a restrição de até 100 caracteres.
3ª lacuna (nome): constraint de obrigatoriedade
NOT NULL é a restrição que impede valores nulos, tornando o campo obrigatório.
"REQUIRED" não é uma palavra-chave SQL; é inválida.
4ª lacuna (data_contratação): tipo temporal
DATE armazena apenas data (ano, mês, dia), adequado para data de contratação.
TIMESTAMP e DATETIME armazenam data e hora, o que não foi solicitado e pode ser desnecessário.
Análise das alternativas
Alternativa A – ❌ Incorreta
"MAIN KEY" inválido.
TIMESTAMP excede a necessidade (inclui hora).
Alternativa B – ❌ Incorreta
"MAIN KEY" inválido.
"REQUIRED" inválido.
DATETIME excede a necessidade (inclui hora).
Alternativa C – ❌ Incorreta
"UNIQUE" não é chave primária.
"STRING" inválido.
DATETIME excede a necessidade.
Alternativa D – ✅ Correta ⟵ GABARITO
PRIMARY KEY, VARCHAR(100), NOT NULL, DATE – todos conforme o padrão SQL e os requisitos.
Alternativa E – ❌ Incorreta
PRIMARY KEY correto, mas "STRING" inválido e "REQUIRED" inválido.
PEGA ESSA DICA!
No SQL padrão, use PRIMARY KEY para identificador, VARCHAR(n) para texto variável, NOT NULL para obrigatoriedade e DATE para datas sem hora. Memorize esses quatro termos – eles aparecem em praticamente toda prova de SQL DDL.