Buscar

LINGUAGEM SQL (PARTE 2)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1.
		
Sabendo-se que existem dados de TCC cadastrados com datas de defesa que variam de 20/11/2012 até o dia de hoje, assinale qual das alternativas abaixo retornaria o mesmo resultado que o comando "SELECT * FROM TCC WHERE DTDEFESA IN ('21/11/2013', '22/11/2014');":
	
	
	
	SELECT * FROM TCC WHERE DTDEFESA BETWEEN '21/11/2013' AND '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA > '21/11/2013' AND < '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA = '21/11/2013' AND '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA => '21/11/2013' AND <= '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA BETWEEN ('21/11/2013'; '22/11/2014');
	
	
	
	 
		
	
		2.
		Em um projeto lógico de um sistema foi identificado que  um projeto é de um certo tipo. Assim, as relações abaixo foram definidas:
TIPO_PROJETO (ID_TIPO, NOME)
PROJETO (ID_PROJETO,  NOME,  DESCRICAO, ID_TIPO, VALOR) 
 
Conforme a linguagem SQL e as relações dadas, escolha a opção que mostre o nome  do projeto e nome do seu tipo, dos projetos que não possuam valor, bem como dos tipos que possuam mais do que cinco projetos.
	
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR =0 AND TP.ID_TIPO IN
(SELECT ID_TIPO
FROM PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR =0 AND TP.ID_TIPO =
(SELECT ID_TIPO
FROM PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR =0
GROUP BY ID_TIPO
HAVING COUNT(*) > 5;
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND VALOR IS NULL AND TP.ID_TIPO IN
(SELECT ID_TIPO
FROM TIPO_PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND VALOR IS NULL AND TP.ID_TIPO IN
(SELECT ID_TIPO
FROM PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras:
AREA (CODAREA, NOMEAREA)
LOCAL (CODLOCAL, CODAREA, NOMELOCAL)
TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO)
CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA)
Assinale a alternativa abaixo que representa uma consulta que exiba todos os dados de áreas e locais ordenados decrescentemente pelo nome do local.
	
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A INNER JOIN LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL ASC;
	
	
	SELECT * FROM AREA A INNER JOIN LOCAL L ON A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
	
	
	
	 
		
	
		4.
		Em relação as funções de grupo da linguagem SQL, marque a opção correta:
	
	
	
	SUM - contar o número de linhas.
	
	
	MAX - calcular a média aritmética.
	
	
	COUNT - retornar o maior valor dentre um grupo de valores.
	
	
	MIN - retornar o menor valor dentre um grupo de valores.
	
	
	AVG - somar um grupo de valores.
	
Explicação:
AVG(x) - Retorna o valor médio da coluna x.
SUM(x) - Retorna a soma da coluna x.
MAX(x) - Retorna o valor máximo da coluna x.
MIN(x) - Retorna o valor mínimo da coluna x.
COUNT(x) - Retorna o número de valores não nulos da coluna x.
	
	
	
	 
		
	
		5.
		Dada as tabelas: Pedido(Nr_pedido, Id_cliente, valor_total, data) Cliente(Id_cliente, nome, endereço, bairro, email, telefone), assinale a instrução em SQL que lista os clientes que possuem email do gmail.
	
	
	
	select nome from cliente where email like *@gmail.com
	
	
	select nome from cliente where email = ¿*@gmail.com
	
	
	select nome from cliente where email like @gmail.com*
	
	
	select nome from cliente where email like *gmail*
	
	
	select nome from cliente where email in *@gmail.com
	
	
	
	 
		
	
		6.
		A linguagem de banco de dados que é aceita em quase todos os Sistemas de Gerenciamento de Banco de Dados (SGBDs) é a SQL. Dessa forma, utilizando esta linguagem para conseguir filtrar valores resultantes de expressões agregadas, deve-se adicionar ao comando SQL a cláusula:
	
	
	
	SUM
	
	
	HAVING
	
	
	AVG
	
	
	WHERE
	
	
	SELECT
	
Explicação:
Having:  A cláusula having só é usada quando se deseja especificar um critério de pesquisa para um grupo ou uma agregação. HAVING pode ser usado somente com a instrução SELECT. HAVING é usado normalmente em uma cláusula GROUP BY.
SUM: A função sum(x) retorna a soma da coluna x.
Where: A cláusula Where estabelece uma condição que a linha deverá obedecer para que faça parte do conjunto resposta da consulta. No caso apenas retornam as linhas cujo deste da condição de como resposta verdadeiro.
Select:  Comando utilizado para recuperação dos dados de uma ou mais tabelas.
AVG: A função avg(x) retorna o valor médio da coluna x.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Considere a tabela definida pelo comando SQL abaixo.
Create table func (
nome varchar(50) not null,
salario money not null,
cod_depto int null);
Considere a consulta SQL abaixo:
Select nome, salario
from func
where salario > 900
and not cod_depto is null
order by salario
O requisito abaixo que não é atendido por esta consulta é:
	
	
	
	só considerar os registros que apresentem o atributo SALARIO maior que 900;
	
	
	listar a coluna SALARIO da tabela FUNC;
	
	
	apresentar o resultado em ordem alfabética.
	
	
	só considerar os registros que apresentem o atributo COD_DEPTO não nulo;
	
	
	listar a coluna NOME da tabela FUNC;
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		De acordo com a estrutura das tabelas abaixo, escolha a opção que mostre o nome do empregado, o nome do seu departamento, daquele que trabalha em departamento que possua mais do que cinco empregados e cujo salário seja superior a média salarial do seu departamento, através da linguagem SQL. O banco de dados é composto por 2 tabelas: a tabela EMP que contém dados dos empregados, cuja chave primária é MATRICULA  e a tabela DEPT que contém dados dos departamentos, cuja a chave primária é DEPTNO. A coluna GERENTE é chave estrangeira na tabela EMP, referente à própria tabela EMP. A coluna DEPTNO na tabela EMP é chave estrangeira, referente à tabela DEPT.
ESTRUTURA DAS TABELAS DO BANCO DE DADOS
TABELA EMP
Name                Null                   Type
----------------------------------------------
MATRICULA  NOT NULL      NUMBER(4)
NOME_EMP                            CHAR(10)
CARGO                                    CHAR (9)
GERENTE                                 NUMBER(4)
SALARIO                                 NUMBER(7,2)
COMISSAO                             NUMBER(7,2)
DEPTNO                                  NUMBER(2)
 
TABELA DEPT
Name                  Null                     Type
----------------------------------------------
DEPTNO           NOT NULL       NUMBER(2)
NOME_DEPT                              CHAR(14)
LOCALIZACAO                         CHAR(13)
	
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND COUNT(D.DEPTNO) > 5 AND E.SALARIO>
(SELECT AVG(SALARIO)
 FROM EMP
 WHERE  DEPTNO=E.DEPTNO);
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)> 5) AND E.SALARIO>(SELECT AVG(SALARIO)
                                                                          FROM EMP);
                                     
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BYDEPTNO
HAVING COUNT(*)> 5) AND E.SALARIO>AVG(SALARIO);
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO
GROUP BY DEPTNO
HAVING COUNT(*)> 5 AND E.SALARIO>(SELECT AVG(SALARIO)
                                      FROM EMP
                                      WHERE  DEPTNO=E.DEPTNO);
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)> 5) AND E.SALARIO>(SELECT AVG(SALARIO)
                                      FROM EMP
                                      WHERE  DEPTNO=E.DEPTNO);
	
	Gabarito
Coment.
	
	
	
	 
	 
	Não Respondida
	 
	 
	 Não Gravada
	 
	 
	Gravada
	
Exercício inciado em 09/05/2020 00:29:51.
			1.
		Qual o comando SQL deve ser utilizado para definir o resultado da seguinte situação: "Ao final do mês é preciso apresentar o total de vendas de clientes por venda".
	
	
	
	FROM
	
	
	ORDER BY
	
	
	WHERE
	
	
	GROUP BY
	
	
	HAVING
	
	
	
	 
		
	
		2.
		Em nosso Banco de Dados temos a tabela denominada Estoq_Regiao conforme a figura abaixo.
Queremos listar o conteúdo dessa tabela em ordem de quantidade (Qtde) de forma descendente. Assinale a alternativa que apresenta a instrução SQL correta:
	
	
	
	SELECT Estoq_Regiao INTO Regiao, Qtde, Vl_Unit ORDER DESC BY Qtde
	
	
	SELECT Regiao, Qtde, Vl_Unit FROM Estoq_Regiao ORDER DESC BY Qtde
	
	
	ORDER DESC BY Qtde FROM Estoq_Regiao SELECT Regiao, Qtde, Vl_Unit
	
	
	SELECT Regiao, Qtde, Vl_Unit FROM Estoq_Regiao ORDER BY Qtde DESC
	
	
	ORDER BY Qtde DESC SELECT Regiao, Qtde, Vl_Unit FROM Estoq_Regiao
	
	
	
	 
		
	
		3.
		Em um modelo de dados que descreve a publicação acadêmica de pesquisadores de diferentes instituições em eventos acadêmicos, considere as tabelas abaixo. DEPARTAMENTO (CodDepartamento, NomeDepartamento) EMPREGADO (CodEmpregado, NomeEmpregado, CodDepartamento, Salario) Na linguagem SQL, o comando mais simples para recuperar os códigos dos departamentos cuja média salarial seja maior que 2000 é
	
	
	
	SELECT CodDepartamento FROM EMPREGADO WHERE AVG (Salario) > 2000
	
	
	SELECT CodDepartamento FROM EMPREGADO WHERE AVG (Salario) > 2000 GROUP BY CodDepartamento
	
	
	SELECT CodDepartamento FROM EMPREGADO GROUP BY CodDepartamento ORDER BY AVG (Salario) > 2000
	
	
	SELECT CodDepartamento, AVG (Salario) > 2000 FROM EMPREGADO GROUP BY CodDepartamento
	
	
	SELECT CodDepartamento FROM EMPREGADO GROUP BY CodDepartamento HAVING AVG (Salario) > 2000
	
	
	
	 
		
	
		4.
		Considere as seguintes tabelas de um banco de dados:
1) Fornecedor (cod_fornec, nome_fornec, telefone, cidade, UF)
2) Estado (UF, nome_estado)
A expressão SQL que obtém os nomes dos estados para os quais não há fornecedores cadastrados e:
	
	
	
	SELECT E.UF FROM Estado AS E WHERE E.nome_estado NOT IN (SELECT F.UF FROM Fornecedor AS F);
	
	
	SELECT E.nome_estado FROM Estado AS E WHERE E.UF IN (SELECT F.UF FROM Fornecedor AS F);
	
	
	SELECT E.nome_estado FROM Estado AS E, FROM Fornecedor AS F WHERE E.UF = F.UF;
	
	
	SELECT E.nome_estado FROM Estado AS E, FROM Fornecedor AS F WHERE E.nome_estado = F.UF;
	
	
	SELECT E.nome_estado FROM Estado AS E WHERE E.UF NOT IN (SELECT F.UF FROM Fornecedor AS F);
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		Assinale a alternativa que selecione todos os clientes cujo código NÃO esteja entre 50 e 75.
	
	
	
	Nenhuma alternativa estão corretas
	
	
	SELECT * FROM Cliente Where cliente_id = 50 AND 75;
	
	
	SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 OR 75;
	
	
	SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 AND 75;
	
	
	SELECT * FROM Cliente Where cliente_id BETWEEN 50 AND 75;
	
	
	
	 
		
	
		6.
		O retorno do valor médio de uma coluna contendo diversos números é possibilitado pela expressão SQL
	
	
	
	SELECT FROM table_name AVG(column_name)
	
	
	SELECT AVG OF column_name FROM table_name
	
	
	SELECT column_name (AVG) FROM table_name
	
	
	SELECT column_name FROM table_name SETTING AVG
	
	
	SELECT AVG(column_name) FROM table_name
	
Explicação:
A função AVG(X) retorna o valor médio da coluna x, ignorando os valores nulos. 
Exemplo: select AVG(salario) from funcionario
	
	
	
	 
		
	
		7.
		Assinale a opção que exibirá para cada valor armazenado na coluna chamada C1 da tabela T1 a quantidade de vezes que este valor aparece repetido.
	
	
	
	Select  C1  from T1
	
	
	Select  C1,  sum(C1)  from T1 group by C1
	
	
	Select  C1,  count(C1)  from T1 group by C1
	
	
	Select  C1,  from  T1 group by count(*)
	
	
	Select  C1,  count(C1)  from  T1 having count(C1)
	
Explicação:
Analisando a proposta da consulta:
    - Para obter a quantidade de vezes que um valor aparece repetido precisamos trabalhar com:      
             - Função count(x) ¿ retorna o número de valores não nuos da coluna x.
             - Group by ¿ permite agruparmos nossos dados, produzindo uma linha sumarizada para cada grupo de linhas selecionado.
 
Sendo assim, o commando correto é: Select C1, count(C1) from T1 group by C1
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) Mostre o tipo dos carros e quantos carros são do mesmo tipo:
	
	
	
	SELECT tipo, count(*) FROM carro;
	
	
	SELECT tipo, sum(tipo) FROM carro GROUP BY sum(tipo);
	
	
	SELECT tipo, sum(tipo) FROM carro GROUP BY tipo;
	
	
	SELECT tipo, count(*) FROM carro GROUP BY tipo;
	
	
	SELECT tipo, max(tipo) FROM carro GROUP BY tipo;
	
	
	
	 
	 
	Não Respondida
	 
	 
	 Não Gravada
	 
	 
	Gravada
	
Exercício inciado em 09/05/2020 00:31:42.
			1.
		Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) O nome das filias e a quantidade de funcionários que cada filial possui, mostre somente filias com mais de 10 funcionários?
	
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi, funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi INNER JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi LEFT JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi INNER JOIN funcionário fu ON fi.idfilial=fu.idfilial;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi RIGHT JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	
	 
		
	
		2.
		Dentro da definição a seguir podemos afirmar que ¿Um valor NULL indica que o valor é desconhecido. Um valor NULL é diferente de um valor vazio ou zero. Dois valores nulos não são iguais. Comparações entre dois valores nulos, ou entre um NULL e qualquer outro valor, retornam unknown porque o valor de cada NULL é desconhecido¿. Considerando esta definição, é correto afirmar que:
	
	
	
	A definição está certa.
	
	
	A definição está errada quando fala que ¿NULL indica que o valor é desconhecido¿.
	
	
	A definição está errada quando fala que ¿Um valor NULL é diferente de um valor vazio ouzero¿.
	
	
	A definição está errada quando fala que ¿o valor de cada NULL é desconhecido¿.
	
	
	A definição está errada porque NULL é vazio.
	
	
	
	 
		
	
		3.
		- Considere o banco de dados relacional de uma clínica médica, no qual as chaves primárias (incrementada automaticamente) e estrangeiras estão sublinhadas.
 
*Obs. A numeração automática iniciará com 1.
 
PACIENTE (id_pac, nome_pac, sexo, fone_pac)
ESPECIALIDADE (id_espec, nome_espec)
MEDICO (id_med, nome_med, fone_med, id_espec)
CONSULTA (id_cons, dt_cons, vl_cons, id_pac, id_med)
 
Dê o comando correspondente de Selecionar o maior valor de consulta.
	
	
	
	Select * From CONSULTA
	
	
	Select vl_cons From CONSULTA
	
	
	Select MIN(vl_cons) From CONSULTA
	
	
	Select SUM(vl_cons) From CONSULTA
	
	
	Select MAX(vl_cons) From CONSULTA
	
	
	
	 
		
	
		4.
		Sobre os tipos de funções de um SGBD, marque a opção correta:
	
	
	
	COUNT realiza da função de retornar o menor valor dentre um grupo de valores.
	
	
	AVG realiza da função de somar um grupo de valores.
	
	
	SUM realiza da função de contar o número de linhas.
	
	
	MAX realiza da função de retornar o maior valor dentre um grupo de valores.
	
	
	MIN realiza da função de calcular a média aritmética.
	
	
	
	 
		
	
		5.
		Considere o esquema de uma empresa conforme segue: Func (cod_func, nome, dta_nasc, salario, nro_depto, cod_superv) ; Depto (nro_depto, nome) ; Projeto (cod_proj, nome, duracao, nro_depto) ; Participa (cod_proj, cod_func, horas_trab). Marque a alternativa que contém o comando em SQL para recuperar o nome e o salário dos funcionários do departamento 5, com salário na faixa entre 1000 e 2000.
	
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 OR SALARIO BETWEEN 1000 AND 2000;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE SALARIO = 1000 AND NRO_DEPTO BETWEEN 1 AND 5;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE SALARIO BETWEEN 1000 AND 2000;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000;
	
Explicação: SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000;
	
	
	
	 
		
	
		6.
		Assinale a opção que apresenta somente funções de grupo
	
	
	
	GROUP BY,  COMMIT e  ROLLBACK
	
	
	LIKE,  INTERSECT e  DISTINCT
	
	
	COUNT,  ORDER BY e  USING
	
	
	MIN,  AVG e  SUM
	
	
	UNION,  COUNT e  MIN
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Com relação à cláusula HAVING usada no comando SQL (Structured Query Language), qual a opção correta que tem referência direta com esta cláusula?
	
	
	
	values
	
	
	group by
	
	
	distinct
	
	
	where
	
	
	order by
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Assinale a alternativa que selecione todos os clientes que terminem com o nome 'Morais'
	
	
	
	Select * From Cliente Where nome like '%Mor'
	
	
	Select * From Cliente Where nome <> 'Morais'
	
	
	Select * From Cliente Where nome like '%M%'
	
	
	Select * From Cliente Where nome like '%M'
	
	
	Select * From Cliente Where nome like '%Morais'
	
	
	
	 
	 
	Não Respondida
	 
	 
	 Não Gravada
	 
	 
	Gravada
	
Exercício inciado em 09/05/2020 00:32:58.
		
	 
		
	
		1.
		Em SQL, as funções de grupo opeam sobre conjuntos de linhas. Marque a opção correta:
	
	
	
	AVG - calcular a média aritmética.
	
	
	SUM - contar o número de linhas.
	
	
	COUNT - retornar o maior valor dentre um grupo de valores.
	
	
	MAX - retornar o menor valor dentre um grupo de valores.
	
	
	MIN - somar um grupo de valores.
	
Explicação:
AVG(x) - Retorna o valor médio da coluna x.
SUM(x) - Retorna a soma da coluna x.
MAX(x) - Retorna o valor máximo da coluna x.
MIN(x) - Retorna o valor mínimo da coluna x.
COUNT(x) - Retorna o número de valores não nulos da coluna x.
	
	
	
	 
		
	
		2.
		Dada as tabelas: Pedido(Nr_pedido, Id_cliente, valor_total, data) Cliente(Id_cliente, nome, endereço, bairro, email, telefone), assinale a instrução em SQL que lista os clientes que possuem email do gmail.
	
	
	
	select nome from cliente where email like *gmail*
	
	
	select nome from cliente where email = ¿*@gmail.com
	
	
	select nome from cliente where email in *@gmail.com
	
	
	select nome from cliente where email like @gmail.com*
	
	
	select nome from cliente where email like *@gmail.com
	
	
	
	 
		
	
		3.
		Em relação as funções de grupo da linguagem SQL, marque a opção correta:
	
	
	
	SUM - contar o número de linhas.
	
	
	COUNT - retornar o maior valor dentre um grupo de valores.
	
	
	AVG - somar um grupo de valores.
	
	
	MIN - retornar o menor valor dentre um grupo de valores.
	
	
	MAX - calcular a média aritmética.
	
Explicação:
AVG(x) - Retorna o valor médio da coluna x.
SUM(x) - Retorna a soma da coluna x.
MAX(x) - Retorna o valor máximo da coluna x.
MIN(x) - Retorna o valor mínimo da coluna x.
COUNT(x) - Retorna o número de valores não nulos da coluna x.
	
	
	
	 
		
	
		4.
		Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras:
AREA (CODAREA, NOMEAREA)
LOCAL (CODLOCAL, CODAREA, NOMELOCAL)
TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO)
CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA)
Assinale a alternativa abaixo que representa uma consulta que exiba todos os dados de áreas e locais ordenados decrescentemente pelo nome do local.
	
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A INNER JOIN LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL ASC;
	
	
	SELECT * FROM AREA A INNER JOIN LOCAL L ON A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
	
	
	
	 
		
	
		5.
		
Sabendo-se que existem dados de TCC cadastrados com datas de defesa que variam de 20/11/2012 até o dia de hoje, assinale qual das alternativas abaixo retornaria o mesmo resultado que o comando "SELECT * FROM TCC WHERE DTDEFESA IN ('21/11/2013', '22/11/2014');":
	
	
	
	SELECT * FROM TCC WHERE DTDEFESA => '21/11/2013' AND <= '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA BETWEEN ('21/11/2013'; '22/11/2014');
	
	
	SELECT * FROM TCC WHERE DTDEFESA > '21/11/2013' AND < '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA = '21/11/2013' AND '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA BETWEEN '21/11/2013' AND '22/11/2014';
	
	
	
	 
		
	
		6.
		Em um projeto lógico de um sistema foi identificado que  um projeto é de um certo tipo. Assim, as relações abaixo foram definidas:
TIPO_PROJETO (ID_TIPO, NOME)
PROJETO (ID_PROJETO,  NOME,  DESCRICAO, ID_TIPO, VALOR) 
 
Conforme a linguagem SQL e as relações dadas, escolha a opção que mostre o nome  do projeto e nome do seu tipo, dos projetos que não possuam valor, bem como dos tipos que possuam mais do que cinco projetos.
	
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR =0 AND TP.ID_TIPO IN
(SELECT ID_TIPO
FROM PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR =0 AND TP.ID_TIPO =
(SELECT ID_TIPO
FROM PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND VALOR IS NULL AND TP.ID_TIPO IN
(SELECT ID_TIPO
FROM TIPO_PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR =0
GROUP BY ID_TIPO
HAVING COUNT(*) > 5;
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETOP
WHERE TP.ID_TIPO = P.ID_TIPO AND VALOR IS NULL AND TP.ID_TIPO IN
(SELECT ID_TIPO
FROM PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		A linguagem de banco de dados que é aceita em quase todos os Sistemas de Gerenciamento de Banco de Dados (SGBDs) é a SQL. Dessa forma, utilizando esta linguagem para conseguir filtrar valores resultantes de expressões agregadas, deve-se adicionar ao comando SQL a cláusula:
	
	
	
	WHERE
	
	
	SUM
	
	
	AVG
	
	
	SELECT
	
	
	HAVING
	
Explicação:
Having:  A cláusula having só é usada quando se deseja especificar um critério de pesquisa para um grupo ou uma agregação. HAVING pode ser usado somente com a instrução SELECT. HAVING é usado normalmente em uma cláusula GROUP BY.
SUM: A função sum(x) retorna a soma da coluna x.
Where: A cláusula Where estabelece uma condição que a linha deverá obedecer para que faça parte do conjunto resposta da consulta. No caso apenas retornam as linhas cujo deste da condição de como resposta verdadeiro.
Select:  Comando utilizado para recuperação dos dados de uma ou mais tabelas.
AVG: A função avg(x) retorna o valor médio da coluna x.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Considere a tabela definida pelo comando SQL abaixo.
Create table func (
nome varchar(50) not null,
salario money not null,
cod_depto int null);
Considere a consulta SQL abaixo:
Select nome, salario
from func
where salario > 900
and not cod_depto is null
order by salario
O requisito abaixo que não é atendido por esta consulta é:
	
	
	
	listar a coluna NOME da tabela FUNC;
	
	
	só considerar os registros que apresentem o atributo SALARIO maior que 900;
	
	
	apresentar o resultado em ordem alfabética.
	
	
	listar a coluna SALARIO da tabela FUNC;
	
	
	só considerar os registros que apresentem o atributo COD_DEPTO não nulo;
	
	Gabarito
Coment.
	
	
	
	 
	 
	Não Respondida
	 
	 
	 Não Gravada
	 
	 
	Gravada
	
Exercício inciado em 09/05/2020 00:34:20.
			1.
		De acordo com a estrutura das tabelas abaixo, escolha a opção que mostre o nome do empregado, o nome do seu departamento, daquele que trabalha em departamento que possua mais do que cinco empregados e cujo salário seja superior a média salarial do seu departamento, através da linguagem SQL. O banco de dados é composto por 2 tabelas: a tabela EMP que contém dados dos empregados, cuja chave primária é MATRICULA  e a tabela DEPT que contém dados dos departamentos, cuja a chave primária é DEPTNO. A coluna GERENTE é chave estrangeira na tabela EMP, referente à própria tabela EMP. A coluna DEPTNO na tabela EMP é chave estrangeira, referente à tabela DEPT.
ESTRUTURA DAS TABELAS DO BANCO DE DADOS
TABELA EMP
Name                Null                   Type
----------------------------------------------
MATRICULA  NOT NULL      NUMBER(4)
NOME_EMP                            CHAR(10)
CARGO                                    CHAR (9)
GERENTE                                 NUMBER(4)
SALARIO                                 NUMBER(7,2)
COMISSAO                             NUMBER(7,2)
DEPTNO                                  NUMBER(2)
 
TABELA DEPT
Name                  Null                     Type
----------------------------------------------
DEPTNO           NOT NULL       NUMBER(2)
NOME_DEPT                              CHAR(14)
LOCALIZACAO                         CHAR(13)
	
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)> 5) AND E.SALARIO>AVG(SALARIO);
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO
GROUP BY DEPTNO
HAVING COUNT(*)> 5 AND E.SALARIO>(SELECT AVG(SALARIO)
                                      FROM EMP
                                      WHERE  DEPTNO=E.DEPTNO);
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)> 5) AND E.SALARIO>(SELECT AVG(SALARIO)
                                      FROM EMP
                                      WHERE  DEPTNO=E.DEPTNO);
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)> 5) AND E.SALARIO>(SELECT AVG(SALARIO)
                                                                          FROM EMP);
                                     
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND COUNT(D.DEPTNO) > 5 AND E.SALARIO>
(SELECT AVG(SALARIO)
 FROM EMP
 WHERE  DEPTNO=E.DEPTNO);
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		Qual o comando SQL deve ser utilizado para definir o resultado da seguinte situação: "Ao final do mês é preciso apresentar o total de vendas de clientes por venda".
	
	
	
	HAVING
	
	
	FROM
	
	
	WHERE
	
	
	GROUP BY
	
	
	ORDER BY
	
	
	
	 
		
	
		3.
		Em um modelo de dados que descreve a publicação acadêmica de pesquisadores de diferentes instituições em eventos acadêmicos, considere as tabelas abaixo. DEPARTAMENTO (CodDepartamento, NomeDepartamento) EMPREGADO (CodEmpregado, NomeEmpregado, CodDepartamento, Salario) Na linguagem SQL, o comando mais simples para recuperar os códigos dos departamentos cuja média salarial seja maior que 2000 é
	
	
	
	SELECT CodDepartamento FROM EMPREGADO GROUP BY CodDepartamento ORDER BY AVG (Salario) > 2000
	
	
	SELECT CodDepartamento FROM EMPREGADO WHERE AVG (Salario) > 2000 GROUP BY CodDepartamento
	
	
	SELECT CodDepartamento FROM EMPREGADO GROUP BY CodDepartamento HAVING AVG (Salario) > 2000
	
	
	SELECT CodDepartamento FROM EMPREGADO WHERE AVG (Salario) > 2000
	
	
	SELECT CodDepartamento, AVG (Salario) > 2000 FROM EMPREGADO GROUP BY CodDepartamento
	
	
	 
		
	
		4.
		Em nosso Banco de Dados temos a tabela denominada Estoq_Regiao conforme a figura abaixo.
Queremos listar o conteúdo dessa tabela em ordem de quantidade (Qtde) de forma descendente. Assinale a alternativa que apresenta a instrução SQL correta:
	
	
	
	SELECT Regiao, Qtde, Vl_Unit FROM Estoq_Regiao ORDER BY Qtde DESC
	
	
	SELECT Estoq_Regiao INTO Regiao, Qtde, Vl_Unit ORDER DESC BY Qtde
	
	
	ORDER BY Qtde DESC SELECT Regiao, Qtde, Vl_Unit FROM Estoq_Regiao
	
	
	SELECT Regiao, Qtde, Vl_Unit FROM Estoq_Regiao ORDER DESC BY Qtde
	
	
	ORDER DESC BY Qtde FROM Estoq_Regiao SELECT Regiao, Qtde, Vl_Unit
	
	
	
	 
		
	
		5.
		Considere as seguintes tabelas de um banco de dados:
1) Fornecedor (cod_fornec, nome_fornec, telefone, cidade, UF)
2) Estado (UF, nome_estado)
A expressão SQL que obtém os nomes dos estados para os quais não há fornecedores cadastrados e:
	
	
	
	SELECT E.UF FROM Estado AS E WHERE E.nome_estado NOT IN (SELECT F.UF FROM Fornecedor AS F);
	
	
	SELECT E.nome_estado FROM Estado AS E, FROM Fornecedor AS F WHERE E.nome_estado = F.UF;
	
	
	SELECT E.nome_estado FROM Estado AS E, FROM Fornecedor AS F WHERE E.UF = F.UF;
	
	
	SELECT E.nome_estado FROM Estado AS E WHERE E.UF IN (SELECT F.UF FROM Fornecedor AS F);
	
	
	SELECT E.nome_estado FROM Estado AS E WHERE E.UF NOT IN (SELECT F.UF FROM Fornecedor AS F);
	
	Gabarito
Coment.
	
	
	
	 
		
	
		6.
		Assinale a alternativa que selecione todos os clientes cujo código NÃO esteja entre 50 e 75.
	
	
	
	SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 OR 75;
	
	
	Nenhuma alternativa estão corretas
	
	
	SELECT * FROM Cliente Where cliente_id BETWEEN 50 AND 75;
	
	
	SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 AND 75;
	
	
	SELECT * FROM Cliente Where cliente_id = 50 AND 75;
	
	
	
	 
		
	
		7.
		Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial)ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) Mostre o tipo dos carros e quantos carros são do mesmo tipo:
	
	
	
	SELECT tipo, sum(tipo) FROM carro GROUP BY sum(tipo);
	
	
	SELECT tipo, count(*) FROM carro GROUP BY tipo;
	
	
	SELECT tipo, sum(tipo) FROM carro GROUP BY tipo;
	
	
	SELECT tipo, max(tipo) FROM carro GROUP BY tipo;
	
	
	SELECT tipo, count(*) FROM carro;
	
	
	
	 
		
	
		8.
		O retorno do valor médio de uma coluna contendo diversos números é possibilitado pela expressão SQL
	
	
	
	SELECT AVG(column_name) FROM table_name
	
	
	SELECT column_name FROM table_name SETTING AVG
	
	
	SELECT AVG OF column_name FROM table_name
	
	
	SELECT FROM table_name AVG(column_name)
	
	
	SELECT column_name (AVG) FROM table_name
	
Explicação:
A função AVG(X) retorna o valor médio da coluna x, ignorando os valores nulos. 
Exemplo: select AVG(salario) from funcionario
	
	
	
	 
	 
	Não Respondida
	 
	 
	 Não Gravada
	 
	 
	Gravada
	
Exercício inciado em 09/05/2020 00:35:37.
			1.
		Assinale a opção que exibirá para cada valor armazenado na coluna chamada C1 da tabela T1 a quantidade de vezes que este valor aparece repetido.
	
	
	
	Select  C1,  count(C1)  from  T1 having count(C1)
	
	
	Select  C1,  count(C1)  from T1 group by C1
	
	
	Select  C1  from T1
	
	
	Select  C1,  from  T1 group by count(*)
	
	
	Select  C1,  sum(C1)  from T1 group by C1
	
Explicação:
Analisando a proposta da consulta:
    - Para obter a quantidade de vezes que um valor aparece repetido precisamos trabalhar com:      
             - Função count(x) ¿ retorna o número de valores não nuos da coluna x.
             - Group by ¿ permite agruparmos nossos dados, produzindo uma linha sumarizada para cada grupo de linhas selecionado.
 
Sendo assim, o commando correto é: Select C1, count(C1) from T1 group by C1
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		Dentro da definição a seguir podemos afirmar que ¿Um valor NULL indica que o valor é desconhecido. Um valor NULL é diferente de um valor vazio ou zero. Dois valores nulos não são iguais. Comparações entre dois valores nulos, ou entre um NULL e qualquer outro valor, retornam unknown porque o valor de cada NULL é desconhecido¿. Considerando esta definição, é correto afirmar que:
	
	
	
	A definição está errada quando fala que ¿o valor de cada NULL é desconhecido¿.
	
	
	A definição está certa.
	
	
	A definição está errada quando fala que ¿NULL indica que o valor é desconhecido¿.
	
	
	A definição está errada quando fala que ¿Um valor NULL é diferente de um valor vazio ou zero¿.
	
	
	A definição está errada porque NULL é vazio.
	
	
	
	 
		
	
		3.
		Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) O nome das filias e a quantidade de funcionários que cada filial possui, mostre somente filias com mais de 10 funcionários?
	
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi INNER JOIN funcionário fu ON fi.idfilial=fu.idfilial;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi LEFT JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi INNER JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi, funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi RIGHT JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	
	 
		
	
		4.
		Considere o esquema de uma empresa conforme segue: Func (cod_func, nome, dta_nasc, salario, nro_depto, cod_superv) ; Depto (nro_depto, nome) ; Projeto (cod_proj, nome, duracao, nro_depto) ; Participa (cod_proj, cod_func, horas_trab). Marque a alternativa que contém o comando em SQL para recuperar o nome e o salário dos funcionários do departamento 5, com salário na faixa entre 1000 e 2000.
	
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE SALARIO BETWEEN 1000 AND 2000;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE SALARIO = 1000 AND NRO_DEPTO BETWEEN 1 AND 5;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 OR SALARIO BETWEEN 1000 AND 2000;
	
Explicação: SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000;
	
	
	
	 
		
	
		5.
		Assinale a opção que apresenta somente funções de grupo
	
	
	
	LIKE,  INTERSECT e  DISTINCT
	
	
	COUNT,  ORDER BY e  USING
	
	
	GROUP BY,  COMMIT e  ROLLBACK
	
	
	MIN,  AVG e  SUM
	
	
	UNION,  COUNT e  MIN
	
	Gabarito
Coment.
	
	
	
	 
		
	
		6.
		Com relação à cláusula HAVING usada no comando SQL (Structured Query Language), qual a opção correta que tem referência direta com esta cláusula?
	
	
	
	order by
	
	
	where
	
	
	group by
	
	
	values
	
	
	distinct
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Sobre os tipos de funções de um SGBD, marque a opção correta:
	
	
	
	COUNT realiza da função de retornar o menor valor dentre um grupo de valores.
	
	
	MAX realiza da função de retornar o maior valor dentre um grupo de valores.
	
	
	SUM realiza da função de contar o número de linhas.
	
	
	MIN realiza da função de calcular a média aritmética.
	
	
	AVG realiza da função de somar um grupo de valores.
	
	
	
	 
		
	
		8.
		- Considere o banco de dados relacional de uma clínica médica, no qual as chaves primárias (incrementada automaticamente) e estrangeiras estão sublinhadas.
 
*Obs. A numeração automática iniciará com 1.
 
PACIENTE (id_pac, nome_pac, sexo, fone_pac)
ESPECIALIDADE (id_espec, nome_espec)
MEDICO (id_med, nome_med, fone_med, id_espec)
CONSULTA (id_cons, dt_cons, vl_cons, id_pac, id_med)
 
Dê o comando correspondente de Selecionar o maior valor de consulta.
	
	
	
	Select * From CONSULTA
	
	
	Select MAX(vl_cons) From CONSULTA
	
	
	Select MIN(vl_cons) From CONSULTA
	
	
	Select vl_cons From CONSULTA
	
	
	Select SUM(vl_cons) From CONSULTA
	
	
	
	 
	 
	Não Respondida
	 
	 
	 Não Gravada
	 
	 
	Gravada
	
Exercício inciado em 09/05/2020 00:37:15.
			1.
		Assinale a alternativa que selecione todos os clientes que terminem com o nome 'Morais'
	
	
	
	Select * From Cliente Where nome like '%M'
	
	
	Select * From Cliente Where nome like '%Morais'
	
	
	Select * From Cliente Where nome like '%Mor'
	
	
	Select * From Cliente Where nome <> 'Morais'
	
	
	Select * From Cliente Where nome like '%M%'
	
	
	
	 
		
	
		2.
		Considere a tabela definida pelo comando SQL abaixo.
Create table func (
nome varchar(50) not null,
salario money not null,
cod_depto int null);
Considere a consulta SQL abaixo:
Select nome, salario
from func
where salario > 900
and not cod_depto is null
order by salario
O requisito abaixo que não é atendido por esta consulta é:
	
	
	
	apresentar o resultado em ordem alfabética.
	
	
	listar a coluna NOME da tabela FUNC;
	
	
	só considerar os registros que apresentem o atributo COD_DEPTO não nulo;
	
	
	só considerar os registros que apresentem o atributo SALARIO maior que 900;
	
	
	listar a coluna SALARIO da tabela FUNC;
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		Dada as tabelas: Pedido(Nr_pedido, Id_cliente, valor_total, data) Cliente(Id_cliente, nome, endereço, bairro, email, telefone), assinale a instruçãoem SQL que lista os clientes que possuem email do gmail.
	
	
	
	select nome from cliente where email like @gmail.com*
	
	
	select nome from cliente where email like *gmail*
	
	
	select nome from cliente where email like *@gmail.com
	
	
	select nome from cliente where email = ¿*@gmail.com
	
	
	select nome from cliente where email in *@gmail.com
	
	
	
	 
		
	
		4.
		A linguagem de banco de dados que é aceita em quase todos os Sistemas de Gerenciamento de Banco de Dados (SGBDs) é a SQL. Dessa forma, utilizando esta linguagem para conseguir filtrar valores resultantes de expressões agregadas, deve-se adicionar ao comando SQL a cláusula:
	
	
	
	WHERE
	
	
	SELECT
	
	
	HAVING
	
	
	AVG
	
	
	SUM
	
Explicação:
Having:  A cláusula having só é usada quando se deseja especificar um critério de pesquisa para um grupo ou uma agregação. HAVING pode ser usado somente com a instrução SELECT. HAVING é usado normalmente em uma cláusula GROUP BY.
SUM: A função sum(x) retorna a soma da coluna x.
Where: A cláusula Where estabelece uma condição que a linha deverá obedecer para que faça parte do conjunto resposta da consulta. No caso apenas retornam as linhas cujo deste da condição de como resposta verdadeiro.
Select:  Comando utilizado para recuperação dos dados de uma ou mais tabelas.
AVG: A função avg(x) retorna o valor médio da coluna x.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		Em SQL, as funções de grupo opeam sobre conjuntos de linhas. Marque a opção correta:
	
	
	
	MIN - somar um grupo de valores.
	
	
	AVG - calcular a média aritmética.
	
	
	MAX - retornar o menor valor dentre um grupo de valores.
	
	
	COUNT - retornar o maior valor dentre um grupo de valores.
	
	
	SUM - contar o número de linhas.
	
Explicação:
AVG(x) - Retorna o valor médio da coluna x.
SUM(x) - Retorna a soma da coluna x.
MAX(x) - Retorna o valor máximo da coluna x.
MIN(x) - Retorna o valor mínimo da coluna x.
COUNT(x) - Retorna o número de valores não nulos da coluna x.
	
	
	
	 
		
	
		6.
		Em relação as funções de grupo da linguagem SQL, marque a opção correta:
	
	
	
	COUNT - retornar o maior valor dentre um grupo de valores.
	
	
	MIN - retornar o menor valor dentre um grupo de valores.
	
	
	AVG - somar um grupo de valores.
	
	
	MAX - calcular a média aritmética.
	
	
	SUM - contar o número de linhas.
	
Explicação:
AVG(x) - Retorna o valor médio da coluna x.
SUM(x) - Retorna a soma da coluna x.
MAX(x) - Retorna o valor máximo da coluna x.
MIN(x) - Retorna o valor mínimo da coluna x.
COUNT(x) - Retorna o número de valores não nulos da coluna x.
	
	
	
	 
		
	
		7.
		
Sabendo-se que existem dados de TCC cadastrados com datas de defesa que variam de 20/11/2012 até o dia de hoje, assinale qual das alternativas abaixo retornaria o mesmo resultado que o comando "SELECT * FROM TCC WHERE DTDEFESA IN ('21/11/2013', '22/11/2014');":
	
	
	
	SELECT * FROM TCC WHERE DTDEFESA BETWEEN '21/11/2013' AND '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA => '21/11/2013' AND <= '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA > '21/11/2013' AND < '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA BETWEEN ('21/11/2013'; '22/11/2014');
	
	
	SELECT * FROM TCC WHERE DTDEFESA = '21/11/2013' AND '22/11/2014';
	
	
	
	 
		
	
		8.
		Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras:
AREA (CODAREA, NOMEAREA)
LOCAL (CODLOCAL, CODAREA, NOMELOCAL)
TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO)
CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA)
Assinale a alternativa abaixo que representa uma consulta que exiba todos os dados de áreas e locais ordenados decrescentemente pelo nome do local.
	
	
	
	SELECT * FROM AREA A INNER JOIN LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL ASC;
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A INNER JOIN LOCAL L ON A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
	
	
	
	 
	 
	Não Respondida
	 
	 
	 Não Gravada
	 
	 
	Gravada
	
Exercício inciado em 09/05/2020 00:38:56.
			1.
		Em um projeto lógico de um sistema foi identificado que  um projeto é de um certo tipo. Assim, as relações abaixo foram definidas:
TIPO_PROJETO (ID_TIPO, NOME)
PROJETO (ID_PROJETO,  NOME,  DESCRICAO, ID_TIPO, VALOR) 
 
Conforme a linguagem SQL e as relações dadas, escolha a opção que mostre o nome  do projeto e nome do seu tipo, dos projetos que não possuam valor, bem como dos tipos que possuam mais do que cinco projetos.
	
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR =0 AND TP.ID_TIPO =
(SELECT ID_TIPO
FROM PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR =0 AND TP.ID_TIPO IN
(SELECT ID_TIPO
FROM PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND VALOR IS NULL AND TP.ID_TIPO IN
(SELECT ID_TIPO
FROM PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND VALOR IS NULL AND TP.ID_TIPO IN
(SELECT ID_TIPO
FROM TIPO_PROJETO
GROUP BY ID_TIPO
HAVING COUNT(*) > 5);
	
	
	SELECT P.NOME, TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR =0
GROUP BY ID_TIPO
HAVING COUNT(*) > 5;
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		De acordo com a estrutura das tabelas abaixo, escolha a opção que mostre o nome do empregado, o nome do seu departamento, daquele que trabalha em departamento que possua mais do que cinco empregados e cujo salário seja superior a média salarial do seu departamento, através da linguagem SQL. O banco de dados é composto por 2 tabelas: a tabela EMP que contém dados dos empregados, cuja chave primária é MATRICULA  e a tabela DEPT que contém dados dos departamentos, cuja a chave primária é DEPTNO. A coluna GERENTE é chave estrangeira na tabela EMP, referente à própria tabela EMP. A coluna DEPTNO na tabela EMP é chave estrangeira, referente à tabela DEPT.
ESTRUTURA DAS TABELAS DO BANCO DE DADOS
TABELA EMP
Name                Null                   Type
----------------------------------------------
MATRICULA  NOT NULL      NUMBER(4)
NOME_EMP                            CHAR(10)
CARGO                                    CHAR (9)
GERENTE                                 NUMBER(4)
SALARIO                                 NUMBER(7,2)
COMISSAO                             NUMBER(7,2)
DEPTNO                                  NUMBER(2)
 
TABELA DEPT
Name                  Null                     Type
----------------------------------------------
DEPTNO           NOT NULL       NUMBER(2)
NOME_DEPT                              CHAR(14)
LOCALIZACAO                         CHAR(13)
	
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)> 5) AND E.SALARIO>AVG(SALARIO);
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO
GROUP BY DEPTNO
HAVING COUNT(*)> 5 AND E.SALARIO>(SELECT AVG(SALARIO)
                                      FROM EMP
                                      WHERE  DEPTNO=E.DEPTNO);
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND COUNT(D.DEPTNO) > 5 AND E.SALARIO>
(SELECT AVG(SALARIO)
 FROM EMP
 WHERE  DEPTNO=E.DEPTNO);
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BYDEPTNO
HAVING COUNT(*)> 5) AND E.SALARIO>(SELECT AVG(SALARIO)
                                                                          FROM EMP);
                                     
	
	
	SELECT E.NOME_EMP, D.NOME_DEP
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)> 5) AND E.SALARIO>(SELECT AVG(SALARIO)
                                      FROM EMP
                                      WHERE  DEPTNO=E.DEPTNO);
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		Em nosso Banco de Dados temos a tabela denominada Estoq_Regiao conforme a figura abaixo.
Queremos listar o conteúdo dessa tabela em ordem de quantidade (Qtde) de forma descendente. Assinale a alternativa que apresenta a instrução SQL correta:
	
	
	
	SELECT Estoq_Regiao INTO Regiao, Qtde, Vl_Unit ORDER DESC BY Qtde
	
	
	ORDER BY Qtde DESC SELECT Regiao, Qtde, Vl_Unit FROM Estoq_Regiao
	
	
	SELECT Regiao, Qtde, Vl_Unit FROM Estoq_Regiao ORDER BY Qtde DESC
	
	
	ORDER DESC BY Qtde FROM Estoq_Regiao SELECT Regiao, Qtde, Vl_Unit
	
	
	SELECT Regiao, Qtde, Vl_Unit FROM Estoq_Regiao ORDER DESC BY Qtde
	
	
	
	 
		
	
		4.
		Em um modelo de dados que descreve a publicação acadêmica de pesquisadores de diferentes instituições em eventos acadêmicos, considere as tabelas abaixo. DEPARTAMENTO (CodDepartamento, NomeDepartamento) EMPREGADO (CodEmpregado, NomeEmpregado, CodDepartamento, Salario) Na linguagem SQL, o comando mais simples para recuperar os códigos dos departamentos cuja média salarial seja maior que 2000 é
	
	
	
	SELECT CodDepartamento FROM EMPREGADO WHERE AVG (Salario) > 2000 GROUP BY CodDepartamento
	
	
	SELECT CodDepartamento FROM EMPREGADO GROUP BY CodDepartamento HAVING AVG (Salario) > 2000
	
	
	SELECT CodDepartamento, AVG (Salario) > 2000 FROM EMPREGADO GROUP BY CodDepartamento
	
	
	SELECT CodDepartamento FROM EMPREGADO WHERE AVG (Salario) > 2000
	
	
	SELECT CodDepartamento FROM EMPREGADO GROUP BY CodDepartamento ORDER BY AVG (Salario) > 2000
	
	
	
	 
		
	
		5.
		Qual o comando SQL deve ser utilizado para definir o resultado da seguinte situação: "Ao final do mês é preciso apresentar o total de vendas de clientes por venda".
	
	
	
	HAVING
	
	
	FROM
	
	
	WHERE
	
	
	GROUP BY
	
	
	ORDER BY
	
	
	
	 
		
	
		6.
		Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) Mostre o tipo dos carros e quantos carros são do mesmo tipo:
	
	
	
	SELECT tipo, sum(tipo) FROM carro GROUP BY tipo;
	
	
	SELECT tipo, count(*) FROM carro GROUP BY tipo;
	
	
	SELECT tipo, max(tipo) FROM carro GROUP BY tipo;
	
	
	SELECT tipo, sum(tipo) FROM carro GROUP BY sum(tipo);
	
	
	SELECT tipo, count(*) FROM carro;
	
	
	
	 
		
	
		7.
		Assinale a alternativa que selecione todos os clientes cujo código NÃO esteja entre 50 e 75.
	
	
	
	SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 AND 75;
	
	
	Nenhuma alternativa estão corretas
	
	
	SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 OR 75;
	
	
	SELECT * FROM Cliente Where cliente_id = 50 AND 75;
	
	
	SELECT * FROM Cliente Where cliente_id BETWEEN 50 AND 75;
	
	
	
	 
		
	
		8.
		Considere as seguintes tabelas de um banco de dados:
1) Fornecedor (cod_fornec, nome_fornec, telefone, cidade, UF)
2) Estado (UF, nome_estado)
A expressão SQL que obtém os nomes dos estados para os quais não há fornecedores cadastrados e:
	
	
	
	SELECT E.nome_estado FROM Estado AS E WHERE E.UF NOT IN (SELECT F.UF FROM Fornecedor AS F);
	
	
	SELECT E.nome_estado FROM Estado AS E WHERE E.UF IN (SELECT F.UF FROM Fornecedor AS F);
	
	
	SELECT E.nome_estado FROM Estado AS E, FROM Fornecedor AS F WHERE E.UF = F.UF;
	
	
	SELECT E.UF FROM Estado AS E WHERE E.nome_estado NOT IN (SELECT F.UF FROM Fornecedor AS F);
	
	
	SELECT E.nome_estado FROM Estado AS E, FROM Fornecedor AS F WHERE E.nome_estado = F.UF;
	
	Gabarito
Coment.
	
	
	
	 
	 
	Não Respondida
	 
	 
	 Não Gravada
	 
	 
	Gravada
	
Exercício inciado em 09/05/2020 00:40:18.
			1.
		O retorno do valor médio de uma coluna contendo diversos números é possibilitado pela expressão SQL
	
	
	
	SELECT AVG OF column_name FROM table_name
	
	
	SELECT column_name FROM table_name SETTING AVG
	
	
	SELECT FROM table_name AVG(column_name)
	
	
	SELECT AVG(column_name) FROM table_name
	
	
	SELECT column_name (AVG) FROM table_name
	
Explicação:
A função AVG(X) retorna o valor médio da coluna x, ignorando os valores nulos. 
Exemplo: select AVG(salario) from funcionario
	
	
	
	 
		
	
		2.
		Assinale a opção que exibirá para cada valor armazenado na coluna chamada C1 da tabela T1 a quantidade de vezes que este valor aparece repetido.
	
	
	
	Select  C1  from T1
	
	
	Select  C1,  from  T1 group by count(*)
	
	
	Select  C1,  sum(C1)  from T1 group by C1
	
	
	Select  C1,  count(C1)  from  T1 having count(C1)
	
	
	Select  C1,  count(C1)  from T1 group by C1
	
Explicação:
Analisando a proposta da consulta:
    - Para obter a quantidade de vezes que um valor aparece repetido precisamos trabalhar com:      
             - Função count(x) ¿ retorna o número de valores não nuos da coluna x.
             - Group by ¿ permite agruparmos nossos dados, produzindo uma linha sumarizada para cada grupo de linhas selecionado.
 
Sendo assim, o commando correto é: Select C1, count(C1) from T1 group by C1
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		- Considere o banco de dados relacional de uma clínica médica, no qual as chaves primárias (incrementada automaticamente) e estrangeiras estão sublinhadas.
 
*Obs. A numeração automática iniciará com 1.
 
PACIENTE (id_pac, nome_pac, sexo, fone_pac)
ESPECIALIDADE (id_espec, nome_espec)
MEDICO (id_med, nome_med, fone_med, id_espec)
CONSULTA (id_cons, dt_cons, vl_cons, id_pac, id_med)
 
Dê o comando correspondente de Selecionar o maior valor de consulta.
	
	
	
	Select MIN(vl_cons) From CONSULTA
	
	
	Select SUM(vl_cons) From CONSULTA
	
	
	Select MAX(vl_cons) From CONSULTA
	
	
	Select vl_cons From CONSULTA
	
	
	Select * From CONSULTA
	
	
	
	 
		
	
		4.
		Considere o esquema de uma empresa conforme segue: Func (cod_func, nome, dta_nasc, salario, nro_depto, cod_superv) ; Depto (nro_depto, nome) ; Projeto (cod_proj, nome, duracao, nro_depto) ; Participa (cod_proj, cod_func, horas_trab). Marque a alternativa que contém o comando em SQL para recuperar o nome e o salário dos funcionários do departamento 5, com salário na faixa entre 1000 e 2000.
	
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 OR SALARIO BETWEEN 1000 AND 2000;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE SALARIO = 1000 AND NRO_DEPTO BETWEEN 1 AND 5;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE SALARIO BETWEEN 1000 AND 2000;
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000;
	
Explicação: SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000;
	
	
	
	 
		
	
		5.
		Sobre os tipos de funções de um SGBD, marque a opção correta:
	
	
	
	COUNT realiza da função de retornar o menor valor dentre um grupo de valores.
	
	
	AVG realiza da função de somar um grupo de valores.
	
	
	MIN realiza da função de calcular a média aritmética.
	
	
	MAX realiza da função de retornar o maior valor dentre um grupo de valores.
	
	
	SUM realiza da função de contar o número de linhas.
	
	
	
	 
		
	
		6.
		Com relação à cláusula HAVING usada no comando SQL (Structured QueryLanguage), qual a opção correta que tem referência direta com esta cláusula?
	
	
	
	distinct
	
	
	order by
	
	
	group by
	
	
	where
	
	
	values
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Dentro da definição a seguir podemos afirmar que ¿Um valor NULL indica que o valor é desconhecido. Um valor NULL é diferente de um valor vazio ou zero. Dois valores nulos não são iguais. Comparações entre dois valores nulos, ou entre um NULL e qualquer outro valor, retornam unknown porque o valor de cada NULL é desconhecido¿. Considerando esta definição, é correto afirmar que:
	
	
	
	A definição está errada quando fala que ¿o valor de cada NULL é desconhecido¿.
	
	
	A definição está errada quando fala que ¿NULL indica que o valor é desconhecido¿.
	
	
	A definição está certa.
	
	
	A definição está errada porque NULL é vazio.
	
	
	A definição está errada quando fala que ¿Um valor NULL é diferente de um valor vazio ou zero¿.
	
	
	
	 
		
	
		8.
		Assinale a opção que apresenta somente funções de grupo
	
	
	
	UNION,  COUNT e  MIN
	
	
	MIN,  AVG e  SUM
	
	
	COUNT,  ORDER BY e  USING
	
	
	GROUP BY,  COMMIT e  ROLLBACK
	
	
	LIKE,  INTERSECT e  DISTINCT
	
	Gabarito
Coment.
	
	
	
	 
	 
	Não Respondida
	 
	 
	 Não Gravada
	 
	 
	Gravada
	
Exercício inciado em 09/05/2020 00:41:46.
			1.
		Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) O nome das filias e a quantidade de funcionários que cada filial possui, mostre somente filias com mais de 10 funcionários?
	
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi INNER JOIN funcionário fu ON fi.idfilial=fu.idfilial;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi RIGHT JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi INNER JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi, funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi LEFT JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
	
	
	
	 
		
	
		2.
		Considere a tabela definida pelo comando SQL abaixo.
Create table func (
nome varchar(50) not null,
salario money not null,
cod_depto int null);
Considere a consulta SQL abaixo:
Select nome, salario
from func
where salario > 900
and not cod_depto is null
order by salario
O requisito abaixo que não é atendido por esta consulta é:
	
	
	
	apresentar o resultado em ordem alfabética.
	
	
	só considerar os registros que apresentem o atributo COD_DEPTO não nulo;
	
	
	listar a coluna NOME da tabela FUNC;
	
	
	listar a coluna SALARIO da tabela FUNC;
	
	
	só considerar os registros que apresentem o atributo SALARIO maior que 900;
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		
Sabendo-se que existem dados de TCC cadastrados com datas de defesa que variam de 20/11/2012 até o dia de hoje, assinale qual das alternativas abaixo retornaria o mesmo resultado que o comando "SELECT * FROM TCC WHERE DTDEFESA IN ('21/11/2013', '22/11/2014');":
	
	
	
	SELECT * FROM TCC WHERE DTDEFESA BETWEEN '21/11/2013' AND '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA => '21/11/2013' AND <= '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA > '21/11/2013' AND < '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA = '21/11/2013' AND '22/11/2014';
	
	
	SELECT * FROM TCC WHERE DTDEFESA BETWEEN ('21/11/2013'; '22/11/2014');
	
	
	
	 
		
	
		4.
		Assinale a alternativa que selecione todos os clientes que terminem com o nome 'Morais'
	
	
	
	Select * From Cliente Where nome like '%M%'
	
	
	Select * From Cliente Where nome like '%Morais'
	
	
	Select * From Cliente Where nome <> 'Morais'
	
	
	Select * From Cliente Where nome like '%M'
	
	
	Select * From Cliente Where nome like '%Mor'
	
	
	
	 
		
	
		5.
		Em SQL, as funções de grupo opeam sobre conjuntos de linhas. Marque a opção correta:
	
	
	
	COUNT - retornar o maior valor dentre um grupo de valores.
	
	
	SUM - contar o número de linhas.
	
	
	MIN - somar um grupo de valores.
	
	
	AVG - calcular a média aritmética.
	
	
	MAX - retornar o menor valor dentre um grupo de valores.
	
Explicação:
AVG(x) - Retorna o valor médio da coluna x.
SUM(x) - Retorna a soma da coluna x.
MAX(x) - Retorna o valor máximo da coluna x.
MIN(x) - Retorna o valor mínimo da coluna x.
COUNT(x) - Retorna o número de valores não nulos da coluna x.
	
	
	
	 
		
	
		6.
		Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras:
AREA (CODAREA, NOMEAREA)
LOCAL (CODLOCAL, CODAREA, NOMELOCAL)
TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO)
CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA)
Assinale a alternativa abaixo que representa uma consulta que exiba todos os dados de áreas e locais ordenados decrescentemente pelo nome do local.
	
	
	
	SELECT * FROM AREA A INNER JOIN LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A INNER JOIN LOCAL L ON A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL ASC;
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
	
	
	
	 
		
	
		7.
		A linguagem de banco de dados que é aceita em quase todos os Sistemas de Gerenciamento de Banco de Dados (SGBDs) é a SQL. Dessa forma, utilizando esta linguagem para conseguir filtrar valores resultantes de expressões agregadas, deve-se adicionar ao comando SQL a cláusula:
	
	
	
	SELECT
	
	
	WHERE
	
	
	SUM
	
	
	AVG
	
	
	HAVING
	
Explicação:
Having:  A cláusula having só é usada quando se deseja especificar um critério de pesquisa para um grupo ou uma agregação. HAVING pode ser usado somente com a instrução SELECT. HAVING é usado normalmente em uma cláusula GROUP BY.
SUM: A função sum(x) retorna a soma da coluna x.
Where: A cláusula Where estabelece uma condição que a linha deverá obedecer para que faça parte do conjunto resposta da consulta. No caso apenas retornam as linhas cujo deste da condição de como resposta verdadeiro.
Select:  Comando utilizado para recuperação dos dados de uma ou mais tabelas.
AVG: A função avg(x) retorna o valor médio da coluna x.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Dada as tabelas: Pedido(Nr_pedido, Id_cliente, valor_total, data) Cliente(Id_cliente, nome, endereço, bairro, email, telefone), assinale a instrução em SQL que lista os clientes que possuem email do gmail.
	
	
	
	select nome from cliente where email like @gmail.com*
	
	
	select nome from cliente where email like *gmail*
	
	
	select nome from cliente where email = ¿*@gmail.com
	
	
	select nome from cliente where email in *@gmail.com
	
	
	select nome from cliente where email like *@gmail.com
	
	
	
	 
	 
	Não Respondida
	 
	 
	 Não Gravada
	 
	 
	Gravada
	
Exercício inciado em 09/05/2020 00:44:59.

Continue navegando