Buscar

Projeto e otimização de banco de dados exercicios 3

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 10 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 10 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 10 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

Projeto e otimização de banco de dados
Aula 5 | Linguagem SQL – Parte 3 
1
Considere o seguinte esquema de uma empresa:
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)
A opção que contém o comando em SQL para obter o maior e o menor salário da empresa é:
SELECT MAX(SALARIO), MIN(SALARIO) FROM FUNC
SELECT MAIOR(SALARIO), MENOR(SALARIO) FROM FUNC
SELECT SUM(SALARIO), AVG(SALARIO) FROM FUNC
SELECT COUNT(SALARIO), AVG(SALARIO) FROM FUNC
SELECT MIN(SALARIO), MAX(SALARIO) FROM FUNC
O comando SQL correto é: SELECT MAX(SALARIO), MIN(SALARIO) FROM FUNC.
2
Considere as tabelas da questão 1. A opção que contém o comando em SQL para obter a média de salários de cada departamento da empresa é:
SELECT AVG(SALARIO) FROM DEPTO
SELECT MEDIA(SALARIO) FROM FUNC
SELECT NRO_DEPTO, AVG(SALARIO) FROM FUNC GROUP BY NRO_DEPTO
SELECT SUM(SALARIO) FROM FUNC WHERE NRO_DEPTO
SELECT COUNT(SALARIO) FROM FUNC GROUP BY NRO_DEPTO
O comando SQL correto é: SELECT NRO_DEPTO, AVG(SALARIO) FROM FUNC GROUP BY NRO_DEPTO.
3
Considere as tabelas da questão 1. A opção que contém o comando em SQL para obter a quantidade de funcionários em cada departamento onde a média salarial seja maior ou igual a R$ 2.000,00 é:
SELECT NRO_DEPTO, COUNT(*) >=2000 FROM FUNC GROUP BY NRO_DEPTO
SELECT COUNT(SALARIO) FROM FUNC HAVING AVG(SALARIO) >= 2000
SELECT NRO_DEPTO, SUM(COD_FUNC) FROM FUNC GROUP BY NRO_DEPTO HAVING AVG(SALARIO) >= 2000
SELECT COUNT(SALARIO) FROM FUNC WHERE AVG(SALARIO) >= 2000
SELECT NRO_DEPTO, COUNT(*) FROM FUNC GROUP BY NRO_DEPTO HAVING AVG(SALARIO) >= 2000
O comando SQL correto é: SELECT NRO_DEPTO, COUNT(*) FROM FUNC GROUP BY NRO_DEPTO HAVING AVG(SALARIO) >= 2000.
4
Considere o seguinte esquema de uma empresa:
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 utilizado para recuperar os nomes dos funcionários e dos projetos que eles participaram.
SELECT NOME, NOME FROM PROJETO P, FUNC F WHERE P.COD_FUNC = F.COD_FUNC
SELECT F.NOME, P.NOME FROM PARTICIPA PA, PROJETO P, FUNC F WHERE PA.COD_PROJ=P.COD_PROJ AND PA.COD_FUNC = F.COD_FUNC
SELECT F.NOME, P.NOME FROM PROJETO P, FUNC F
SELECT * FROM PARTICIPA PA, PROJETO P, FUNC F
SELECT F.NOME, PA.NOME FROM PARTICIPA PA, FUNC F WHERE PA.COD_FUNC = F.COD_FUNC
A sentença correta é SELECT F.NOME, P.NOME FROM PARTICIPA PA, PROJETO P, FUNC F WHERE PA.COD_PROJ=P.COD_PROJ AND PA.COD_FUNC = F.COD_FUNC.
5
Considere as tabelas da questão 1. Marque a alternativa que contém o comando em SQL utilizado para obter os nomes dos funcionários que participaram de projetos e os respectivos totais de horas trabalhadas.
SELECT F.NOME, TOTAL(HORAS_TRAB) FROM PARTICIPA PA, FUNC F
SELECT F.NOME, SUM(HORAS_TRAB) FROM PARTICIPA PA, FUNC F WHERE PA.COD_FUNC = F.COD_FUNC
SELECT F.NOME, MAX(HORAS_TRAB) FROM PARTICIPA PA, FUNC F WHERE PA.COD_FUNC = F.COD_FUNC GROUP BY F.NOME
SELECT F.NOME, SUM(HORAS_TRAB) FROM PARTICIPA PA, FUNC F WHERE PA.COD_FUNC = F.COD_FUNC GROUP BY F.NOME
SELECT NOME, SUM(HORAS_TRAB) FROM PARTICIPA GROUP BY NOME
A sentença correta é SELECT F.NOME, SUM(HORAS_TRAB) FROM PARTICIPA PA, FUNC F WHERE PA.COD_FUNC = F.COD_FUNC GROUP BY F.NOME.
6
Considere as tabelas da questão 1. Marque a alternativa que contém o comando em SQL para recuperar nomes dos funcionários e dos respectivos supervisores.
SELECT F.NOME, S.NOME FROM FUNC F, FUNC S
SELECT F.NOME, S.NOME FROM FUNC F, FUNC S WHERE F.COD_FUNC = S.COD_SUPERV
SELECT F.NOME, S.NOME FROM FUNC F, FUNC S WHERE F.COD_SUPERV = S.COD_FUNC
SELECT F.NOME, F.NOME_SUPERV FROM FUNC F
SELECT F.NOME, PA.NOME FROM FUNC F, PARTICIPA PA WHERE F.COD_FUNC = PA.COD_FUNC
A sentença correta é SELECT F.NOME, S.NOME FROM FUNC F, FUNC S WHERE F.COD_SUPERV = S.COD_FUNC.
7
Considere o seguinte esquema de uma empresa:
CARGO (COD_CARGO, DESCRICAO, SALARIO_MIN, SALARIO_MAX)‏
FUNCIONARIO (MATRICULA, NOME, COD_CARGO, MAT_CHEFE, DT_NASC, SALARIO)
CONTRATADO (MATRICULA, NOME, COD_CARGO, SALARIO)
Marque a alternativa que contém o comando em SQL utilizado para recuperar o nome do funcionário e a descrição do seu cargo, listando os cargos sem funcionários.
SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F LEFT OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO
SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F FULL OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO
SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO
SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F INNER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO
SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F RIGHT OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO
A sentença correta é SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F RIGHT OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO.
8
Considere as tabelas da questão 4. Marque a alternativa que contém o comando em SQL utilizado para recuperar os nomes dos funcionários e contratados que têm salário maior que R$ 1.500,00.
(SELECT NOME FROM FUNCIONARIO WHERE SALARIO > 1500) UNION (SELECT NOME FROM CONTRATADO WHERE SALARIO > 1500)
(SELECT NOME FROM FUNCIONARIO WHERE SALARIO > 1500) INTERSECT (SELECT NOME FROM CONTRATADO WHERE SALARIO > 1500)
(SELECT NOME FROM FUNCIONARIO WHERE SALARIO > 1500) JOIN (SELECT NOME FROM CONTRATADO WHERE SALARIO > 1500)
(SELECT NOME FROM FUNCIONARIO WHERE SALARIO > 1500) EXCEPT (SELECT NOME FROM CONTRATADO WHERE SALARIO > 1500)
SELECT F.NOME, C.NOME FROM FUNCIONARIO F, CONTRATADO C WHERE SALARIO > 1500
A sentença correta é (SELECT NOME FROM FUNCIONARIO WHERE SALARIO > 1500) UNION (SELECT NOME FROM CONTRATADO WHERE SALARIO > 1500).
9
Considere o seguinte esquema de uma empresa:
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 utilizado para listar o nome e o salário dos funcionários cuja remuneração é maior que a média salarial da empresa.
SELECT NOME, SALARIO FROM FUNC WHERE SALARIO > AVG(SALARIO)
SELECT NOME, SALARIO>AVG(SALARIO) FROM FUNC
SELECT NOME, SALARIO FROM FUNC WHERE SALARIO > (SELECT AVG(SALARIO) FROM FUNC)
SELECT NOME, SALARIO FROM FUNC WHERE EXISTS > (SELECT AVG(SALARIO) FROM FUNC)
SELECT NOME, SALARIO FROM FUNC WHERE SALARIO > (SELECT MEDIA(SALARIO) FROM FUNC)
A sentença correta é SELECT NOME, SALARIO FROM FUNC WHERE SALARIO > (SELECT AVG(SALARIO) FROM FUNC).
10
Considere as tabelas da questão 1. Marque a alternativa que contém o comando em SQL utilizado para retornar os códigos dos projetos cuja duração foi menor que a de todos os projetos do departamento 5.
SELECT COD_PROJ FROM PROJETO WHERE DURACAO < (SELECT DURACAO FROM PROJETO WHERE NRO_DEPTO = 5)
SELECT COD_PROJ FROM PROJETO WHERE DURACAO < ALL (SELECT DURACAO FROM PROJETO WHERE NRO_DEPTO = 5)
SELECT COD_PROJ FROM PROJETO WHERE DURACAO IN (SELECT DURACAO FROM PROJETO WHERE NRO_DEPTO = 5)
SELECT COD_PROJ FROM PROJETO WHERE DURACAO < NRO_DEPTO = 5
SELECT COD_PROJ FROM PROJETO WHERE EXISTS (SELECT DURACAO FROM PROJETO WHERE NRO_DEPTO = 5)
A sentença correta é SELECT COD_PROJ FROM PROJETO WHERE DURACAO < ALL (SELECT DURACAO FROM PROJETO WHERE NRO_DEPTO = 5).
11
Considere as tabelas da questão 1. Marque a alternativa que contém o comando em SQL utilizado para conceder privilégios para que o usuário Pedro insira dados na tabela Func, podendo repassar estes direitos.
GRANT INSERT TO PEDRO ON FUNC WITH GRANT OPTIONGRANT INSERT ON FUNC TO PEDRO
GRANT INSERT ON PEDRO TO FUNC WITH GRANT OPTION
GRANT INSERT ON FUNC TO PEDRO CASCADE
GRANT INSERT ON FUNC TO PEDRO WITH GRANT OPTION
A sentença correta é GRANT INSERT ON FUNC TO PEDRO WITH GRANT OPTION.ativa
12
Considere as tabelas da questão 1. Marque a alternativa que contém o comando em SQL utilizado para eliminar todos os privilégios do usuário Pedro na tabela Func.
REVOKE ALL ON FUNC FROM PEDRO
REVOKE PRIVILEGES ON FUNC FROM PEDRO
REVOKE PUBLIC ON FUNC FROM PEDRO
REVOKE ALL FROM PEDRO ON FUNC
REVOKE ALL ON PEDRO FROM FUNC
A sentença correta é REVOKE ALL ON FUNC FROM PEDRO.

Outros materiais