

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.
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”?
select obter_candidatos();
select * from obter_candidatos;
select * from obter_candidatos();
execute obter_candidatos;
select * from tables(obter_candidatos());
O controle de acesso dos usuários ao banco de dados baseado em papéis (roles) permite
apenas a atribuição de vários privilégios a vários usuários.
apenas a revogação de vários privilégios de vários usuários.
a atribuição e a revogação de vários privilégios a vários usuários
a atribuição e a revogação de um único privilégio a vários usuários.
a atribuição e a revogação de vários privilégios a um único usuário.
Ao se trabalhar com Triggers, tem-se à disposição dois “pseudo registros” (:OLD e :NEW), que são utilizados para realizar as mais diversas comparações entre os atributos. O Banco de Dados (MYSQL) impõe restrição para seu uso conforme o tipo de Evento. No evento INSERT está disponível
apenas :NEW
apenas :OLD
tanto :OLD como :NEW
um terceiro evento conhecido como :THOUBLE
apenas 2 eventos quando a tupla não possuir chave estrangeira
Considere um banco de dados relacional com as duas tabelas descritas a seguir.
Funcionario (id_func, nome_func, cod_dep_func, sal_func) Departamento (id_dep, nome_dep)
Considerando as tabelas descritas acima, analise o seguinte comando SQL:
Select a.nome_func, b.nome_dep from funcionario a,
departamento b
where a.cod_dep_func = b.id_dep
and a.sal_func > 10000
and a.cod_dep_func in (select e.cod_dep_func from
funcionario e
group by e.cod_dep_func
having count (*) > 2)
O resultado do comando SQL apresentado acima é:
Funcionários que ganham mais de R$10.000,00 e seus respectivos departamentos.
Funcionários e seus respectivos departamentos, em departamento com mais de duas pessoas e que ganham mais de R$ 10000, 00.
Funcionários listados por departamento em departamentos que possuem duas pessoas.
Funcionários que ganham mais de R$10000,00, em departamentos com mais de duas pessoas.
Departamentos com mais de duas pessoas que ganham mais de R$ 10000,00.
Em um banco de dados aberto e em condições ideais, uma tabela chamada processo possui os registros abaixo.

O comando digitado foi:
Em um banco de dados, um objeto é implementado para controlar uma redundância. Por essa característica, esse objeto é denominado:
ddl.
view.
trigger.
built-in function.
stored procedure.
Em uma tabela de banco de dados, cada linha é chamada de:
fonte
código
registro
categoria
Considere as instruções PL/SQL a seguir
CREATE OR REPLACE FUNCTION imposto(valor IN NUMBER)
RETURN NUMBER IS
BEGIN
RETURN (valor * 0.27);
END imposto;
/
SELECT id, nome, renda, imposto(renda) FROM empregados WHERE departamento=1;
Pode-se concluir que estas instruções
estão incorretas, pois não é possível chamar uma função a partir de um SELECT.
estão corretas e, como resultado, serão exibidos o id, nome, renda e o imposto de 0.27% calculado sobre a renda, de todos os funcionários.
estão incorretas, pois a variável valor não foi declarada no interior da função.
estão corretas e, como resultado, serão exibidos o id, nome, renda e o imposto de 27% calculado sobre a renda, de todos os funcionários do departamento 1.
estão incorretas, pois funções podem receber parâmetros, mas não podem retornar valores.

Considerando-se que os dois códigos PL/SQL são executados em um SGBD Oracle, assinale a opção que apresenta o conteúdo da tabela de nome tabela_trt.





Assinale a opção que indica a cláusula PL/SQL que se refere à seção executável na qual são descritas instruções procedimentais e SQL, sendo indispensável e obrigatória.
DECLARE.
BEGIN END.
EXCEPTION.
INSERT.
CREATE.
Você gerencia um servidor de banco de dados com o SQL Server 2008. O servidor está configurado para autenticação do Windows.
Um procedimento armazenado (Stored Procedure), nomeado como “sp_send_dbmail” no banco de dados AccountDB, serve para enviar e-mails. O Stored Procedure envia correio com êxito quando você o executa. Jane, uma usuária, tenta executar o mesmo Stored Procedure e recebe o seguinte erro:
Permissão negada em sp_send_dbmail (Permission denied on sp_send_dbmail).
É necessário habilitar Jane para que ela possa executar o Stored Procedure.
O que você deve fazer?
Adicionar Jane à função de banco de DatabaseMailUserRole no AccountDB.
Criar um perfil do Database Mail para Jane.
Criar um perfil SQL Mail para Jane.
Adicionar Jane à função de banco de DatabaseMailUserRole no msdb.
Criar um perfil SQL Mail para Jane no msdb.
A linguagem procedural, extensão da linguagem padrão SQL (Structured Query Language), para o SGBD (Sistema Gerenciador de Banco de Dados) Oracle da Oracle Corporation:
PL/SQL
Entry-SQL
T-SQL
Big/SQL
Suponha que se deseje saber o tipo, a quantidade e o valor médio dos vinhos em estoque que tenham de três a mais unidades. No nosso banco de dados obteríamos a seguinte tabela:
+---------------+------------+--------+ | Tipo do Vinho | Quantidade | Média | +---------------+------------+--------+ | branco | 3 | 261.0 | | tinto | 3 | 215.7 | +---------------+------------+--------+ |
Assinale a sequência de comandos que retorna esta tabela
SELECT
tipoVinho AS `Tipo do Vinho`,
COUNT(*) AS `Quantidade`,
CAST(AVG(precoVinho) AS DECIMAL(5,1)) AS Média
FROM vinhos
GROUP BY tipoVinho WHERE COUNT(*) >=3;
SELECT
tipoVinho AS `Tipo do Vinho`,
COUNT(*) AS `Quantidade`,
CAST(AVG(precoVinho) AS DECIMAL(5,1)) AS Média
FROM vinhos
GROUP BY tipoVinho HAVING COUNT(*) >=3;
SELECT
tipoVinho AS `Tipo do Vinho`,
COUNT(*) AS `Quantidade`,
CAST(AVG(precoVinho) AS DECIMAL(5,1)) AS Média
FROM vinhos
GROUP BY tipoVinho IF Quantidade >=3;
SELECT
tipoVinho AS `Tipo do Vinho`,
COUNT(*) AS `Quantidade`,
CAST(AVG(precoVinho) AS DECIMAL(5,1)) AS Média
FROM vinhos
GROUP BY tipoVinho HAVING Quantidade >=3;
SELECT
tipoVinho AS `Tipo do Vinho`,
COUNT(*) AS `Quantidade`,
CAST(AVG(precoVinho) AS DECIMAL(5,1)) AS Média
FROM vinhos
GROUP BY tipoVinho WHERE Quantidade >=3;
Para cumprir metas de CRM, uma das regras de negócio da Casan é que toda vez que um novo usuário for cadastrado no sistema da empresa, logo em seguida, ele deverá receber um email de boas vindas. Sabe-se que o cadastro dos clientes fica em uma tabela de nome CLIENTE e que, quando uma mala direta é enviada, é na tabela de nome EMAIL_ CLIENTE. O administrador do banco de dados Oracle 10g convenceu a sua equipe em tratar essa necessidade dentro do próprio servidor de banco de dados e, ainda, utilizando os recursos poderosos da linguagem PL/SQL. Portanto, uma forma sofisticada de resolver essa questão é por meio da implementação de
trigger.
select.
function.
update.
insert.
No PL/SQL, os procedures são normalmente utilizados para executar ações. Sobre os procedures, é correto afirmar:
Quando definidos como standalone, são criados utilizando-se o comando CREATE ALONE.
Contêm um cabeçalho, uma seção declarativa, uma seção executável e uma seção obrigatória de tratamento de exceções
Se estiverem sendo usados com o Oracle Forms ou Oracle Reports, eles não poderão ser compilados.
São blocos nomeados que não podem aceitar parâmetros ou argumentos.
São compilados e armazenados no banco de dados como objetos de esquema.
Na linguagem SQL, não existe a operação de divisão relacional da álgebra relacional. Analise as tentativas de se implementar a divisão relacional, usando outros recursos da SQL e atribua V para as tentativas que funcionam e F para as que não funcionarem – seja por estarem logicamente erradas, seja por causarem erros de compilação ou execução.
( ) select Y
from R
where X in (
select X
from S
)
group by Y
having count(*) = (
select count(*)
from S
);
( )select distinct a.Y
from R as a
where not exists (
select *
from S as b
where not exists (
select *
from R as c
where (c.Y=a.Y) and (c.X=b.X)
)
);
( )select P.Y
from R as P, S as T
where P.X = T.X
group by P.Y
having count(P.Y) = (select
count(X) from S);
A sequência das atribuições, de cima para baixo, é:
F, F, F.
F, V, V.
V, F, V.
V, V, F.
V, V, V.
Na linguagem PL/SQL, geralmente os blocos obedecem uma mesma estrutura com seções. A seção onde as instruções procedimentais e SQL são inseridas recebe o nome de:
DECLARE.
BEGIN.
EXCEPTION.
END.
Em SQL, são procedimentos executados de forma automática sempre quando ocorre uma certa ação do usuário, por exemplo, uma inserção em uma tabela.
É uma definição para:
Triggers
Deletes
Views
Inserts
No PostGreSQL, a linguagem PL/pgSQL pode ser utilizada para definir procedures que são executadas como triggers, quando várias “special variables” são criadas, no escopo do bloco mais externo, e tornam-se disponíveis para uso no código da procedure.
Nesse contexto, analise as seguintes afirmativas sobre algumas dessas variáveis e o funcionamento de triggers no PostgreSQL:
I. A variável NEW contém um valor booleano que indica se o registro objeto do trigger está sendo incluído (true) ou não (false).
II. A variável NEW contém os campos de um registro que está sendo incluído (insert) ou alterado (update).
III. A variável TG_OP contém uma string que determina o nome da operação que desencadeou o trigger (insert, update, etc.).
IV. Na declaração de um trigger, as opções FOR EACH ROW e FOR EACH STATEMENT são equivalentes, tendo sido mantidas apenas para efeito de compatibilidade com versões anteriores.
Está correto somente o que se afirma em:
I e III;
I, II e III;
II e III;
II e IV;
III e IV.