Questões de Concurso sobre PostgreSQL

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
263 questões encontradas
Questões por página
20
Mais recentes
 

Quando realiza-se a instalação do PostgreSQL no sistema operacional Windows, a seguinte linha de comando é digitada:


C:\Program Files\PostgreSQL\9.0\bin> createuser.exe --createdb

--username postgres --no-createrole --pwprompt openpg


Qual é a função da diretiva–pwprompt?


A

O novo usuário será capaz de criar novas bases.


B

O nome do novo usuário pode especificar um novo usuário diferente.


C

A senha do novo usuário pode ser trocada.


D

A senha do novo usuário será solicitada.

Analise a definição da tabela “cidade_usuario”, bem como os registros que foram inseridos. Responda as questões 18 e 19, considerando o script 2.



create table cidade_usuario

(

cidade character varying(50),

usuario_id integer,

primary key(cidade, usuario_id)

);

insert into cidade_usuario

values

('CAXIAS DO SUL', 124250),

('PORTO ALEGRE', 124277),

('BENTO GONÇALVES', 124333),

('RIO GRANDE', 124305),

('RIO GRANDE', 124247),

('PORTO ALEGRE', 124326),

('PORTO ALEGRE', 124306);


Script 2



Qual consulta SQL seria necessária executar no banco de dados PostgreSQL, versão 9.2, utilizando funções nativas, para que o resultado produzido seja EXATAMENTE igual aos valores obtidos na figura 4?


.

cidade character varying (50)

usuarios text

1

BENTO GONÇALVES

124333

2

CAXIAS DO SUL

124250

3

PORTO ALEGRE

124326 | 124306 | 124277

4

RIO GRANDE

124305 | 124247

Figura 4 - Resultado esperado.


A

with q1 as (select * from cidade_usuario order by usuario_id desc)

select q1.cidade, string_concat(q1.usuario_id, ' | ') as usuarios

from q1 group by q1.cidade order by 2


B

with q1 as (select * from cidade_usuario order by usuario_id desc)

select q1.cidade, concat_values(q1.usuario_id, ' | ') as usuarios

from q1 group by q1.cidade order by 1


C

with q1 as (select * from cidade_usuario order by usuario_id desc)

select q1.cidade, string_concat(array_agg(q1.usuario_id), ' | ') as usuarios

from q1 group by q1.cidade order by 1


D

with q1 as (select * from cidade_usuario order by usuario_id)

select q1.cidade, array_to_string(array_agg(q1.usuario_id), ' | ') as usuarios

from q1 group by q1.cidade order by 2


E

with q1 as (select * from cidade_usuario order by usuario_id desc)

select q1.cidade, array_to_string(array_agg(q1.usuario_id), ' | ') as usuarios

from q1 group by q1.cidade order by 1

Considere afirmações abaixo sobre os sistemas PostGreSQL e Oracle.

I) PL/pqSQL e PL/SQL são linguagens procedurais suportadas pelo Oracle 12.1.

II) O PostgreSQL 9.5 permite a criação de visões (views) materializadas.

III) O Oracle 12.1 permite a criação de visões (views) materializadas, mas seu otimizador de consultas não as usa automaticamente na reescrita de consultas.

Está(ão) correta(s):


A

apenas I.


B

apenas II.


C

apenas III.


D

apenas I e III.


E

I, II e III.

Nas instruções seguintes, a palavra-chave IMMUTABLE indica que a função criada não pode modificar o banco de dados.


CREATE FUNCTION add(integer, integer) RETURNS integer

AS 'select $1 + $2;'

LANGUAGE SQL

IMMUTABLE

RETURNS NULL ON NULL INPUT;


C

Certo


E

Errado

O Sistema Gerenciador de Banco de Dados PostgreSQL 10.1 oferece uma linguagem procedural para a criação de funções e gatilhos, que é a linguagem


A

PL/SQL.


B

PL/pgSQL.


C

SQL.


D

DTL/SQL.

PostgreSQL é um sistema gerenciador de banco de dados objeto-relacional baseado em código aberto. Considerando as rotinas de atividades de manutenção desse Banco de Dados, é correto afirmar acerca do comando VACUUM:


A

sua variante VACUUM FULL requer bloqueio exclusivo na tabela em que estiver trabalhando.


B

o parâmetro FULL possibilita recuperação de maior espaço de disco, contudo toma pouco tempo para sua execução.


C

não cria uma substancial quantidade de tráfego de Entrada e Saída (I/O), não afetando a performance de outras sessões ativas.


D

é possível visualizar um relatório de atividade detalhado e indexar cada linha de registro para cada tabela, utilizando o parâmetro VERBOSE.


E

os comandos SELECT, INSERT, UPDATE e DELETE não podem ser executados em paralelo quando o comando VACUUM estiver em execução.

Considere que os seguintes comandos foram executados sobre um banco de dados PostgreSQL 9.5:

CREATE TABLE Cliente (idCli INTEGER, pontos INTEGER, situacao VARCHAR(30));

CREATE FUNCTION situacao_cliente() RETURNS trigger AS $situacao_cliente$

BEGIN

IF NEW.pontos < 0 THEN

NEW.situacao:= ‘negativo’;

END IF;

RETURN NEW;

END;

$situacao_cliente$ LANGUAGE plpgsql;

Deseja-se garantir que todo registro da tabela Cliente que for atualizado com um valor negativo para o atributo pontos seja armazenado com o valor do atributo situacao como ‘negativo’.

Assinale a alternativa que apresenta o comando que garantiria este comportamento.


A

CREATE STORED PROCEDURE situacao_cliente ON Cliente FOR UPDATE EXECUTE situacao_cliente();


B

ALTER TABLE Cliente ADD TRIGGER situacao_cliente ON UPDATE;


C

CREATE STORED PROCEDURE situacao_cliente WITH UPDATE ON Cliente EXECUTE situacao_cliente();


D

CREATE TRIGGER situacao_cliente BEFORE UPDATE ON Cliente FOR EACH ROW EXECUTE PROCEDURE situacao_cliente();


E

ALTER TABLE Cliente BEFORE UPDATE (pontos) FOR EACH ROW EXECUTE PROCEDURE situacao_cliente();

Em relação aos fenômenos que podem ocorrer em função do nível de isolamento e da concorrência em um banco de dados PostgreSQL, é correto afirmar:


A

O nível de isolamento serializable evita os fenômenos de leitura suja (dirty read) e leitura fantasma (phantom read), mas não impede o fenômeno da leitura repetida.


B

O fenômeno leitura suja pode ocorrer apenas no nível de isolamento Repeatable read.


C

O fenômeno da leitura repetida é evitado com os níveis de isolamento Read uncommitted e Read committed.


D

A leitura fantasma pode ser isolada somente com o nível de isolamento serializable.


E

A leitura fantasma e a leitura suja ocorrem quando o modelo transacional encontra-se no nível de isolamento serializable.

Analise o script a seguir, no âmbito do PostgreSQL.

Imagem associada para resolução da questão

O comando SQL que produz corretamente uma lista dos alunos, com a matrícula, nome e respectivas disciplinas e notas é:


A
Imagem associada para resolução da questão

B

Imagem associada para resolução da questão


C
Imagem associada para resolução da questão

D
Imagem associada para resolução da questão

E
Imagem associada para resolução da questão

Analise o código PL/pgSQL (SQL Procedural Language) a seguir compilado no banco de dados PostgreSQL, versão 9.2, esquema public.


create or replace function obter_candidatos()

returns table

(

inscricao candidato.inscricao%type,

nome candidato.nome%type

)

as

$body$

declare

begin

return query (select inscricao, nome from candidato);

end;

$body$

language plpgsql;


Qual alternativa apresenta a instrução SQL CORRETA para executar a função “obter_candidatos”?


A

select obter_candidatos();


B

select * from obter_candidatos;


C

select * from obter_candidatos();


D

execute obter_candidatos;


E

select * from tables(obter_candidatos());

Um banco de dados possui uma tabela “Venda” com os campos codigo (inteiro), data_venda (data e hora) e cliente_id (inteiro). O campo cliente_id é uma chave estrangeira para uma outra tabela, de nome Cliente. Foi criada uma tabela Resumo_Vendas com os campos cliente_id (inteiro) e total (inteiro). Deseja-se, então, inserir a quantidade total de vendas realizadas até o momento para cada cliente. Nesse caso, qual comando SQL deverá ser executado? Considere um banco de dados PostgreSQL.

A
Não é possível executar tal operação utilizando apenas um comando SQL.

B
select client_id, count(codigo) from Venda group by client_id insert into Resumo_Vendas;

C
insert into Resumo_Vendas values select client_id, count(codigo) from Vendas group by client_id;

D
insert into Resumo_Vendas select client_id, count(codigo) from Vendas group by client_id;

Considere o diagrama ER mapeado em um modelo relacional com as tabelas Produto, Componente e contém. Dentre as consultas SQL abaixo, assinale quais retornam todos os idComp de componentes que não estão contidos em algum produto.

Considere a execução das consultas no PostgreSQL 9.5 e, também, que todas as tabelas contêm registros.

I) SELECT idComp FROM Componente WHERE idComp NOT IN (SELECT idComp FROM contem);

II) SELECT idComp FROM Componente WHERE NOT EXISTS (SELECT idComp FROM contem);

III) SELECT idComp FROM Componente NATURAL LEFT JOIN contem WHERE idProd IS NULL;


A

Apenas I.


B

Apenas II.


C

Apenas III.


D

Apenas I e III.


E

I, II e III

Analise a definição das tabelas “candidato” e “pagamento”, bem como os registros que foram inseridos. Responda às questões 11, 12, 13 e 14, considerando o script 1.


create table candidato

(

inscricao integer,

nome character varying(50),

nome_social character varying(50),

primary key(inscricao)

);


insert into candidato

values

(1, 'PAULO SILVEIRA', 'CLAUDIA SILVEIRA'),

(2, 'ANDRE CARDOSO', NULL),

(3, 'JOANA GONZALES', 'MARCOS GONZALES'),

(4, 'ALESSANDRA BENERI', NULL),

(5, 'FERNANDO SIQUEIRA', NULL),

(6, 'CARLOS FERNANDEZ', NULL),

(7, 'DANIEL OLIVEIRA', NULL);


create table pagamento

(

id_arquivo integer,

nosso_numero character varying(17),

dt_liquidacao date,

vlr_recebido double precision,

primary key(id_arquivo, nosso_numero)

) ;



insert into pagamento

values

(1, '90293840000000001', '2018-02-11', 90),

(1, '90293849999999991', '2018-02-11', 90),

(1, '90293840000000002', '2018-02-11', 90),

(2, '90293840000000003', '2018-02-12', 90),

(2, '90293840000000004', '2018-02-12', 90),

(3, '90293849999999992', '2018-02-13', 90),

(3, '90293840000000005', '2018-02-13', 90);



Analise a situação a seguir, considerando o contexto da tabela “candidato” no banco de dados PostgreSQL, versão 9.2, que está configurado para executar COMMIT automaticamente.


  1. Desenvolvedor 1 executa as seguintes instruções SQL.


begin transaction isolation level read committed;

update candidato set nome = 'GABRIEL COSTA' where inscricao = 4;


  1. Um minuto após a transação anterior, numa outra sessão de banco, o desenvolvedor 2 executa esta instrução SQL:

update candidato set nome = 'GABRIELA COSTA' where inscricao = 4;


Marque a alternativa que descreve CORRETAMENTE o comportamento esperado pelo banco de dados diante do que foi relatado.


A

As instruções SQL do desenvolvedor 1 são executadas normalmente, entretanto, devido à ausência do comando COMMIT nesta transação, a tabela “candidato” permanece bloqueada para outras sessões de banco que queiram modificar sua estrutura. O valor da coluna “nome” é "GABRIEL COSTA‟ se uma terceira sessão executar por último a instrução: select * from candidato where inscricao = 4.


B

As instruções SQL do desenvolvedor 1 são executadas normalmente, entretanto, devido à ausência do comando COMMIT nesta transação, a tabela “candidato” permanece bloqueada para outras sessões de banco que queiram modificar sua estrutura. O valor da coluna “nome” é "ALESSANDRA BENERI‟ se uma terceira sessão executar por último a instrução: select * from candidato where inscricao = 4.


C

As instruções SQL do desenvolvedor 1 são executadas normalmente, entretanto, devido à ausência do comando COMMIT nesta transação, a tabela “pagamento” permanece bloqueada para outras sessões de banco que queiram modificar sua estrutura. O valor da coluna “nome” é "GABRIELA COSTA‟ se uma terceira sessão executar por último a instrução: select * from candidato where inscricao = 4.


D

As instruções SQL do desenvolvedor 1 são executadas normalmente, não há bloqueio. A tabela “candidato” permanece disponível para outras sessões de banco que queiram modificar sua estrutura. O valor da coluna “nome” é "GABRIELA COSTA‟ se uma terceira sessão executar por último a instrução: select * from candidato where inscricao = 4.


E

As instruções SQL do desenvolvedor 1 falham devido à ausência do comando COMMIT nesta transação. A tabela “candidato” permanece disponível para outras sessões de banco que queiram modificar sua estrutura.

Utilizando o banco de dados PostgresSQL, selecione a instrução SQL correta que concatena as palavras 'UFC' e 'ti' para formar 'UFCti''.


A

SELECT 'UFC' . 'ti'


B

SELECT 'UFC' || 'ti'


C

SELECT 'UFC' + 'ti'


D

SELECT 'UFC' + 'ti' FROM pg_operator


E

SELECT cat('UFC', 'ti') FROM pg_operator

No banco de dados PostgresSQL, o comando SQL CREATE INDEX constrói um índice na(s) coluna(s) especificada(s) da relação especificada, que pode ser uma tabela ou uma visão. Qual das opções abaixo contém apenas métodos válidos para serem utilizados nos índices a partir da versão 10?


A

btree+, hash, gist, pggist, gin, brin.


B

btree, hash, gist, spgist, gin, brin.


C

btree+, hash, gistx, pggin, brin.


D

btree, gist, pggist, gin, pgbrin.


E

btree, hash, gistx, gint, brinx.

Sob qual tipo de licença o banco de dados PostgreSQL é lançado atualmente?


A

GPL license.


B

BSD license.


C

LGPL license.


D

X11(MIT) license.


E

PostgreSQL license.

Em relação ao recurso dos gatilhos (trigger) no PostgreSQL 10, é correto afirmar:


A

Os gatilhos são restritos a visões (view) no banco de dados.


B

A cláusula REFERENCING do comando CREATE TRIGGER pode ser utilizada em conjunto com as cláusulas BEFORE e AFTER.


C

As funções disparadas por gatilhos que alteram os dados na mesma tabela do gatilho não causam o disparo das mesmas triggers, evitando a recursividade.


D

Os gatilhos podem ser anexados a tabelas (table), visões (view) e tabelas estrangeiras (foreign table).


E

O comportamento do PostgreSQL em gatilhos, para eventos do tipo BEFORE DELETE, sempre será acionado após a exclusão em cascata.

De acordo com a documentação do banco de dados PostgreSQL, observa-se a possibilidade de utilizar funções que suportam expressões regulares. Nesse sentido, ao executar a consulta SQL a seguir no banco mencionado, versão 9.2, qual será o resultado produzido?


select frase[4] ||' '|| frase[2] as resultado

from

(

select

regexp_split_to_array('Instituto Federal de Educação e Tecnologia', E'\\s+') as

frase

) X



A

Instituto Federal


B

Instituto Tecnologia


C

e de


D

Educação Federal


E

Tecnologia e Educação

Considere o diagrama ER, mapeado em um modelo relacional com as tabelas Produto, Componente e contém. Considere também que o banco contenha a visão (view) definida pelo comando:

CREATE VIEW TotalComp AS (SELECT idProd, count(*) AS total FROM Produto NATURAL JOIN contem GROUP BY idProd);

Entre as consultas SQL abaixo, assinale quais retornam todos os idProd de produtos que contêm um número de componentes igual ao maior número de componentes contidos em um produto.

Considere a execução das consultas no PostgreSQL 9.5 e considere que todas as tabelas contêm registros.

I) SELECT idProd FROM TotalComp AS T WHERE T.total = (SELECT max(total) FROM TotalComp);

II) SELECT idProd FROM TotalComp AS T WHERE T.total = (SELECT sum(total) FROM TotalComp);

III) SELECT idProd, max(total) FROM TotalComp GROUP BY idProd;


A

Apenas I.


B

Apenas II.


C

Apenas III.


D

Apenas I e III.


E

I, II e III.

No PostgreSQL, a cláusula “WHERE” presente no comando “CREATE INDEX” serve para:


A

criar um índice parcial, em que apenas os registros que satisfazem a condição são adicionados ao índice.


B
dividir um índice em múltiplos arquivos.

C

dividir os registros de uma tabela em múltiplos arquivos.


D

criar a janela móvel utilizada nas funções “window”.


E

criar índices utilizando threads paralelas (CONCURRENTLY).

   
Gerar simulado