„MySQL MariaDB“

„MySQL“ lentelėje raskite pasikartojančias vertes

„MySQL“ lentelėje raskite pasikartojančias vertes
Duomenų bazės programa lentelėje gali laikyti nereikalingus duomenis, kurie daro įtaką duomenų bazės išėjimui MySQL. Duomenų replikavimas vis dėlto vyksta skirtingais tikslais, o dirbant su „MySQL“ duomenų baze, svarbu nustatyti lentelėje esančių pasikartojančių verčių kopijas. Apskritai, protinga dažnai naudoti aiškius lentelės apribojimus, kad būtų saugoma informacija, užkertanti kelią nereikalingoms eilutėms. Kartais „MySQL“ duomenų bazėje galbūt norėsite apskaičiuoti pakartotų verčių skaičių. Mes nagrinėjome šį klausimą šioje temoje, kurioje sužinosite, kaip įvairiais būdais surasti pasikartojančias reikšmes ir kaip suskaičiuoti pasikartojančias vertes.

Norėdami pradėti, sistemoje turite būti įdiegę MySQL su jos paslaugomis: MySQL darbastaliu ir komandinės eilutės kliento apvalkalu. Po to duomenų bazės lentelėse turėtumėte turėti keletą duomenų ar reikšmių kaip dublikatų. Panagrinėkime tai su keliais pavyzdžiais. Pirmiausia atidarykite komandinės eilutės kliento apvalkalą iš darbalaukio užduočių juostos ir paprašę įveskite „MySQL“ slaptažodį.

Mes radome skirtingus metodus, kaip rasti kopijas lentelėje. Pažvelkite į juos po vieną.

Ieškoti kopijų viename stulpelyje

Pirmiausia turite žinoti apie užklausos, naudojamos tikrinant ir skaičiuojant vieno stulpelio kopijas, sintaksę.

>> PASIRINKITE stulpelį COUNT (stulpelis) IŠ GRUPĖS lentelės PAGAL stulpelį TURI SKAIČIAI (stulpelis)> 1;

Štai aukščiau pateiktos užklausos paaiškinimas:

Savo „MySQL“ duomenų bazės „duomenyse“ sukūrėme naują lentelę, vadinamą „gyvūnai“, turinčiomis pasikartojančias vertes. Jame yra šeši stulpeliai su skirtingomis vertėmis, t.g., id, vardas, rūšis, lytis, amžius ir kaina, pateikianti informaciją apie skirtingus augintinius. Paskambinę į šią lentelę naudodami „SELECT“ užklausą, gauname žemiau pateiktą išvestį „MySQL“ komandinės eilutės kliento apvalkale.

>> PASIRINKTI * IŠ duomenų.gyvūnai;

Dabar pasistengsime surasti nereikalingas ir pasikartojančias reikšmes iš pirmiau pateiktos lentelės, naudodami sąlygą COUNT ir GROUP BY užklausoje SELECT. Ši užklausa suskaičiuos naminių gyvūnėlių, kurie lentelėje yra mažiau nei 3 kartus, vardus. Po to jie rodys tuos vardus, kaip nurodyta toliau.

>> SELECT Name COUNT (Name) FROM data.gyvūnai < 3;

Naudojant tą pačią užklausą, kad gautumėte skirtingus rezultatus, keisdami „COUNT“ numerį „Naminių gyvūnėlių vardai“, kaip parodyta žemiau.

>> SELECT Name COUNT (Name) FROM data.gyvūnai GRUPĖ PAGAL VARDĄ, KURIŲ SKAIČIUS (vardas)> 3;

Norėdami gauti iš viso 3 pasikartojančių gyvūnų vardų verčių rezultatus, kaip parodyta žemiau.

>> SELECT Name COUNT (Name) FROM data.gyvūnai GRUPĖ PAGAL VARDĄ, KURIŲ SKAIČIUS (vardas) = ​​3;

Ieškoti dublikatuose keliuose stulpeliuose

Užklausos sintaksė norint patikrinti ar suskaičiuoti kelių stulpelių kopijas yra tokia:

>> PASIRINKITE stulpelius1, COUNT (stulpeliai1), stulpeliai2, sskaičius (stulpeliai2) IŠ lentelės GRUPĖS PAGAL col1, col2 HAVING COUNT (col1)> 1 AND COUNT (col2)> 1;

Štai aukščiau pateiktos užklausos paaiškinimas:

Mes naudojome tą pačią lentelę, vadinamą „gyvūnai“, turinčią pasikartojančias vertes. Mes gavome žemiau pateiktą išvestį, naudodami aukščiau pateiktą užklausą, kad patikrintume pasikartojančias vertes keliuose stulpeliuose. Mes tikrinome ir skaičiavome stulpelių „Lytis“ ir „Kaina“ pasikartojančias vertes, grupuodami juos pagal stulpelį „Kaina“. Jame bus nurodytos ne daugiau kaip 5 lentelėje nurodytos naminių gyvūnėlių lytys ir jų kainos, nurodytos lentelėje.

>> PASIRINKITE Lytis, COUNT (Lytis), Kaina, COUNT (Kaina) IŠ duomenų.gyvūnai GRUPĖ PAGAL KURIŲ SKAIČIŲ (kaina) < 5 AND  COUNT(Gender) < 5;

Ieškokite kopijų vienoje lentelėje naudodami INNER JOIN

Čia yra pagrindinė sintaksė ieškant dublikatų vienoje lentelėje:

>> SELECT col1, col2, lentelė.stulpelis IŠ lentelės INNER JOIN (pažymėkite stulpelį iš lentelės GROUP pagal col HAVING COUNT (col1)> 1) temp ON table.col = temp.col;

Čia yra pridėtinės užklausos pasakojimas:

Mes turime naują lentelę „order2“ su pasikartojančiomis reikšmėmis stulpelyje OrderNo, kaip parodyta žemiau.

>> PASIRINKTI * IŠ duomenų.užsakymas2;

Mes pasirenkame tris stulpelius: Prekė, Pardavimai, Užsakymo Nr., Kurie bus rodomi išvestyje. Kol stulpelis „OrderNo“ naudojamas dublikatams tikrinti. Vidinis sujungimas parinks reikšmes ar eilutes, kurių elementų vertės yra daugiau nei vienos lentelėje. Vykdydami vykdymą, gausime žemiau pateiktus rezultatus.

>> SELECT prekė, pardavimas, užsakymas2.Užsakymas Nėra iš duomenų.order2 INNER JOIN (PASIRINKITE OrderNo FROM duomenis.užsakymas2 GRUPĖ PAGAL užsakymą Nr. SKAIČIUS (Prekė)> 1) temp ON order2.Užsakymo Nr. = Temp.Užsakymo Nr

Ieškokite dublikatų keliose lentelėse naudodami INNER JOIN

Čia yra supaprastinta sintaksė ieškant dublikatų keliose lentelėse:

>> PASIRINKITE stulpelį iš lentelės1 INNER JOIN lentelė2 Į lentelę1.col = lentelė2.col;

Čia yra pridėtinės užklausos aprašymas:

Mūsų duomenų bazėje yra dvi lentelės „order1“ ir „order2“, kurių abiejuose yra „OrderNo“ stulpelis, kaip parodyta žemiau.

Norėdami sujungti dviejų lentelių dublikatus pagal nurodytą stulpelį, naudosime INNER sujungimą. Sąlyga INNER JOIN gaus visus duomenis iš abiejų lentelių, jas sujungdama, o ON sąlyga susies tuos pačius vardų stulpelius iš abiejų lentelių, el.g., Užsakymo Nr.

>> PASIRINKTI * IŠ duomenų.order1 INNER JOIN duomenys.order2 ON order1.OrderNo = order2.UžsakymasNE;

Norėdami gauti tam tikrus stulpelius išvestyje, pabandykite atlikti šią komandą:

>> SELECT Region, Status, Item, Sales FROM duomenys.order1 INNER JOIN duomenys.order2 ON order1.OrderNo = order2.UžsakymasNE;

Išvada

Dabar galėtume ieškoti kelių kopijų vienoje ar keliose „MySQL“ informacijos lentelėse ir atpažinti „GROUP BY“, „COUNT“ ir „INNER JOIN“ funkcijas. Įsitikinkite, kad tinkamai sukonstravote lenteles, taip pat ar pasirinkti tinkami stulpeliai.

„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...
Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...