Está en la página 1de 14

LENGUAJE SQL PARTE II

UNIDAD EDUCATIVA “VICTORIA DIEZ”

CONTINUACIÓN TEMA 4
LENGUAJE SQL - CONSULTAS A MÚLTIPLES TABLAS

RECORDEMOS UN POCO

¿Cuál es la clasificación de los comandos SQL ?

PATRICIA MERILES TORRES


1
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

PARTAMOS DESDE LA OBSERVACION

1. En la naturaleza existen diferentes elementos.

2. Estos elementos lo podemos agrupar en conjuntos que siguen una misma característica.

3. Ahora bien, podemos relacionar la naturaleza con una base de datos y los conjuntos con
las entidades o tablas y cada elemento de los conjuntos representan los registros de las
tablas.

TABLA O ENTIDAD

REGISTRO
TABLA O ENTIDAD

BD BD

INVESTIGAMOS LOS CONJUNTOS DE MEDICAMENTOS QUE SE APLICAN A


LOS PACIENTES PARA COMBARTIR EL VIRUS COVID-19, ORDENA ESTA
INFORMACION EN TU CARPETA EN UNA TABLA.

PATRICIA MERILES TORRES


2
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

PROFUNDICEMOS EN LA TEORIA

CONSULTAS SOBRE VARIAS TABLAS

Este tipo de consulta nos permiten acceder a datos que se encuentran en más de una tabla y
mostrar información mezclada de todas ellas como resultado de una consulta. Para ello
tendremos que hacer combinaciones de columnas de tablas diferentes.

La combinación de tablas es una operación que se realiza con bases de datos relacionales con el
propósito de obtener información de columnas de más de una tabla, con esto se obtienen
registros que son el resultado de la combinación de los campos de dos o más tablas. Esta
combinación se realiza con la Clausula:

JOINS

Esta operación es conocida también como unión o vinculación de tablas.

Operaciones de unión - JOIN

La operación JOIN o combinación permite mostrar columnas de varias tablas como si se tratase
de una sola tabla, combinando entre sí los registros relacionados usando para ello claves
externas.

Dentro de las combinaciones de las tablas encontramos:

PATRICIA MERILES TORRES


3
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

EJEMPLO

REALIZAR UNA BASE DE DATOS DEL REGISTRO DE LAS PERSONAS Y SUS CASAS TENIENDO EN
CUENTA QUE EN UNA CASA VIVEN VARIAS PERSONAS Y UNA PERSONA SOLO VIVE EN UNA
CASA

• Témenos el siguiente MER.

1:1 1:N
CASAS R PERSONAS

PATRICIA MERILES TORRES


4
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

• Del MER creamos la tabla con LENGUAJE SQL

CREATE TABLE CASAS (


Id int(11) NOT NULL AUTO_INCREMENT,
Zona_Barrio varchar(25) NOT NULL,
Calle_Av varchar(25) NOT NULL,
Nro int(5),
Foto image,
PRIMARY KEY (id),

CREATE TABLE PERSONAS (


Id int(11) NOT NULL AUTO_INCREMENT,
Ci int(7) NOT NULL,
Nombres varchar(25) NOT NULL,
Apellidos varchar(25) NOT NULL,
Celular int(8),
Edad int(8),NOT NULL,
Foto image,
IdCasa int(11),
PRIMARY KEY (id),
UNIQUE KEY ci (ci)
FOREIGN KEY (IdCasa) REFERENCES CASAS (Id)

• A las tablas creadas insertamos datos.

CASAS

Id Zona_Barrio Calle_Av Nro Foto


1 Z. LAJASTAMBO AV. NAVARRA 345

2 B, PETROLERO C MEXICO 12

3 Z. CENTRAL AV. HERNANDO SILEZ 126

4 Z. EL ROLLO AV. 6 DE AGOSTO 1345

PATRICIA MERILES TORRES


5
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

PERSONAS

Id Ci Nombres Apellidos Celular Edad Foto IdCasa


1 11456787 JUAN PEREZ 72864656 42 1
TORRES

2 12345687 MARCELA ARAMAYO 73451203 40 1


MORALES

3 4093457 DANIEL PEREZ 67543291 16 1


ARAMAYO

4 1276894 MARICELA PEREZ 10 1


ARAMAYO

5 1023729 ESPERANZA POVEDA 68548392 30 4


DIAZ

6 5648393 ESTEBAN PADILLA 66594231 34 4


GONZALES

7 1024221 FERNANDO CRUZ 73411223 70 2


CABA

8 1345780 ANDREZ FLORES 45

9 1253784 ESTELA GONZALEZ 73428135 70 2

10 4110683 MICAELA CRUZ 67854231 28 2


GONZALES

PATRICIA MERILES TORRES


6
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

• Podemos representar en un conjunto y unimos con una línea las relaciones

CASAS
PERSONAS

OBSERVEMOS: En las tablas existe una relación entre los registros, pero también hay registros
de cacas que no cuentan con personas en sus instalaciones, tales pueden ser por ejemplo las
oficinas o instituciones. Así mismo, existen personas que no habitan una casa puede ser el caso
de las personas en situación de calle.

• Ahora, desarrollamos las consultas a varias tablas utilizando los operadores JOINS y
representamos en tablas y conjuntos:

INNER JOINS

SELECT Zona_Barrio, Calle_Av, Nro, Ci, Nombres, Apellidos, Edad


FROM CASAS
INNER JOIN PERSONAS ON CASA.Id=PERSONAS.IdCasa

PATRICIA MERILES TORRES


7
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

OBTENEMOS LA TABLA:

Zona_Barrio Calle_Av Nro Ci Nombres Apellidos Edad


Z. LAJASTAMBO AV. NAVARRA 345 11456787 JUAN PEREZ TORRES 42
Z. LAJASTAMBO AV. NAVARRA 345 12345687 MARCELA ARAMAYO 40
MORALES
Z. LAJASTAMBO AV. NAVARRA 345 4093457 DANIEL PEREZ ARAMAYO 16
Z. LAJASTAMBO AV. NAVARRA 345 1276894 MARICELA PEREZ ARAMAYO 10
Z. EL ROLLO AV. 6 DE 1345 1023729 ESPERANZA POVEDA DIAZ 30
AGOSTO
Z. EL ROLLO AV. 6 DE 1345 5648393 ESTEBAN PADILLA GONZALES 34
AGOSTO
B, PETROLERO C MEXICO 12 1024221 FERNANDO CRUZ CABA 70
B, PETROLERO C MEXICO 12 1253784 ESTELA GONZALEZ 70
B, PETROLERO C MEXICO 12 4110683 MICAELA CRUZ GONZALES 28

CASAS PERSONAS

PATRICIA MERILES TORRES


8
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

LEFT JOINS

SELECT Zona_Barrio, Calle_Av, Nro, Ci, Nombres, Apellidos, Edad


FROM CASAS
LEFT JOIN PERSONAS ON CASA.Id=PERSONAS.IdCasa

OBTENEMOS LA TABLA:

Zona_Barrio Calle_Av Nro Ci Nombres Apellidos Edad


Z. LAJASTAMBO AV. NAVARRA 345 11456787 JUAN PEREZ TORRES 42
Z. LAJASTAMBO AV. NAVARRA 345 12345687 MARCELA ARAMAYO 40
MORALES
Z. LAJASTAMBO AV. NAVARRA 345 4093457 DANIEL PEREZ ARAMAYO 16
Z. LAJASTAMBO AV. NAVARRA 345 1276894 MARICELA PEREZ ARAMAYO 10
Z. EL ROLLO AV. 6 DE AGOSTO 1345 1023729 ESPERANZA POVEDA DIAZ 30
Z. EL ROLLO AV. 6 DE AGOSTO 1345 5648393 ESTEBAN PADILLA GONZALES 34
B, PETROLERO C MEXICO 12 1024221 FERNANDO CRUZ CABA 70
B, PETROLERO C MEXICO 12 1253784 ESTELA GONZALEZ 70
B, PETROLERO C MEXICO 12 4110683 MICAELA CRUZ GONZALES 28
Z. CENTRAL AV. HERNANDO 126
SILEZ

CASAS PERSONAS

PATRICIA MERILES TORRES


9
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

RIGTH JOINS

SELECT Zona_Barrio, Calle_Av, Nro, Ci, Nombres, Apellidos, Edad


FROM CASAS
RIGTH JOIN PERSONAS ON CASA.Id=PERSONAS.IdCasa

OBTENEMOS LA TABLA:

Zona_Barrio Calle_Av Nro Ci Nombres Apellidos Edad


Z. LAJASTAMBO AV. NAVARRA 345 11456787 JUAN PEREZ TORRES 42
Z. LAJASTAMBO AV. NAVARRA 345 12345687 MARCELA ARAMAYO 40
MORALES
Z. LAJASTAMBO AV. NAVARRA 345 4093457 DANIEL PEREZ ARAMAYO 16
Z. LAJASTAMBO AV. NAVARRA 345 1276894 MARICELA PEREZ ARAMAYO 10
Z. EL ROLLO AV. 6 DE 1345 1023729 ESPERANZA POVEDA DIAZ 30
AGOSTO
Z. EL ROLLO AV. 6 DE 1345 5648393 ESTEBAN PADILLA GONZALES 34
AGOSTO
B, PETROLERO C MEXICO 12 1024221 FERNANDO CRUZ CABA 70
1345780 ANDREZ FLORES 45
B, PETROLERO C MEXICO 12 1253784 ESTELA GONZALEZ 70
B, PETROLERO C MEXICO 12 4110683 MICAELA CRUZ GONZALES 28

CASAS PERSONAS

PATRICIA MERILES TORRES


10
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

FULL JOINS

SELECT Zona_Barrio, Calle_Av, Nro, Ci, Nombres, Apellidos, Edad


FROM CASAS
FULL JOIN PERSONAS ON CASA.Id=PERSONAS.IdCasa
OBTENEMOS LA TABLA:

Zona_Barrio Calle_Av Nro Ci Nombres Apellidos Edad


Z. LAJASTAMBO AV. NAVARRA 345 11456787 JUAN PEREZ TORRES 42
Z. LAJASTAMBO AV. NAVARRA 345 12345687 MARCELA ARAMAYO 40
MORALES
Z. LAJASTAMBO AV. NAVARRA 345 4093457 DANIEL PEREZ ARAMAYO 16
Z. LAJASTAMBO AV. NAVARRA 345 1276894 MARICELA PEREZ ARAMAYO 10
Z. EL ROLLO AV. 6 DE 1345 1023729 ESPERANZA POVEDA DIAZ 30
AGOSTO
Z. EL ROLLO AV. 6 DE 1345 5648393 ESTEBAN PADILLA GONZALES 34
AGOSTO
B, PETROLERO C MEXICO 12 1024221 FERNANDO CRUZ CABA 70
1345780 ANDREZ FLORES 45
B, PETROLERO C MEXICO 12 1253784 ESTELA GONZALEZ 70
B, PETROLERO C MEXICO 12 4110683 MICAELA CRUZ GONZALES 28
Z. CENTRAL AV. HERNANDO 126
SILEZ

CASAS PERSONAS

PATRICIA MERILES TORRES


11
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

LEFT JOINS SIN LA INTERSECCION

SELECT Zona_Barrio, Calle_Av, Nro, Ci, Nombres, Apellidos, Edad


FROM CASAS
LEFT JOIN PERSONAS ON CASA.Id=PERSONAS.IdCasa
WHERE PERSONAS.IdCasa IS NULL

OBTENEMOS LA TABLA:

Zona_Barrio Calle_Av Nro Ci Nombres Apellidos Edad


Z. CENTRAL AV. HERNANDO 126
SILEZ

CASAS PERSONAS

RIGTH JOINS SIN LA INTERSECCION

SELECT Zona_Barrio, Calle_Av, Nro, Ci, Nombres, Apellidos, Edad


FROM CASAS
RIGTH JOIN PERSONAS ON CASA.Id=PERSONAS.IdCasa
WHERE CASA.Id IS NULL

OBTENEMOS LA TABLA:

Zona_Barrio Calle_Av Nro Ci Nombres Apellidos Edad


1345780 ANDREZ FLORES 45

PATRICIA MERILES TORRES


12
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

CASAS PERSONAS

FULL JOINS SIN INTERSECCION

SELECT Zona_Barrio, Calle_Av, Nro, Ci, Nombres, Apellidos, Edad


FROM CASAS
FULL JOIN PERSONAS ON CASA.Id=PERSONAS.IdCasa
WHERE CASA.Id IS NULL
OR PERSONAS.IdCasa IS NULL

OBTENEMOS LA TABLA:

Zona_Barrio Calle_Av Nro Ci Nombres Apellidos Edad


1345780 ANDREZ FLORES 45
Z. CENTRAL AV. HERNANDO 126
SILEZ

PATRICIA MERILES TORRES


13
LENGUAJE SQL PARTE II
UNIDAD EDUCATIVA “VICTORIA DIEZ”

CASAS PERSONAS

ACTIVIDADES

1. En la carpeta realizamos la siguiente base de datos y las consultas a múltiples


tablas con los mismos pasos del ejemplo
Diseñar una base de Datos para registras a los clientes de un concesionario. donde se
registran los datos de los clientes como ser: un identificador, ci, nombres, apellidos, fecha
de nacimiento, celular, ingresos mensuales. Así mismo, se registran los automóviles que se
vendieron a los clientes y los que aun existen en la tienda de concesión, de los cuales se
registra: identificador, matricula, modelo, marca, color. Se sabe también que los clientes
pueden adquirir uno o más autos, pero un auto solo pertenece a un cliente.

PATRICIA MERILES TORRES


14

También podría gustarte