

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.
No comando SELECT, pode-se utilizar funções de agregação (MIN, MAX, SUM, AVG, COUNT) que são aplicadas em um conjunto de tuplas. Analise as assertivas abaixo e assinale a alternativa correta.
I. Funções de agregação somente podem ser utilizadas junto com a cláusula GROUP BY.
II. As cláusulas HAVING e WHERE tem exatamente a mesma função.
III. A função AVG somente pode ser usada com campos numéricos.
Todas estão corretas.
Todas estão incorretas.
Apenas I está correta.
Apenas II está correta.
Apenas III está correta.
Na tabela de Curso, são armazenadas informações sobre nome, data de criação e total de alunos de um curso específico, sendo o código um campo autoincrementado com um número inteiro, todas as vezes que um curso é inserido no banco. Esse código é a chave primária desta tabela. A tabela Conceito armazena valores de conceito de curso, que só podem ser números inteiros entre 1 e 5, a data em que foram atribuídos, o código do conceito, gerado de modo análogo ao código de curso da tabela Curso, sendo a chave primária da tabela, e o código de curso a que o conceito se vincula, de modo que esse segundo código é a chave estrangeira responsável pela relação entre as tabelas Curso e Conceito. Qual das alternativas abaixo permite uma consulta em SQL cujo resultado seja uma lista apenas com os nomes de curso cujo conceito é maior ou igual a 2?
SELECT crs.nome, cct.conceito_curso
FROM curso as crs, conceito as cct
WHERE cct.conceito curso >= 2;
SELECT crs.nome, cct.conceito_curso
FROM curso as crs
INNER JOIN conceito as cct
ON crs.codigo = cct.fk codigo curso AND
cct.conceito curso > = 2;
SELECT crs.nome, cct.conceito_curso
FROM curso as crs
LEFT JOIN conceito as cct
ON crs.codigo = cct.fk_codigo_curso AND
cct.conceito_curso > = 2;
SELECT crs.nome, cct.conceito_curso
FROM curso as crs
RIGHT JOIN conceito as cct
ON crs.codigo = cct.fk_codigo_curso AND
cct.conceito_curso > = 1;
SELECT crs.nome, cct.conceito_curso
FROM curso as crs
WHERE crs.codigo = cct.fk_codigo_curso;
Considerando as tabelas apresentadas na Figura 2, assinale a alternativa que apresenta um comando SQL que retornará o nome de cada funcionário e o respectivo nome de seu superior.
SELECT F.NOME, F2.NOME
FROM FUNCIONARIO F, FUNCIONARIO F2
WHERE F.ID_FUNCIONARIO_SUPERIOR = F2.ID
SELECT NOME, F2.NOME
FROM FUNCIONARIO, FUNCIONARIO F2
WHERE ID = F2.ID_FUNCIONARIO_SUPERIOR
SELECT FUNC.NOME, SUP.NOME
FROM FUNCIONARIO FUNC, FUNCIONARIO SUP
WHERE FUNC.ID = SUP.ID
SELECT F1.NOME, F2.NOME
FROM FUNCIONARIO F1, F2
WHERE F.ID_FUNCIONARIO_SUPERIOR IS F2.ID
SELECT NOME NOME_FUNC, NOME NOME_SUP
FROM FUNCIONARIO
WHERE ID = ID_FUNCIONARIO_SUPERIOR
As permissões para acesso às estruturas e operações em um banco de dados são concedidas através do comando SQL GRANT. Considere o seguinte comando SQL:
GRANT ALL PRIVILEGES ON BUSINESS TO PEOPLE
Sobre esse comando SQL, analise as assertivas abaixo e assinale a alternativa correta.
I. PEOPLE pode ser um usuário ou uma ROLE.
II. O usuário poderá conceder seus privilégios sobre a tabela BUSINESS a outros usuários.
III. O usuário poderá fazer operações de INSERT, UPDATE ou DELETE na tabela BUSINESS.
IV. O usuário poderá criar uma TRIGGER sobre a tabela BUSINESS.
Todas estão corretas.
Todas estão incorretas.
Apenas II e III estão corretas.
Apenas III e IV estão corretas.
Apenas I, III e IV estão corretas.
Imagine que em um banco de dados ORACLE existe um usuário USUARIO1 e uma tabela de nome PROJETOS. Considere que o DBA emitiu o seguinte comando SQL nesse banco de dados:
GRANT ALL PRIVILEGES ON PROJETOS TO USUARIO1;
Analise as assertivas abaixo, sobre os privilégios concedidos a USUARIO1 com esse comando, assinalando V, se verdadeiras, ou F, se falsas.
( ) USUARIO1 pode remover tuplas da tabela PROJETOS.
( ) USUARIO1 pode conceder a outros usuários um ou mais privilégios recebidos sobre a tabela PROJETOS através de comandos GRANT.
( ) USUARIO1 pode definir um gatilho sobre a tabela PROJETOS.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
V – V – V.
F – V – F.
V – F – F.
F – F – V.
V – F – V.
Considere a instância da tabela fibo, anteriormente apresentada, depois de um conjunto de alterações errôneas.
P | N |
1 | 0 |
2 | 1 |
3 | 1 |
4 | 2 |
5 | 4 |
6 | 5 |
9 | 8 |
7 | 13 |
9 | 21 |
10 | 34 |
Considere ainda o comando SQL a seguir.
delete from fibo
where fibo.P > 2
and ( exists
(select * from fibo f
where f.P > fibo.P and f.N < fibo.N )
or
exists
(select * from fibo f
where f.P < fibo.P and f.N > fibo.N )
or
not exists
(select * from fibo f1, fibo f2
where fibo.P - 2 = f1.P
and fibo.P - 1 = f2.P
and fibo.N = f1.N + f2.N )
)
Assinale o número de linhas removidas da tabela fibo pela execução do comando acima com a presente instância.
0.
2.
4.
6.
8.
Considerando a tabela T da figura 1, analise a execução do comando SQL a seguir.
SELECT * FROM T t1 LEFT JOIN T t2 ON t1.A = t2.A and t1.B = t2.B and t1.C = t2.C |
Além da linha de títulos, o número de linhas produzidas pela execução desse comando é:
0;
4;
10;
13;
16.
Júlia é a administradora do banco de dados da empresa KASA, onde será implantado o novo sistema estratégico da empresa, para fornecimento de relatórios gerenciais em tempo real. No sistema antigo, o perfil GERENTE permitia acesso aos dados operacionais, para que eles fossem tratados em planilhas, mas agora os relatórios serão gerados a partir de visualizações específicas, diretamente na nova ferramenta.
Para impedir o acesso aos dados operacionais e permitir o acesso às novas visualizações, Júlia utilizou, respectivamente, os comandos:
Drop e Create;
Delete e Insert;
Rollback e Commit;
Revoke e Grant;
Alter e Use.
Analise o script de uma stored procedure no âmbito do SQL Server.
CREATE PROCEDURE TESTE
@CPF varchar(11),
@Produdo varchar(12)
AS
SELECT count(*) Contagem
FROM VENDA
WHERE CPF = @CPF
AND CodProdudo = @Produdo;
Nesse contexto, considere as três hipóteses de comandos que invocam o procedimento armazenado TESTE.
I.
EXECUTE TESTE '99999999900', '1000999';
II.
EXEC TESTE @CPF = '99999999900',
@Produdo = '1000999';
III.
EXECUTE TESTE @CPF = '99999999900' and
@Produdo = '1000999';
Está correto o que se apresenta em:
somente I;
somente I e II;
somente I e III;
somente II e III;
I, II e III.
Considere a seguinte tabela de um banco de dados relacional:
Aluno (ID, Nome, Curso)
O comando SQL para obter o nome e o curso dos alunos, com a condição de que o curso se inicie com a palavra Física é:
SELECT Nome, Curso
FROM Aluno
WHERE Curso == 'Física%';
SELECT Nome, Curso
FROM Aluno
WHERE Curso.'Física%';
SELECT Nome, Curso
FROM Aluno
WHERE Curso LIKE 'Física%';
SELECT Nome, Curso
FROM Aluno
WHERE Curso('Física%');
SELECT Nome, Curso
FROM Aluno
WHERE Curso = 'Física%';
Marque a alternativa que contém as linguagens que são utilizadas para manipular dados e definir as estruturas de dados em um banco de dados:
CDL e DDL
DML E DDL
TML e DML
DDL e CDL
DML e CDL
Dentro da temática Manipulação de dados em SQL, considere o texto a seguir e responda precisamente a qual condição estamos lidando – “…são uma espécie de configuração padrão de atributos que podem ser utilizados diversas vezes na definição de campos das tabelas de dados.” Diante do exposto, assinale a alternativa correta.
DDLi
DMLi
Domínio
View
Considere a Stored Procedure abaixo, criada no banco de dados MySQL.
delimiter /
......I
BEGIN
SELECT nomeAdv INTO nome FROM Advogado
WHERE numeroOABAdv = oab;
END//
delimiter;
CALL obterNome('28H418', @nome);
SELECT @nome AS NomeAdvogado;
Para que, ao executar esta sequência de comandos, seja exibido corretamente o nome do advogado Marcos Vieira Dias, cujo número OAB é 28H418, a lacuna I deve ser preenchida com
CREATE STORED PROCEDURE obterNome(CHAR(6) oab, CHAR(45) nome OUT)
CREATE PROCEDURE obterNome(IN oab VARCHAR(6), OUT nome VARCHAR(45))
CREATE PROCEDURE obterNome(VARCHAR(6) oab, VARCHAR(45) nome)
CREATE STORED PROCEDURE obterNome(IN oab CHAR(6), OUT nome CHAR(45))
CREATE PROCEDURE obterNome(String oab, String nome)
Qual das seguintes instruções SQL possivelmente contém um erro?
SELECT produto_id WHERE produto_id = 2010 AND Nome = 'SILVA';
SELECT * FROM produtos WHERE produto_id = 2003;
SELECT produto_id FROM produtos WHERE produto_id = 2006;
SELECT produto_id FROM produtos;
SELECT produto_id, preco FROM produtos;
Pode-se considerar que uma transação que atingiu o seu ponto de COMMIT garantiu suas propriedades de atomicidade e durabilidade.
Certo
Errado
No PostgreSQL 12, o pg_restore é um utilitário para restaurar um banco de dados de um arquivo criado pelo pg_dump. Assinale a opção que apresenta o argumento que deve ser inserido, ao fazer uso desse utilitário via linha de comando, para criar o banco de dados de destino, caso ele não exista, antes de restaurar nele.
--data-only
--create
--schema
--format
--index
Analise o trecho de código a seguir, escrito em SQL:
1 ALTER TABLE cliente
2 DROP CONSTRAINT pk_cliente;
3 ALTER TABLE cliente
4 DROP CONSTRAINT unique_email;
5 ALTER TABLE cliente
6 ALTER email SET NOT NULL;
7 ALTER TABLE cliente
8 ADD CONSTRAINT pk_cliente
9 PRIMARY KEY (email);
10 ALTER TABLE cliente
11 ADD CONSTRAINT unique_codigo_cliente
12 UNIQUE (codigo_cliente)
No código acima, são mostrados os comandos necessários para:
Alterar a coluna e-mail para opcional e a coluna codigo_cliente para obrigatória.
Excluir as colunas codigo_cliente e e-mail da tabela cliente.
Excluir, respectivamente, as restrições de chave estrangeira da coluna codigo_cliente e de chave primária da coluna e-mail.
Alterar as chaves da tabela cliente, fazendo com que a coluna e-mail passe a ser a chave primária e a coluna codigo_cliente passe a ser uma chave alternativa.
Definir a coluna e-mail como chave alternativa e excluir a coluna codigo_cliente.
Qual o caractere especial SQL que designa um parâmetro SQL?
#
$
&
@
%
Considere a execução dos seguintes comandos em SQL:
CREATE TABLE vendas (
id INT UNSIGNED NOT NULL
AUTO_INCREMENT PRIMARY KEY,
dat_venda DATETIME NOT NULL
DEFAULT CURRENT_TIMESTAMP,
vendedor VARCHAR(15) NOT NULL,
cliente VARCHAR(15) NOT NULL,
uf CHAR(2) NOT NULL DEFAULT 'RJ',
produto VARCHAR(15) NOT NULL
DEFAULT 'PROD1',
qtde INT NOT NULL,
valor_unitario FLOAT DEFAULT NULL);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-01', 'VEND001',
'CLI001', 'SP', 'PROD3', 2, 20);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-02', 'VEND001',
'CLI001', 'SP', 'PROD3', 3, 20);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-01', 'VEND002',
'CLI002', 'RJ', 'PROD1', 20, 5);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-05', 'VEND001',
'CLI001', 'SC', 'PROD3', 2, 20);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-06', 'VEND002',
'CLI002', 'MG', 'PROD2', 5, 10);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-05', 'VEND003',
'CLI004', 'RJ', 'PROD3', 2, 20);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-04', 'VEND003',
'CLI003', 'SC', 'PROD4', 10, 3);
SELECT V1.vendedor, V1.uf, COUNT(*) AS qtde_vendas,
SUM(V1.qtde*V1.valor_unitario) AS total_venda,
V2.media_venda
FROM vendas V1
INNER JOIN
(SELECT vendedor,
AVG(qtde* valor_unitario) AS media_venda
FROM vendas
GROUP BY vendedor
) V2
ON V2.vendedor = V1.vendedor
WHERE V1.dat_venda
BETWEEN '2023-01-01' AND '2023-01-04'
GROUP BY V1.vendedor, V1.uf
HAVING SUM(V1.qtde*V1.valor_unitario) > V2.media_venda
ORDER BY V1.vendedor;
Após a execução dos comandos apresentados, a quantidade de linhas que a consulta irá retornar é:
2;
3;
4;
6;
7.
Os SGBDs (Sistemas de Gerenciamento de Banco de Dados) ou DBMSs (Database Management Systems) são ferramentas fundamentais para o armazenamento, organização e recuperação eficiente de informações em aplicações de software. O primeiro passo é especificar esquemas conceituais e internos para o banco de dados e quaisquer mapeamentos entre os dois. Quando nenhuma separação estrita de níveis é mantida, uma linguagem é usada pelo DBA e pelos projetistas de banco de dados para definir ambos os esquemas. A linguagem mencionada é a Linguagem de:
definição de dados (DDL).
definição de visualização (VDL).
consulta estruturada (SQL).
manipulação de dados (DML).
definição de armazenamento (SDL).