Prévia do material em texto
- 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. Em relação as tabelas abaixo: Aluno: RENATO DA SILVA OLIVEIRA Matr.: 201808137523 Disc.: BANCO DE DADOS 2019.3 EAD (GT) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. 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 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 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. http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# 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. 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 Nome, Numero FROM Pessoas, Conta_Corrente WHERE Pessoa=CPF AND Banco=¿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 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¿) 3. 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.COMISSAO >0; SELECT E.NOME_EMP,D.NOME_EMP FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.COMISSAO>0; http://simulado.estacio.br/bdq_simulados_exercicio.asp# 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: ESPECIE (IDESPECIE, NOME_CIENTIFICO, DENTICAO, STATUS_EXTINCAO, HABITAT, TIPOREPRODUCAO) CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA) TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO) Assinale a alterna�va abaixo que representa uma consulta que exibe o nome cien�fico e o sexo dos tubarões correlacionados corretamente. - Considere o banco de dados relacional de uma clínica médica, no qual as chaves primárias (incrementada automaticamente) e estrangeiras estão 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 AND E.COMISSAO < > 0; Gabarito Coment. 4. SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E CROSS JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E INNER JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE JOIN TUBARAO; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E, TUBARAO T; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E NATURAL JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; Explicação: A consulta deseja recuperar os seguintes campos: - nome científico: encontra-se na tabela Espécie - sexo: encontra-se na tabela Tubarão. Sendo assim precisamos trabalhar com o conceito de Junção de tabelas, onde um comando SELECT pode realizar uma consulta que obtenha dados de duas ou mais tabelas. As tabelas têm uma coluna em comum que é usada para realizar as junções. A junção interior (inner join) conecta as duas tabelas e retorna apenas as linhas que satisfaçam a condição de junção. Sintaxe ANSI: tabela1 INNER JOIN tabela2 ON condição de junção Analisando o esquema do banco de Dados Shark, a resposta correta é: SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E INNER JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; Uma vez que a condição de junção será através da chave estrangeira IDESPECIE. 5. http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# 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. Qual comando abaixo representa o seguinte texto: Especifica a junção entre duas tabelas com uma cláusula de junção explícita. 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 6. Group by Order by Inner Join Where Select 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. 7. http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# - 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. - 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, 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 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 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 8. 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. http://simulado.estacio.br/bdq_simulados_exercicio.asp# 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