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: ART Pouring Tehnika, Kako napraviti sliku kao profesionalac 2024, Svibanj
Anonim

Dok radite u Oracleu, na nekim zapisima možete pronaći duplikate. Duplicirane retke možete ukloniti tako da ih identificirate i upotrijebite odgovarajuću adresu retka pseudonima RowID. Prije početka stvorite sigurnosnu tablicu u slučaju da vam je potrebna referenca nakon brisanja zapisa.

Korak

Metoda 1 od 4: Identificiranje duplikata

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

Korak 1. Identificirajte duplikate

U ovom primjeru identificiramo duplikat "Alan". Uvjerite se da su zapisi za brisanje doista duplikati unošenjem dolje navedenog SQL -a.

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

Korak 2. Identificirajte iz stupca pod nazivom "Ime"

U slučaju da stupac ima naslov "Naziv", morate "ime_ stupca" zamijeniti imenom.

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

Korak 3. Identificirajte ostale stupce

Ako pokušavate identificirati duplikate iz različitih stupaca, na primjer Alanovu dob umjesto njegovog imena, unesite "Dob" umjesto "ime_ stupca" itd.

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

Metoda 2 od 4: Uklanjanje pojedinačnih duplikata

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

Korak 1. Odaberite "ime iz imena"

Nakon "SQL" (skraćeno od 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 imenima

Nakon "SQL" unesite "delete from names where name = 'Alan';." Valja napomenuti da je velika slova ovdje važna tako da se ovim korakom mogu izbrisati svi retci pod nazivom "Alan". Nakon "SQL" unesite "commit"

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

Korak 3. Ponovno unesite retke bez duplikata

Sada kada ste izbrisali sve retke i zamijenili ih s "Alan", ponovno ih ispunite unosom "umetni u vrijednosti imena ('Alan');." Nakon "SQL", unesite "commit" da biste stvorili novi redak.

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

Korak 4. Pregledajte novi popis

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

SQL> odaberite ime iz imena; IME ------------------------------ Alan Citra Tomi Alan Baris odabran. SQL> brisanje iz naziva gdje je name = 'Alan'; Redak je izbrisan. SQL> urezuje; / Potvrda dovršena. SQL> umetni u nazive vrijednosti ('Alan'); redak stvoren. SQL> urezuje; Potvrda dovršena. SQL> odaberite * iz imena; IME ------------------------------ Odabrani redovi Alana Citre Tomi.

Metoda 3 od 4: Uklanjanje 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. Uklonite duplikate

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

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

Korak 3. Provjerite ima li duplikata

Nakon dovršetka gornjih koraka provjerite ima li duplikata unošenjem "select rowid, name from names;" 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> urezuje; Potvrda dovršena.

Metoda 4 od 4: Brisanje redaka po stupcima

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

Korak 1. Odaberite redak

Nakon "SQL", unesite "select * from names;" da mogu vidjeti crtu.

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

Korak 2. Uklonite dvostruke retke identificiranjem njihovih stupaca

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 uklanjanje 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;" zatim "predati" da vidite jesu li duplikati doista uklonjeni.

SQL> odaberite * iz imena; IME DOBA ------------------------------ ---------- Alan 50 Citra 51 Tomi 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 Citra 51 Tomi Odabrana su 52 reda. SQL> urezuje; Potvrda dovršena.

Upozorenje

  • Izradite duplikat tablice u prijavi tako da se može koristiti kao referenca sadržaja kada nisu izbrisani podaci (u slučaju da imate pitanja).

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

Preporučeni: