Sie sind auf Seite 1von 9

ESCUELA SUPERIOR POLITÉCNICA DE

CHIMBORAZO

FACULTAD: CIENCIAS
CARRERA: INGENIERÍA EN ESTADÍSTICA INFORMÁTICA

INFORME DE LABORATORIO DE BASE


DE DATOS II PARALELO: A
PRÁCTICA No. 6 SQL: UNIONES SQL

1. DATOS GENERALES:

NOMBRES: CODIGO:

Ximena Guamán 509


Karen Guamán 622

GRUPO No.: 5

FECHA DE REALIZACIÓN: FECHA DE ENTREGA:

22/05/2019 28/05/2019

2. OBJETIVO:

Restaurar una base de datos haciendo uso de la sentencia SQL –DDL lenguaje de consulta
estructurado, realizando uniones entre dos tablas o más creando consultas entre ellas en la
base de datos.

3. RECURSOS

SOFTWARE HARDWARE

 SO, Windows 7 Home  Procesador Intel(R) Core (TM) i3-


Premium 5005U CPU @ 2.00GHz, 2.00 Mhz
 SQL SHELL  Memoria física (RAM) 4,00 GB
 Tamaño de partición 199 GB
(214.747.312.128 bytes)
4. INSTRUCCIONES

Metodología instruccional:

Se define al diseño instruccional como la forma más efectiva para generar un ambiente
de aprendizaje a través de una planeación, preparación y diseño de recursos (Laverde,
A.C. 2008).

ACTIVIDADES A DESARROLLAR

 Ejecutar comandos preliminares para restaurar una Base de Datos en SQL


SHELL y CMD.
 Restauración de la Base de Datos (psql.exe)
 Realizar la unión entre dos o más tablas.
 Realizar consultas entre la unión entre dos tablas.

5. RESULTADOS OBTENIDOS

Para hacer la restauración de muestra base de datos debemos entrar al cmd del sistema
de nuestro computador y debeos ejecutar los comandos para la respectiva restauración.

C:\Users\Admin>cd..

C:\Users>cd..

C:\>cd "Program Files"

C:\Program Files>cd PostgreSQL

C:\Program Files\PostgreSQL>cd 9.4

C:\Program Files\PostgreSQL\9.4>cd bin

C:\Program Files\PostgreSQL\9.4\bin>psql -h localhost -U postgres -p 5432


Contraseña para usuario postgres:
psql (9.4.19)
postgres=# \c practica6
ADVERTENCIA: El código de página de la consola (850) difiere del código
de página de Windows (1252).

Ahora está conectado a la base de datos «practica6» con el usuario «postgres».


Al entrar a la base de datos restaurada procedemos hacer las consultas con las uniones

Realizamos la unión del JOIN


Este nos permite unir dos tablas

practica6=# select * from conductor join trabajos on conductor.cod_c=trabajos.cod_c;

cod_c | nombre_c | localidad_c | categoria_c | cod_c | cod_m | cod_p | fecha_t | tiempo_t


-------+-------------------+-------------+-------------+-------+-------+-------+------------+----------
C01 | Angel L¾pez | Riobamba | 13 | C01 | M01 | P01 | 2012-10-10 | 10
C01 | Angel L¾pez | Riobamba | 13 | C01 | M01 | P02 | 2012-08-10 | 3
C01 | Angel L¾pez | Riobamba | 13 | C01 | M01 | P05 | 2012-02-01 | 5
C02 | Jorge Ortiz | Riobamba | 10 | C02 | M01 | P01 | 2012-10-10 | 11
C02 | Jorge Ortiz | Riobamba | 10 | C02 | M01 | P01 | 2013-10-10 | 11
C02 | Jorge Ortiz | Riobamba | 10 | C02 | M01 | P01 | 2012-10-10 | 11
C03 | Roberto Uzcategui | Quito | 13 | C03 | M03 | P06 | 2014-11-02 | 11
(7 filas)

Hacemos la consulta de la tabla trabajos

practica6=# select * from trabajos;

cod_c | cod_m | cod_p | fecha_t | tiempo_t


-------+-------+-------+------------+----------
C01 | M01 | P01 | 2012-10-10 | 10
C01 | M01 | P02 | 2012-08-10 | 3
C01 | M01 | P05 | 2012-02-01 | 5
C02 | M01 | P01 | 2012-10-10 | 11
C02 | M01 | P01 | 2013-10-10 | 11
C02 | M01 | P01 | 2012-10-10 | 11
C03 | M03 | P06 | 2014-11-02 | 11
(7 filas)

Se realiza la visualización del nombre del conductor y el nombre de la maquina

practica6=# select conductor.nombre_c,maquina.nombre_m from conductor,maquina;

nombre_c | nombre_m
-------------------+-----------------
Angel L¾pez | RETROESCAVADORA
Angel L¾pez | HORMIGONERA
Angel L¾pez | VOLQUETE
Angel L¾pez | PALA
Angel L¾pez | MEZCLADORA
Jorge Ortiz | RETROESCAVADORA
Jorge Ortiz | HORMIGONERA
Jorge Ortiz | VOLQUETE
Jorge Ortiz | PALA
Jorge Ortiz | MEZCLADORA
Roberto Uzcategui | RETROESCAVADORA
Roberto Uzcategui | HORMIGONERA
Unión JOIN este comando nos ayuda a seleccionar el código, el nombre y la localidad y la
categoría del conductor pero insertamos un alias el cual nos permite visualizar la información de
nuestra tabla de forma mas resumida.

practica6=# select l.cod_c,nombre_c,localidad_c,categoria_c from conductor as l join


trabajos as e on l.cod_c=e.cod_c;
cod_c | nombre_c | localidad_c | categoria_c
-------+-------------------+-------------+-------------
C01 | Angel L¾pez | Riobamba | 13
C01 | Angel L¾pez | Riobamba | 13
C01 | Angel L¾pez | Riobamba | 13
C02 | Jorge Ortiz | Riobamba | 10
C02 | Jorge Ortiz | Riobamba | 10
C02 | Jorge Ortiz | Riobamba | 10
C03 | Roberto Uzcategui | Quito | 13
(7 filas)

LEFT JOIN
Selecciona todos los datos de la parte izquierda
Selecciona todos los que realizaron trabajos y están en la tabla conductor

practica6=# select nombre_c,localidad_c from conductor as l left join trabajos as e on


l.cod_c=e.cod_c;

nombre_c | localidad_c
-------------------+-------------
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Roberto Uzcategui | Quito
Luis Ramos | Quito
Jose Mendieta | Ambato
Santiago Palacios | Latacunga
Carlos Rosero | Ambato
Miguel Zurita | Latacunga
(12 filas)
Se seleccionó el nombre y la localidad del conductor pero se realizó el intercambio en los roles
se seleccionó los conductores que realizaron trabajos

practica6=# select nombre_c,localidad_c from trabajos as e left join conductor as l


on e.cod_c=l.cod_c;

nombre_c | localidad_c
-------------------+-------------
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Roberto Uzcategui | Quito
(7 filas)

Al seleccionar el nombre, la localidad de la tabla trabajos al hacer la unión con la tabla del
conductor pero queremos agrupar los nombres del conductor no muestran un mensaje de error
ya que no se pueden agrupar porque están en la misma tabla

practica6=# select nombre_c,localidad_c from trabajos as e left join conductor as l


on e.cod_c=l.cod_c group by nombre_c;
ERROR: la columna «l.localidad_c» debe aparecer en la cláusula GROUP BY o ser
usada en una función de agregación
LÍNEA 1: select nombre_c,localidad_c from trabajos as e left join co...

Seleccionamos el nombre, y la localidad del conductor con la union de la tabla trabajos el cual
queremos saber los datos que no son nulos este código muestra todos los datos que no sean no
nulos en la tabla.

practica6=# select nombre_c,localidad_c from conductor as e left join trabajos as l on


l.cod_c=e.cod_c where l.cod_c is not null;

nombre_c | localidad_c
-------------------+-------------
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Roberto Uzcategui | Quito
(7 filas)
Seleccionamos el nombre, y la localidad del conductor con la unión de la tabla trabajos el cual
queremos saber los datos que son nulos este código muestra todos los datos que son nulos en la
tabla.

practica6=# select nombre_c,localidad_c from conductor as e left join trabajos as l


on l.cod_c=e.cod_c where l.cod_c is null;

nombre_c | localidad_c
-------------------+-------------
Jose Mendieta | Ambato
Carlos Rosero | Ambato
Santiago Palacios | Latacunga
Miguel Zurita | Latacunga
Luis Ramos | Quito
(5 filas)

RIGHT JOIN

Son iguales las uniones siempre y cuando cambien el orden de las tablas

Se seleccionó el nombre y la localidad del conductor pero al hacer la unión de las tablas se
intercambian la posición de la tabla

practica6=# select nombre_c,localidad_c from conductor as e right join trabajos as l on


e.cod_c=l.cod_c;

nombre_c | localidad_c
-------------------+-------------
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Roberto Uzcategui | Quito
(7 filas)

Muestran los campos que estos llenos es decir los que no son nulos no están vacíos
practica6=# select nombre_c,localidad_c from conductor as l right join trabajos as e on
l.cod_c=e.cod_c where e.cod_c is not null;

nombre_c | localidad_c
-------------------+-------------
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Roberto Uzcategui | Quito
(7 filas)

Muestran todos los registros que están nulos, el cual se puede visualizar que los datos de la
tabla están vacíos ya que se seleccionó los datos que están vacíos.

practica6=# select nombre_c,localidad_c from conductor as l right join trabajos as e on


l.cod_c=e.cod_c where e.cod_c is null;
nombre_c | localidad_c
----------+-------------
(0 filas)

Se seleciono el nombre y la localidad del conductor de la tabla trabajos con l union de la tabla
conductor el cual se intercambian la situación primero va trabajos y luego conductor y
visualizamos lo siguiente.

practica6=# select nombre_c,localidad_c from trabajos as e right join conductor as l on


e.cod_c=l.cod_c where l.cod_c is not null;

nombre_c | localidad_c
-------------------+-------------
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Roberto Uzcategui | Quito
Luis Ramos | Quito
Jose Mendieta | Ambato
Santiago Palacios | Latacunga
Carlos Rosero | Ambato
Miguel Zurita | Latacunga
(12 filas)
FULL JOIN
No existe diferencia entre tabla izquierda o tabla derecha
Es la unión completa de todas las tablas.

practica6=# select nombre_c,localidad_c from conductor as e full join trabajos as l on


l.cod_c=e.cod_c;

nombre_c | localidad_c
-------------------+-------------
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Jorge Ortiz | Riobamba
Roberto Uzcategui | Quito
Luis Ramos | Quito
Jose Mendieta | Ambato
Santiago Palacios | Latacunga
Carlos Rosero | Ambato
Miguel Zurita | Latacunga
(12 filas)

CROSS JOIN
No importa el orden de las tablas
El cross es el producto cartesiano que existe entre las tablas

practica6=# select nombre_c,localidad_c from conductor as e cross join trabajos as l;

nombre_c | localidad_c
-------------------+-------------
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba
Roberto Uzcategui | Quito
Jose Mendieta | Ambato
Carlos Rosero | Ambato
Santiago Palacios | Latacunga
Miguel Zurita | Latacunga
JOIN
Es la unión total de las tablas

practica6=# select nombre_c,localidad_c from conductor, trabajos;

nombre_c | localidad_c
-------------------+-------------
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba
Roberto Uzcategui | Quito
Jose Mendieta | Ambato
Carlos Rosero | Ambato
Santiago Palacios | Latacunga
Miguel Zurita | Latacunga
Luis Ramos | Quito
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba
Roberto Uzcategui | Quito
Jose Mendieta | Ambato
Carlos Rosero | Ambato
Santiago Palacios | Latacunga
Miguel Zurita | Latacunga
Luis Ramos | Quito
Angel L¾pez | Riobamba
Jorge Ortiz | Riobamba

6. CONCLUSIONES

7. RECOMENDACIONES


 .

NOMBRE Y FIRMA DEL NOMBRE Y FIRMA DEL


ESTUDIANTE ESTUDIANTE

Das könnte Ihnen auch gefallen