4 načina brisanja dupliciranih zapisa u Oracleu

Sadržaj:

4 načina brisanja dupliciranih zapisa u Oracleu
4 načina brisanja dupliciranih zapisa u Oracleu

Video: 4 načina brisanja dupliciranih zapisa u Oracleu

Video: 4 načina brisanja dupliciranih zapisa u Oracleu
Video: How To Install Python, Setup Virtual Environment VENV, Set Default Python System Path & Install Git 2024, Svibanj
Anonim

Kada radite u Oracleu, možda ćete otkriti da neki od vaših zapisa imaju duplikate. Ove dvostruke retke možete izbrisati tako da ih identificirate i upotrijebite njegov RowID ili adresu retka. Prije nego počnete, trebali biste izraditi sigurnosnu tablicu u slučaju da ih trebate referencirati nakon što ste izbrisali zapise.

Koraci

Metoda 1 od 4: Identificiranje vašeg duplikata

Brisanje dupliciranih zapisa u Oracleu 1
Brisanje dupliciranih zapisa u Oracleu 1

Korak 1. Identificirajte duplikat

U tom slučaju identificirajte primjer duplikata, "Alan". Uvjerite se da su zapisi koje pokušavate izbrisati duplikati unošenjem dolje navedenog SQL -a.

Brisanje dupliciranih zapisa u Oracleu 2
Brisanje dupliciranih zapisa u Oracleu 2

Korak 2. Identificiranje iz stupca pod nazivom "Imena

"U slučaju stupca pod nazivom" Names ", zamijenili biste" column_name "s Names.

Brisanje dupliciranih zapisa u Oracleu 3
Brisanje dupliciranih zapisa u Oracleu 3

Korak 3. Identificiranje iz drugih stupaca

Ako pokušavate identificirati duplikat po drugom stupcu, na primjer dob Alana, a ne njegovo ime, unijeli biste "dob" na mjesto "ime_stupca" itd.

odaberite naziv_stupca, broj (naziv_ stupca) iz grupe tablica prema imenu stupca s brojem (naziv_ stupca)> 1;

Metoda 2 od 4: Brisanje jednog duplikata

Brisanje dupliciranih zapisa u Oracleu 4
Brisanje dupliciranih zapisa u Oracleu 4

Korak 1. Odaberite "ime iz imena

"Nakon" SQL ", što znači Standard Query Language, unesite" select name from names ".

Brisanje dupliciranih zapisa u Oracleu 5
Brisanje dupliciranih zapisa u Oracleu 5

Korak 2. Izbrišite sve retke s dupliciranim imenom

Nakon "SQL", unesite "delete iz imena gdje je name = 'Alan';." Imajte na umu da su velika slova ovdje važna, pa će se tako izbrisati svi retci pod nazivom "Alan". Nakon "SQL" unesite "commit".

Brisanje dupliciranih zapisa u Oracleu 6
Brisanje dupliciranih zapisa u Oracleu 6

Korak 3. Unesite redak bez duplikata

Sada kada ste izbrisali sve retke s primjerom imena "Alan", možete umetnuti jedan natrag unošenjem "umetni u vrijednosti imena ('Alan');." Nakon "SQL", unesite "commit" da biste stvorili svoj novi redak.

Brisanje dupliciranih zapisa u Oracleu 7
Brisanje dupliciranih zapisa u Oracleu 7

Korak 4. Pogledajte svoj novi popis

Nakon što dovršite gore navedene korake, možete provjeriti nemate li više dupliciranih zapisa unosom "odaberi * iz imena".

SQL> odaberite ime iz imena; IME ------------------------------ Alan Carrie Tom Alan odabrani redovi. SQL> brisanje iz naziva gdje je name = 'Alan'; redovi izbrisani. SQL> urezivanje; Potvrda dovršena. SQL> umetni u nazive vrijednosti ('Alan'); redak stvoren. SQL> urezivanje; Obvezivanje dovršeno. SQL> odaberite * iz imena; IME ------------------------------ Odabrani redovi Alana Carrie Toma.

Metoda 3 od 4: Brisanje više duplikata

Brisanje dupliciranih zapisa u Oracleu 8
Brisanje dupliciranih zapisa u Oracleu 8

Korak 1. Odaberite RoWID koji želite izbrisati

Nakon "SQL", unesite "select rowid, name from names;."

Brisanje dupliciranih zapisa u Oracleu 9
Brisanje dupliciranih zapisa u Oracleu 9

Korak 2. Izbrišite duplikat

Nakon "SQL", unesite "delete from names a where rowid> (odaberite min (rowid) iz imena b gdje je b.name = a.name);" za brisanje dupliciranih zapisa.

Brisanje dupliciranih zapisa u Oracleu 10
Brisanje dupliciranih zapisa u Oracleu 10

Korak 3. Provjerite ima li duplikata

Nakon što ste dovršili gore navedeno, naredbe provjeravaju imate li još uvijek duplikate zapisa unosom "select rowid, name from names;" a zatim "počiniti".

SQL> odaberite rowid, ime iz imena; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAdfOAAD Tom AABJnsAAGAAAdfOAAF Odabrani su redovi Alana. SQL> izbriši iz imena a gdje rowid> (odaberite min (rowid) iz imena b gdje je b.name = a.name); redovi izbrisani. SQL> odaberite rowid, ime iz imena; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Odabrani su Tom redovi. SQL> urezivanje; Obvezivanje dovršeno.

Metoda 4 od 4: Brisanje redaka sa stupcima

Brisanje dupliciranih zapisa u Oracleu 11
Brisanje dupliciranih zapisa u Oracleu 11

Korak 1. Odaberite svoje retke

Nakon "SQL", unesite "odaberite * iz naziva;" da vidim vaše redove.

Brisanje dupliciranih zapisa u Oracle -u, korak 12
Brisanje dupliciranih zapisa u Oracle -u, korak 12

Korak 2. Izbrišite dvostruke retke identificiranjem njihovog stupca

Nakon "SQL" "unesite" izbrišite iz naziva a where rowid> (odaberite min (rowid) iz imena b gdje je b.name = a.name i b.age = a.age); " za brisanje dupliciranih zapisa.

Brisanje dupliciranih zapisa u Oracleu, korak 13
Brisanje dupliciranih zapisa u Oracleu, korak 13

Korak 3. Provjerite ima li duplikata

Nakon što dovršite gore navedene korake, unesite "select * from names;" a zatim "urezati" kako biste provjerili jeste li uspješno izbrisali dvostruke zapise.

SQL> odaberite * iz imena; IME DOBA ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 odabrani redovi. SQL> izbriši iz imena a gdje rowid> (odaberite min (rowid) iz imena b gdje je b.name = a.name i b.age = a.age); redak izbrisan. SQL> odaberite * iz imena; IME DOBA ------------------------------ ---------- Alan 50 Carrie 51 Tom Odabrana su 52 retka. SQL> urezivanje; Potvrda dovršena.

Upozorenja

  • Izradite sigurnosnu kopiju tablice za vlastitu prijavu koju možete upotrijebiti za prikaz onoga što je bilo prije brisanja (u slučaju da imate pitanja).

    SQL> izradi tablicu alan.names_backup kao odabir * iz imena; Tablica je stvorena.

Preporučeni: