Lai sāktu, sistēmā jābūt instalētai MySQL ar tās utilītprogrammām: MySQL darbagalds un komandrindas klienta čaula. Pēc tam datu bāzes tabulās vajadzētu būt dažiem datiem vai vērtībām kā dublikātiem. Izpētīsim to ar dažiem piemēriem. Vispirms atveriet komandrindas klienta čaulu no darbvirsmas uzdevumjoslas un pēc pieprasījuma ierakstiet MySQL paroli.
Mēs esam atraduši dažādas metodes, lai tabulā atrastu dublikātus. Apskatiet tos pa vienam.
Meklēt dublikātus vienā kolonnā
Pirmkārt, jums jāzina par vaicājuma sintaksi, ko izmanto, lai pārbaudītu un uzskaitītu vienas kolonnas dublikātus.
>> Atlasīt kolonnu skaitu (kolonnu) NO tabulas GRUPAS, RAKSTOJOT kolonnu DAUDZ (kolonnas)> 1;Šeit ir iepriekš minētā vaicājuma skaidrojums:
- Kolonna: Pārbaudāmās kolonnas nosaukums.
- COUNT (): funkcija, ko izmanto, lai saskaitītu daudzas dublikātu vērtības.
- GRUPA PĒC: klauzula, ko izmanto, lai sagrupētu visas rindas atbilstoši konkrētajai kolonnai.
Mēs esam izveidojuši jaunu tabulu ar nosaukumu “dzīvnieki” savā MySQL datu bāzes “datos”, kuriem ir dublētas vērtības. Tajā ir sešas kolonnas ar dažādām vērtībām, piem.g., ID, nosaukums, suga, dzimums, vecums un cena sniedz informāciju par dažādiem mājdzīvniekiem. Izsaucot šo tabulu, izmantojot vaicājumu SELECT, mēs iegūstam zemāk redzamo izvades rezultātu MySQL komandrindas klienta čaulā.
>> SELECT * FROM dati.dzīvnieki;
Tagad mēs mēģināsim atrast liekās un atkārtotās vērtības no iepriekš minētās tabulas, izmantojot klauzulu COUNT un GROUP BY vaicājumā SELECT. Šis vaicājums uzskaitīs to mājdzīvnieku vārdus, kuri tabulā atrodas mazāk nekā 3 reizes. Pēc tam tie parādīs šos vārdus, kā norādīts zemāk.
>> SELECT name COUNT (Name) FROM dati.dzīvnieki GRUPA PĒC nosaukuma, kam ir skaits (nosaukums) < 3;
Izmantojot to pašu vaicājumu, lai iegūtu atšķirīgus rezultātus, mainot mājdzīvnieku vārdu COUNT numuru, kā parādīts zemāk.
>> SELECT name COUNT (Name) FROM dati.dzīvnieki GRUPA PĒC nosaukuma, kam ir skaits (vārds)> 3;
Lai iegūtu rezultātus par 3 mājdzīvnieku vārdu kopējām vērtībām, kā parādīts zemāk.
>> SELECT name COUNT (Name) FROM dati.dzīvnieki GRUPA PĒC nosaukuma, kam ir skaitlis (nosaukums) = 3;
Meklēt dublikātus vairākās kolonnās
Vaicājuma sintakse, lai pārbaudītu vai uzskaitītu dublikātus vairākām kolonnām, ir šāda:
>> ATLASIET kol1, COUNT (kol1), kol2, COUNT (kol2) NO tabulas GRUPAS PĒC kol1, kol2 HAVING COUNT (col1)> 1 UN COUNT (col2)> 1;Šeit ir iepriekš minētā vaicājuma skaidrojums:
- col1, col2: pārbaudāmo kolonnu nosaukums.
- COUNT (): funkcija, ko izmanto, lai skaitītu vairākas dublikātu vērtības.
- GRUPA PĒC: klauzula, ko izmanto, lai sagrupētu visas rindas atbilstoši šai konkrētajai kolonnai.
Mēs izmantojām to pašu tabulu ar nosaukumu “dzīvnieki”, kurām ir dublētas vērtības. Mēs saņēmām zemāk redzamo rezultātu, vienlaikus izmantojot iepriekš minēto vaicājumu, lai pārbaudītu vērtību dublikātus vairākās kolonnās. Mēs esam pārbaudījuši un skaitījuši kolonnu Dzimums un Cena dublikātu vērtības, vienlaikus grupējot pēc kolonnas Cena. Tajā tiks parādīti tabulā norādītie lolojumdzīvnieku dzimumi un to cenas kā kopijas ne vairāk kā 5.
>> Atlasiet dzimumu, COUNT (dzimums), cena, COUNT (cena) no datiem.dzīvnieki GRUPA PĒC CENAS, KURAI IR CENĀS (Cena) < 5 AND COUNT(Gender) < 5;
Meklēt dublikātus vienā tabulā, izmantojot INNER JOIN
Šeit ir pamata sintakse, lai dublikātus atrastu vienā tabulā:
>> SELECT kol1, kol2, tabula.kol No tabulas INNER JOIN.col = temp.kol;Šis ir pieskaitāmā vaicājuma stāstījums:
- Pols: kolonnas nosaukums, kas jāpārbauda un jāizvēlas dublikātiem.
- Temp: atslēgvārds, lai kolonnā lietotu iekšējo savienojumu.
- Tabula: pārbaudāmās tabulas nosaukums.
Kolonnā OrderNo mums ir jauna tabula “order2” ar vērtību dublikātiem, kā parādīts zemāk.
>> SELECT * FROM dati.rīkojums2;
Mēs atlasām trīs kolonnas: Vienums, Pārdošana, Pasūtījuma Nr., Kas jāparāda izvadē. Kamēr kolonnu OrderNo izmanto dublikātu pārbaudei. Iekšējā savienošana atlasīs vērtības vai rindas, kuru vienumu vērtības tabulā ir vairāk nekā viena. Pēc izpildes mēs iegūsim zemāk redzamos rezultātus.
>> SELECT vienums, pārdošana, pasūtījums2.PasūtījumsNav no datiem.order2 INNER JOIN (ATLASIET OrderNo FROM datus.pasūtījums2 GRUPA PĒC pasūtījumaNAV SKAITU (prece)> 1) temp ON order2.OrderNo = temp.OrderNo;
Meklēt dublikātus vairākās tabulās, izmantojot INNER JOIN
Šeit ir vienkāršotā sintakse dublikātu atrašanai vairākās tabulās:
>> Atlasīt kolonnu no tabulas1 INNER JOIN tabula2 uz tabulas1.col = tabula2.kol;Šeit ir pieskaitāmā vaicājuma apraksts:
- kol: pārbaudāmo un atlasāmo kolonnu nosaukums.
- IEKŠĒJAIS PIEVIENOŠANĀS: funkcija, ko izmanto, lai savienotu divas tabulas.
- IESLĒGTS: izmanto, lai savienotu divas tabulas atbilstoši norādītajām kolonnām.
Mūsu datu bāzē ir divas tabulas “order1” un “order2”, abās ir sleja “OrderNo”, kā parādīts zemāk.
Mēs izmantosim INNER savienojumu, lai apvienotu divu tabulu dublikātus atbilstoši norādītajai kolonnai. INNER JOIN klauzula iegūs visus datus no abām tabulām, tām pievienojoties, un klauzula ON saistīs tās pašas nosaukuma slejas no abām tabulām, e.g., Pasūtījuma Nr.
>> SELECT * FROM dati.order1 INNER JOIN dati.order2 ON order1.OrderNo = order2.PasūtījumsNO;
Lai izvadē iegūtu konkrētas kolonnas, izmēģiniet šo komandu:
>> Atlasiet reģiona, statusa, vienuma, pārdošanas no datiem datus.order1 INNER JOIN dati.order2 ON order1.OrderNo = order2.PasūtījumsNO;
Secinājums
Tagad mēs varētu meklēt vairākas kopijas vienā vai vairākās MySQL informācijas tabulās un atpazīt funkciju GROUP BY, COUNT un INNER JOIN. Pārliecinieties, vai esat pareizi izveidojis tabulas un vai ir izvēlētas pareizās kolonnas.