Advertisement
GastonPalazzo

vistas

Nov 16th, 2020
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 4.75 KB | None | 0 0
  1. -- VISTAS
  2. -- 1
  3. CREATE TABLE Secciones(
  4. codigo INT(50) NOT NULL AUTO_INCREMENT,
  5. nombre VARCHAR(50) NOT NULL,
  6. sueldo DECIMAL(50) NOT NULL,
  7. PRIMARY KEY (codigo)
  8. );
  9. -- 2
  10. CREATE TABLE empleados(
  11. legajo INT auto_increment,
  12. documento char(8),
  13. sexo char(1),
  14. apellido varchar(40),
  15. nombre varchar(30),
  16. domicilio varchar(30),
  17. seccion INT NOT NULL,  
  18. cantidadhijos INT,
  19. estadocivil CHAR(10),
  20. fechaingreso DATE,
  21. PRIMARY KEY (legajo)
  22. );
  23. -- 3
  24. INSERT INTO secciones (codigo, nombre, sueldo)
  25. VALUES (0,'Administracion', 300),
  26.          (0,'Contaduría', 400),
  27.          (0,'Sistemas',500);
  28. -- 4
  29. INSERT INTO empleados(legajo, documento, sexo, apellido, nombre, domicilio, seccion, cantidadhijos, estadocivil, fechaingreso)
  30. VALUES (0,'22222222','f','Lopez','Ana','Colon 123',1,2,'casado','1990-10-10'),
  31.          (0,'24444444','m','Garcia','Marcos','Sarmiento 1234',2,3,'divorciado','1998-07-12'),
  32.          (0,'25555555','m','Gomez','Pablo','Bulnes 321',3,2,'casado','1998-10-09'),
  33.          (0,'26666666','f','Perez','Laura','Peru 1254',3,3,'casado','2000-05-09');
  34. -- 5
  35. CREATE VIEW ejercicio_5 (empleado, seccion, cant_hijos)
  36. AS SELECT CONCAT(nombre, ' ', apellido) AS 'empleado', seccion, cantidadhijos FROM empleados;
  37. -- 6
  38. SELECT * FROM ejercicio_5;
  39. -- 7
  40. SELECT seccion, COUNT(empleado) AS 'emp_x_seccion' FROM ejercicio_5 GROUP BY seccion;
  41. -- 8
  42. CREATE VIEW ejercicio_8 (año_de_ingreso, emp_x_año)
  43. AS SELECT year(fechaingreso) AS 'año_de_ingreso', COUNT(legajo) AS 'emp_x_año' FROM empleados GROUP BY year(fechaingreso);
  44. -- 9
  45. SELECT * FROM ejercicio_8;
  46. -- Segunda Ejercitacion
  47. -- 1
  48. CREATE TABLE socios(
  49. documento char(8),
  50. nombre varchar(40),
  51. domicilio varchar(30),
  52. primary key (documento)
  53. );
  54.  
  55. CREATE TABLE profesores(
  56. documento char(8),
  57. nombre varchar(40),
  58. domicilio varchar(30),
  59. primary key (documento)
  60. );
  61.  
  62. CREATE TABLE cursos(
  63. numero integer AUTO_INCREMENT,
  64. deporte varchar(20),
  65. dia varchar(15),
  66. documentoprofesor char(8),
  67. primary key (numero)
  68. );
  69.  
  70. CREATE TABLE inscriptos(
  71. documentosocio char(8) not NULL,
  72. numero integer not null,
  73. matricula char(1),
  74. primary key (documentosocio,numero)
  75. );
  76. -- 2
  77. insert into socios values('30000000','Fabian Fuentes','Caseros 987');
  78. insert into socios values('31111111','Gaston Garcia','Guemes 65');
  79. insert into socios values('32222222','Hector Huerta','Sucre 534');
  80. insert into socios values('33333333','Ines Irala','Bulnes 345');
  81. insert into profesores values('22222222','Ana Acosta','Avellaneda 231');
  82. insert into profesores values('23333333','Carlos Caseres','Colon 245');
  83. insert into profesores values('24444444','Daniel Duarte','Sarmiento 987');
  84. insert into profesores values('25555555','Esteban Lopez','Sucre 1204');
  85. insert into cursos(deporte,dia,documentoprofesor) values('tenis','lunes','22222222');
  86. insert into cursos(deporte,dia,documentoprofesor) values('tenis','martes','22222222');
  87. insert into cursos(deporte,dia,documentoprofesor) values('natacion','miercoles','22222222');
  88. insert into cursos(deporte,dia,documentoprofesor) values('natacion','jueves','23333333');
  89. insert into cursos(deporte,dia,documentoprofesor) values('natacion','viernes','23333333');
  90. insert into cursos(deporte,dia,documentoprofesor) values('futbol','sabado','24444444');
  91. insert into cursos(deporte,dia,documentoprofesor) values('futbol','lunes','24444444');
  92. insert into cursos(deporte,dia,documentoprofesor) values('basquet','martes','24444444');
  93. insert into inscriptos values('30000000',1,'s');
  94. insert into inscriptos values('30000000',3,'n');
  95. insert into inscriptos values('30000000',6,null);
  96. insert into inscriptos values('31111111',1,'s');
  97. insert into inscriptos values('31111111',4,'s');
  98. insert into inscriptos values('32222222',8,'s');
  99. -- 3
  100. CREATE VIEW ejercicio_2_3 (nombre, documento, deporte, dia, profesor) AS
  101. SELECT socios.nombre, socios.documento, cursos.deporte, cursos.dia, profesores.nombre
  102. FROM socios
  103. LEFT JOIN inscriptos ON socios.documento = inscriptos.documentosocio
  104. INNER JOIN cursos ON inscriptos.numero = cursos.numero
  105. INNER JOIN profesores ON cursos.documentoprofesor = profesores.documento;
  106. -- 4
  107. SELECT * FROM ejercicio_2_3;
  108. -- 5
  109. SELECT COUNT(nombre) AS 'cant_socios', deporte FROM ejercicio_2_3 GROUP BY deporte ORDER BY cant_socios;
  110. -- 6
  111. SELECT nombre, documento
  112. FROM ejercicio_2_3
  113. LEFT JOIN cursos ON ejercicio_2_3.deporte = cursos.deporte
  114. INNER JOIN inscriptos ON cursos.numero = inscriptos.numero
  115. WHERE inscriptos.matricula IS NULL;
  116. -- 7
  117. SELECT profesor, dia, deporte FROM ejercicio_2_3;
  118. -- 8
  119. SELECT nombre, deporte, dia FROM ejercicio_2_3 WHERE deporte = 'tenis';
  120. -- 9
  121. CREATE VIEW vista_inscriptos (cant_inscrpts_x_curso, deporte, dia) AS
  122. SELECT COUNT(inscriptos.documentosocio), deporte, dia
  123. FROM cursos
  124. INNER JOIN inscriptos ON cursos.numero = inscriptos.numero
  125. GROUP BY cursos.numero;
  126. -- 10
  127. SELECT * FROM vista_inscriptos;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement