Questão FC514909
CREATE TABLE catalogo ( id_tabela INT, nome_tabela VARCHAR(255), descricao TEXT, colunas TEXT, relacionamentos TEXT, regras_negocio TEXT, data_criacao DATE, data_ultima_atualizacao
Linguagem SQL
CEBRASPE (CESPE) · 2025
CREATE TABLE catalogo ( id_tabela INT, nome_tabela VARCHAR(255), descricao TEXT, colunas TEXT, relacionamentos TEXT, regras_negocio TEXT, data_criacao DATE, data_ultima_atualizacao DATE ); INSERT INTO catalogo VALUES ( 1, 'vendas', 'Registros de vendas realizadas', 'id_venda INT, data_venda DATE, valor_venda DECIMAL, id_produto INT', 'id_produto REFERENCES produtos(id)', 'valor_venda > 0', '2023-01-01', '2023-10-05' );
SELECT * FROM catalogo WHERE nome_tabela = 'vendas';
Com base nas informações do código precedente, julgue o próximo item.
Pelo comando SELECT, entende-se que os valores da coluna valor_venda devem ser menores que zero.
Mostrar resposta e comentário
Gabarito
Errado
Comentário do professor
A afirmação é ERRADA porque o comando SELECT apenas recupera linhas da tabela catalogo onde nome_tabela = 'vendas'. Ele não impõe nem valida restrições sobre a coluna valor_venda.
No CREATE TABLE a tabela catalogo define colunas do tipo texto para metadados; os trechos como 'valor_venda DECIMAL' e 'valor_venda > 0' estão armazenados como texto na coluna regras_negocio, sem virar constraint real no SGBD.
Ou seja, a expressão textual 'valor_venda > 0' descreve uma regra desejada (valor maior que zero), não cria uma checagem. O SELECT não transforma nem aplica essa regra; apenas mostra o conteúdo documentado.
Portanto a conclusão de que os valores de valor_venda devem ser menores que zero é incorreta e contradiz o que está documentado (maior que zero) e o funcionamento do SQL.
Conteúdo do catálogo FC Concursos · Atualizado em