Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. - 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 nome do paciente, sexo do paciente, valor da consulta para todos os pacientes. Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac != T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac = T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac <= T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac <> T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac >= T2. id_pac 2. A linguagem mais utilizada em Sistemas de Gerenciamento de Banco de Dados (SGDBs) é a SQL. Esta fornece a possibilidade de realizar o produto cartesiano dos dados, ou seja, gera um conjunto de todos os pares ordenados. A linguagem SQL também fornece uma função que corresponde a operação de produto cartesiano da álgebra relacional, esta função é: HAVING WHERE SELECT FROM JOIN Explicação: Join - A cláusula JOIN permite que os dados de várias tabelas sejam combinados com base na relação existente entre elas. Having ¿ Especifica um critério de pesquisa para um grupo ou uma agregação. HAVING é usado normalmente em uma cláusula GROUP BY. Where - A cláusula Where estabelece uma condição que a linha deverá obedecer para que faça parte do conjunto resposta da consulta. Select - É o comando SQL para recuperação dos dados de uma ou mais tabelas. From - A Cláusula FROM, faz parte do comando select e define a tabela que será recuperada. 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 nome do paciente, nome do médico, nome da especialidade, data de consulta, valor da consulta para todos os pacientes. Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T3, ESPECIALIDADE T2, MEDICO T1, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T1, MEDICO T3, CONSULTA T2 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T1, ESPECIALIDADE T2, MEDICO T1, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T1, ESPECIALIDADE T2, MEDICO T3, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec 4. De acordo com a estrutura das tabelas abaixo, escolha a opção que mostre o nome de cada empregado e o seu salário, daqueles que ganham o maior salário do seu departamento, através da linguagem SQL. O exemplo do banco de dados é composto por 2 tabelas: a tabela EMP que contém dados dos empregados, cuja chave primária é EMPNO (matrícula do empregado) 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 ------------------------------------------ EMPNO 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, E.SALARIO FROM EMP E WHERE E.SALARIO=(SELECT MAX(SALARIO) FROM EMP WHERE DEPTNO=E.DEPTNO); SELECT E.NOME_EMP, E.SALARIO FROM EMP E WHERE E.SALARIO=(SELECT MAX(SALARIO) FROM EMP); SELECT E.NOME_EMP, MAX(E.SALARIO) FROM EMP E GROUP BY E.ENOME; SELECT E.NOME_EMP, MAX(E.SALARIO) FROM EMP E GROUP BY E.ENOME HAVING SALARIO=MAX(SALARIO); SELECT E.NOME_EMP, E.SALARIO FROM EMP E WHERE E.SALARIO=(SELECT MAX(SALARIO) FROM DEPT WHERE DEPTNO=E.DEPTNO); 5. Em relação as tabelas abaixo: Marque a alternativa que possui o comando SQL utilizado para que sejam selecionadas as informações (nome do correntista e o número de conta corrente) dos correntistas do Banco do Brasil. SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Pessoa=CPF AND Banco IN (SELECT Codigo AS Banco FROM Bancos WHERE Nome=¿Banco do Brasil¿) SELECT Nome, Numero FROM Pessoas, Conta_Corrente, Bancos WHERE Pessoa=CPF AND Banco IN (SELECT Codigo AS Banco FROM Bancos WHERE Nome=¿Banco do Brasil¿) SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Nome=¿Banco do Brasil¿ SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Pessoa=CPF AND Banco=¿Banco do Brasil¿ SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Pessoa=CPF AND Banco=¿Banco do Brasil¿ 6. De acordo com a estrutura das tabelas abaixo, escolha a opção que mostre o nome de cada empregado, o nome do seu departamento, daqueles que ganham comissão, através da linguagem SQL. O exemplo do banco de dados é composto por 2 tabelas: a tabela EMP que contém dados dos empregados, cuja chave primária é EMPNO (matrícula do empregado) 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 ---------------------------------------------- EMPNO 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) LOCALIZACAOCHAR(13) SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.COMISSAO>0; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.COMISSAO >0; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.COMISSAO < > 0; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO HAVING E.COMISSAO IS NULL; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.COMISSAO IS NOT NULL; Gabarito Coment. 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) O nome dos clientes que são cadastrados como especiais? SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c RIGHT JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c LEFT JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c, cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce 8. Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial, nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario,nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente,nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente,Km,desconto) CARRO(idcarro,placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF,idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) Qual o código do Carro que tem o maior valor de aluguel? SELECT idCarro FROM aluguel a where valor = (select sum(valor) from aluguel); SELECT idCarro FROM aluguel a where valor = (select Max(valor) from aluguel); SELECT idCarro, Max(valor) FROM aluguel a group by idcarro; SELECT idCarro FROM aluguel a where valor = Max(valor); SELECT idCarro, Max(valor) FROM aluguel; Não Respondida Não Gravada Gravada Exercício inciado em 09/05/2020 00:47:45. 1. Sabendo-se que existem dados de TCC cadastrados com datas de defesa que variam de 20/11/2012 até a data de hoje, assinale qual das alternativas abaixo retornaria o mesmo resultado que o comando "SELECT * FROM TCC WHERE DTDEFESA BETWEEN '15/11/2014' AND '16/11/2014';": SELECT * FROM TCC WHERE DTDEFESA = '15/11/2014' AND '16/11/2014'; SELECT * FROM TCC WHERE DTDEFESA => '15/11/2014' AND <= '16/11/2014'; SELECT * FROM TCC WHERE DTDEFESA IN ('15/11/2014' AND '16/11/2014'); SELECT * FROM TCC WHERE DTDEFESA IN ('15/11/2014','16/11/2014'); SELECT * FROM TCC WHERE DTDEFESA > '15/11/2014' AND < '16/11/2014'; 2. 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) Qual o nome do Funcionário que tem o maior salário? SELECT nome FROM funcionario fu where salario = (select sum(salario) from funcionario); SELECT nome FROM funcionario fu where salario = (select Max(salario) from funcionario); SELECT nome FROM funcionario fu where salario = Max(salario); SELECT nome, Max(salario) FROM funcionario fu group by nome; SELECT nome, Max(salario) FROM funcionario; 3. SELECT DISTINCT NOMEP FROM PROFESSOR P , TCC T, ALUNO A; SELECT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT DISTINCT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT DISTINCT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A; Gabarito Coment. 4. - 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 nome do paciente, nome da especialidade, nome do médico, data de consulta para todos os pacientes. Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T1, ESPECIALIDADE T3, MEDICO T4, CONSULTA T2 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T1, ESPECIALIDADE T2, MEDICO T3, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T2, ESPECIALIDADE T3, MEDICO T1, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T1, ESPECIALIDADE T3, MEDICO T2, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec= T2.id_espec 5. - 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 nome do paciente, nome da especialidade, nome do médico, data de consulta para todos os pacientes. Select T1.nome_pac, T3.nome_med, T2.nome_espec, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T2.nome_espec, T1.nome_pac, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T3.nome_med, T1.nome_pac, T2.nome_espec, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec 6. (PRODEB 2008) Analiseas assertivas e assinale a alternativa que apresenta as corretas. I. O comando create table é usado para especificar uma nova relação, dando-lhe um nome e especificando seus atributos e restrições iniciais. II. É possível definir um valor default para um atributo por meio da adição da cláusula default seguida de seu valor na definição de um atributo. III. Pode-se limitar os valores do atributo ou de seu domínio pelo uso da cláusula check, seguida da definição do atributo ou do domínio. IV. O conceito de junção de tabelas (ou junção de relações) " join " foi incorporado à SQL para que os usuários pudessem especificar uma tabela que fosse resultado da aplicação da operação de junção na cláusula where de uma consulta. Apenas IV está correta. Nenhuma assertiva está correta. Apenas III está incorreta. Apenas I, II, III e IV estão corretas. Apenas I, II e III estão corretas. Explicação: IV. Um comando SELECT pode fazer uma consulta que traz dados de duas ou mais tabelas. Esse é um processo chamado de Junção (join). As tabelas têm uma coluna em comum que é usado para fazer as junções. 7. Qual comando abaixo representa o seguinte texto: Especifica a junção entre duas tabelas com uma cláusula de junção explícita. Inner Join Group by Where Select Order by Explicação: 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. Group by: A clausula GROUP BY da declaração do SELECT é usada para agrupar as linhas em menores grupos. Inner Join: Conecta as duas tabelas e retorna apenas as linhas que satisfazem a condição de junção. Order by: A clausula permite ordenar qualquer resultado de uma consulta. 8. O esquema abaixo refere-se a um banco de dados criado para auxiliar na gerência de orientação de alunos por professores e da defesa do Trabalho de Conclusão de Curso (TCC) pelos alunos. Analise-o: Professor (MatP,NomeP, telP, emailP) Aluno (MatA, MatP, NomeA, emailA) TCC (IDTCC, MatA, Titulo, Resumo) Assinale a única alternativa que retorna exatamente os dados exibidos na figura: SELECT NOMEP, NOMEA, TITULO FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEA ALUNO, NOMEP PROFESSOR, TITULO FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEA ALUNO, NOMEP PROFESSOR, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP PROFESSOR, NOMEA ALUNO, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP PROFESSOR, NOMEA ALUNO, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP; Gabarito Coment. Não Respondida Não Gravada Gravada Exercício inciado em 09/05/2020 00:51:31. 1. - 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 nome do médico, nome da especialidade para todos os médicos. Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec <=T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec < T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec <> T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec >= T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec = T2. id_espec 2. Analise o modelo a seguir: Empregado (nome_empregado, rua,cidade) Trabalha (nome_empregado,nome_companhia,salario) Companhia (nome_companhia,cidade) Qual é a consulta em SQL para encontrar nome, endereço e cidade de residência de todos os empregados da XXX que ganham mais de dez mil reais? SELECT e.nome_empregado, rua, cidade FROM empregado e WHERE t.nome_companhia = 'XXX' AND t.salario < 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e INNER JOIN trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e LEFT JOIN trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e, trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; 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 nome do paciente, nome do médico onde a data da consulta é igual à data de hoje. Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T3, MEDICO T2, CONSULTA T1 Where T3.dt_cons = GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T2, MEDICO T1, CONSULTA T3 Where T3.dt_cons = GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T1, MEDICO T2, CONSULTA T3 Where T3.dt_cons = GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T1, MEDICO T2, CONSULTA T3 Where T3.dt_cons < GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T3, MEDICO T1, CONSULTA T2 Where T3.dt_cons != GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med 4. 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 de cada tipo de projeto que não possua um projeto e que comece com a letra A. SELECT NOME FROM TIPO_PROJETO WHERE ID_TIPO NOT IN (SELECT DISTINCT ID_TIPO FROM PROJETO) AND NOME LIKE 'A%' ; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE ID_TIPO IS NULL AND P.VALOR=0 AND TP.NOME LIKE 'A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR IS NULL AND TP.NOME LIKE '%A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE TP.ID_TIPO = P.ID_TIPO AND TP.ID_TIPO IS NULL AND TP.NOME LIKE '%A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE ID_TIPO IS NULL AND TP.NOME LIKE '%A%'; 5. - 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 nome do médico, nome da especialidade para todos os médicos. Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec <> T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec = T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec <=T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec < T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec >= T2. id_espec 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) O nome dos clientes, os códigos dos carros que o cliente alugou e o valor de cada aluguel? SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a RIGHT JOIN cliente c where a.idcliente=c.idcliente SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a INNER JOIN cliente c SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a, cliente c where a.idcliente=c.idcliente SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a, cliente c ON a.idcliente=c.idcliente SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a LEFT JOIN cliente c where a.idcliente=c.idcliente 7. Considere as seguintes tabelas: CLIENTE (idCli, NomeCli) PEDIDO (idPEDIDO, Data, idCli, ValorPedido) Qual alternativa apresenta os clientes que NÃO tiveram nenhum pedido? SELECT NomeCli FROM CLIENTE C RIGHT JOIN PEDIDO P ON C.idCli = P.idCli SELECT * FROM CLIENTE WHERE idCli IN (SELECT idCli FROM PEDIDO) SELECT * FROM CLIENTE SELECT NomeCli FROM CLIENTE C LEFT JOIN PEDIDO P ON C.idCli = P.idCli SELECT * FROM CLIENTE WHERE idCli NOT IN (SELECT idCli FROM PEDIDO) Explicação: sub-select listando clientes com pedido 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) O nome dos clientes que mesmo cadastrados no banco de dados da Locadora NÃO fizeram nenhum aluguel? SELECT c.nome cliente FROM aluguel a INNER JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a LEFT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a, cliente c ON a.idcliente=c.idcliente SELECT c.nome cliente FROM aluguel a, cliente c where a.idcliente=c.idcliente SELECT c.nome cliente FROM aluguel a RIGHT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL Não Respondida Não Gravada Gravada Exercício inciado em 09/05/2020 00:52:41. 1. - 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 nome do paciente, nome do médico, nome da especialidade, data de consulta, valor da consulta para todos os pacientes. Select T3.nome_med, T1.nome_pac, T2.nome_espec, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T4.vl_cons From ,T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T3.nome_med, T2.nome_espec, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T2.nome_espec, T1.nome_pac, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec 2. De acordo com a estrutura das tabelas abaixo, escolha a opção que mostre o nome de cada empregado, o nome do seu departamento, daqueles que ganham comissão, através da linguagem SQL. O exemplo do banco de dados é composto por 2 tabelas: a tabela EMP que contém dados dos empregados, cuja chave primária é EMPNO (matrícula do empregado) 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 ---------------------------------------------- EMPNO 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_EMP FROM EMP E, DEPT D WHERE E.COMISSAO >0; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.COMISSAO < > 0; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.COMISSAO>0; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.COMISSAO IS NOT NULL; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO HAVING E.COMISSAO IS NULL; Gabarito Coment. 3. De acordo com a estrutura das tabelas abaixo, escolha a opção que mostre o nome de cada empregado e o seu salário, daqueles que ganham o maior salário do seu departamento, através da linguagem SQL. O exemplo do banco de dados é composto por 2 tabelas: a tabela EMP que contém dados dos empregados, cuja chave primária é EMPNO (matrícula do empregado) 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 ------------------------------------------ EMPNO NOT NULL NUMBER(4) NOME_EMPCHAR(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, MAX(E.SALARIO) FROM EMP E GROUP BY E.ENOME HAVING SALARIO=MAX(SALARIO); SELECT E.NOME_EMP, E.SALARIO FROM EMP E WHERE E.SALARIO=(SELECT MAX(SALARIO) FROM DEPT WHERE DEPTNO=E.DEPTNO); SELECT E.NOME_EMP, MAX(E.SALARIO) FROM EMP E GROUP BY E.ENOME; SELECT E.NOME_EMP, E.SALARIO FROM EMP E WHERE E.SALARIO=(SELECT MAX(SALARIO) FROM EMP); SELECT E.NOME_EMP, E.SALARIO FROM EMP E WHERE E.SALARIO=(SELECT MAX(SALARIO) FROM EMP WHERE DEPTNO=E.DEPTNO); 4. - 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 nome do paciente, sexo do paciente, valor da consulta para todos os pacientes. Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac >= T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac != T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac = T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac <> T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac <= T2. id_pac 5. 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 dos clientes que são cadastrados como especiais? SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce SELECT c.nome cliente FROM cliente c RIGHT JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c, cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c LEFT JOIN cliente_especial ce ON c.idcliente=ce.idcliente 6. Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial, nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario,nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente,nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente,Km,desconto) CARRO(idcarro,placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF,idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) Qual o código do Carro que tem o maior valor de aluguel? SELECT idCarro FROM aluguel a where valor = Max(valor); SELECT idCarro, Max(valor) FROM aluguel a group by idcarro; SELECT idCarro, Max(valor) FROM aluguel; SELECT idCarro FROM aluguel a where valor = (select sum(valor) from aluguel); SELECT idCarro FROM aluguel a where valor = (select Max(valor) from aluguel); 7. Em relação as tabelas abaixo: Marque a alternativa que possui o comando SQL utilizado para que sejam selecionadas as informações (nome do correntista e o número de conta corrente) dos correntistas do Banco do Brasil. SELECT Nome, Numero FROM Pessoas, Conta_Corrente, Bancos WHERE Pessoa=CPF AND Banco IN (SELECT Codigo AS Banco FROM Bancos WHERE Nome=¿Banco do Brasil¿) SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Pessoa=CPF AND Banco IN (SELECT Codigo AS Banco FROM Bancos WHERE Nome=¿Banco do Brasil¿) SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Pessoa=CPF AND Banco=¿Banco do Brasil¿ SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Nome=¿Banco do Brasil¿ SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Pessoa=CPF AND Banco=¿Banco do Brasil¿ 8. A linguagem mais utilizada em Sistemas de Gerenciamento de Banco de Dados (SGDBs) é a SQL. Esta fornece a possibilidade de realizar o produto cartesiano dos dados, ou seja, gera um conjunto de todos os pares ordenados. A linguagem SQL também fornece uma função que corresponde a operação de produto cartesiano da álgebra relacional, esta função é: SELECT FROM HAVING JOIN WHERE Explicação: Join - A cláusula JOIN permite que os dados de várias tabelas sejam combinados com base na relação existente entre elas. Having ¿ Especifica um critério de pesquisa para um grupo ou uma agregação. HAVING é usado normalmente em uma cláusula GROUP BY. Where - A cláusula Where estabelece uma condição que a linha deverá obedecer para que faça parte do conjunto resposta da consulta. Select - É o comando SQL para recuperação dos dados de uma ou mais tabelas. From - A Cláusula FROM, faz parte do comando select e define a tabela que será recuperada. Não Respondida Não Gravada Gravada Exercício inciado em 09/05/2020 00:53:33. 1. - 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 nome do paciente, nome do médico, nome da especialidade, data de consulta, valor da consulta para todos os pacientes. Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T1, ESPECIALIDADE T2, MEDICO T1, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T3, ESPECIALIDADE T2, MEDICO T1, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T1, ESPECIALIDADE T2, MEDICO T3, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T1, MEDICO T3, CONSULTA T2 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec 2. Qual comando abaixo representa o seguinte texto: Especifica a junção entre duas tabelas com uma cláusula de junção explícita. Group byInner Join Order by Select Where Explicação: 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. Group by: A clausula GROUP BY da declaração do SELECT é usada para agrupar as linhas em menores grupos. Inner Join: Conecta as duas tabelas e retorna apenas as linhas que satisfazem a condição de junção. Order by: A clausula permite ordenar qualquer resultado de uma consulta. 3. Sabendo-se que existem dados de TCC cadastrados com datas de defesa que variam de 20/11/2012 até a data de hoje, assinale qual das alternativas abaixo retornaria o mesmo resultado que o comando "SELECT * FROM TCC WHERE DTDEFESA BETWEEN '15/11/2014' AND '16/11/2014';": SELECT * FROM TCC WHERE DTDEFESA = '15/11/2014' AND '16/11/2014'; SELECT * FROM TCC WHERE DTDEFESA => '15/11/2014' AND <= '16/11/2014'; SELECT * FROM TCC WHERE DTDEFESA IN ('15/11/2014' AND '16/11/2014'); SELECT * FROM TCC WHERE DTDEFESA IN ('15/11/2014','16/11/2014'); SELECT * FROM TCC WHERE DTDEFESA > '15/11/2014' AND < '16/11/2014'; 4. O esquema abaixo refere-se a um banco de dados criado para auxiliar na gerência de orientação de alunos por professores e da defesa do Trabalho de Conclusão de Curso (TCC) pelos alunos. Analise-o: Professor (MatP,NomeP, telP, emailP) Aluno (MatA, MatP, NomeA, emailA) TCC (IDTCC, MatA, Titulo, Resumo) Assinale a única alternativa que retorna exatamente os dados exibidos na figura: SELECT NOMEA ALUNO, NOMEP PROFESSOR, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP PROFESSOR, NOMEA ALUNO, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP; SELECT NOMEP PROFESSOR, NOMEA ALUNO, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP, NOMEA, TITULO FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEA ALUNO, NOMEP PROFESSOR, TITULO FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; Gabarito Coment. 5. SELECT DISTINCT NOMEP FROM PROFESSOR P , TCC T, ALUNO A; SELECT NOMEP FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT DISTINCT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A; SELECT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT DISTINCT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; Gabarito Coment. 6. - 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 nome do paciente, nome da especialidade, nome do médico, data de consulta para todos os pacientes. Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T1, ESPECIALIDADE T2, MEDICO T3, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T1, ESPECIALIDADE T3, MEDICO T4, CONSULTA T2 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T1, ESPECIALIDADE T3, MEDICO T2, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec= T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T2, ESPECIALIDADE T3, MEDICO T1, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec 7. - 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 nome do paciente, nome da especialidade, nome do médico, data de consulta para todos os pacientes. Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T3.nome_med, T1.nome_pac, T2.nome_espec, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T3.nome_med, T2.nome_espec, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T2.nome_espec, T1.nome_pac, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec 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) Qual o nome do Funcionário que tem o maior salário? SELECT nome, Max(salario) FROM funcionario fu group by nome; SELECT nome FROM funcionario fu where salario = (select sum(salario) from funcionario); SELECT nome FROM funcionario fu where salario = Max(salario); SELECT nome, Max(salario) FROM funcionario; SELECT nome FROM funcionario fu where salario = (select Max(salario) from funcionario); Não Respondida Não Gravada Gravada Exercício inciado em 09/05/2020 00:54:42. 1. (PRODEB 2008) Analise as assertivas e assinale a alternativa que apresenta as corretas. I. O comando create table é usado para especificar uma nova relação, dando-lhe um nome e especificando seus atributos e restrições iniciais. II. É possível definir um valor default para um atributo por meio da adição da cláusula default seguida de seu valor na definição de um atributo. III. Pode-se limitar os valores do atributo ou de seu domínio pelo uso da cláusula check, seguida da definição do atributo ou do domínio. IV. O conceito de junção de tabelas (ou junção de relações) " join " foi incorporado à SQL para que os usuários pudessem especificar uma tabela que fosse resultadoda aplicação da operação de junção na cláusula where de uma consulta. Nenhuma assertiva está correta. Apenas I, II e III estão corretas. Apenas III está incorreta. Apenas I, II, III e IV estão corretas. Apenas IV está correta. Explicação: IV. Um comando SELECT pode fazer uma consulta que traz dados de duas ou mais tabelas. Esse é um processo chamado de Junção (join). As tabelas têm uma coluna em comum que é usado para fazer as junções. 2. - 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 nome do médico, nome da especialidade para todos os médicos. Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec >= T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec = T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec <=T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec < T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec <> T2. id_espec 3. Considere as seguintes tabelas: CLIENTE (idCli, NomeCli) PEDIDO (idPEDIDO, Data, idCli, ValorPedido) Qual alternativa apresenta os clientes que NÃO tiveram nenhum pedido? SELECT NomeCli FROM CLIENTE C LEFT JOIN PEDIDO P ON C.idCli = P.idCli SELECT * FROM CLIENTE WHERE idCli IN (SELECT idCli FROM PEDIDO) SELECT * FROM CLIENTE SELECT * FROM CLIENTE WHERE idCli NOT IN (SELECT idCli FROM PEDIDO) SELECT NomeCli FROM CLIENTE C RIGHT JOIN PEDIDO P ON C.idCli = P.idCli Explicação: sub-select listando clientes com pedido 4. Analise o modelo a seguir: Empregado (nome_empregado, rua,cidade) Trabalha (nome_empregado,nome_companhia,salario) Companhia (nome_companhia,cidade) Qual é a consulta em SQL para encontrar nome, endereço e cidade de residência de todos os empregados da XXX que ganham mais de dez mil reais? SELECT e.nome_empregado, rua, cidade FROM empregado e INNER JOIN trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e WHERE t.nome_companhia = 'XXX' AND t.salario < 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e, trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e LEFT JOIN trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; 5. - 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 nome do paciente, nome do médico onde a data da consulta é igual à data de hoje. Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T3, MEDICO T1, CONSULTA T2 Where T3.dt_cons != GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T3, MEDICO T2, CONSULTA T1 Where T3.dt_cons = GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T1, MEDICO T2, CONSULTA T3 Where T3.dt_cons < GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T1, MEDICO T2, CONSULTA T3 Where T3.dt_cons = GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T2, MEDICO T1, CONSULTA T3 Where T3.dt_cons = GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med 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) O nome dos clientes que mesmo cadastrados no banco de dados da Locadora NÃO fizeram nenhum aluguel? SELECT c.nome cliente FROM aluguel a INNER JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a, cliente c where a.idcliente=c.idcliente SELECT c.nome cliente FROM aluguel a RIGHT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a LEFT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a, cliente c ON a.idcliente=c.idcliente 7. 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 de cada tipo de projeto que não possua um projeto e que comece com a letra A. SELECT NOME FROM TIPO_PROJETO WHERE ID_TIPO NOT IN (SELECT DISTINCT ID_TIPO FROM PROJETO) AND NOME LIKE 'A%' ; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR IS NULL AND TP.NOME LIKE '%A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE ID_TIPO IS NULL AND TP.NOME LIKE '%A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE ID_TIPO IS NULL AND P.VALOR=0 AND TP.NOME LIKE 'A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE TP.ID_TIPO = P.ID_TIPO AND TP.ID_TIPO IS NULL AND TP.NOME LIKE '%A%'; 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 nome do médico, nome da especialidade para todos os médicos. Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec <=T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec = T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec >= T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec <> T2. id_espec Select T1.nome_med, T2.nome_espec From MEDICO T1, ESPECIALIDADE T2 Where T1. id_espec < T2. id_espec Não Respondida Não Gravada Gravada Exercício inciado em 09/05/2020 00:56:19. 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 dos clientes, os códigos dos carros que o cliente alugou e o valor de cada aluguel? SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a LEFT JOIN cliente c where a.idcliente=c.idcliente SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a INNER JOIN cliente c SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a, cliente c ON a.idcliente=c.idcliente SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a RIGHT JOIN cliente c where a.idcliente=c.idcliente SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a, cliente c where a.idcliente=c.idcliente 2. Em relação as tabelas abaixo: Marque a alternativa que possui o comando SQL utilizado para que sejam selecionadas as informações (nome do correntista e o número de conta corrente) dos correntistas do Banco do Brasil. SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Nome=¿Banco do Brasil¿ SELECT Nome, Numero FROM Pessoas, Conta_Corrente, Bancos WHERE Pessoa=CPF AND Banco IN (SELECT Codigo AS Banco FROM Bancos WHERE Nome=¿Banco do Brasil¿) SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Pessoa=CPF AND Banco=¿Banco do Brasil¿ SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Pessoa=CPF AND Banco=¿Banco do Brasil¿ SELECT Nome, Numero FROM Pessoas, Conta_Corrente WHERE Pessoa=CPF AND Banco IN (SELECT Codigo AS Banco FROM Bancos WHERE Nome=¿Banco do Brasil¿) 3. De acordo com a estrutura das tabelas abaixo, escolha a opção que mostre o nome de cada empregado e o seu salário, daqueles que ganham o maior salário do seu departamento, através da linguagem SQL. O exemplo do banco de dados é composto por 2 tabelas: a tabela EMP que contém dados dos empregados, cuja chave primária é EMPNO (matrícula do empregado) 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 ------------------------------------------ EMPNO 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, E.SALARIO FROM EMP E WHERE E.SALARIO=(SELECT MAX(SALARIO) FROM EMP WHERE DEPTNO=E.DEPTNO); SELECT E.NOME_EMP, MAX(E.SALARIO) FROM EMP E GROUP BY E.ENOME; SELECT E.NOME_EMP, E.SALARIO FROM EMP E WHERE E.SALARIO=(SELECT MAX(SALARIO) FROM DEPT WHERE DEPTNO=E.DEPTNO); SELECT E.NOME_EMP, E.SALARIO FROM EMP E WHERE E.SALARIO=(SELECT MAX(SALARIO) FROM EMP); SELECT E.NOME_EMP, MAX(E.SALARIO) FROM EMP E GROUP BY E.ENOME HAVING SALARIO=MAX(SALARIO); 4. - 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 nome do paciente, sexo do paciente, valor da consulta para todos os pacientes. Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac <= T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac <> T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac >= T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac != T2. id_pac Select T1.nome_pac, T1.sexo, T2.vl_cons From PACIENTE T1, CONSULTA T2 Where T1. id_pac = T2. id_pac 5. - 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 nome do paciente, nome do médico, nome da especialidade, data de consulta, valor da consulta para todos os pacientes. Select T1.nome_pac, T3.nome_med, T2.nome_espec, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T2.nome_espec, T1.nome_pac, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T4.vl_cons From ,T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T3.nome_med, T1.nome_pac, T2.nome_espec, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec 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) O nome dos clientes que são cadastrados como especiais? SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c RIGHT JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c, cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce SELECT c.nome cliente FROM cliente c LEFT JOIN cliente_especial ce ON c.idcliente=ce.idcliente 7. Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial, nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario,nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente,nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente,Km,desconto) CARRO(idcarro,placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial)ALUGUEL(NF,idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) Qual o código do Carro que tem o maior valor de aluguel? SELECT idCarro FROM aluguel a where valor = (select Max(valor) from aluguel); SELECT idCarro FROM aluguel a where valor = (select sum(valor) from aluguel); SELECT idCarro FROM aluguel a where valor = Max(valor); SELECT idCarro, Max(valor) FROM aluguel a group by idcarro; SELECT idCarro, Max(valor) FROM aluguel; 8. A linguagem mais utilizada em Sistemas de Gerenciamento de Banco de Dados (SGDBs) é a SQL. Esta fornece a possibilidade de realizar o produto cartesiano dos dados, ou seja, gera um conjunto de todos os pares ordenados. A linguagem SQL também fornece uma função que corresponde a operação de produto cartesiano da álgebra relacional, esta função é: WHERE SELECT FROM HAVING JOIN Explicação: Join - A cláusula JOIN permite que os dados de várias tabelas sejam combinados com base na relação existente entre elas. Having ¿ Especifica um critério de pesquisa para um grupo ou uma agregação. HAVING é usado normalmente em uma cláusula GROUP BY. Where - A cláusula Where estabelece uma condição que a linha deverá obedecer para que faça parte do conjunto resposta da consulta. Select - É o comando SQL para recuperação dos dados de uma ou mais tabelas. From - A Cláusula FROM, faz parte do comando select e define a tabela que será recuperada. Não Respondida Não Gravada Gravada Exercício inciado em 09/05/2020 00:57:24. 1. De acordo com a estrutura das tabelas abaixo, escolha a opção que mostre o nome de cada empregado, o nome do seu departamento, daqueles que ganham comissão, através da linguagem SQL. O exemplo do banco de dados é composto por 2 tabelas: a tabela EMP que contém dados dos empregados, cuja chave primária é EMPNO (matrícula do empregado) 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 ---------------------------------------------- EMPNO 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_EMP FROM EMP E, DEPT D WHERE E.COMISSAO >0; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.COMISSAO < > 0; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.COMISSAO>0; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO HAVING E.COMISSAO IS NULL; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.COMISSAO IS NOT NULL; Gabarito Coment. 2. Qual comando abaixo representa o seguinte texto: Especifica a junção entre duas tabelas com uma cláusula de junção explícita. Group by Select Inner Join Order by Where Explicação: 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. Group by: A clausula GROUP BY da declaração do SELECT é usada para agrupar as linhas em menores grupos. Inner Join: Conecta as duas tabelas e retorna apenas as linhas que satisfazem a condição de junção. Order by: A clausula permite ordenar qualquer resultado de uma consulta. 3. Sabendo-se que existem dados de TCC cadastrados com datas de defesa que variam de 20/11/2012 até a data de hoje, assinale qual das alternativas abaixo retornaria o mesmo resultado que o comando "SELECT * FROM TCC WHERE DTDEFESA BETWEEN '15/11/2014' AND '16/11/2014';": SELECT * FROM TCC WHERE DTDEFESA IN ('15/11/2014' AND '16/11/2014'); SELECT * FROM TCC WHERE DTDEFESA IN ('15/11/2014','16/11/2014'); SELECT * FROM TCC WHERE DTDEFESA > '15/11/2014' AND < '16/11/2014'; SELECT * FROM TCC WHERE DTDEFESA => '15/11/2014' AND <= '16/11/2014'; SELECT * FROM TCC WHERE DTDEFESA = '15/11/2014' AND '16/11/2014'; 4. O esquema abaixo refere-se a um banco de dados criado para auxiliar na gerência de orientação de alunos por professores e da defesa do Trabalho de Conclusão de Curso (TCC) pelos alunos. Analise-o: Professor (MatP,NomeP, telP, emailP) Aluno (MatA, MatP, NomeA, emailA) TCC (IDTCC, MatA, Titulo, Resumo) Assinale a única alternativa que retorna exatamente os dados exibidos na figura: SELECT NOMEP PROFESSOR, NOMEA ALUNO, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP, NOMEA, TITULO FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEA ALUNO, NOMEP PROFESSOR, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP PROFESSOR, NOMEA ALUNO, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP; SELECT NOMEA ALUNO, NOMEP PROFESSOR, TITULO FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; Gabarito Coment. 5. SELECT DISTINCT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT DISTINCT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A; SELECT DISTINCT NOMEP FROM PROFESSOR P , TCC T, ALUNO A; Gabarito Coment. 6. - 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 nome do paciente, nome da especialidade, nome do médico, data de consulta para todos os pacientes. Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T1, ESPECIALIDADE T3, MEDICO T2, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec= T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T1, ESPECIALIDADE T3, MEDICO T4, CONSULTA T2 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T1, ESPECIALIDADE T2, MEDICO T3, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac,T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T2, ESPECIALIDADE T3, MEDICO T1, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec 7. - 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 nome do paciente, nome do médico, nome da especialidade, data de consulta, valor da consulta para todos os pacientes. Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T1, ESPECIALIDADE T2, MEDICO T1, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T3, ESPECIALIDADE T2, MEDICO T1, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T1, ESPECIALIDADE T2, MEDICO T3, CONSULTA T4 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T1, MEDICO T3, CONSULTA T2 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec 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 nome do paciente, nome da especialidade, nome do médico, data de consulta para todos os pacientes. Select T3.nome_med, T1.nome_pac, T2.nome_espec, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T3.nome_med, T2.nome_espec, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T2.nome_espec, T1.nome_pac, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Select T1.nome_pac, T2.nome_espec, T3.nome_med, T4.dt_cons, T4.vl_cons From PACIENTE T4, ESPECIALIDADE T3, MEDICO T2, CONSULTA T1 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec Não Respondida Não Gravada Gravada Exercício inciado em 09/05/2020 00:58:43. 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) Qual o nome do Funcionário que tem o maior salário? SELECT nome FROM funcionario fu where salario = (select sum(salario) from funcionario); SELECT nome FROM funcionario fu where salario = Max(salario); SELECT nome, Max(salario) FROM funcionario; SELECT nome, Max(salario) FROM funcionario fu group by nome; SELECT nome FROM funcionario fu where salario = (select Max(salario) from funcionario); 2. Analise o modelo a seguir: Empregado (nome_empregado, rua,cidade) Trabalha (nome_empregado,nome_companhia,salario) Companhia (nome_companhia,cidade) Qual é a consulta em SQL para encontrar nome, endereço e cidade de residência de todos os empregados da XXX que ganham mais de dez mil reais? SELECT e.nome_empregado, rua, cidade FROM empregado e WHERE t.nome_companhia = 'XXX' AND t.salario < 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e, trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e LEFT JOIN trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e INNER JOIN trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; 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 nome do paciente, nome do médico onde a data da consulta é igual à data de hoje. Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T1, MEDICO T2, CONSULTA T3 Where T3.dt_cons < GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T3, MEDICO T2, CONSULTA T1 Where T3.dt_cons = GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T3, MEDICO T1, CONSULTA T2 Where T3.dt_cons != GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T2, MEDICO T1, CONSULTA T3 Where T3.dt_cons = GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med Select T1.nome_pac, T2.nome_med, T2.dt_cons From PACIENTE T1, MEDICO T2, CONSULTA T3 Where T3.dt_cons = GETDATE() And T3.id_pac = T1.id_pac And T3.id_med = T2.id_med 4. 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 de cada tipo de projeto que não possua um projeto e que comece com a letra A. SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE ID_TIPO IS NULL AND TP.NOME LIKE '%A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE ID_TIPO IS NULL AND P.VALOR=0 AND TP.NOME LIKE 'A%'; SELECT NOME FROM TIPO_PROJETO WHERE ID_TIPO NOT IN (SELECT DISTINCT ID_TIPO FROM PROJETO) AND NOME LIKE 'A%' ; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR IS NULL AND TP.NOME LIKE '%A%'; SELECT TP.NOME FROM TIPO_PROJETO
Compartilhar