Za početak morate na svom sustavu instalirati MySQL sa svojim uslužnim programima: MySQL radni stol i klijentska ljuska naredbenog retka. Nakon toga trebali biste imati neke podatke ili vrijednosti u tablicama baze podataka kao duplikate. Istražimo to s nekoliko primjera. Prije svega, otvorite školjku klijenta naredbenog retka sa programske trake radne površine i na upit upišite svoju MySQL lozinku.
Pronašli smo različite metode pronalaska dupliciranih u tablici. Pogledajte ih jedan po jedan.
Pretraži duplikate u jednom stupcu
Prvo, morate znati o sintaksi upita koja se koristi za provjeru i brojanje duplikata za jedan stupac.
>> ODABERI col COUNT (col) IZ tablice GROUP BY col HAVING COUNT (col)> 1;Evo objašnjenja gornjeg upita:
- Stupac: Naziv stupca koji treba provjeriti.
- RAČUNATI(): funkcija koja se koristi za brojanje mnogih dvostrukih vrijednosti.
- GRUPIRAJ PO: klauzula koja se koristi za grupiranje svih redaka prema tom određenom stupcu.
Stvorili smo novu tablicu pod nazivom 'životinje' u našoj bazi podataka MySQL 'podaci' s dupliciranim vrijednostima. Ima šest stupaca s različitim vrijednostima, npr.g., id, ime, vrsta, spol, dob i cijena pružaju informacije o različitim kućnim ljubimcima. Nakon pozivanja ove tablice pomoću upita SELECT, dobit ćemo donji izlaz na našoj klijentskoj ljusci naredbenog retka MySQL.
>> ODABERI * IZ podataka.životinje;
Sada ćemo pokušati pronaći suvišne i ponovljene vrijednosti iz gornje tablice pomoću klauzule COUNT i GROUP BY u upitu SELECT. Ovaj upit broji Imena kućnih ljubimaca koji se nalaze manje od 3 puta u tablici. Nakon toga, ona će prikazati ta Imena kao dolje.
>> ODABERITE IME COUNT (Name) IZ podataka.životinje GRUPA PO IME IMAJUĆI BROJ (Ime) < 3;
Upotreba istog upita za dobivanje različitih rezultata tijekom promjene broja COUNT za Imena kućnih ljubimaca kao što je prikazano u nastavku.
>> ODABERITE IME COUNT (Name) IZ podataka.životinje GRUPA PO IME IMAJUĆI BROJ (Ime)> 3;
Da biste dobili rezultate za ukupno 3 dvostruke vrijednosti za Imena kućnih ljubimaca, kao što je prikazano u nastavku.
>> ODABERITE IME COUNT (Name) IZ podataka.životinje GRUPA PO IME IMAJUĆI BROJ (Ime) = 3;
Pretražite duplikate u više stupaca
Sintaksa upita za provjeru ili brojanje duplikata za više stupaca je sljedeća:
>> ODABERI col1, COUNT (col1), col2, COUNT (col2) IZ tablice GROUP BY col1, col2 IMAJUĆI COUNT (col1)> 1 I COUNT (col2)> 1;Evo objašnjenja gornjeg upita:
- col1, col2: naziv stupaca koje treba provjeriti.
- RAČUNATI(): funkcija koja se koristi za brojanje nekoliko dvostrukih vrijednosti.
- GRUPIRAJ PO: klauzula koja se koristi za grupiranje svih redaka prema tom određenom stupcu.
Koristili smo istu tablicu zvanu 'životinje' koja ima dvostruke vrijednosti. Dobili smo donji izlaz dok smo koristili gornji upit za provjeru dvostrukih vrijednosti u više stupaca. Provjeravali smo i brojali dvostruke vrijednosti za stupce Spol i Cijena dok smo ih grupirali prema stupcu Cijena. Prikazati će spolove kućnih ljubimaca i njihove cijene koji se nalaze u tablici kao duplikate ne više od 5.
>> ODABERI Spol, BROJ (Spol), Cijena, BROJ (Cijena) IZ podataka.životinje GRUPA PO CIJENI IMAJUĆI BROJ (cijena) < 5 AND COUNT(Gender) < 5;
Pretražite duplikate u jednoj tablici pomoću INNER JOIN
Evo osnovne sintakse za pronalaženje duplikata u jednoj tablici:
>> ODABERI col1, col2, tablicu.col IZ tablice INNER JOIN (ODABERITE col IZ tablice GROUP BY col HAVING COUNT (col1)> 1) temp ON table.col = temp.col;Evo narativa o općenitom upitu:
- Col: naziv stupca koji treba provjeriti i odabrati za duplikate.
- Temp: ključna riječ za primjenu unutarnjeg spajanja na stupac.
- Stol: naziv tablice koju treba provjeriti.
Imamo novu tablicu, 'order2' s dvostrukim vrijednostima u stupcu OrderNo, kao što je prikazano u nastavku.
>> ODABERI * IZ podataka.poredak2;
Odabiremo tri stupca: Stavka, Prodaja, Narudžba koja se prikazuje u izlazu. Dok se stupac OrderNo koristi za provjeru duplikata. Unutarnji spoj će odabrati vrijednosti ili retke koji imaju vrijednosti stavki više od jedne u tablici. Nakon izvršenja dobit ćemo rezultate u nastavku.
>> ODABERITE Artikal, prodaja, narudžba2.NARUČITE OD podataka.order2 UNUTARNJE PRIDRUŽIVANJE (ODABERITE NARUČI OD podataka.narudžba2 GRUPIRAJ PO NARUDŽBI NEMA BROJA (Stavka)> 1) temp ON narudžba2.OrderNo = temp.Narudžba br .;
Pretražite duplikate u više tablica pomoću INNER JOIN
Evo pojednostavljene sintakse za pronalaženje duplikata u više tablica:
>> ODABERI col FROM table1 INNER JOIN table2 ON table1.col = tablica2.col;Evo opisa općeg upita:
- col: naziv stupaca koje treba provjeriti i odabrati.
- UNUTARNJE PRIDRUŽIVANJE: funkcija koja se koristi za Spajanje dviju tablica.
- NA: koristi se za spajanje dviju tablica prema predviđenim stupcima.
Imamo dvije tablice, 'order1' i 'order2', u našoj bazi podataka imaju stupac 'OrderNo' u obje kako je prikazano ispod.
Upotrijebit ćemo INNER join za kombiniranje duplikata dviju tablica prema određenom stupcu. Klauzula INNER JOIN dobit će sve podatke iz obje tablice pridružujući im se, a klauzula ON povezivat će stupce istog imena iz obje tablice, e.g., Narudžba br.
>> ODABERI * IZ podataka.order1 INNER JOIN podaci.nalog2 UKLJUČEN1.OrderNo = nalog2.Narudžba NE;
Da biste dobili određene stupce u izlazu, isprobajte naredbu u nastavku:
>> ODABERITE regiju, status, stavku, prodaju IZ podataka.order1 INNER JOIN podaci.nalog2 UKLJUČEN1.OrderNo = nalog2.Narudžba NE;
Zaključak
Sada bismo mogli tražiti više kopija u jednoj ili nekoliko tablica MySQL podataka i prepoznati funkciju GROUP BY, COUNT i INNER JOIN. Provjerite jeste li pravilno izradili tablice i odabrali li prave stupce.