Python PostgreSQL – Únase

En este artículo, vamos a ver métodos de unión en PostgreSQL usando pyscopg2 en Python. Veamos el tipo de combinaciones admitidas en PostgreSQL.

Tipos de unión:

  • Unir internamente
  • Unión completa (unión externa)
  • Unirse a la izquierda
  • Unirse a la derecha
  • Unión cruzada

Mesas para demostración:

Tabla 1: Tabla de empleados

Tabla 2: Tabla de departamento

El método psycopg2.connect() se utiliza para conectarse a la base de datos y los métodos cursor() y fetchall() para recuperar datos de la base de datos. usamos el método ejecutar() para ejecutar nuestro comando SQL y luego recuperarlo a través del método fetchall().

Unir internamente

La unión interna es uno de los tipos de unión más comunes. La unión interna se utiliza para unir dos tablas según las características comunes entre las filas. devuelve una tabla que tiene características de fila comunes.

Ejecute una declaración SQL:

SELECCIONE tabla1.col1, tabla2.col2…

DESDE la tabla1

UNIÓN INTERNA table2

ON table1.common_field = table2.common_field;

Código:

Python3

import psycopg2
 
conn = psycopg2.connect(
    database="EMPLOYEE_DATABASE", user='postgres',
  password='pass', host='127.0.0.1', port='5432'
)
 
conn.autocommit = True
cursor = conn.cursor()
 
sql = '''SELECT * from employee INNER JOIN dept\
ON employee.deptno =dept.deptno '''
 
cursor.execute(sql)
results = cursor.fetchall()
for i in results:
    print(i)
conn.commit()
conn.close()

Producción:

Unión completa

También se llama ‘Combinación externa completa’, devuelve todos aquellos datos que tienen una coincidencia en las tablas izquierda o derecha. si las filas de ambas tablas no coinciden, el marco de datos resultante reemplazará a NaN con cada columna de las tablas que carezca de una fila coincidente.

Ejecute una declaración SQL:

SELECCIONE tabla1.col1, tabla2.col2…

DESDE la tabla1

UNIÓN COMPLETA table2

ON table1.common_field = table2.common_field;

Código:

Python3

import psycopg2
 
conn = psycopg2.connect(
    database="EMPLOYEE_DATABASE", user='postgres',
  password='pass', host='127.0.0.1', port='5432'
)
 
conn.autocommit = True
cursor = conn.cursor()
 
sql = '''SELECT * from employee FULL JOIN dept\
ON employee.deptno =dept.deptno '''
 
cursor.execute(sql)
results = cursor.fetchall()
for i in results:
    print(i)
conn.commit()
conn.close()

Producción:

Unirse a la izquierda

También se conoce como Left Outer Join, devuelve una tabla que contiene todas las filas del marco de datos izquierdo. si hay filas que no coinciden en la tabla de la izquierda, los datos no coincidentes en la tabla de la derecha se reemplazan por NaN.

Ejecute una declaración SQL:

SELECCIONE tabla1.col1, tabla2.col2…

DESDE la tabla1

UNIRSE A LA IZQUIERDA table2

ON table1.common_field = table2.common_field;

Código:

Python3

import psycopg2
 
conn = psycopg2.connect(
    database="EMPLOYEE_DATABASE", user='postgres',
  password='pass', host='127.0.0.1', port='5432'
)
 
conn.autocommit = True
cursor = conn.cursor()
 
sql = '''SELECT * from employee left JOIN dept\
ON employee.deptno =dept.deptno '''
 
cursor.execute(sql)
results = cursor.fetchall()
for i in results:
    print(i)
conn.commit()
conn.close()

Producción:

Unirse a la derecha

La combinación derecha es exactamente lo contrario de la combinación izquierda. devuelve una tabla que contiene todas las filas de la tabla de la derecha. si hay filas que no coinciden en la tabla de la derecha, los datos no coincidentes en la tabla de la izquierda se reemplazan por NaN.

Ejecute una declaración SQL:

SELECCIONE tabla1.col1, tabla2.col2…

DESDE la tabla1

JUNTA A LA DERECHA table2

ON table1.common_field = table2.common_field;

Código:

Python3

import psycopg2
 
conn = psycopg2.connect(
    database="EMPLOYEE_DATABASE", user='postgres',
  password='pass', host='127.0.0.1', port='5432'
)
 
conn.autocommit = True
cursor = conn.cursor()
 
sql = '''SELECT * from employee RIGHT JOIN dept\
ON employee.deptno =dept.deptno '''
 
cursor.execute(sql)
results = cursor.fetchall()
for i in results:
    print(i)
conn.commit()
conn.close()

Producción:

Unión cruzada

Una combinación cruzada hace coincidir cada fila de la primera tabla con cada fila de la segunda tabla. Si las tablas de entrada tienen columnas A y B, respectivamente, nuestra tabla de salida final tendrá columnas A+B

Ejecute una declaración SQL:

SELECCIONE COLUMNAS… DESDE table1 CROSS JOIN table2 

Código:

Python3

import psycopg2
 
conn = psycopg2.connect(
    database="EMPLOYEE_DATABASE", user='postgres',
  password='pass', host='127.0.0.1', port='5432'
)
 
conn.autocommit = True
cursor = conn.cursor()
 
sql = '''SELECT employee.empno,employee.ename,
dept.deptno from employee cross JOIN dept  '''
 
cursor.execute(sql)
results = cursor.fetchall()
for i in results:
    print(i)
conn.commit()
conn.close()

Producción:

Publicación traducida automáticamente

Artículo escrito por isitapol2002 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *