4 veidi, kā izdzēst dublētus ierakstus Oracle

Satura rādītājs:

4 veidi, kā izdzēst dublētus ierakstus Oracle
4 veidi, kā izdzēst dublētus ierakstus Oracle

Video: 4 veidi, kā izdzēst dublētus ierakstus Oracle

Video: 4 veidi, kā izdzēst dublētus ierakstus Oracle
Video: УТОЧКА ЛАЛАФАНФАН😱Бумажные Сюрпризы🦋 Lalafanfan🌸Марин-ка Д 2024, Maijs
Anonim

Strādājot Oracle, dažos ierakstos varat atrast dublikātus. Jūs varat noņemt dublētas rindas, identificējot tās un izmantojot atbilstošo RowID aizstājvārda rindas adresi. Pirms sākat, izveidojiet rezerves tabulu, ja pēc ieraksta dzēšanas jums ir nepieciešama atsauce.

Solis

1. metode no 4: dublikātu identificēšana

Izdzēsiet dublētus ierakstus Oracle 1. darbībā
Izdzēsiet dublētus ierakstus Oracle 1. darbībā

1. darbība. Identificējiet dublikātus

Šajā piemērā mēs identificējam dublikātu "Alan". Pārliecinieties, vai dzēšamie ieraksti patiešām ir dublikāti, ievadot zemāk esošo SQL.

Izdzēsiet dublētus ierakstus Oracle 2. darbībā
Izdzēsiet dublētus ierakstus Oracle 2. darbībā

2. solis. Identificējiet slejā ar nosaukumu "Nosaukums"

Ja kolonnas nosaukums ir “Nosaukums”, “kolonnas_nosaukums” ir jāaizstāj ar nosaukumu.

Izdzēsiet dublētus ierakstus Oracle 3. darbībā
Izdzēsiet dublētus ierakstus Oracle 3. darbībā

3. solis. Nosakiet citas kolonnas

Ja jūs mēģināt identificēt dublikātus no dažādām kolonnām, piemēram, Alana vecumu, nevis viņa vārdu, ievadiet “Vecums” slejas_nosaukuma vietā utt.

tabulas grupā atlasiet kolonnas_nosaukumu, skaitu (kolonnas_nosaukumu) pēc kolonnas_nosaukuma, kura skaits (kolonnas_nosaukums)> 1;

2. metode no 4: atsevišķu dublikātu noņemšana

Izdzēsiet dublētus ierakstus Oracle 4. solī
Izdzēsiet dublētus ierakstus Oracle 4. solī

1. solis. Izvēlieties "vārds no nosaukumiem"

Pēc "SQL" (saīsinājums no standarta vaicājumu valodas) ievadiet "izvēlieties vārdu no nosaukumiem".

Izdzēsiet dublētus ierakstus Oracle 5. darbībā
Izdzēsiet dublētus ierakstus Oracle 5. darbībā

2. darbība. Dzēsiet visas rindas ar dublētiem nosaukumiem

Pēc "SQL" ievadiet "dzēst no nosaukumiem, kur name = 'Alan';." Jāatzīmē, ka lielo burtu lietojums šeit ir svarīgs, lai šis solis varētu izdzēst visas rindas ar nosaukumu "Alan". Pēc "SQL" ievadiet "veikt"

Izdzēsiet dublētus ierakstus Oracle 6. darbībā
Izdzēsiet dublētus ierakstus Oracle 6. darbībā

3. solis. Atkārtoti ievadiet rindas bez dublikātiem

Tagad, kad esat izdzēsis visas rindas un aizstājis tās ar "Alan", aizpildiet vienu no tām, ievadot "insert in name values ('Alan');." Pēc "SQL" ievadiet "saistīt", lai izveidotu jaunu rindu.

Izdzēsiet dublētus ierakstus Oracle 7. darbībā
Izdzēsiet dublētus ierakstus Oracle 7. darbībā

4. solis. Skatiet jauno sarakstu

Kad esat veicis iepriekš minētās darbības, varat pārbaudīt, vai vairs nav ierakstu dublikātu, ievadot "izvēlieties * no nosaukumiem".

SQL> izvēlieties vārdu no nosaukumiem; NAME ------------------------------ Alan Citra Tomi Alan Baris selected. SQL> dzēst no nosaukumiem, kur name = 'Alan'; Rinda tiek izdzēsta. SQL> apņemas; / Apņemšanās pabeigta. SQL> ievietojiet nosaukumos vērtības ('Alan'); rinda izveidota. SQL> apņemas; Apņemšanās pabeigta. SQL> izvēlieties * no nosaukumiem; NAME ------------------------------ Alan Citra Tomi rindas atlasītas.

3. metode no 4: vairāku dublikātu noņemšana

Izdzēsiet dublētus ierakstus Oracle 8. darbībā
Izdzēsiet dublētus ierakstus Oracle 8. darbībā

1. solis. Izvēlieties RowID, kuru vēlaties dzēst

Pēc "SQL" ievadiet "select rowid, name from names;."

Izdzēsiet dublētus ierakstus Oracle 9. darbībā
Izdzēsiet dublētus ierakstus Oracle 9. darbībā

2. darbība. Noņemiet dublikātus

Pēc "SQL" ievadiet "dzēst no nosaukumiem a kur rowid> (izvēlieties min (rowid) no nosaukumiem b kur b.name = a.name);" lai noņemtu dublikātus.

Izdzēsiet dublētus ierakstus Oracle 10. darbībā
Izdzēsiet dublētus ierakstus Oracle 10. darbībā

3. darbība. Pārbaudiet, vai nav dublikātu

Pēc iepriekš minēto darbību veikšanas pārbaudiet, vai nav dublikātu, ievadot "select rowid, name from names;" tad "apņemties".

SQL> izvēlieties rowid, nosaukumu no nosaukumiem; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rindas atlasītas. SQL> dzēst no nosaukumiem a kur rowid> (izvēlieties min (rowid) no nosaukumiem b, kur b.name = a.name); rindas izdzēstas. SQL> izvēlieties rowid, nosaukumu no nosaukumiem; ROWID NAME ------------------ ------------------------------ Atlasītas Tom rindas. SQL> apņemas; Apņemšanās pabeigta.

4. metode no 4: rindu dzēšana pēc kolonnām

Izdzēsiet dublētus ierakstus Oracle 11. darbībā
Izdzēsiet dublētus ierakstus Oracle 11. darbībā

1. solis. Atlasiet rindu

Pēc "SQL" ievadiet "select * from names;" lai varētu saskatīt līniju.

Izdzēsiet dublētus ierakstus Oracle 12. darbībā
Izdzēsiet dublētus ierakstus Oracle 12. darbībā

2. darbība. Noņemiet dublētās rindas, identificējot to slejas

Pēc "SQL" ievadiet "dzēst no nosaukumiem a kur rowid> (izvēlieties min (rowid) no nosaukumiem b kur b.name = a.name un b.age = a.age);" lai noņemtu ierakstu dublikātus.

Izdzēsiet dublētus ierakstus Oracle 13. darbībā
Izdzēsiet dublētus ierakstus Oracle 13. darbībā

3. darbība. Pārbaudiet, vai nav dublikātu

Kad esat pabeidzis iepriekš minētās darbības, ievadiet "izvēlieties * no nosaukumiem;" tad "apņemas" pārbaudīt, vai dublikāti tiešām ir noņemti.

SQL> izvēlieties * no nosaukumiem; VĀRDU VECUMS ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 atlasītas rindas. SQL> dzēst no nosaukumiem a kur rowid> (izvēlieties min (rowid) no nosaukumiem b kur b.name = a.name un b.age = a.age); rinda ir izdzēsta. SQL> izvēlieties * no nosaukumiem; Nosaukuma vecums ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 rindas atlasītas. SQL> apņemas; Apņemšanās pabeigta.

Brīdinājums

  • Savā pieteikumvārdā izveidojiet tabulas dublikātu, lai to varētu izmantot kā atsauci uz saturu, ja dati nav izdzēsti (ja jums rodas kādi jautājumi).

    SQL> izveidot tabulu alan.names_backup kā izvēlieties * no nosaukumiem; Tabula izveidota.

Ieteicams: