Um banco de dados PostGIS precisa de uma tabela chamada rios, com campos id (inteiro), nome (texto) e geom (linha geográfica).Assinale o comando SQL adequado para essa criação.
ACREATE TABLE rios (id INT, nome TEXT, geom LINE);
BCREATE TABLE rios (id SERIAL, nome VARCHAR, geom LINESTRING);
CCREATE SPATIAL rios (id INT, nome TEXT, geom LINESTRING);
ECREATE TABLE rios (id SERIAL, nome TEXT); SELECT AddGeometryColumn('rios', 'geom', 4326, 'LINESTRING', 2);
Revelar gabarito e comentário▾
GabaritoE — CREATE TABLE rios (id SERIAL, nome TEXT); SELECT AddGeometryColumn('rios', 'geom', 4326, 'LINESTRING', 2);
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 Tabela com Dados Geoespaciais no PostGIS
Gabarito: letra E. A alternativa E cria corretamente a tabela com id SERIAL e nome TEXT, e em seguida utiliza a função AddGeometryColumn do PostGIS para adicionar a coluna geométrica geom com SRID 4326, tipo LINESTRING e 2 dimensões, que é o procedimento padrão para tabelas com dados espaciais nesse SGBD.
A questão testa o conhecimento específico do PostGIS, extensão espacial do PostgreSQL. No PostGIS, para criar uma coluna que armazena geometrias, não basta declarar o tipo diretamente no CREATE TABLE (como geom LINESTRING). É necessário usar a função AddGeometryColumn ou especificar a sintaxe geometry(LINESTRING, 4326). A alternativa E é a única que segue o padrão correto.
NÃO CAIA NESSA!
A banca explora o fato de que muitos candidatos conhecem apenas o SQL padrão e desconhecem a necessidade de funções específicas do PostGIS. A alternativa B parece correta à primeira vista, mas a sintaxe geom LINESTRING não é suficiente, pois falta o SRID e a declaração explícita do tipo geometry. No PostGIS, a forma recomendada é usar AddGeometryColumn ou CREATE TABLE ... geom geometry(LINESTRING, 4326).
Alternativa A — ❌ Incorreta
O tipo LINE não é um tipo válido no PostGIS (que usa LINESTRING para linhas). Além disso, a alternativa não especifica o sistema de referência espacial (SRID), o que é essencial em dados geoespaciais. Mesmo que LINE fosse aceito, a criação seria incompleta sem SRID.
Alternativa B — ❌ Incorreta
Apesar de LINESTRING ser o tipo correto, no PostGIS a coluna geométrica deve ser do tipo geometry (ou geography), e não diretamente LINESTRING. A sintaxe correta seria geom geometry(LINESTRING, 4326) ou, alternativamente, usar AddGeometryColumn. A alternativa não especifica o SRID e não utiliza a estrutura adequada para dados espaciais no PostgreSQL/PostGIS.
Alternativa C — ❌ Incorreta
CREATE SPATIAL não é um comando SQL válido. O correto é CREATE TABLE. Não há qualquer comando CREATE SPATIAL na linguagem SQL padrão ou no PostgreSQL.
Alternativa D — ❌ Incorreta
A sintaxe apresentada parece mesclar um CREATE TABLE com VALUES, o que é inválido. O comando CREATE TABLE não aceita cláusula VALUES. Essa estrutura lembra um INSERT, mas não cria a tabela corretamente.
Alternativa E — ✅ Correta ⟵ GABARITO
A alternativa realiza duas operações: primeiro cria a tabela rios com as colunas id (SERIAL, auto incremento) e nome (TEXT); em seguida, chama a função AddGeometryColumn do PostGIS para adicionar a coluna geom com SRID 4326 (WGS 84), tipo LINESTRING e dimensão 2. Essa é a forma clássica e recomendada para criar tabelas com dados espaciais no PostGIS, garantindo que a coluna geométrica seja corretamente registrada no catálogo de geometrias.