Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a Questão - 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 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 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 2a Questão 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 é: JOIN HAVING WHERE SELECT FROM 3a Questão - 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 4a Questão 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 IN ('15/11/2014','16/11/2014'); SELECT * FROM TCC WHERE DTDEFESA IN ('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'; 5a Questão 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 NOT IN (SELECT idCli FROM PEDIDO) SELECT NomeCli FROM CLIENTE C RIGHT JOIN PEDIDO P ON C.idCli = P.idCli SELECT * FROM CLIENTE SELECT * FROM CLIENTE WHERE idCli IN (SELECT idCli FROM PEDIDO) Explicação: sub-select listando clientes com pedido 6a Questão 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 "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 DISTINCT NOMEP FROM PROFESSOR P , TCC T, ALUNO A; 7a Questão 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, 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 EMP); 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); 8a Questão - 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 daespecialidade, 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 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 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 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 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 T4, CONSULTA T2 Where T1.id_pac = T4.id_pac And T4.id_med = T3.id_med And T3.id_espec = T2.id_espec
Compartilhar