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
Vaihe 1. Tunnista kaksoiskappale
Tunnista tässä tapauksessa esimerkin kaksoiskappale "Alan". Varmista, että poistettavat tietueet ovat todella kaksoiskappaleita kirjoittamalla alla oleva SQL.
Vaihe 2. Tunnistaminen sarakkeesta nimeltä "Nimet"
"Nimet" -sarakkeen tapauksessa "sarakkeen_nimi" korvataan nimillä.
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
Vaihe 1. Valitse "nimi nimistä
Kirjoita "SQL", joka tarkoittaa vakiokyselykieltä, "valitse nimi nimistä".
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".
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".
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
Vaihe 1. Valitse RowID, jonka haluat poistaa
"SQL: n" jälkeen kirjoita "valitse rowid, nimi nimistä;."
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.
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
Vaihe 1. Valitse rivit
Kirjoita "SQL": n jälkeen "select * nimistä;" nähdäksesi rivisi.
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.
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.