A kezdéshez telepítenie kell a MySQL-t a rendszerére a segédprogramokkal: MySQL munkaasztal és parancssori ügyfélhéj. Ezt követően meg kell adnia néhány adatot vagy értéket az adatbázis tábláiban, mint ismétlődő elemeket. Fedezzük fel ezt néhány példával. Először nyissa meg a parancssori ügyfélhéjat az asztali tálcán, és kérésre írja be MySQL jelszavát.
Különböző módszereket találtunk arra, hogy a táblázatban másolatot találjunk. Nézze meg őket egyenként.
Keresés duplikátumok egyetlen oszlopban
Először tudnia kell a lekérdezés szintaxisáról, amelyet egyetlen oszlop duplikátumainak ellenőrzéséhez és számolásához használnak.
>> KIVÁLASZTÁS oszlop szám (oszlop) FROM CSOPORT táblázatból oszlop HAVING COUNT (oszlop)> 1;Itt van a fenti lekérdezés magyarázata:
- Oszlop: Az ellenőrizendő oszlop neve.
- SZÁMOL(): a sok ismétlődő érték számlálásához használt függvény.
- CSOPORTOSÍT: az összes sort az adott oszlop szerint csoportosító záradék.
Létrehoztunk egy új, „állatok” nevű táblázatot a MySQL adatbázis „adatai” között, amelyek duplikált értékekkel rendelkeznek. Hat oszlop van benne, különböző értékekkel, pl.g., azonosító, név, faj, nem, életkor és ár, amely információkat nyújt a különböző háziállatokról. Amikor ezt a táblát a SELECT lekérdezéssel hívjuk meg, megkapjuk az alábbi kimenetet a MySQL parancssori ügyfélhéjunkon.
>> SELECT * FROM adatok.állatok;
Most megpróbáljuk megtalálni a redundáns és megismételt értékeket a fenti táblázatból a SELECT és a COUNT lekérdezés COUNT és GROUP BY záradékának használatával. Ez a lekérdezés megszámolja azoknak a háziállatoknak a nevét, amelyek kevesebb mint háromszor találhatók a táblázatban. Ezt követően ezeket a neveket az alábbiak szerint jeleníti meg.
>> SELECT Name COUNT (Name) FROM adatokból.állatok CSOPORT NÉV SZERINT (Név) < 3;
Ugyanazt a lekérdezést használva különböző eredmények eléréséhez, miközben módosítja a háziállatok nevének COUNT számát az alábbiak szerint.
>> SELECT Name COUNT (Name) FROM adatokból.állatok CSOPORT NÉV SZERINT (Név)> 3;
Az alábbiak szerint összesen 3 ismétlődő érték elérése a Háziállatok neve számára.
>> SELECT Name COUNT (Name) FROM adatokból.állatok CSOPORT NÉV SZERINT (Név) = 3;
Ismétlődések keresése több oszlopban
A lekérdezés szintaxisa a több oszlop duplikátumainak ellenőrzéséhez vagy számításához a következő:
>> KIVÁLASZT col1, COUNT (col1), col2, COUNT (col2) táblázatból CSOPORTBAN col1, col2 HAVING COUNT (col1)> 1 ÉS COUNT (col2)> 1;Itt van a fenti lekérdezés magyarázata:
- col1, col2: az ellenőrizendő oszlopok neve.
- SZÁMOL(): a több ismétlődő érték számlálásához használt függvény.
- CSOPORTOSÍT: az összes sort az adott oszlop szerint csoportosító záradék.
Ugyanazt az "állatok" nevű táblázatot használtuk, amelynek duplikált értékei vannak. Az alábbi kimenetet kaptuk, miközben a fenti lekérdezést alkalmaztuk az ismétlődő értékek ellenőrzésére több oszlopban. Ellenőriztük és megszámoltuk a Nem és Ár oszlopok duplikált értékeit, miközben az Ár oszlopba csoportosítottuk. Megjeleníti a táblázatban szereplő kisállat-nemeket és azok árait, legfeljebb 5-ös duplikátumként.
>> SELECT Gender, COUNT (Gender), Price, COUNT (Price) FROM adatok.állatok CSOPORTBAN Ár szerint, ha számolunk (ár) < 5 AND COUNT(Gender) < 5;
Ismétlődések keresése egyetlen táblában az INNER JOIN használatával
Itt található az alapvető szintaxis a duplikátumok egyetlen táblában történő megkereséséhez:
>> SELECT col1, col2, táblázat.oszlop TÁBLÁZATBÓL CSATLAKOZTATÁS (KIVÁLASZTÁS.col = temp.col;Itt van a rezsikérdezés narratívája:
- Oszlop: az ellenőrizni kívánt oszlop neve és a duplikátumok kiválasztása.
- Hőmérséklet: kulcsszó az oszlop belső illesztésének alkalmazásához.
- Asztal: az ellenőrizendő táblázat neve.
Van egy új táblánk, a 'order2', ismétlődő értékekkel a OrderNo oszlopban, az alábbiak szerint.
>> SELECT * FROM adatok.megrendelés2;
Három oszlopot választunk: Cikk, Értékesítés, Rendelési szám, hogy megjelenjen a kimenetben. Míg a OrderNo oszlopot használják az ismétlések ellenőrzésére. A belső összekapcsolás kiválasztja azokat az értékeket vagy sorokat, amelyekben az elemek értéke több, mint egy a táblázatban. A végrehajtás után az alábbiakban megkapjuk az eredményeket.
>> SELECT elem, értékesítés, megrendelés2.Rendelés Nincs adatból.order2 INNER JOIN (SELECT OrderNo FROM adatok.megrendelés2 CSOPORT Rendelés szerint Nincs szám (tétel)> 1) hőmérséklet BE megrendelés2.Rendelési szám = hőmérséklet.Rendelési szám;
Ismétlődések keresése több táblában az INNER JOIN használatával
Itt található az egyszerűsített szintaxis a duplikátumok több táblában történő megkeresésére:
>> Válasszon oszlopot az 1. táblázatból INNER JOIN 2. táblázat ON 1. táblázat.col = táblázat2.col;Itt van a rezsi lekérdezés leírása:
- col: az ellenőrizendő és kiválasztandó oszlopok neve.
- BELSŐ ÖSSZEKAPCSOLÁS: a két asztal összekapcsolására használt funkció.
- TOVÁBB: két táblázat összekapcsolására szolgál a megadott oszlopok szerint.
Két táblánk van, a 'order1' és a 'order2', amelyek az alábbiak szerint tartalmazzák a 'OrderNo' oszlopot.
Az INNER csatlakozással két tábla másolatát egyesítjük egy megadott oszlop szerint. Az INNER JOIN klauzula az összes adatot megkapja mindkét táblából, ha összekapcsolja őket, és az ON záradék ugyanazokat a névoszlopokat fogja kapcsolni mindkét táblából, e.g., Rendelési szám.
>> SELECT * FROM adatok.rendelés1 INNER JOIN adatok.megrendelés2 ON megrendelés1.OrderNo = megrendelés2.Rendelési szám;
Ha meg szeretné kapni az adott oszlopokat egy kimenetben, próbálkozzon az alábbi paranccsal:
>> SELECT Region, Status, Item, Sales FROM adatok.rendelés1 INNER JOIN adatok.megrendelés2 ON megrendelés1.OrderNo = megrendelés2.Rendelési szám;
Következtetés
Most több példányt kereshetünk a MySQL információ egy vagy több táblázatában, és felismerhetjük a GROUP BY, COUNT és INNER JOIN funkciókat. Győződjön meg arról, hogy megfelelően készítette el a táblákat, és hogy a megfelelő oszlopokat választotta-e.