4 tapaa poistaa päällekkäiset tietueet Oraclesta

Sisällysluettelo:

4 tapaa poistaa päällekkäiset tietueet Oraclesta
4 tapaa poistaa päällekkäiset tietueet Oraclesta

Video: 4 tapaa poistaa päällekkäiset tietueet Oraclesta

Video: 4 tapaa poistaa päällekkäiset tietueet Oraclesta
Video: КАКИМ БУДЕТ PORTAL 3 2024, Saattaa
Anonim

Kun työskentelet Oraclessa, saatat huomata, että joillakin tietueistasi on kaksoiskappaleita. Voit poistaa nämä päällekkäiset rivit tunnistamalla ne ja käyttämällä sen RowID- tai riviosoitetta. Ennen kuin aloitat, luo varmuuskopiotaulukko siltä varalta, että sinun on viitattava niihin, kun olet poistanut tietueet.

Askeleet

Tapa 1/4: Kopion tunnistaminen

Poista päällekkäiset tietueet Oraclen vaiheessa 1
Poista päällekkäiset tietueet Oraclen vaiheessa 1

Vaihe 1. Tunnista kaksoiskappale

Tunnista tässä tapauksessa esimerkin kaksoiskappale "Alan". Varmista, että poistettavat tietueet ovat todella kaksoiskappaleita kirjoittamalla alla oleva SQL.

Poista päällekkäiset tietueet Oraclen vaiheessa 2
Poista päällekkäiset tietueet Oraclen vaiheessa 2

Vaihe 2. Tunnistaminen sarakkeesta nimeltä "Nimet"

"Nimet" -sarakkeen tapauksessa "sarakkeen_nimi" korvataan nimillä.

Poista päällekkäiset tietueet Oraclen vaiheessa 3
Poista päällekkäiset tietueet Oraclen vaiheessa 3

Vaihe 3. Tunnistaminen muista sarakkeista

Jos yrität tunnistaa kaksoiskappaleen eri sarakkeesta, esimerkiksi Alanin iästä eikä hänen nimestään, kirjoitat "Ages" sarakkeen_nimen tilalle ja niin edelleen.

valitse sarakkeen_nimi, laske (sarakkeen_nimi) taulukkoryhmästä sarakkeen_nimen mukaan, jonka määrä (sarakkeen_nimi)> 1;

Tapa 2/4: Yhden kaksoiskappaleen poistaminen

Poista päällekkäiset tietueet Oraclen vaiheessa 4
Poista päällekkäiset tietueet Oraclen vaiheessa 4

Vaihe 1. Valitse "nimi nimistä

Kirjoita "SQL", joka tarkoittaa vakiokyselykieltä, "valitse nimi nimistä".

Poista päällekkäiset tietueet Oraclen vaiheessa 5
Poista päällekkäiset tietueet Oraclen vaiheessa 5

Vaihe 2. Poista kaikki rivit, joiden nimi on sama

"SQL: n" jälkeen kirjoita "delete nimistä, joissa name = 'Alan';." Huomaa, että isot kirjaimet ovat tärkeitä, joten tämä poistaa kaikki Alan -nimiset rivit. Kirjoita "SQL" -merkin jälkeen "sitoutua".

Poista päällekkäiset tietueet Oraclen vaiheessa 6
Poista päällekkäiset tietueet Oraclen vaiheessa 6

Vaihe 3. Vuokraa rivi ilman kaksoiskappaletta

Nyt kun olet poistanut kaikki rivit esimerkinimellä "Alan", voit lisätä yhden takaisin kirjoittamalla "insert into name values ('Alan');." Luo uusi rivi kirjoittamalla "SQL" -merkin jälkeen "sitoutua".

Poista päällekkäiset tietueet Oraclen vaiheessa 7
Poista päällekkäiset tietueet Oraclen vaiheessa 7

Vaihe 4. Katso uusi luettelosi

Kun olet suorittanut yllä olevat vaiheet, voit varmistaa, ettei sinulla ole päällekkäisiä tietueita kirjoittamalla "valitse * nimistä".

SQL> valitse nimi nimistä; NIMI ------------------------------ Alan Carrie Tom Alan -rivit valittu. SQL> poista nimistä jossa name = 'Alan'; rivit poistettu. SQL> sitoutuminen; Sitoumus valmis. SQL> lisää nimiin arvot ('Alan'); rivi luotu. SQL> sitoutuminen; Sitoumus valmis. SQL> valitse * nimistä; NIMI ------------------------------ Alan Carrie Tom -rivit valittu.

Tapa 3/4: Useiden kopioiden poistaminen

Poista päällekkäiset tietueet Oraclen vaiheessa 8
Poista päällekkäiset tietueet Oraclen vaiheessa 8

Vaihe 1. Valitse RowID, jonka haluat poistaa

"SQL: n" jälkeen kirjoita "valitse rowid, nimi nimistä;."

Poista päällekkäiset tietueet Oraclen vaiheessa 9
Poista päällekkäiset tietueet Oraclen vaiheessa 9

Vaihe 2. Poista kopio

"SQL: n" jälkeen kirjoita "poista nimistä a jossa rivi> (valitse min (rivi) nimistä b missä b.nimi = a.nimi);" poistaa päällekkäisiä tietueita.

Poista päällekkäiset tietueet Oraclen vaiheessa 10
Poista päällekkäiset tietueet Oraclen vaiheessa 10

Vaihe 3. Tarkista kaksoiskappaleet

Kun olet suorittanut edellä mainitun, komennot tarkistavat, onko sinulla edelleen päällekkäisiä tietueita kirjoittamalla "valitse rivijono, nimi nimistä;" ja sitten "sitoutua".

SQL> valitse rivit, nimi nimistä; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan -rivit valittu. SQL> poista nimistä a jossa rowid> (valitse min (rowid) nimistä b missä b.name = a.name); rivit poistettu. SQL> valitse rivit, nimi nimistä; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom -rivit valittu. SQL> sitoutuminen; Sitoumus valmis.

Tapa 4/4: Rivien poistaminen sarakkeilla

Poista päällekkäiset tietueet Oraclen vaiheessa 11
Poista päällekkäiset tietueet Oraclen vaiheessa 11

Vaihe 1. Valitse rivit

Kirjoita "SQL": n jälkeen "select * nimistä;" nähdäksesi rivisi.

Poista päällekkäiset tietueet Oraclen vaiheessa 12
Poista päällekkäiset tietueet Oraclen vaiheessa 12

Vaihe 2. Poista päällekkäiset rivit tunnistamalla niiden sarake

"SQL": n jälkeen "kirjoita" poista nimistä a jossa rivi> (valitse min (rivi) nimistä b missä b.nimi = a.nimi ja b. ikä = ikä.); " poistaa päällekkäiset tietueet.

Poista päällekkäiset tietueet Oraclen vaiheessa 13
Poista päällekkäiset tietueet Oraclen vaiheessa 13

Vaihe 3. Tarkista kaksoiskappaleet

Kun olet suorittanut yllä olevat vaiheet, kirjoita "valitse * nimistä;" ja sitten "sitoutua" tarkistaaksesi, että olet poistanut päällekkäiset tietueet onnistuneesti.

SQL> valitse * nimistä; NIMI-IKÄ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 rivit valittu. SQL> poista nimistä a jossa rowid> (valitse min (rowid) nimistä b missä b.name = a.name ja b.age = a.age); rivi poistettu. SQL> valitse * nimistä; NAME AGE ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 riviä valittu. SQL> sitoutuminen; Sitoumus valmis.

Varoitukset

  • Luo omaan kirjautumiseen varmuuskopiotaulukko, jonka avulla voit näyttää, mitä siellä oli ennen poistoa (jos on kysyttävää).

    SQL> luo taulukko alan.names_backup as * valitse nimistä; Taulukko luotu.

Suositeltava: