Advertisement
ADL_Rodrigo_Silva

Untitled

Jan 18th, 2022
1,249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. CREATE TABLE Departamentos
  3. (
  4.     Id int,
  5.     Nombre varchar(20)
  6. );
  7.  
  8. CREATE TABLE Empleados
  9. (
  10.     Nombre varchar(20),
  11.     DepartamentoId int
  12. );
  13.  
  14.  
  15.  
  16. INSERT INTO Departamentos VALUES(31, 'Ventas');
  17. INSERT INTO Departamentos VALUES(32, 'Logistica');
  18. INSERT INTO Departamentos VALUES(33, 'Informatica');
  19. INSERT INTO Departamentos VALUES(34, 'Legal');
  20. INSERT INTO Departamentos VALUES(35, 'Marketing');
  21.  
  22. INSERT INTO Empleados VALUES('Rodrigo', 31);
  23. INSERT INTO Empleados VALUES('Cristian', 33);
  24. INSERT INTO Empleados VALUES('Vicente', NULL);
  25. INSERT INTO Empleados VALUES('Eugenia', 33);
  26. INSERT INTO Empleados VALUES('Maximiliano', 34);
  27. INSERT INTO Empleados VALUES('Matilde', 34);
  28. INSERT INTO Empleados VALUES('Turuleca', NULL);
  29.  
  30.  
  31. /*  Cláusula INNER JOIN  */
  32.  
  33. SELECT *
  34. FROM Empleados
  35. JOIN Departamentos
  36. ON Empleados.DepartamentoId = Departamentos.Id;
  37.  
  38. /* lo mismo, pero más bonito (según el profesor) */
  39.  
  40. SELECT
  41.   E.Nombre as "Empleado",
  42.   D.Nombre as "Departamento"
  43. FROM Empleados as E
  44. JOIN Departamentos as D
  45. ON E.DepartamentoId = D.Id;
  46.  
  47.  
  48. /*  Cláusula LEFT JOIN  */
  49.  
  50. select *
  51. from empleados
  52. left join departamentos
  53. ON Empleados.DepartamentoId = Departamentos.Id;
  54.  
  55.  
  56. select
  57.     E.nombre as "Empleado",
  58.     D.nombre as "Departamento"
  59. from empleados as E
  60. left join departamentos as D
  61. ON E.DepartamentoId = D.Id;
  62.  
  63. /*  ************** Cláusula RIGHT JOIN  */
  64.  
  65. select *
  66. from empleados
  67. right join departamentos
  68. ON Empleados.DepartamentoId = Departamentos.Id;
  69.  
  70.  
  71. select
  72.     E.nombre as "Empleado",
  73.     D.nombre as "Departamento"
  74. from empleados as E
  75. right join departamentos as D
  76. ON E.DepartamentoId = D.Id;
  77.  
  78.  
  79. /* **************** Cláusula FULL JOIN */
  80.  
  81.  
  82. select *
  83. from empleados
  84. full join departamentos
  85. ON Empleados.DepartamentoId = Departamentos.Id;
  86.  
  87.  
  88. select
  89.     E.nombre as "Empleado",
  90.     D.nombre as "Departamento"
  91. from empleados as E
  92. full join departamentos as D
  93. ON E.DepartamentoId = D.Id;
  94.  
  95.  
  96. /* ************ Right Excluding JOIN */
  97. /* No existe en postgres */
  98.  
  99. SELECT
  100.   E.Nombre as "Empleado",
  101.   D.Nombre as "Departamento"
  102. FROM Empleados E
  103. right JOIN Departamentos D
  104. ON E.DepartamentoId = D.Id where E.departamentoId is null;
  105.  
  106.  
  107. select Empleados.nombre as "Nombre", Departamentos.nombre as "Departamento"
  108. from Empleados
  109. right join Departamentos on Empleados.departamentoId = Departamentos.id
  110. where Empleados.departamentoId is null;
  111.  
  112.  
  113. select *
  114. from Empleados
  115. right join Departamentos
  116. on Empleados.departamentoId = Departamentos.id
  117. where Empleados.departamentoId is null;
  118.  
  119.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement