Oracle’is töötades võite avastada, et mõnel teie kirjel on duplikaadid. Saate need duplikaatread kustutada, tuvastades need ja kasutades selle rea ID-d või rea aadressi. Enne alustamist peaksite looma varundamistabeli juhuks, kui teil on vaja neile pärast kirjete kustutamist viidata.
1
Tuvastage duplikaat. Sel juhul tuvastage näidisdublikaat “Alan”. Veenduge, et kirjed, mida proovite kustutada, on tegelikult duplikaadid, sisestades allpool SQL-i.
2
Tuvastamine veerust nimega “Nimed”. Veeru nimega „Nimed” puhul asendate veeru_nimi veeruga Nimed.
3
Tuvastamine teistest veergudest. Kui prooviksite duplikaadi tuvastada mõne muu veeru järgi, näiteks Alani vanuse järgi, mitte tema nime järgi, sisestaksite veeru_nimi asemele “Vanused” ja nii edasi. valige tabelist veeru_nimi, arv(veeru_nimi) rühmita veeru_nime järgi, mille arv (veeru_nimi) > 1;
4
Valige “nimi nimedest”. Pärast “SQL”, mis tähistab standardset päringukeelt, sisestage “select name from names”.
5
Kustutage kõik duplikaatnimega read. Pärast “SQL” sisestage “delete from names where name=’Alan’;.” Pange tähele, et suurtähtede kasutamine on siin oluline, nii et see kustutab kõik read nimega “Alan”. Pärast “SQL” sisestage “commit”.
6
Rentige rida ilma duplikaadita. Nüüd, kui olete kustutanud kõik read näitenimega “Alan”, saate ühe tagasi lisada, sisestades “insert into name values (‘Alan’);.” Pärast “SQL” sisestage uue rea loomiseks “commit”.
7
Vaadake oma uut loendit. Kui olete ülaltoodud toimingud lõpetanud, saate kontrollida, kas teil pole enam dubleerivaid kirjeid, sisestades “select * from names”.SQL > valige nimi nimedest;NAME————– —————–AlanCarrieTomAlanrows valitud.SQL > kustuta nimedest, kus nimi=’Alan’;read kustutatud.SQL > commit;Commit complete.SQL > sisesta nimedesse väärtused (‘ Alan’);rida loodud.SQL > kinnistamine;Kinnitamine lõpetatud.SQL > vali * nimede hulgast;NAME—————————- –AlanCarrieTomrows valitud.
8
Valige rea ID, mille soovite kustutada. Pärast “SQL” sisestage “select rowid, name from names;.”
9
Kustutage duplikaat. Pärast “SQL” sisestage “delete from names a where rowid > (valige nimedest min(rida) b kus b.nimi=a.nimi);” topeltkirjete kustutamiseks.
10
Kontrollige duplikaate. Kui olete ülaltoodud toimingud lõpetanud, kontrollivad käsud, et näha, kas teil on ikka veel dubleerivaid kirjeid, sisestades “select rowid,name from names;” ja seejärel “commit”.SQL > valige nimede hulgast rowid,name;ROWID NAME—————— ————— —————AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAB AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD TomAABJnsAAGAAAdfOAAF Alanrows from. from.rownames/kushast nimed.a named/kustuta kustutatud.SQL > vali nimedest rida,nimi;ROWID NAME—————— ——————- ———–AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD Homme on valitud.SQL > kinnistamine;Kinnistamine on lõpetatud.
11
Valige oma read. Pärast “SQL” sisestage “select * from names;” oma ridu näha.
12
Kustutage korduvad read, tuvastades nende veeru. Pärast “SQL” sisestage “delete from names a where rowid > (valige nimedest min(rowid) b, kus b.name=a.name ja b.age=a.age);” topeltkirjete kustutamiseks.
13
Kontrollige duplikaate. Kui olete ülaltoodud sammud lõpetanud, sisestage “vali * nimedest;” ja seejärel “kehtida”, et kontrollida, kas olete duplikaatkirjed edukalt kustutanud. SQL > vali * nimede hulgast; NIMI VANUS——————————- ———– Alan 50Carrie 51Tom 52Alan 50 rida valitud.SQL > kustuta nimedest awhere rowid > (valige min(rida) nimedest bwhere b.name=a.nameand b.age=a.age);rida kustutatud.SQL > valige * nimedest;NAME VANUS—————————— ———– Alan 50Carrie 51Tom 52 rida valitud.SQL > kinnistada ;Pühendumine on lõpetatud.