Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

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)
instagram viewer

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.