¿Cómo encontrar valores duplicados en una tabla SQL usando Python?

El servidor MySQL es un sistema de administración de bases de datos relacionales de código abierto que es un soporte importante para las aplicaciones basadas en la web. Las bases de datos y las tablas relacionadas son el componente principal de muchos sitios web y aplicaciones, ya que los datos se almacenan e intercambian a través de la web. Para acceder a bases de datos MySQL desde un servidor web, utilizamos varios módulos en Python como PyMySQL, mysql.connector, etc. 

En este artículo, vamos a encontrar valores duplicados en una tabla MySQL específica en una base de datos. Primero, vamos a conectarnos a una base de datos que tenga una tabla MySQL. La consulta SQL que se va a utilizar es:

SELECT * FROM table-name 
GROUP BY col_1, col_2,..., col_n 
HAVING COUNT(*) > 1;

Si la tabla tiene una clave principal, también se puede usar la siguiente consulta:

SELECT * FROM table-name 
GROUP BY primar-key
HAVING COUNT(*) > 1;

Las consultas anteriores generarán solo filas duplicadas en una tabla, y luego estas filas se mostrarán como salida.

A continuación se muestran algunos programas que muestran cómo encontrar valores duplicados en una tabla MySQL específica en una base de datos:

Ejemplo 1

A continuación se muestra la tabla Documental en la base de datos geek a la que se accederá mediante un script de Python:

A continuación se muestra el programa para obtener las filas duplicadas en la tabla MySQL:

Python3

# import required module
import mysql.connector
  
# connect python with mysql with your hostname, 
# database, user and password
db = mysql.connector.connect(host='localhost',
                             database='gfg',
                             user='root',
                             password='')
  
# create cursor object
cursor = db.cursor()
  
# get the sum of rows of a column
cursor.execute("SELECT * FROM Documentary \
               GROUP BY Name, Production \
               HAVING COUNT(*) > 1;")
  
# fetch duplicate rows and display them
print('Duplicate Rows:')               
for row in cursor.fetchall(): print(row)
  
# terminate connection
db.close()

Producción:

Ejemplo 2:

Aquí hay otro ejemplo para encontrar las filas duplicadas de una tabla en una base de datos determinada, a continuación se muestra el esquema de la tabla y las filas:

Como podemos ver, el atributo Roll es la clave principal de la tabla Student , por lo tanto, solo se puede usar con la declaración GROUP BY en la consulta para generar las filas duplicadas, a continuación se muestra el script de Python para obtener el recuento de filas de la tabla Student :

Python3

# import required module
import mysql.connector
  
# connect python with mysql with your hostname, 
# database, user and password
db = mysql.connector.connect(host='localhost',
                             database='gfg',
                             user='root',
                             password='')
  
# create cursor object
cursor = db.cursor()
  
# get the sum of rows of a column
cursor.execute("SELECT * FROM Student \
               GROUP BY Roll \
               HAVING COUNT(*) > 1;")
  
# fetch duplicate rows and display them
print('Duplicate Rows:')               
for row in cursor.fetchall(): print(row)
  
# terminate connection
db.close()

Producción:
 

Publicación traducida automáticamente

Artículo escrito por riturajsaha 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 *