Az adatbázis-tervezés bevált gyakorlatai az EGYEDI kényszer használatát javasolják az adatbázisban található ismétlődések elkerülésére. Ha azonban rosszul megtervezett adatbázissal vagy tisztátalan adatokkal dolgozik, előfordulhat, hogy magának kell megkeresnie a másolatokat, és manuálisan törölnie kell azokat.
Olvasson tovább, ha megtudhatja, hogyan találhat meg ismétlődéseket egy SQL-adatbázisban, és hogyan törölheti őket.
Mintaadatbázis létrehozása
Demonstrációs célból hozzon létre egy Users nevű táblát névvel és pontszám oszloppal az SQL-lekérdezés futtatásával.
CSEPPASZTALHALÉTEZIKFelhasználók;
TEREMTASZTALFelhasználók (
pk_id int ELSŐDLEGES KULCS,
név VARCHAR (16),
pont INT,
);
Szúrjon be néhány mintaértéket a következő lekérdezés futtatásával:
BESZÁLLÍTÁSBA
Felhasználók (pk_id, név, pontszám)
ÉRTÉKEK
(1, "Jane", 20),
(2, 'János', 13),
(3, "Alex", 32),
(4, 'János', 46),
(5, "Jane", 20),
(6, "Mária", 34),
(7, "Jane", 20),
(8, 'János', 13)
Vegye figyelembe, hogy e sorok némelyike ismétlődő értékeket tartalmaz a név oszlophoz.
Ezeket bátran nézze meg SQL parancsok és lekérdezések ha mélyebb magyarázatra van szüksége az adatbázisok SQL használatával történő kezeléséről.
A GROUP BY használata ismétlődő értékek keresésére
tudsz használja a GROUP BY utasítást az értékek rendezéséhez amelyek ugyanabban a csoportban megfelelnek bizonyos feltételeknek.
Tegyük fel, hogy a mintatáblázatban szereplő neveknek egyedinek kell lenniük. A GROUP BY segítségével csoportosíthatja az azonos nevű sorokat.
KIVÁLASZTÁSnév, SZÁMOL(név)
FROM felhasználóktól
GROUP BY név szerint
HAVING COUNT(name) > 1
A COUNT segítségével kiválaszthatja azokat a sorokat, amelyekben egynél több azonos nevű felhasználó szerepel.
Amikor futtatja ezt a lekérdezést, az adatbázis ismétlődőként adja vissza a Johnt és Jane-t tartalmazó sorokat.
Duplikátumok törlése adatbázisból
Az ismétlődések megtalálása után érdemes lehet törölni őket a DELETE utasítással.
Ebben a példában futtassa a következő lekérdezést:
VAL VEL cte MINT (
KIVÁLASZTÁS *
ROW_NUMBER() VÉGE (
PARTÍCIÓ:
név, pontszám
RENDEZÉS
név, pontszám
) R
TÓL TŐL
Felhasználók
)
TÖRÖLTÓL TŐL cte
AHOL R > 1;
Ez a lekérdezés egy CTE kifejezést használ az ismétlődések megkeresésére, majd egy kivételével mindegyiket törli.
Miért érdemes törölni az ismétlődő adatokat?
Az ismétlődő adatok törlése nem kötelező. Ez azonban lehetővé teszi a duplikált sorok által használt terület felszabadítását.
A kevesebb sor azt is jelenti, hogy a lekérdezések sokkal gyorsabban végrehajthatók, ami nagyobb teljesítményt eredményez. Az oktatóanyag lekérdezései segítségével megkeresheti és eltávolíthatja az ismétlődéseket egy SQL-adatbázisból.