Baixe o app para aproveitar ainda mais
Prévia do material em texto
DROP TABLE CONSULTA; DROP TABLE MEDICO; DROP TABLE ESPECIALIDADE; DROP TABLE PACIENTE; CREATE TABLE ESPECIALIDADE( COD_ESP NUMBER(3) PRIMARY KEY, NOME VARCHAR2(120) not null, CONSTRAINT NOME_ESP_UQ UNIQUE (NOME) ); CREATE TABLE MEDICO( CRM NUMBER(8) PRIMARY KEY, NOME VARCHAR2(120) NOT NULL, SEXO CHAR(1) NOT NULL, COD_ESP NUMBER(3), CONSTRAINT SEXO_CK CHECK (SEXO IN ('F', 'M')), CONSTRAINT ESP_MED_FK FOREIGN KEY (COD_ESP) REFERENCES ESPECIALIDADE (COD_ESP) ); CREATE TABLE PACIENTE( ID_PAC NUMBER(10) PRIMARY KEY, NOME VARCHAR2(120) NOT NULL, CPF NUMBER(14) NOT NULL, SEXO CHAR(1) NOT NULL, CONSTRAINT SEXO_PAC_CK CHECK (SEXO IN ('F', 'M')), CONSTRAINT NOME_PAC_UQ UNIQUE (NOME), CONSTRAINT CPF_PAC_UQ UNIQUE (CPF) ); CREATE TABLE CONSULTA( CRM NUMBER(8), ID_PAC NUMBER(10), DATA_HORA DATE, DESCRICAO VARCHAR2(4000), CONSTRAINT CONSULTA_PK PRIMARY KEY (CRM, ID_PAC, DATA_HORA), CONSTRAINT CONS_MED_FK FOREIGN KEY (CRM) REFERENCES MEDICO (CRM), CONSTRAINT CONS_PAC_FK FOREIGN KEY (ID_PAC) REFERENCES PACIENTE (ID_PAC) ); INSERT INTO ESPECIALIDADE (COD_ESP,NOME_ESP) VALUES (2,'PEDIATRA'); INSERT INTO MEDICO (CRM,NOME_MED,SEXO,COD_ESP) VALUES(3334445,'MAK LOVE','M',2); alter table paciente add(data_nasc date); insert into paciente(cod_pac,cpf,nome_pac,sexo,data_nasc)values(1,99933322299,'craudio','M',to_date('23/05/1111 23:00:00','dd/mm/yyyy hh24:mi:ss')); insert into paciente(cod_pac,cpf,nome_pac,sexo,data_nasc)values(2,33344455562,'Marivalda','F',sysdate); create sequence seq_especialidade start with 4 increment by 1 maxvalue 999 minvalue 1 nocache nocycle; insert into especialidade (cod_esp,nome_esp) values (seq_especialidade.nextval,'dentista'); create sequence seq_paciente start with 6 increment by 1 maxvalue 999 minvalue 1 nocache nocycle; insert into paciente (cod_pac,nome_pac,cpf,sexo,data_nasc) values (seq_paciente.nextval,'Jaão fabiano',44455566677,'M',to_date('23/05/2012','dd/mm/yyyy')); insert into consulta(COD_PAC,CRM,descricao,data_hora) values (1,4445551,'Gripe',to_date('23/04/2015 16:30:00','dd/mm/yyyy hh24:mi:ss')); Join Método tradicional SELECT first_name||' '||last_name "Nome Completo",department_name,city,state_province,country_name from EMPLOYEES emp, DEPARTMENTS dep, LOCATIONS loc,COUNTRIES cou where emp.DEPARTMENT_ID = dep.DEPARTMENT_id(+) and dep.LOCATION_ID= loc.LOCATION_ID(+) and loc.COUNTRY_ID= cou.COUNTRY_ID(+) ORDER BY department_name, "Nome Completo"; SELECT *FROM PACIENTE P,PACIENTE PA; Metodo ansi SELECT NOME_MED Medico,NOME_PAC Paciente,to_char(data_hora,'dd/mm/yyyy hh24:mi:ss')"Data da Consulta" FROM medico med INNER JOIN consulta con ON con.crm=med.crm --and con.id=med.id INNER JOIN paciente pac ON con.cod_pac=pac.COD_PAC; SELECT NOME_MED Medico ,NOME_PAC Paciente ,to_char(data_hora,'dd/mm/yyyy hh24:mi:ss')"Data da Consulta" FROM medico med FULL JOIN consulta con ON con.crm=med.crm FULL JOIN paciente pac ON con.cod_pac=pac.COD_PAC; SELECT NOME_MED "Medico,NOME_PAC Paciente,to_char(data_hora,'dd/mm/yyyy hh24:mi:ss')"Data da Consulta" FROM medico med LEFT JOIN consulta con ON con.crm=med.crm LEFT JOIN paciente pac ON con.cod_pac=pac.COD_PAC; SELECT NOME_MED Medico,NOME_PAC Paciente,to_char(data_hora,'dd/mm/yyyy hh24:mi:ss')"Data da Consulta" FROM medico med FULL JOIN consulta con ON con.crm=med.crm FULL JOIN paciente pac ON con.cod_pac=pac.COD_PAC; SELECT NOME_MED Medico ,NOME_PAC Paciente,to_char(data_hora,'dd/mm/yyyy hh24:mi:ss')"Data da Consulta" FROM medico med LEFT JOIN consulta con ON con.crm=med.crm LEFT JOIN paciente pac ON con.cod_pac=pac.COD_PAC; SELECT NOME_PAC "Nome Paciente",sexo,to_char(data_hora,'dd/mm/yyyy hh24:mi:ss')"Data da Consulta" FROM consulta con INNER JOIN paciente pac ON con.cod_pac=pac.COD_PAC; SELECT NOME_PAC "Nome Paciente",sexo,to_char(data_hora,'dd/mm/yyyy hh24:mi:ss')"Data da Consulta" FROM consulta con RIGHT JOIN paciente pac ON con.cod_pac=pac.COD_PAC; SELECT *FROM medico CROSS JOIN consulta;
Compartilhar