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
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.
Korak 2. Identificiranje iz stupca pod nazivom "Imena
"U slučaju stupca pod nazivom" Names ", zamijenili biste" column_name "s Names.
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
Korak 1. Odaberite "ime iz imena
"Nakon" SQL ", što znači Standard Query Language, unesite" select name from names ".
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".
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.
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
Korak 1. Odaberite RoWID koji želite izbrisati
Nakon "SQL", unesite "select rowid, name from names;."
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.
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
Korak 1. Odaberite svoje retke
Nakon "SQL", unesite "odaberite * iz naziva;" da vidim vaše redove.
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.
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.