4 viisi Oracle'i topeltkirjete kustutamiseks

Sisukord:

4 viisi Oracle'i topeltkirjete kustutamiseks
4 viisi Oracle'i topeltkirjete kustutamiseks

Video: 4 viisi Oracle'i topeltkirjete kustutamiseks

Video: 4 viisi Oracle'i topeltkirjete kustutamiseks
Video: 5 eelinstallitud kasulikku Windowsi programmi 2024, Mai
Anonim

Oracle'is töötades leiate mõnest kirjest duplikaate. Dubleerivaid ridu saate eemaldada, tuvastades need ja kasutades vastavat RowID aliase rea aadressi. Enne alustamist looge varutabel juhuks, kui pärast kirje kustutamist vajate viidet.

Samm

Meetod 1 /4: duplikaatide tuvastamine

Kustutage korduvad kirjed Oracle'is 1. toimingus
Kustutage korduvad kirjed Oracle'is 1. toimingus

Samm 1. Tuvastage duplikaadid

Selles näites tuvastame duplikaadi "Alan". Veenduge, et kustutatavad kirjed on tõepoolest duplikaadid, sisestades alloleva SQL -i.

Kustutage korduvad kirjed Oracle'i 2. toimingus
Kustutage korduvad kirjed Oracle'i 2. toimingus

Samm 2. Tuvastage veerust pealkirjaga "Nimi"

Kui veeru pealkiri on "Nimi", peate veeru "veeru_nimi" asendama nimega.

Kustutage korduvad kirjed Oracle'is 3. sammus
Kustutage korduvad kirjed Oracle'is 3. sammus

Samm 3. Tuvastage muud veerud

Kui proovite tuvastada duplikaate erinevatest veergudest, näiteks Alani vanust tema nime asemel, sisestage veeru_nimi asemel „Age” ja nii edasi.

valige veeru_nimi, loendage (veeru_nimi) tabelirühmast veeru_nime järgi, mille arv (veeru_nimi)> 1;

Meetod 2/4: üksikute duplikaatide eemaldamine

Kustutage korduvad kirjed Oracle'i 4. toimingus
Kustutage korduvad kirjed Oracle'i 4. toimingus

Samm 1. Valige "nimi nimede hulgast"

Sisestage pärast "SQL" (lühend standardpäringukeelest) "valige nimedest nimi".

Kustutage korduvad kirjed Oracle'i 5. toimingus
Kustutage korduvad kirjed Oracle'i 5. toimingus

Samm 2. Kustutage kõik duplikaatnimedega read

Pärast "SQL" sisestage "kustuta nimedest, kus name = 'Alan';." Tuleb märkida, et suurtähtede kasutamine on siin oluline, et see samm saaks kustutada kõik read nimega "Alan". Pärast "SQL" sisestage "pühenduma"

Kustutage korduvad kirjed Oracle'i 6. toimingus
Kustutage korduvad kirjed Oracle'i 6. toimingus

Samm 3. Sisestage read uuesti ilma duplikaatideta

Nüüd, kui olete kõik read kustutanud ja asendanud need sõnaga "Alan", täitke üks neist uuesti, sisestades "insert into name values ('Alan');." Pärast "SQL" sisestage uue rea loomiseks "pühenduma".

Kustutage korduvad kirjed Oracle'i 7. toimingus
Kustutage korduvad kirjed Oracle'i 7. toimingus

Samm 4. Vaadake uut loendit

Pärast ülaltoodud toimingute tegemist saate kontrollida, kas pole enam topeltkirjeid, sisestades "vali * nimedest".

SQL> valige nimedest nimi; NIMI ------------------------------ Alan Citra Tomi Alan Baris valitud. SQL> kustutage nimedest, kus nimi = 'Alan'; Rida kustutatakse. SQL> kohustub; / Kohustus lõpetatud. SQL> sisestada nimedesse väärtused ('Alan'); rida loodud. SQL> kohustub; Kohustus täidetud. SQL> valige * nimede seast; NIMI ------------------------------ Alan Citra Tomi read on valitud.

3. meetod 4 -st: mitme duplikaadi eemaldamine

Kustutage korduvad kirjed Oracle'i 8. sammus
Kustutage korduvad kirjed Oracle'i 8. sammus

Samm 1. Valige RowID, mida soovite kustutada

Pärast "SQL" sisestage "select rowid, name from names;."

Kustutage korduvad kirjed Oracle'i 9. toimingus
Kustutage korduvad kirjed Oracle'i 9. toimingus

Samm 2. Eemaldage duplikaadid

Pärast "SQL" sisestage "kustuta nimedest a kus rowid> (valige nimedest b kus b.name = a.name) min (rowid);" duplikaatide eemaldamiseks.

Kustutage korduvad kirjed Oracle'i 10. toimingus
Kustutage korduvad kirjed Oracle'i 10. toimingus

Samm 3. Kontrollige duplikaate

Pärast ülaltoodud toimingute tegemist kontrollige duplikaate, sisestades "select rowid, name from names;" siis "pühenduma".

SQL> valige rowid, nimi nimede seast; ROWID NIMI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan read valitud. SQL> kustuta nimedest a kus rowid> (vali min (rowid) nimedest b kus b.name = a.name); read kustutatud. SQL> valige rowid, nimi nimede seast; ROWID NIMI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom read valitud. SQL> kohustub; Kohustus täidetud.

Meetod 4/4: ridade kustutamine veergude kaupa

Kustutage korduvad kirjed Oracle'i sammus 11
Kustutage korduvad kirjed Oracle'i sammus 11

Samm 1. Valige rida

Pärast "SQL" sisestage "select * nimedest;" et oleks võimalik joont näha.

Kustutage korduvad kirjed Oracle'i 12. sammus
Kustutage korduvad kirjed Oracle'i 12. sammus

Samm 2. Eemaldage duplikaatridad, tuvastades nende veerud

Pärast "SQL" "sisestage" kustutage nimedest a kus rowid> (valige min (rowid) nimedest b kus b.name = a.name ja b.age = a.age); " dubleerivate kirjete eemaldamiseks.

Kustutage korduvad kirjed Oracle'i 13. sammus
Kustutage korduvad kirjed Oracle'i 13. sammus

Samm 3. Kontrollige duplikaate

Kui olete ülaltoodud toimingud lõpetanud, sisestage "vali * nimede seast;" seejärel "pühenduma", et näha, kas duplikaadid on tegelikult eemaldatud.

SQL> valige * nimede seast; NIMI VANUS ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 read valitud. SQL> kustuta nimedest a kus rowid> (vali min (rowid) nimedest b kus b.name = a.name ja b.age = a.age); rida kustutatud. SQL> valige * nimede seast; NIMI VANUS ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 rida valitud. SQL> kohustub; Kohustus täidetud.

Hoiatus

  • Looge oma sisselogimisel duplikaattabel, et seda saaks kasutada sisulisena, kui andmeid pole kustutatud (kui teil on küsimusi).

    SQL> luua tabel alan.names_backup kui valida * nimedest; Tabel on loodud.

Soovitan: