4 τρόποι διαγραφής διπλών εγγραφών στο Oracle

Πίνακας περιεχομένων:

4 τρόποι διαγραφής διπλών εγγραφών στο Oracle
4 τρόποι διαγραφής διπλών εγγραφών στο Oracle

Βίντεο: 4 τρόποι διαγραφής διπλών εγγραφών στο Oracle

Βίντεο: 4 τρόποι διαγραφής διπλών εγγραφών στο Oracle
Βίντεο: Ευφυή Ψηφιακά Μέσα: Aνάλυση Εικόνας & Βίντεο/Intelligent Digital Media: Image & Video Analysis 2024, Ενδέχεται
Anonim

Όταν εργάζεστε στο Oracle, μπορεί να διαπιστώσετε ότι ορισμένα από τα αρχεία σας έχουν διπλότυπα. Μπορείτε να διαγράψετε αυτές τις διπλές σειρές αναγνωρίζοντάς τις και χρησιμοποιώντας το RowID ή τη διεύθυνση σειράς. Πριν ξεκινήσετε, θα πρέπει να δημιουργήσετε έναν εφεδρικό πίνακα σε περίπτωση που χρειαστεί να τους αναφέρετε αφού έχετε διαγράψει εγγραφές.

Βήματα

Μέθοδος 1 από 4: Προσδιορισμός του αντιγράφου σας

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 1
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 1

Βήμα 1. Προσδιορίστε το αντίγραφο

Σε αυτήν την περίπτωση, προσδιορίστε το παράδειγμα διπλότυπου, "Alan". Βεβαιωθείτε ότι οι εγγραφές που προσπαθείτε να διαγράψετε είναι στην πραγματικότητα διπλές, εισάγοντας το SQL παρακάτω.

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 2
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 2

Βήμα 2. Προσδιορισμός από μια στήλη με το όνομα "Ονόματα

"Στην περίπτωση μιας στήλης με το όνομα" Ονόματα ", θα αντικαταστήσατε το" όνομα_στύλου "με Ονόματα.

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 3
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 3

Βήμα 3. Προσδιορισμός από άλλες στήλες

Εάν προσπαθούσατε να προσδιορίσετε το αντίγραφο με διαφορετική στήλη, για παράδειγμα την ηλικία του Alan και όχι το όνομά του, θα εισαγάγατε "Ages" στη θέση του "name_name" και ούτω καθεξής.

επιλέξτε όνομα_στύλου, μέτρηση (όνομα_στύλου) από την ομάδα πίνακα κατά όνομα_στύλου με αριθμό (όνομα_στύλου)> 1 ·

Μέθοδος 2 από 4: Διαγραφή μεμονωμένου διπλότυπου

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 4
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 4

Βήμα 1. Επιλέξτε "όνομα από ονόματα

"Μετά το" SQL ", που σημαίνει Standard Query Language, πληκτρολογήστε" select name from names."

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 5
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 5

Βήμα 2. Διαγράψτε όλες τις γραμμές με το διπλό όνομα

Μετά το "SQL", εισαγάγετε "διαγραφή από ονόματα όπου όνομα = 'Alan';." Σημειώστε ότι η κεφαλαιοποίηση είναι σημαντική εδώ, οπότε θα διαγραφούν όλες οι γραμμές με το όνομα "Alan". Μετά το "SQL", πληκτρολογήστε "commit".

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 6
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 6

Βήμα 3. Ενοικιάστε τη σειρά χωρίς διπλότυπο

Τώρα που διαγράψατε όλες τις σειρές με το παράδειγμα του ονόματος "Alan", μπορείτε να εισαγάγετε μία πίσω εισάγοντας το "insert in name name ('Alan');." Μετά το "SQL", εισαγάγετε "δέσμευση" για να δημιουργήσετε τη νέα σας σειρά.

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 7
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 7

Βήμα 4. Δείτε τη νέα σας λίστα

Αφού ολοκληρώσετε τα παραπάνω βήματα, μπορείτε να ελέγξετε για να βεβαιωθείτε ότι δεν έχετε πλέον διπλές εγγραφές εισάγοντας "επιλέξτε * από ονόματα".

SQL> επιλέξτε όνομα από ονόματα. ΟΝΟΜΑ ------------------------------ Επιλέχθηκαν οι σειρές Alan Carrie Tom Alan. SQL> διαγραφή από ονόματα όπου όνομα = 'Alan'; οι σειρές διαγράφηκαν. SQL> δέσμευση Η δέσμευση ολοκληρώθηκε. SQL> εισαγωγή τιμών σε ονόματα («Alan»). σειρά δημιουργήθηκε. SQL> δέσμευση Η δέσμευση ολοκληρώθηκε. SQL> επιλέξτε * από ονόματα. ΟΝΟΜΑ ------------------------------ Επιλέχθηκαν οι σειρές του Άλαν Κάρι Τομ.

Μέθοδος 3 από 4: Διαγραφή πολλαπλών διπλότυπων

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 8
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 8

Βήμα 1. Επιλέξτε το RowID που θέλετε να διαγράψετε

Μετά το "SQL", εισαγάγετε "επιλέξτε rowid, όνομα από ονόματα;."

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 9
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 9

Βήμα 2. Διαγράψτε το διπλότυπο

Μετά το "SQL," enter "διαγράψτε από τα ονόματα a where rowid> (επιλέξτε min (rowid) από τα ονόματα b όπου b.name = a.name);" για διαγραφή διπλών εγγραφών.

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 10
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 10

Βήμα 3. Ελέγξτε για διπλότυπα

Αφού ολοκληρώσετε τα παραπάνω, οι εντολές ελέγχουν αν εξακολουθείτε να έχετε διπλές εγγραφές εισάγοντας "επιλέξτε σειρά, όνομα από ονόματα;" και μετά «δεσμεύσου».

SQL> επιλέξτε rowid, όνομα από ονόματα. ROWID NAME ------------------ ---------------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan σειρές επιλεγμένες. SQL> διαγραφή από ονόματα a where rowid> (επιλέξτε min (rowid) από ονόματα b όπου b.name = a.name)? οι σειρές διαγράφηκαν. SQL> επιλέξτε rowid, όνομα από ονόματα. ROWID NAME ------------------ ---------------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Επιλεγμένες σειρές Tom. SQL> δέσμευση Η δέσμευση ολοκληρώθηκε.

Μέθοδος 4 από 4: Διαγραφή γραμμών με στήλες

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 11
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 11

Βήμα 1. Επιλέξτε τις σειρές σας

Μετά το "SQL", εισαγάγετε "επιλέξτε * από τα ονόματα." για να δεις τις σειρές σου.

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 12
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 12

Βήμα 2. Διαγράψτε διπλές σειρές προσδιορίζοντας τη στήλη τους

Μετά το "SQL" "εισαγάγετε" διαγράψτε από τα ονόματα a where rowid> (επιλέξτε min (rowid) από τα ονόματα b όπου b.name = a.name και b.age = a.age); " για να διαγράψετε τις διπλές εγγραφές.

Διαγραφή διπλών εγγραφών στο Oracle Βήμα 13
Διαγραφή διπλών εγγραφών στο Oracle Βήμα 13

Βήμα 3. Ελέγξτε για διπλότυπα

Αφού ολοκληρώσετε τα παραπάνω βήματα, πληκτρολογήστε "select * from names;" και στη συνέχεια "δέσμευση" για να ελέγξετε ότι έχετε διαγράψει επιτυχώς τις διπλές εγγραφές.

SQL> επιλέξτε * από ονόματα. NAME AGE ---------------------------------------------- Alan 50 Carrie 51 Tom 52 Alan 50 επιλεγμένες σειρές. SQL> διαγραφή από ονόματα a where rowid> (επιλέξτε min (rowid) από ονόματα b όπου b.name = a.name και b.age = a.age); η σειρά διαγράφηκε. SQL> επιλέξτε * από ονόματα. NAME AGE ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 επιλεγμένες σειρές Το SQL> δέσμευση Η δέσμευση ολοκληρώθηκε.

Προειδοποιήσεις

  • Δημιουργήστε έναν εφεδρικό πίνακα στη δική σας είσοδο που μπορείτε να χρησιμοποιήσετε για να δείξετε τι υπήρχε πριν από τη διαγραφή (σε περίπτωση που υπάρχουν ερωτήσεις).

    SQL> δημιουργία πίνακα alan.names_backup ως select * από ονόματα. Δημιουργήθηκε πίνακας.

Συνιστάται: