Amikor az Oracle -ben dolgozik, előfordulhat, hogy egyes rekordjai ismétlődnek. Ezeket az ismétlődő sorokat törölheti, ha azonosítja őket, és használja a sor azonosítóját vagy sorcímét. Mielőtt elkezdené, létre kell hoznia egy biztonsági mentési táblázatot arra az esetre, ha hivatkoznia kell rájuk a rekordok törlése után.
Lépések
1. módszer a 4 -ből: Az ismétlődés azonosítása
1. lépés. Azonosítsa az ismétlődést
Ebben az esetben azonosítsa a példány ismétlődését, "Alan". Győződjön meg arról, hogy a törölni kívánt rekordok valóban másolatok, írja be az alábbi SQL -t.
2. lépés: Azonosítás a "Nevek" nevű oszlopból
"A" Nevek "nevű oszlopban az" oszlop_neve "értéket a Nevekre cserélné.
3. lépés: Azonosítás más oszlopokból
Ha a másolatot egy másik oszlop alapján próbálta azonosítani, például Alan korával, nem pedig a nevével, akkor az "oszlopnév" helyére írja be az "Ages" értéket és így tovább.
válasszon oszlopnév, szám (oszlop_neve) táblázatcsoportból oszlopnév szerint, amelynek száma (oszlopnév)> 1;
2. módszer a 4 -ből: Egyetlen másolat törlése
1. lépés: Válassza ki a „név a nevekből” lehetőséget
"Az" SQL "után, amely a Standard Query Language (Standard lekérdezési nyelv) rövidítése, írja be:" select name from names."
2. lépés Törölje az ismétlődő névvel rendelkező összes sort
Az "SQL" után írja be a "delete" nevet azokból a nevekből, ahol name = 'Alan';. " Vegye figyelembe, hogy a nagybetűk itt fontosak, így az összes "Alan" nevű sort törli. Az "SQL" után írja be a "véglegesítés" parancsot.
3. lépés. Bérelje ki a sort duplikáció nélkül
Most, hogy az "Alan" példa nevű összes sort törölte, az egyiket visszaillesztheti az "insert into name values ('Alan');." Az "SQL" után írja be a "kötelezettségvállalás" parancsot az új sor létrehozásához.
4. Lásd az új listát
Miután elvégezte a fenti lépéseket, ellenőrizze, hogy nincsenek -e ismétlődő rekordok, és írja be a "select * a nevekből" lehetőséget.
SQL> válasszon nevet a nevek közül; NAME ------------------------------ Alan Carrie Tom Alan sorok kijelölve. SQL> törlés a nevekből, ahol name = 'Alan'; sorok törölve. SQL> véglegesítés; Elkötelezett. SQL> beillesztés a nevekbe értékek ('Alan'); sor létrehozva. SQL> véglegesítés; Elkötelezett. SQL> válasszon * a nevek közül; NAME ------------------------------ Alan Carrie Tom sorok vannak kiválasztva.
3. módszer a 4 -ből: Több ismétlés törlése
1. lépés Válassza ki a törölni kívánt RID azonosítót
Az "SQL" után írja be: select rowid, name from names;."
2. lépés. Törölje az ismétlődést
Az "SQL" után írja be a "delete" nevet a nevekből a ahol sor>> (válassza ki a min (rowid) lehetőséget a b nevekből, ahol b.név = a.név); " az ismétlődő rekordok törléséhez.
3. lépés. Ellenőrizze az ismétlődéseket
Miután elvégezte a fentieket, a parancsok a "select rowid, name from names;" paranccsal ellenőrzik, hogy vannak -e ismétlődő rekordok. és akkor "vállalni".
SQL> select rowid, name from names; ROWID NEVE ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan sorok kijelölve. SQL> törlés a nevekből a ahol sor> sorok törölve. SQL> select rowid, name from names; ROWID NEVE ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom sorok kijelölve. SQL> véglegesítés; Elkötelezett.
4. módszer a 4 -ből: Sorok törlése oszlopokkal
1. lépés. Válassza ki a sorait
Az "SQL" után írja be: select * a nevek közül; " hogy lássa sorait.
2. lépés Törölje az ismétlődő sorokat az oszlop azonosításával
Az "SQL" után "írja be" törölje a nevekből a ahol a sor>> (válassza ki a min (rowid) lehetőséget a b nevekből, ahol b.név = a.név és b.age = a.age); " az ismétlődő rekordok törléséhez.
3. lépés. Ellenőrizze az ismétlődéseket
Miután elvégezte a fenti lépéseket, írja be: "select * from names;" majd végezze el a "véglegesítést" annak ellenőrzésére, hogy sikeresen törölte -e az ismétlődő rekordokat.
SQL> válasszon * a nevek közül; NEV KOR ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 sorok kijelölve. SQL> törlés a nevekből a ahol sor> sor törölve. SQL> válasszon * a nevek közül; NAME AGE ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 sor van kiválasztva. SQL> véglegesítés; Elkötelezett.
Figyelmeztetések
-
Hozzon létre egy biztonsági mentési táblázatot saját bejelentkezésében, amellyel megmutathatja, mi volt a törlés előtt (ha bármilyen kérdése van).
SQL> táblázat létrehozása alan.names_backup as select * névből; Táblázat létrehozva.