Per iniziare, devi avere MySQL installato sul tuo sistema con le sue utilità: MySQL workbench e shell client da riga di comando. Dopodiché, dovresti avere alcuni dati o valori nelle tabelle del database come duplicati. Esploriamo questo con alcuni esempi. Prima di tutto, apri la shell del tuo client da riga di comando dalla barra delle applicazioni del desktop e digita la tua password MySQL su richiesta.
Abbiamo trovato diversi metodi per trovare duplicati in una tabella. Guardali uno per uno.
Cerca duplicati in una singola colonna
Innanzitutto, è necessario conoscere la sintassi della query utilizzata per controllare e contare i duplicati per una singola colonna.
>> SELECT col COUNT(col) FROM tabella GROUP BY col HAVING COUNT(col) > 1;Ecco la spiegazione della query di cui sopra:
- Colonna: Nome della colonna da controllare.
- CONTARE(): la funzione utilizzata per contare molti valori duplicati.
- RAGGRUPPA PER: la clausola utilizzata per raggruppare tutte le righe in base a quella particolare colonna.
Abbiamo creato una nuova tabella chiamata "animali" nel nostro database MySQL "dati" con valori duplicati. Ha sei colonne con valori diversi al suo interno, e.g., id, nome, specie, genere, età e prezzo che forniscono informazioni su diversi animali domestici. Dopo aver chiamato questa tabella utilizzando la query SELECT, otteniamo l'output seguente sulla nostra shell client da riga di comando MySQL.
>> SELEZIONA * DAI dati.animali;
Ora proveremo a trovare i valori ridondanti e ripetuti dalla tabella sopra utilizzando le clausole COUNT e GROUP BY nella query SELECT. Questa query conterà i nomi degli animali domestici che si trovano meno di 3 volte nella tabella. Successivamente, visualizzerà quei nomi come di seguito.
>> SELECT Nome COUNT(Nome) FROM dati FROM.animali GRUPPO PER Nome HAVING COUNT(Nome) < 3;
Utilizzo della stessa query per ottenere risultati diversi durante la modifica del numero COUNT per i nomi degli animali domestici come mostrato di seguito.
>> SELECT Nome COUNT(Nome) FROM dati.animali GRUPPO PER Nome HAVING COUNT(Nome) > 3;
Per ottenere risultati per un totale di 3 valori duplicati per i nomi di animali domestici come mostrato di seguito.
>> SELECT Nome COUNT(Nome) FROM dati.animali GRUPPO PER Nome HAVING COUNT(Nome) = 3;
Cerca duplicati in più colonne
La sintassi della query per controllare o contare i duplicati per più colonne è la seguente:
>> SELECT col1, COUNT (col1), col2, COUNT (col2) FROM tabella GROUP BY col1, col2 HAVING COUNT (col1) > 1 E COUNT (col2) > 1;Ecco la spiegazione della query di cui sopra:
- col1, col2: nome delle colonne da controllare.
- CONTARE(): la funzione utilizzata per contare diversi valori duplicati.
- RAGGRUPPA PER: la clausola utilizzata per raggruppare tutte le righe in base a quella colonna specifica.
Abbiamo usato la stessa tabella chiamata "animali" con valori duplicati. Abbiamo ottenuto l'output seguente utilizzando la query precedente per controllare i valori duplicati in più colonne. Abbiamo controllato e conteggiato i valori duplicati per le colonne Genere e Prezzo mentre erano raggruppati per la colonna Prezzo. Mostrerà i generi di animali domestici e i loro prezzi che risiedono nella tabella come duplicati non più di 5.
>> SELEZIONA Genere, COUNT (Sesso), Prezzo, COUNT (Prezzo) DA dati.animali GRUPPO PER Prezzo AVERE CONTATO(Prezzo) < 5 AND COUNT(Gender) < 5;
Cerca duplicati in una tabella singola utilizzando INNER JOIN
Ecco la sintassi di base per trovare duplicati in una singola tabella:
>> SELEZIONA col1, col2, tabella.col FROM tabella INNER JOIN(SELECT col FROM tabella GROUP BY col HAVING COUNT(col1) > 1) temp ON tabella.col= temperatura.col;Ecco la narrazione della query in alto:
- Col: il nome della colonna da controllare e selezionare per i duplicati.
- Temperatura: parola chiave per applicare inner join su una colonna.
- Tavolo: nome della tabella da controllare.
Abbiamo una nuova tabella, "order2" con valori duplicati nella colonna OrderNo come mostrato di seguito.
>> SELEZIONA * DAI dati.ordine2;
Stiamo selezionando tre colonne: Item, Sales, OrderNo da mostrare nell'output. Mentre la colonna OrderNo viene utilizzata per controllare i duplicati. Il join interno selezionerà i valori o le righe con i valori di Items più di uno in una tabella. Dopo l'esecuzione, otterremo i risultati di seguito.
>> SELEZIONA Articolo, Vendite, Ordine2.Numero d'ordine DA dati.order2 INNER JOIN(SELECT OrderNo FROM dati.order2 GROUP BY OrderNo HAVING COUNT(Item) > 1) temp ON order2.OrderNo= temp.Numero d'ordine;
Cerca duplicati in più tabelle utilizzando INNER JOIN
Ecco la sintassi semplificata per trovare duplicati in più tabelle:
>> SELECT col FROM table1 INNER JOIN table2 ON table1.col = tabella2.col;Ecco la descrizione della query in alto:
- col: nome delle colonne da controllare e selezionare.
- UNIONE INTERNA: la funzione usata per unire due tabelle.
- SOPRA: utilizzato per unire due tabelle in base alle colonne fornite.
Abbiamo due tabelle, 'order1' e 'order2', nel nostro database con la colonna 'OrderNo' in entrambe come mostrato di seguito.
Useremo il join INNER per combinare i duplicati di due tabelle in base a una colonna specificata. La clausola INNER JOIN otterrà tutti i dati da entrambe le tabelle unendoli e la clausola ON metterà in relazione le colonne con lo stesso nome di entrambe le tabelle, e.g., Numero d'ordine.
>> SELEZIONA * DAI dati.order1 INNER JOIN dati.ordine2 SU ordine1.OrderNo = ordine2.Numero d'ordine;
Per ottenere le colonne particolari in un output, prova il comando seguente:
>> SELEZIONA Regione, Stato, Articolo, Vendite DA dati.order1 INNER JOIN dati.ordine2 SU ordine1.OrderNo = ordine2.Numero d'ordine;
Conclusione
Ora potremmo cercare più copie in una o più tabelle di informazioni MySQL e riconoscere le funzioni GROUP BY, COUNT e INNER JOIN. Assicurati di aver costruito correttamente le tabelle e anche di scegliere le colonne giuste.