

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
A consulta SQL, criada para executar em um ambiente PostgreSQL, versão 15, que retorna o id e o total gasto dos 5 clientes da Locadora que mais gastaram com aluguel de filmes, está corretamente apresentada em
select Cliente.id, sum(Filme.valor) as total_gasto
from Aluguel
inner join AluguelFilme ON AluguelFilme.aluguel_id = Aluguel.id
inner join Filme ON Filme.id = AluguelFilme.filme_id
inner join Cliente ON Aluguel.cliente_id = Cliente.id
group by Cliente.id
order by sum(Filme.valor) desc
limit 5
select Cliente.id, sum(Filme.valor) as total_gasto
from Aluguel
inner join AluguelFilme ON AluguelFilme.aluguel_id = Aluguel.id
inner join Filme ON Filme.id = AluguelFilme.filme_id
inner join Cliente ON Aluguel.cliente_id = Cliente.id
group by Cliente.id
order by sum(Filme.valor) asc
limit 5
select Cliente.id, sum(Filme.valor) as total_gasto
from Aluguel
inner join AluguelFilme ON AluguelFilme.aluguel_id = Aluguel.id
inner join Filme ON Filme.id = AluguelFilme.filme_id
inner join Cliente ON Aluguel.cliente_id = Cliente.id
group by Cliente.id
order by sum(Filme.valor) desc
top 5
select Cliente.id, max(Filme.valor) as total_gasto
from Aluguel
inner join AluguelFilme ON AluguelFilme.aluguel_id = Aluguel.id
inner join Filme ON Filme.id = AluguelFilme.filme_id
inner join Cliente ON Aluguel.cliente_id = Cliente.id
group by Cliente.id
order by max(Filme.valor) asc
limit 5
No contexto da administração de dados em PostgreSQL, qual é o comando SQL básico para criar uma nova tabela?
CREATE DATABASE tablename;
CREATE TABLE tablename;
ADD TABLE tablename;
INSERT TABLE tablename;
CREATE SCHEMA tablename;
Considere que você está conectado a um banco de dados existente em um SGDB PostgreSQL versão 15.1, como um usuário com permissões para criar tabelas no banco de dados. Qual é o resultado obtido após a execução do seguinte comando?

Apresentação de uma mensagem de erro com a indicação da localização em -- low temperature.
A criação da tabela weather com todas as colunas e tipos especificados no comando.
A criação da tabela weather com somente as colunas city e date.
Apresentação de uma mensagem de advertência e a criação da tabela weather com somente as colunas city e date.
Apresentação de uma mensagem de erro e a desconexão do usuário.
A linguagem SQL (Structured Query Language) é uma linguagem de pesquisa para banco de dados relacionais, aceita pela maioria dos produtos existentes no mercado. A SQL foi desenvolvida na IBM Research no início da década de 1970. Em relação aos comandos da linguagem SQL, a linha de código abaixo é utilizada para:
TRUNCATE TABLE Vendas;
atualizar todos os dados da tabela Vendas.
excluir todos os dados da tabela Vendas.
criar uma nova tabela denominada Vendas.
selecionar todos os dados da tabela Vendas.
ordenar todos os dados da tabela Vendas.
Comandos expressos em linguagem de definição de dados (DDL) são utilizados para criar estruturas de um banco de dados, e o seu processamento irá incluir ou alterar metadados desse mesmo banco de dados.
Certo
Errado
Uma transação SQL executa operações que modificam o banco de dados. O comportamento da transação é determinado por princípios de correção da aplicação e do banco de dados, além de configurações que determinam o modo de acesso, área de diagnóstico e nível de isolamento. No SQL, o nível de isolamento é definido no comando SET TRANSACTION e pode ser: serializable, repeatable read, read committed e read uncommitted. Analise as assertivas abaixo:
I. A opção default do SET TRANSACTION, para o nível de isolamento, é READ COMMITED, que garante que a transação não lerá dados de transações que não foram finalizadas.
II. Ao definir o nível de isolamento como REPEATABLE READ, a transação será executada em completo isolamento, portanto não lerá dados de transações que não foram finalizadas com sucesso e, somente depois que ela terminar com sucesso, os dados que está alterando poderão ser acessados por outras transações.
III. A opção READ UNCOMMITED permite que a transação leia dados de transações ativas que ainda não foram efetivados.
Quais estão corretas?
Apenas I.
Apenas II.
Apenas III.
Apenas I e II.
Apenas II e III.
As restrições de integridade garantem que as mudanças feitas no banco de dados, por usuários autorizados, não resultem em uma perda da consistência dos dados. Nesse contexto, considere os seguintes comandos SQL:
CREATE TABLE CIDADE(
idCidade number(4) PRIMARY KEY,
nome varchar2(50) NOT NULL
)
CREATE TABLE PESSOA(
idPessoa number(5) PRIMARY KEY,
nome varchar2(50) NOT NULL,
idCidade number(4) REFERENCES CIDADE(idCidade)
)
Analise as assertivas abaixo e assinale a alternativa correta.
I. As tabelas CIDADE e PESSOA terão a identificação de cada uma de suas tuplas por um valor único, garantida pela restrição de integridade de identidade, verificada pelo SGBD a cada operação de inclusão ou alteração de tuplas.
II. O campo PESSOA.idCidade tem preenchimento obrigatório para cumprir com a regra da integridade referencial.
III. Quando uma tupla da tabela CIDADE for excluída, não é realizada verificação de integridade referencial, pois essa tabela não possui chave estrangeira.
IV. O campo PESSOA.nome não pode ficar vazio quando é feita a inclusão ou alteração de uma tupla na tabela PESSOA.
Todas estão corretas.
Todas estão incorretas.
Apenas I e IV estão corretas.
Apenas II e III estão corretas.
Apenas III e IV estão corretas.
Na linguagem SQL, qual operador pode ser utilizado para combinar o conjunto de resultados de duas ou mais instruções SELECT, permitindo valores duplicados?
UNION ALL
GROUP BY
ANY
FULL JOIN
DISTINCT
Qual o resultado correto ao executar o comando SQL abaixo?
SELECT ALUNO.Matricula, ALUNO.Nome, CURSO.Nome AS Curso, SUM(DISCIPLINA.Carga_horaria) AS "Total de horas"
FROM ALUNO, ALUNO_CURSA, DISCIPLINA, CURSO
WHERE ALUNO.Matricula = ALUNO_CURSA.Cod_aluno
AND ALUNO_CURSA.Cod_disciplina = DISCIPLINA.Codigo
AND DISCIPLINA.Cod_curso = CURSO.Codigo
GROUP BY ALUNO.Matricula, CURSO.Nome
ORDER BY ALUNO.Nome;
Matricula | Nome | Curso | Total de horas |
1001 | Carolina Souza | Ciência da Computação | 380 |
1002 | Jorge Andrade | Ciência da Computação | 180 |
1003 | Cassio Gomes | Análise de Sistemas | 240 |
Matricula | Nome | Curso | Total de horas |
1001 | Carolina Souza | Ciência da Computação | 560 |
1003 | Cassio Gomes | Análise de Sistemas | 240 |
ALUNO.Matricula | ALUNO.Nome | Curso.Nome | Total de horas |
1001 | Carolina Souza | Ciência da Computação | 380 |
1003 | Cassio Gomes | Análise de Sistemas | 240 |
1002 | Jorge Andrade | Ciência da Computação | 180 |
Matricula | Nome | Curso | Total de horas |
1001 | Carolina Souza | Ciência da Computação | 200 |
1001 | Carolina Souza | Ciência da Computação | 180 |
1003 | Cassio Gomes | Análise de Sistemas | 240 |
1002 | Jorge Andrade | Ciência da Computação | 180 |
Matricula | Nome | Curso | Total de horas |
1001 | Carolina Souza | Ciência da Computação | 380 |
1003 | Cassio Gomes | Análise de Sistemas | 240 |
1002 | Jorge Andrade | Ciência da Computação | 180 |
Considere a execução do seguinte script SQL, criado para executar em um ambiente PostgreSQL, versão 15, para responder à Questão 28.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | CREATE TABLE Titulacao ( id SERIAL PRIMARY KEY, nome VARCHAR (50) NOT NULL );
CREATE TABLE Funcionario ( id SERIAL PRIMARY KEY, nome VARCHAR (255) NOT NULL, titulacao_id INTEGER NOT NULL, salario DECIMAL(10,2) NOT NULL, FOREIGN KEY (titulação_id) REFERENCES Titulacao (id) ON DELETE CASCADE ON UPDATE CASCADE );
INSERT INTO Titulacao (id, nome) VALUES (1, 'Especialização'), (2, 'Mestrado'), (3, 'Doutorado');
INSERT INTO Funcionario (nome, titulacao_id, salario) VALUES ('João Silva’, 1, 3000.00), ('Maria Santos', 2, 5500.00), ('Pedro Oliveira’, 3, 7500.0600), ('Luciana Pereira’, 2, 5500.0060), ('Felipe Souza', 1, 3000.00);
delete from Titulacao where nome ilike 'Mestrado’ |
Ao finalizar a execução do script acima
ocorre erro de violação de chave estrangeira, na linha 29, e o registro não é excluído.
o registro da tabela “Titulacao” é excluído e a chave estrangeira “titulacao_id” na tabela “Funcionario” receberá o valor nulo.
o registro da tabela “Titulacao” é excluído, e a chave estrangeira “titulacao_id”, na tabela “Funcionario”, receberá o id da última “Titulacao” criada.
o registro da tabela “Titulacao” é excluído, e todos os registros da tabela “Funcionario” vinculados à “Titulacao” excluída também serão excluídos.
Em ORACLE (versão de referência: 9i), temos dois tipos de cursores (implícito e explícito). Para ambos os tipos há quatro atributos que podem ser utilizados em código pl/sql, que são:
sql%rowcount • sql%found • sql%notfound • sql%isopen
sql%countline • sql%find • sql%notfound • sql%isopen
sql%rowcount • sql%find • sql%notopen • sql%isopen
sql%rowcount • sql%found • sql%clear • sql%open
sql%count • sql%found • sql%is • sql%open
A linha em SQL, que deverá ser executada somente para exibir os nomes das pessoas matriculadas no Campus de Capanema, é:
SELECT * FROM ALUNO WHERE CAMPUS='CAPANEMA' AND CURSANDO=1.
SELECT NOME FROM ALUNO WHERE CAMPUS='CAPANEMA' & CURSANDO=1.
SELECT * FROM ALUNO WHERE CAMPUS='CAPANEMA' & CURSANDO=1.
SELECT * FROM ALUNO WHERE CAMPUS='CAPANEMA' | CURSANDO=1.
SELECT NOME FROM ALUNO WHERE CAMPUS='CAPANEMA' AND CURSANDO=1.
No PostgreSQL 14, as funções de controle de recuperação fornecem informações sobre o status atual de um servidor em espera e podem ser executadas tanto durante a recuperação quanto durante o funcionamento normal. É uma função de controle de recuperação:
pg_current_wal_flush_lsn ().
pg_last_wal_receive_lsn ().
pg_reload_conf ().
pg_export_snapshot ().
pg_is_in_recovery.extension ().
No SQL o comando para selecionar de uma tabela pessoa os 10 primeiros indivíduos com nome e idade igual ou superior a 18, ordenados pelo nome é:
SELECT nome, idade FROM pessoa WHERE idade >= 18 ORDER BY nome LIMIT 10;
SELECT pessoa FROM nome WHERE idade >= 18 ORDER nome LIMIT 10;
SELECT nome, idade INTO pessoa WHERE idade >= 18 ORDER BY nome LIMIT “10”;
SELECT nome, idade INTO pessoa WHERE idade >= 18 ORDER nome LIMIT 10;
SELECT pessoa, nome, idade WHERE idade >= 18 ORDER BY nome LIMIT “10”;
Considere a seguinte tabela de um banco de dados relacional:
Cliente (CPF, Nome, Peso)
O comando para excluir os clientes de peso superior a 80 kg é (supondo o atributo peso expresso em kg) é:
DELETE Peso.Cliente > 80;
DELETE Cliente.Peso > 80;
DELETE FROM Cliente
WHERE Peso > 80;
DELETE Peso > 80
FROM Cliente;
DELETE FROM Cliente
WHERE Peso INF 80;
Considere a execução do seguinte comando SQL, criado para executar em um ambiente PostgreSQL, versão 15.
1 2 3 4 5 6 7 8 9 10 11 | update Filme set valor = valor * 1.2 from ( select Filme.id from Filme inner join Genero on Genero.id = Filme.genero_id where not exists ( select * from AluguelFilme where AluguelFilme.filme_id = Filme.id ) and Genero.nome = 'Drama' ) as sub_consulta where Filme.id = sub_consulta.id |
Com base nessa execução, é correto afirmar:
ao executar a expressão é retornado um erro de sintaxe na linha 6.
ao executar a expressão é retornado um erro na linha 11, informando que a tabela sub_consulta não existe fisicamente.
a expressão atualiza a tabela Filme, aumentando o valor dos filmes do gênero Drama que nunca foram alugados, em 20%.
a expressão atualiza a tabela Filme, aumentando o valor dos filmes do gênero Drama que não existem na tabela Aluguel, em 20%.
Na DDL, que é uma linguagem declarativa, é descrito o que se deseja fazer, em vez de como fazê-lo, como comandos para definir tabelas e procedures, tal qual exemplificado a seguir.
CREATE TABLE <tablename> (col1 int, col2 int, col3 int)
Certo
Errado
PL/SQL é uma linguagem estruturada em blocos, elemento fundamental para se escrever um código.
Em PL/SQL, um bloco é delimitado pelas palavras reservadas:
BEGIN END;
START STOP;
OPEN CLOSE;
LOOP END LOOP;
DECLARE EXCEPTION.
Considere o seguinte trecho de código escrito em SQL:
create table Concurso (
ID integer not null primary key,
Nome_Concurso varchar(20)
);
Considerando as informações apresentadas, assinale a alternativa correta.
A tabela criada possui três atributos.
O comando utilizado para a criação de tabela pertence ao grupo de comandos de manipulação de dados.
O termo primary key está relacionado com o tipo de dado “ID” e indica que o campo deve ser preenchido.
Varchar(20) se refere a um tipo de dado Caractere de tamanho variável com até 20 caracteres.
Os termos integer not indicam que o campo pode receber números inteiros e não inteiros.
NVL e NVL2 são funções que ORACLE disponibiliza para serem utilizadas nas consultas. Analise as assertivas abaixo e assinale a alternativa correta.
I. NVL2(E1,E2) especifica que se E1 for nulo, a função retornará E2, caso contrário, retornará E1.
II. NVL(E1,E2,E3) especifica que se E1 for nulo, a função retornará E3, caso contrário, retornará E2.
III. NVL e NVL2 são usadas quando o valor de um campo de uma tupla pode retornar NULL.
Todas estão corretas.
Todas estão incorretas.
Apenas I está correta.
Apenas II está correta.
Apenas III está correta.