Oracle -dagi takroriy yozuvlarni o'chirishning 4 usuli

Mundarija:

Oracle -dagi takroriy yozuvlarni o'chirishning 4 usuli
Oracle -dagi takroriy yozuvlarni o'chirishning 4 usuli

Video: Oracle -dagi takroriy yozuvlarni o'chirishning 4 usuli

Video: Oracle -dagi takroriy yozuvlarni o'chirishning 4 usuli
Video: 30ta maxfiy sir клавиатурадаги 30та махфий сир 2024, May
Anonim

Oracle -da ishlayotganda, ba'zi yozuvlaringizda dublikatlar borligini ko'rishingiz mumkin. Siz bu takrorlanuvchi qatorlarni aniqlab, uning RowID yoki satr manzilidan foydalanib o'chirib tashlashingiz mumkin. Ishni boshlashdan oldin, yozuvlarni o'chirib tashlaganingizdan so'ng, ularga havola qilish kerak bo'lsa, zaxira jadvalini yaratish kerak.

Qadamlar

4 -usul 1: dublikatingizni aniqlash

Oracle 1 -dagi takroriy yozuvlarni o'chirish
Oracle 1 -dagi takroriy yozuvlarni o'chirish

Qadam 1. dublikatini aniqlang

Bunday holda, "Alan" dublikat namunasini aniqlang. Quyidagi SQL -ni kiritib, o'chirmoqchi bo'lgan yozuvlar aslida takrorlanganligiga ishonch hosil qiling.

Oracle 2 -dagi takroriy yozuvlarni o'chirish
Oracle 2 -dagi takroriy yozuvlarni o'chirish

Qadam 2. "Ismlar" nomli ustundan aniqlash

"" Ismlar "nomli ustun misolida" ustun_anom "ni Ismlar bilan almashtirgan bo'lar edingiz.

Oracle 3 -dagi takroriy yozuvlarni o'chirish
Oracle 3 -dagi takroriy yozuvlarni o'chirish

3 -qadam. Boshqa ustunlardan aniqlash

Agar siz dublikatni boshqa ustun bilan aniqlamoqchi bo'lsangiz, masalan, Alanning ismi emas, yoshi, "ustun_ nomi" o'rniga "Yoshlar" ni kiritgan bo'lar edingiz.

table_name, count (column_name)> 1 ga ega bo'lgan jadval guruhidan column_name, count (column_name) ni tanlang;

4 -usul 2: bitta dublikatni o'chirish

Oracle 4 -dagi takroriy yozuvlarni o'chirish
Oracle 4 -dagi takroriy yozuvlarni o'chirish

Qadam 1. "Ismlardan ismni tanlang

"Standart so'rovlar tilini anglatuvchi" SQL "dan keyin" ismlardan ism tanlash "ni kiriting.

Oracle 5 dagi takroriy yozuvlarni o'chirish
Oracle 5 dagi takroriy yozuvlarni o'chirish

Qadam 2. Ikki nusxadagi nomli qatorlarning hammasini o'chirib tashlang

"SQL" dan so'ng "name = 'Alan'; nomlaridan o'chirish" kiriting. " E'tibor bering, bu erda katta harflar yozilishi muhim, shuning uchun "Alan" nomli barcha satrlar o'chiriladi. "SQL" dan keyin "majburiyat" kiriting.

Oracle 6 -dagi takroriy yozuvlarni o'chirish
Oracle 6 -dagi takroriy yozuvlarni o'chirish

Qadam 3. Qatorni dublikatsiz kiriting

Endi siz "Alan" nomli barcha qatorlarni o'chirib tashlaganingizdan so'ng, "ism qiymatlariga qo'shish (" Alan "); ni kiritib, bitta qatorni qo'shishingiz mumkin. "SQL" dan so'ng, yangi qatorni yaratish uchun "majburiyat" ni kiriting.

Oracle 7 -dagi takroriy yozuvlarni o'chirish
Oracle 7 -dagi takroriy yozuvlarni o'chirish

Qadam 4. Yangi ro'yxatingizni ko'ring

Yuqoridagi amallarni bajarganingizdan so'ng, nomlardan tanlash * ni kiritish orqali sizda takroriy yozuvlar yo'qligini tekshirishingiz mumkin.

SQL> ismlardan nom tanlash; NAME ------------------------------ Alan Kerri Tom Alan qatorlari tanlangan. SQL> nomlardan o'chirish, bu erda name = 'Alan'; qatorlar o'chirildi. SQL> majburiyat; Majburiyat tugadi. SQL> ismlar qiymatlarini kiritish ('Alan'); qator yaratildi. SQL> majburiyat; Majburiyat tugadi. SQL> nomlardan * ni tanlang; NAME ------------------------------ Alan Kerri Tom qatorlari tanlangan.

3 -usul 4: Bir nechta dublikatlarni o'chirish

Oracle 8 -dagi takroriy yozuvlarni o'chirish
Oracle 8 -dagi takroriy yozuvlarni o'chirish

Qadam 1. O'chirmoqchi bo'lgan RowID -ni tanlang

"SQL" dan keyin "kiriting" qatorini tanlang, ismlardan ism;."

Oracle 9 -dagi takroriy yozuvlarni o'chirish
Oracle 9 -dagi takroriy yozuvlarni o'chirish

Qadam 2. dublikatini o'chirish

"SQL" dan so'ng, "rowid> nomlaridan o'chirish" ni kiriting (b nomlaridan min (rowid) ni tanlang, b.name = a.name); " takroriy yozuvlarni o'chirish uchun.

Oracle 10 -dagi takroriy yozuvlarni o'chirish
Oracle 10 -dagi takroriy yozuvlarni o'chirish

Qadam 3. dublikatlarini tekshiring

Yuqoridagilarni bajarganingizdan so'ng, buyruqlar "siz qatorlardan, ismlardan ism tanlang;" yozib, sizda takroriy yozuvlar mavjudligini tekshiradi. va keyin "majburiyat".

SQL> rowid ni tanlang, ismlardan ism; ROWID NOMI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Kerri AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan qatorlari tanlangan. SQL> nomlardan o'chirish a qaerda rowid> (b nomlaridan min (rowid) ni tanlang b bu erda b.name = a.name); qatorlar o'chirildi. SQL> rowid ni tanlang, ismlardan ism; ROWID NOMI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Kerri AABJnsAAGAAAdfOAAD Tom qatorlari tanlangan. SQL> majburiyat; Majburiyat tugadi.

4 -usul 4: Ustunli satrlarni o'chirish

Oracle 11 -dagi takroriy yozuvlarni o'chirish
Oracle 11 -dagi takroriy yozuvlarni o'chirish

Qadam 1. Qatorlaringizni tanlang

"SQL" dan keyin "nomlaridan * ni tanlang;" kiriting; qatorlaringizni ko'rish uchun.

Oracle 12 -dagi takroriy yozuvlarni o'chirish
Oracle 12 -dagi takroriy yozuvlarni o'chirish

Qadam 2. Ikki nusxadagi qatorlarni ustunini aniqlab o'chirib tashlang

"SQL" so'zidan keyin kiriting "ismlardan o'chirish a qaerda rowid> (b nomlaridan min (rowid) ni tanlang b bu erda b.name = a.name va b.age = a.age);" takroriy yozuvlarni o'chirish uchun.

Oracle 13 -dagi takroriy yozuvlarni o'chirish
Oracle 13 -dagi takroriy yozuvlarni o'chirish

Qadam 3. dublikatlarini tekshiring

Yuqoridagi amallarni bajarganingizdan so'ng "nomlardan tanlash * ni kiriting;" va keyin takroriy yozuvlarni muvaffaqiyatli o'chirib tashlaganingizni tekshirish uchun "majburiyat" qo'ying.

SQL> nomlardan * ni tanlang; NOMI YOSHI ------------------------------ ---------- Alan 50 Kerri 51 Tom 52 Alan 50 qatorlar tanlangan. SQL> nomlardan o'chirish a qaerda rowid> (b nomlaridan a min. qator o'chirildi. SQL> nomlardan * ni tanlang; NOMI YOSHI ------------------------------ ---------- Alan 50 Kerri 51 Tom 52 qator tanlangan. SQL> majburiyat; Majburiyat tugadi.

Ogohlantirishlar

  • O'zingizning hisob qaydnomangizda zaxira jadvalini yarating, uni o'chirishdan oldin nima bo'lganini ko'rsatish uchun foydalanishingiz mumkin (agar savollar bo'lsa).

    SQL> nomlardan * tanlash sifatida alan.names_backup jadvalini yarating; Jadval yaratildi.

Tavsiya: