Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this document? Why not share!

Multi tablas

on

  • 1,733 views

El objetivo de este archivo

El objetivo de este archivo

Statistics

Views

Total Views
1,733
Views on SlideShare
1,733
Embed Views
0

Actions

Likes
0
Downloads
48
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Multi tablas Multi tablas Document Transcript

  • -- Base de datos: `multitablas` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `departamento` -- CREATE TABLE IF NOT EXISTS `departamento` ( `iddepto` int(11) NOT NULL, `Depto` varchar(15) NOT NULL, PRIMARY KEY (`iddepto`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Volcar la base de datos para la tabla `departamento` -- INSERT INTO `departamento` (`iddepto`, `Depto`) VALUES (31, 'Ventas'), (33, 'Ingeniería'), (34, 'Producción'), (35, 'Mercadotecnia'); -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `empleado` -- CREATE TABLE IF NOT EXISTS `empleado` ( `Apellido` varchar(20) NOT NULL, `Iddepto` int(11) NOT NULL, KEY `Depto` (`Iddepto`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Volcar la base de datos para la tabla `empleado` -- INSERT INTO `empleado` (`Apellido`, `Iddepto`) VALUES ('Andrade', 31), ('Jordan', 33), ('Hernández', 34), ('Osorio', 33), ('Rodríguez', 34); 1
  • CONSULTAS MULTITABLAS 1. Listado de la tabla empleados y el listado general de la tabla departamentos SELECT * FROM empleado UNION ( Select * from departamentos) Como se observa, la Unión nos devolverá en una tabla lógica todos los registros seleccionados tengan o no relación. En el ejemplo, vemos los registros apellido y número de departamento en una sola columna. Nota: Para hacer este tipo de consultas es preferible seleccionar campos con la misma información. 2. Listado de empleados y nombre del departamento que le corresponde SELECT * FROM empleado INNER JOIN departamento ON empleado.iddepto= departamento.IDdepto La operación Inner Join devolverá los registros coincidentes en ambas tablas de acuerdo a lo establecido en la condición (ON empleado.iddepto= departamento.IDdepto) 3. Listado de los empleados con el nombre del departamento que les corresponde sin duplicar el campo que los une. SELECT * FROM empleado NATURAL JOIN departamento Es similar a la operación Inner Join; la diferencia estriba en que los campos relacionados no se duplica (solo hay un Iddepto). Nota: Para este efecto los campos coincidentes deben llamarse igual (iddepto) 2
  • 4. Listado que muestre la combinación de todos los registros ambas SELECT * FROM empleado CROSS JOIN departamento El Cross Join es el equivalente al producto cartesiano, es decir, multiplica de cada registro. Por ejemplo, el empleado Andrade por cada departamento (ventas, Ingenieria, etc) 5. Listado de empleados con departamento asociado SELECT * FROM empleado LEFT JOIN departamento ON empleado.iddepto = departamento.IDdepto Left Join vincula las tablas dando prioridad a los registros contenidos en la tabla izquierda (empleado). Si en empleado existiese, Romero sin iddepto; al final de la tabla lógica se vería: Romero 0 null null 6. Listado los departamentos con / sin empleados asociados SELECT * FROM empleado Right JOIN departamento ON empleado.iddepto = departamento.IDdepto Similar a Left Join, solo que la prioridad la otorga a la tabla derecha (departamento). Se observa al final de la tabla lógica que para el departamento de Mercadotecnia no existe empleado asociado. 3
  • 7. Listar los datos de los empleados cuyo id del departamento sea mayor al promedio de estos. Select * from empleado where iddepto > (select avg(iddepto) from departamento) Las subconsultas se emplean cuando la condición inicial es a su vez otra consulta. En el ejemplo la condición principal el WHERE iddepto >. Consulta secundaria necesita solo aquellos superiores al promedio (Selec avg(…..)) 4