Facebook
From Bruno Fraga, 2 Months ago, written in SQL.
Embed
Download Paste or View Raw
Hits: 94
  1. CREATE DATABASE bdTeste
  2. GO
  3. USE bdTeste
  4.  
  5. CREATE TABLE clinica(
  6. id                              INT                       NOT NULL,
  7. nome                            VARCHAR(255)      NOT NULL,
  8. logradouro                      VARCHAR(255)      NOT NULL,
  9. numero                          VARCHAR(20)       NOT NULL,
  10. cep                             CHAR(8)           NOT NULL,
  11. complemento                     VARCHAR(100)      NULL,
  12. telefone                        CHAR(11)          NOT NULL,
  13. email                           VARCHAR(255)      NOT NULL
  14. PRIMARY KEY (id)
  15. )
  16. GO
  17. CREATE TABLE paciente(
  18. cpf                             CHAR(11)          NOT NULL,
  19. nome                            VARCHAR(255)      NOT NULL,
  20. logradouro                      VARCHAR(255)      NOT NULL,
  21. numero                          VARCHAR(30)       NOT NULL,
  22. cep                             CHAR(8)           NOT NULL,
  23. complemento                     VARCHAR(100)      NULL,
  24. telefone                        CHAR(11)          NOT NULL,
  25. tipoSanguineo                   VARCHAR(3)        NOT NULL,
  26. email                           VARCHAR(255)      NOT NULL
  27. PRIMARY KEY (cpf)
  28. )
  29. GO
  30. CREATE TABLE especialidade(
  31. id                              INT               NOT NULL,
  32. especialidade                   VARCHAR(100)      NOT NULL
  33. PRIMARY KEY (id)
  34. )
  35. GO
  36. CREATE TABLE medico(
  37. crm                             CHAR(6)           NOT NULL,
  38. nome                            VARCHAR(255)      NOT NULL,
  39. logradouro                      VARCHAR(255)      NOT NULL,
  40. numero                          VARCHAR(30)               NOT NULL,
  41. cep                             CHAR(8)           NULL,
  42. complemento                     VARCHAR(100)      NULL,
  43. telefone                        CHAR(11)          NOT NULL,
  44. email                           VARCHAR(255)      NOT NULL,
  45. especialidadeID                 INT               NOT NULL
  46. PRIMARY KEY (crm)
  47. FOREIGN KEY (especialidadeID) REFERENCES especialidade(id)
  48. )
  49. GO
  50. CREATE TABLE consulta(
  51. id                              INT               NOT NULL,
  52. pacienteCPF                     CHAR(11)          NOT NULL,
  53. medicoCRM                       CHAR(6)           NOT NULL,
  54. clinicaID                                               INT               NOT NULL,
  55. dataConsulta                                    DATE                      NOT NULL,
  56. horaConsulta                                    TIME                      NOT NULL,
  57. observacao                      VARCHAR(255)      NOT NULL
  58. PRIMARY KEY (id)
  59. FOREIGN KEY (pacienteCPF) REFERENCES paciente(cpf),
  60. FOREIGN KEY (medicoCRM) REFERENCES medico(crm),
  61. FOREIGN KEY (clinicaID) REFERENCES clinica(id)
  62. )
  63. GO
  64. CREATE TABLE receituario(
  65. id                              VARCHAR(30)       NOT NULL,
  66. consultaID                      INT               NOT NULL,
  67. prescricao                      VARCHAR(255)      NOT NULL
  68. PRIMARY KEY (id)
  69. FOREIGN KEY (consultaID) REFERENCES consulta(id)
  70. )
  71.  
  72. INSERT INTO especialidade VALUES
  73. (10001, 'Pediatra'),
  74. (10002, 'Ginecologista'),
  75. (10003, 'Fisioterapeuta'),
  76. (10004, 'Otorrinolaringolista'),
  77. (10005, 'Neurologista'),
  78. (10006, 'Oftalmologista')
  79.  
  80. INSERT INTO paciente VALUES
  81. ('12345678987', 'Carla Santos', 'Rua D', '750', '04561000', NULL, '11999994444', 'A+', 'csantos@bd.com'),
  82. ('18337658982', 'Carlos Rodrigues', 'Rua A', '87', '04231000', 'Apto 87I', '11999995555', 'AB+', 'crodrigues@bd.com'),
  83. ('17845736471', 'Osvaldo Dias', 'Rua P', '239', '04279000', NULL, '11999996666', 'O+', 'odias@bd.com'),
  84. ('11928743576', 'Andre Souza', 'Rua B', '097', '08631000', 'Casa 2', '11999997777', 'B-', 'asouza@bd.com')
  85.  
  86. INSERT INTO medico VALUES
  87. ('123456', 'Maria Silva', 'Rua F', '824', '06541000', NULL, '11999998888', 'msilva@bd.com', 10001),
  88. ('789123', 'Bernardo Otawa', 'Rua L', '875', '06382000', 'Apto 8', '11999999999', 'botawa@bd.com', 10002),
  89. ('456789', 'Lucas Oliveira', 'Rua E', '69', '09356000', NULL, '11999991111', 'loliveira@bd.com', 10003),
  90. ('192837', 'Bruno Fraga', 'Rua T', '837', '07398000', 'Casa 9', '11999992222', 'bfraga@bd.com', 10004),
  91. ('465782', 'Renato Caxias', 'Rua C', '123', '06381000', NULL, '11999993333', 'rcaxias@bd.com', 10005),
  92. ('192347', 'Ronaldo Gaucho', 'Rua G', '389', '02847000', NULL, '11999991234', 'rgaucho@bd.com', 10006)
  93.  
  94. INSERT INTO clinica VALUES
  95. (1001, 'HealthWork', 'Rua H', 167, '02363000', 'Travessa da Rua M', '1199805372', 'clinicahealthwork@bd.com')
  96.  
  97. INSERT INTO consulta VALUES
  98. (101, '12345678987', '123456', 1001, '29/08/2022', '13:30', 'O paciente estava com dor de cabeça, receitei um paracetamol'),
  99. (102, '17845736471', '192347', 1001, '15/09/2022', '10:30', 'O paciente esta com miopia')
  100.  
  101. INSERT INTO receituario VALUES
  102. ('1', 101, 'Paracetamol'),
  103. ('2', 102, 'Recomendo fazer um óculos')
  104.  
  105. ALTER TABLE consulta
  106. ALTER COLUMN horaConsulta VARCHAR(30) NOT NULL
  107.  
  108. ALTER TABLE consulta
  109. ALTER COLUMN dataConsulta VARCHAR(30) NOT NULL
  110.  
  111.  
  112. /*Daqui para baixo foi só para auxiliar no código DAO*/
  113.  
  114. SELECT *
  115. FROM clinica
  116.  
  117. UPDATE clinica SET nome= 'Colevas', logradouro='Rua C', numero= '168', cep= '05431000', complemento='', telefone='11940028922', email='col@bd.com'
  118. WHERE id= 1001
  119.  
  120. SELECT m.crm AS CRM, m.nome, m.logradouro, m.numero, m.cep, m.complemento, m.telefone, m.email, e.id AS ID_Especialidade, e.especialidade AS Especialidade
  121. FROM medico m, especialidade e
  122. WHERE especialidadeID = e.id
  123.  
  124.  
  125. SELECT co.id, co.dataConsulta, co.horaConsulta, co.observacao, p.cpf AS Paciente, m.crm AS Medico, cl.id AS Clinica
  126. FROM consulta co, paciente p, medico m, clinica cl
  127. WHERE co.id = 101
  128. AND p.cpf = co.pacienteCPF
  129. AND m.crm = co.medicoCRM
  130. AND cl.id = co.clinicaID
  131.  
  132. SELECT r.id, c.id AS Consulta, r.prescricao AS Prescricao
  133. FROM receituario r, consulta c
  134. WHERE r.consultaID = c.id
  135.