

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.
Em bancos de dados SQL, para excluir de uma tabela chamada clientes apenas o cliente cujo conteúdo do campo CPF for "154.178.187-12" utiliza-se a instrução:
REMOVE FROM clientes WHO CPF= "154.178.187-12";
DELETE FROM clientes WHERE CPF= "154.178.187-12";
ERASE FROM clientes WHO CPF.EQUALS("154.178.187- 12");
DELETE * FROM clientes LIKE CPF="154.178.187-12";
ERASE FROM clientes WHERE CPF= "154.178.187-12";
Sobre linguagens de consulta em banco de dados (DML), a função AVG no banco de dados PostgreSQL é utilizada para:
Agrupar vários elementos repetidos de uma consulta.
Efetuar a ordenação dos dados de uma consulta.
Calcular a média simples dos valores numéricos de uma consulta.
Processamento de cláusulas entre junção interna de dados.
Um desenvolvedor da Casan pediu ajuda para o administrador de banco de dados para a construção de um SQL que apresente o nome e o endereço de clientes da empresa que estão acima da média de consumo de água. O DBA solucionou esse problema por meio de uma subquery. Sabendo que as estruturas das tabelas são as apresentadas em (1) e (2), assinale a alternativa que apresenta corretamente o código da subquery utilizada pelo DBA.
CLIENTES | |||||
cpf | nome | endereco | telefone | UF | cidade |
(1) | |||||
CONSUMO_CLIENTES | ||
cpf | data | valor_consumo |
(2) | ||
SELECT c.nome, c.endereco
FROM CLIENTES c
WHERE c.cpf = c.cpf
AND c.valor_consumo > (SELECT AVG(valor_consumo)
FROM CONSUMO_CLIENTES);
SELECT c.nome, c.endereco
FROM CLIENTES c, CONSUMO_CLIENTES cc
WHERE cc.valor_consumo > (SELECT AVG(valor_consumo)
FROM CONSUMO_CLIENTES);
SELECT c.nome, c.endereco
FROM CLIENTES c, CONSUMO_CLIENTES cc
WHERE c.cpf = cc.cpf
AND cc.valor_consumo > (SELECT AVG(valor_consumo)
FROM CONSUMO_CLIENTES);
SELECT c.nome, c.endereco
FROM CLIENTES c, CONSUMO_CLIENTES cc
WHERE (SELECT AVG(valor_consumo)
FROM cc);
SELECT c.nome, c.endereco
FROM CLIENTES c
WHERE (SELECT AVG(valor_consumo)
FROM CONSUMO_CLIENTES);
Seja a tabela a seguir, escrita segundo o modelo relacional de dados.
FUNC (codigo, nome, logradouro, salario), em que código é a chave primária da tabela FUNC |
.
A consulta que retorna todos os dados de funcionários de FUNC que ganham mais de mil reais, ordenada por nome, é
SELECT (SALARIO > 1000) FROM FUNC GROUP BY nome.
SELECT (SALARIO > 1000) FROM FUNC ORDER BY nome.
SELECT * FROM FUNC WHERE (SALARIO>1000) ORDER BY nome.
SELECT * FROM FUNC WHERE (SALARIO>1000) GROUP BY nome.
Ao ser executado um comando SQL foram exibidos os seguintes dados:
Órgão | Total |
PRODATER | 200000 |
SEMAE | 900000 |
SEMDUH | 2500000 |
SEMEC | 1000000 |
Pode-se concluir, corretamente, que o comando executado foi
SELECT SiglaOrgao as Órgão, AVG(ValorObra) as Total from obra GROUP BY SiglaOrgao;
SELECT SiglaOrgao as Órgão, SUM(ValorObra) as Total from obra GROUP BY SiglaOrgao;
SELECT SiglaOrgao as "Órgão", COUNT(ValorObra) as "Total" from obra GROUP BY SiglaOrgao;
SELECT SiglaOrgao as Órgão, SUM(ValorObra) as Total from obra ORDER BY SiglaOrgao;
SELECT SiglaOrgao as Órgão, SUM(ValorObra) as Total from obra;
Um Analista de TI da Copergás deseja excluir de um banco de dados aberto e em condições ideais todos os produtos da tabela produto que possuem no campo nome valores terminados em 'ão'. Para isso, deverá utilizar a instrução SQL
DELETE * FROM produto WHERE nome LIKE '%ão';
DELETE FROM produto WHERE nome CONTAINS '%ão';
DELETE FROM produto WHERE nome LIKE '%ão';
DELETE * FROM produto WHERE nome LIKE '*ão';
DELETE FROM produto WHERE nome = '%ão';
A cláusula HAVING foi adicionada em SQL/ TSQL porque:
GROUP BY não permite a agregação em nível de coluna.
não é possível utilizar SELECT com a função COUNT.
WHERE não pode ser utilizado com funções de agregação.
permite agregação sem comprometer o desempenho do banco de dados.
Considere que a seguinte tabela de produto foi criada em um banco de dados relacional e ainda não possui nenhum registro.

O que acontecerá ao tentar inserir um registro com o seguinte script SQL?
INSERT INTO PRODUTO(ID,DESCRICAO) VALUES (99,'MAÇANETA');
Não será possível inserir o registro porque não foi definida uma chave primária para a tabela PRODUTO.
Não será possível inserir o registro porque as colunas PRECO e ID_TIPOPRODUTO não foram especificadas no SQL.
O registro será incluído na tabela PRODUTO e as colunas PRECO e ID_TIPOPRODUTO assumirão o valor 0 (zero).
O registro será incluído na tabela PRODUTO e as colunas PRECO e ID_TIPOPRODUTO assumirão o valor NULL (nulo no banco de dados).
Não será possível incluir o registro porque o valor 99 deveria estar entre aspas.
Utilizar uma instrução SELECT na cláusula WHERE de outra instrução SELECT, recebe o nome de:
View.
Join.
Crosstab.
Subquery.
Nos bancos de dados SQL, para exibir todos os registros cadastrados em uma tabela chamada clientes utiliza-se a instrução:
SHOW ALL clientes;
SELECT * TO clientes;
SELECT ALL clientes;
SHOW * FROM clientes;
SELECT * FROM clientes;
Sobre linguagens de definição e manipulação de dados, é incorreto afirmar que:
um comando DML pode alterar dados e metadados.
TRUNCATE e DELETE excluem registros de uma tabela e são comandos DDL e DML, respectivamente.
uma consulta SQL para exibir valores acima da média necessita de subconsulta.
junções internas podem ser substituídas por subconsultas.
junções externas podem ser utilizadas para exibir tuplas que não estão relacionadas com alguma tupla da mesma ou de outra tabela.
Ao ser executado um comando SQL foram exibidos os seguintes dados:
Nome do órgão | Descrição da obra | Valor |
SERVIÇO MUNICIPAL DE ÁGUAS E ESGOTOS DE TERESINA | Estação de tratamento de água | 100000 |
SERVIÇO MUNICIPAL DE ÁGUAS E ESGOTOS DE TERESINA | Estação de tratamento de esgotos | 800000 |
EMPRESA TERESINENSE DE PROCESSAMENTO DE DADOS | Reforma do Data Center | 200000 |
SECRETARIA DE DESENVOLVIMENTO URBANO | Construção de moradias populares | 2000000 |
SECRETARIA DE DESENVOLVIMENTO URBANO | Correção de buracos no asfalto | 500000 |
SECRETARIA MUNICIPAL DE EDUCAÇÃO | Construção de escola | 1000000 |
O comando executado foi:
SELECT orgao.NomeOrgao as "Nome do órgão", obra.DescricaoObra as "Descrição da obra", obra.ValorObra as Valor FROM orgao, obra WHERE orgao.SiglaOrgao = obra.SiglaOrgao;
SELECT NomeOrgao as "Nome do órgão", DescricaoObra as "Descrição da obra", ValorObra as Valor FROM orgao AND obra WHERE orgao.SiglaOrgao LIKE obra.SiglaOrgao;
SELECT orgao.NomeOrgao, obra.DescricaoObra, obra.ValorObra FROM obra, orgao WHERE obra.SiglaOrgao = orgao.SiglaOrgao;
SELECT orgao.NomeOrgao as "Nome do órgão", obra.DescricaoObra as "Descrição da obra", obra.ValorObra as Valor FROM orgao, obra WHERE orgao.SiglaOrgao AND obra.SiglaOrgao;
SELECT orgao.NomeOrgao as Nome do órgão, obra.DescricaoObra as Descrição da obra, obra.ValorObra as Valor FROM orgao, obra WHERE orgao.SiglaOrgao = obra.SiglaOrgao;
Acerca da Linguagem de Definição de Dados (DDL) e Linguagem de Manipulação de Dados (DML), relacione corretamente as colunas.
1. Linguagem de Definição de Dados (DDL).
2. Linguagem de Manipulação de Dados (DML).
( ) DROP.
( ) SELECT.
( ) ORDER BY.
( ) ALTER.
( ) WHERE.
A sequência está correta em
1, 1, 2, 2, 1.
1, 2, 2, 1, 2.
2, 2, 1, 1, 2.
2, 1, 1, 2, 1.
No SQL Server 2008, para fazer uma contagem das linhas de uma tabela chamada prova utiliza-se o comando:
COUNT(*) FROM prova;
SELECT COUNT(ROWS(*)) FROM prova;
SELECT ROWS(*) FROM prova;
SELECT COUNT(*) FROM prova;
COUNT ROWS prova;
Em determinadas situações não é desejado que todos os usuários vejam o modelo lógico inteiro do banco de dados, é necessário que certos dados sejam ocultados. Um mecanismo para implementar esta situação é a utilização de views. Considerando este contexto, analise as afirmativas.
I. A relação da view contém tuplas do resultado da consulta, mas não é previamente computada e armazenada. Sempre que a relação da view é acessada, suas tuplas são criadas computando o resultado da consulta.
II. Views materializadas são relações de views armazenadas, cujos sistemas de banco de dados que a geraram, garantem que se as relações reais usadas mudarem, a view será atualizada.
III. Uma view definida pode ser utilizada em uma nova consulta SQL.
IV. Triggers podem ser utilizados para manter views materializadas.
Estão corretas as afirmativas
I, II, III e IV.
II e III, apenas.
I, II e III, apenas.
I, II e IV, apenas.
Considere o modelo conceitual na figura abaixo. Considere também os conteúdos das tabelas Setor, Funcionario e Funcao descritos nas tabelas abaixo. A cláusula correta SQL que seleciona os funcionários com seus respectivos códigos e nome da função dos setores 1 e 3 é:

Setor | Codigo | Nome |
1 | Acadêmico | |
2 | Administrativo | |
3 | Financeiro |
Funcao | Codigo | Nome | Salario |
1 | Professor | 5000,00 | |
2 | Administrador | 4000,00 | |
3 | Advogado | 4000,00 | |
4 | Engenheiro | 4000,00 | |
5 | Analista | 4000,00 | |
6 | Técnico | 2000,00 | |
7 | Auxiliar | 1000,00 |
Funcionario | Codigo | Nome | Nascimento | CodSet | CodFunc |
1 | João Figueiredo | 10/09/59 | 1 | 3 | |
2 | Paulo André | 30/09/72 | 2 | 1 | |
3 | Jackson Antunes | 25/02/79 | 1 | 2 | |
4 | Carlos Antônio | 08/01/81 | 3 | 5 | |
5 | Pedro Henrique | 09/11/80 | 2 | 2 | |
6 | Jailson Souza | 15/06/83 | 1 | 1 | |
7 | Fábio Mendes | 19/04/85 | 3 | 3 | |
8 | Ana Júlia | 05/05/85 | 2 | 1 | |
9 | Silvana Laers | 19/12/79 | 1 | 2 |
SELECT Funcionario.Codigo, Funcionario.Nome, Funcao.Nome FROM Funcionario, Funcao WHERE Funcao.Codigo = Funcionario.CodFunc AND (Funcionario.CodSet= 1 AND Funcionario.CodSet = 3).
SELECT Funcionario.Codigo, Funcionario.Nome, Funcao.Nome FROM Funcionario, Funcao WHERE Funcao.Codigo = Funcionario.CodFunc AND (Funcionario.CodFunc= 1 AND Funcionario.CodSet = 3).
SELECT Funcionario.Codigo, Funcionario.Nome, Funcao.Nome FROM Funcionario, Funcao WHERE Funcao.Codigo = Funcionario.CodFunc AND (Funcionario.Codigo= 1 AND Funcionario.CodFunc = 3).
SELECT Funcionario.Codigo, Funcionario.Nome, Funcao.Nome FROM Funcionario, Funcao WHERE Funcao.Codigo = Funcionario.CodFunc AND (Funcionario.Codigo= 1 AND Funcionario.Codigo = 3).
SELECT Funcionario.Codigo, Funcionario.Nome, Funcao.Nome FROM Funcionario, Funcao WHERE Funcao.Codigo = Funcionario.Codigo AND (Funcionario.CodSet= 1 AND Funcionario.CodSet = 3).
Em PL/SQL, triggers DML podem ser criadas usando a instrução CREATE TRIGGER, cuja sintaxe é apresentada a seguir:
CREATE [OR REPLACE] TRIGGER trigger_name
timing
event1 [OR event2 OR event3]
ON object_name
[REFERENCING OLD AS old | NEW AS new]
FOR EACH ROW
WHEN (condition)]]
DECLARE]
BEGIN
... trigger_body
[EXCEPTION . . .]
END [trigger_name];
O timing da sintaxe do trigger indica quando o trigger será disparado em relação ao evento de trigger. Os valores permitidos são BEFORE, AFTER e
NOW.
ONCE.
AFTER NOW.
BEFORE NOW.
INSTEAD OF.
Fazem parte da linguagem de manipulação de dados – DML, as seguintes instruções SQL:
ALTER, DROP e DELETE.
SELECT, UPDATE e ALTER.
DROP, DELETE e SELECT.
UPDATE, ALTER E DROP.
DELETE, SELECT e UPDATE.
Um banco de dados contém uma tabela chamada funcionario que possui os campos:
id - int (primary key) not null
nome – varchar(40)
salario - double
Nesta tabela há cerca de 2000 funcionários cadastrados.
Certo dia o gerente da empresa pediu um relatório contendo, apenas, os dados dos funcionários cujo nome termina com a palavra Silva. Para obter tal relatório deve-se utilizar a instrução
SELECT * FROM funcionario WHERE nome LIKE '*silva';
SELECT * FROM funcionario WHERE nome='%silva';
SELECT * FROM funcionario LIKE nome='%silva';
SELECT * FROM funcionario WHERE nome LIKE '%silva';
SELECT * FROM funcionario LIKE nome='*silva';
Os comandos SQL abaixo fazem parte da categoria DML (Data Manipulation Language), EXCETO:
INSERT
UPDATE
DELETE
CREATE