4 moduri de a șterge înregistrările duplicate în Oracle

Cuprins:

4 moduri de a șterge înregistrările duplicate în Oracle
4 moduri de a șterge înregistrările duplicate în Oracle

Video: 4 moduri de a șterge înregistrările duplicate în Oracle

Video: 4 moduri de a șterge înregistrările duplicate în Oracle
Video: 3 Metode Reale de a face Bani Online fara Investitie in 2023! (Metode Testate!) 2024, Mai
Anonim

Când lucrați în Oracle, este posibil să constatați că unele dintre înregistrările dvs. au duplicate. Puteți șterge aceste rânduri duplicate identificându-le și folosind RowID sau adresa de rând. Înainte de a începe, ar trebui să creați un tabel de rezervă în cazul în care trebuie să le faceți referire după ce ați șters înregistrările.

Pași

Metoda 1 din 4: Identificarea duplicatului dvs

Ștergeți înregistrările duplicate în Oracle Pasul 1
Ștergeți înregistrările duplicate în Oracle Pasul 1

Pasul 1. Identificați duplicatul

În acest caz, identificați exemplul duplicat, „Alan”. Asigurați-vă că înregistrările pe care încercați să le ștergeți sunt de fapt duplicate, introducând SQL-ul de mai jos.

Ștergeți înregistrările duplicate în Oracle Pasul 2
Ștergeți înregistrările duplicate în Oracle Pasul 2

Pasul 2. Identificarea dintr-o coloană numită „Nume

„În cazul unei coloane numite„ Nume”, ați înlocui„ nume_coloană”cu Nume.

Ștergeți înregistrările duplicate în Oracle Pasul 3
Ștergeți înregistrările duplicate în Oracle Pasul 3

Pasul 3. Identificarea din alte coloane

Dacă încercați să identificați duplicatul printr-o coloană diferită, de exemplu, mai degrabă vârsta lui Alan decât numele său, ați introduce „Vârste” în locul „nume_coloană” și așa mai departe.

selectați nume_coloană, număr (nume_coloană) din grupul de tabele după nume_coloană având număr (nume_coloană)> 1;

Metoda 2 din 4: Ștergerea unui singur duplicat

Ștergeți înregistrările duplicate în Oracle Pasul 4
Ștergeți înregistrările duplicate în Oracle Pasul 4

Pasul 1. Selectați „nume din nume

„După„ SQL”, care înseamnă Standard Query Language, introduceți„ selectați numele din nume”.

Ștergeți înregistrările duplicate în Oracle Pasul 5
Ștergeți înregistrările duplicate în Oracle Pasul 5

Pasul 2. Ștergeți toate rândurile cu numele duplicat

După „SQL”, introduceți „ștergeți din nume unde name =„ Alan”;.” Rețineți că scrierea cu majuscule este importantă aici, astfel încât aceasta va șterge toate rândurile numite „Alan”. După „SQL”, introduceți „commit”.

Ștergeți înregistrările duplicate în Oracle Pasul 6
Ștergeți înregistrările duplicate în Oracle Pasul 6

Pasul 3. Închiriați rândul fără un duplicat

Acum, după ce ați șters toate rândurile cu numele de exemplu „Alan”, puteți insera unul înapoi introducând „inserare în valorile numelui („ Alan”);.” După „SQL”, introduceți „commit” pentru a vă crea noul rând.

Ștergeți înregistrările duplicate în Oracle Pasul 7
Ștergeți înregistrările duplicate în Oracle Pasul 7

Pasul 4. Consultați noua dvs. listă

După ce ați parcurs pașii de mai sus, puteți verifica dacă nu mai aveți înregistrări duplicate, introducând „selectați * din nume”.

SQL> selectați numele din nume; NUME ------------------------------ Alan Carrie Tom Alan rânduri selectate. SQL> șterge din nume unde name = 'Alan'; rânduri șterse. SQL> commit; Angajare finalizată. SQL> introduceți în valori valori („Alan”); rând creat. SQL> commit; Angajare finalizată. SQL> selectați * din nume; NUME ------------------------------ Alan Carrie Tom rânduri selectate.

Metoda 3 din 4: Ștergerea mai multor duplicate

Ștergeți înregistrările duplicate în Oracle Pasul 8
Ștergeți înregistrările duplicate în Oracle Pasul 8

Pasul 1. Selectați RowID pe care doriți să îl ștergeți

După „SQL”, „introduceți” selectați rowid, numele din nume;."

Ștergeți înregistrările duplicate în Oracle Pasul 9
Ștergeți înregistrările duplicate în Oracle Pasul 9

Pasul 2. Ștergeți duplicatul

După „SQL”, „introduceți„ ștergeți din nume a unde rowid> (selectați min (rowid) din numele b unde b.name = a.name); " pentru a șterge înregistrările duplicate.

Ștergeți înregistrările duplicate în Oracle Pasul 10
Ștergeți înregistrările duplicate în Oracle Pasul 10

Pasul 3. Verificați dacă există duplicate

După ce ați finalizat cele de mai sus, comenzile verifică dacă mai aveți înregistrări duplicate introducând „selectați rândul, numele din nume;” și apoi „comite”.

SQL> selectați rowid, nume din nume; NUME ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rânduri selectate. SQL> șterge din nume a unde rowid> (selectează min (rowid) din numele b unde b.name = a.name); rânduri șterse. SQL> selectați rowid, nume din nume; NUME ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom rânduri selectate. SQL> commit; Angajare finalizată.

Metoda 4 din 4: Ștergerea rândurilor cu coloane

Ștergeți înregistrările duplicate în Oracle Pasul 11
Ștergeți înregistrările duplicate în Oracle Pasul 11

Pasul 1. Selectați rândurile

După „SQL”, introduceți „selectați * din nume;” pentru a vă vedea rândurile.

Ștergeți înregistrările duplicate în Oracle Pasul 12
Ștergeți înregistrările duplicate în Oracle Pasul 12

Pasul 2. Ștergeți rândurile duplicate identificându-le coloana

După „SQL” „introduceți„ ștergeți din nume un unde rowid> (selectați min (rowid) din nume b unde b.name = a.name și b.age = a.age); " pentru a șterge înregistrările duplicate.

Ștergeți înregistrările duplicate în Oracle Pasul 13
Ștergeți înregistrările duplicate în Oracle Pasul 13

Pasul 3. Verificați dacă există duplicate

După ce ați parcurs pașii de mai sus, introduceți „selectați * din nume;” și apoi „comiteți” pentru a verifica dacă ați șters cu succes înregistrările duplicate.

SQL> selectați * din nume; NUME VÂRSTĂ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 rânduri selectate. SQL> șterge din nume a unde rowid> (selectează min (rowid) din numele b unde b.name = a.name și b.age = a.age); rând șters. SQL> selectați * din nume; NUME VÂRSTĂ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 de rânduri selectate. SQL> commit; Angajare finalizată.

Avertizări

  • Creați un tabel de rezervă în propria dvs. conectare pe care o puteți folosi pentru a arăta ce a fost acolo înainte de orice ștergere (în cazul în care există întrebări).

    SQL> creați tabelul alan.names_backup ca selectați * din nume; Tabel creat.

Recomandat: