Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Veritabanı tasarımı en iyi uygulamaları, bir veritabanındaki yinelemeleri önlemek için UNIQUE kısıtlamasının kullanılmasını önerir. Ancak, kötü tasarlanmış bir veritabanıyla veya temiz olmayan verilerle çalışırken kopyaları kendiniz bulmanız ve bunları manuel olarak silmeniz gerekebilir.

Bir SQL veritabanında yinelenenleri nasıl bulacağınızı ve bunları nasıl sileceğinizi öğrenmek için okumaya devam edin.

Örnek Veritabanı Oluşturun

Gösterim amacıyla, bu SQL sorgusunu çalıştırarak Kullanıcılar adlı bir ada ve puan sütununa sahip bir tablo oluşturun.

DÜŞÜRMEKMASAEĞERVARKullanıcılar;

YARATMAKMASAKullanıcılar (
pk_id int BİRİNCİL ANAHTAR,
isim VARCHAR (16),
INT puanı,
);

Bu sorguyu çalıştırarak bazı örnek değerler ekleyin:

SOKMAKİÇİNE
Kullanıcılar (pk_id, ad, puan)
DEĞERLER
(1, 'Jane', 20),
(2, 'John', 13),
(3, "Alex", 32),
(4, 'John', 46),
(5, 'Jane', 20),
(6, 'Mary', 34),
(7, 'Jane', 20),
(8, 'John', 13)
instagram viewer

Bu satırlardan bazılarının ad sütunu için yinelenen değerler içerdiğini unutmayın.

Bunları kontrol etmekten çekinmeyin SQL komutları ve sorguları SQL kullanarak veritabanlarını nasıl değiştireceğinize dair daha ayrıntılı bir açıklamaya ihtiyacınız varsa.

Yinelenen Değerleri Bulmak için GROUP BY Kullanma

Yapabilirsiniz değerleri düzenlemek için GROUP BY deyimini kullanın aynı grup içinde belirli koşulları sağlayan.

Örnek tablodaki isimlerin benzersiz olması gerektiğini varsayalım. Aynı adı paylaşan satırları gruplandırmak için GROUP BY'ı kullanabilirsiniz.

SEÇMEisim, SAYMAK(isim)
KULLANICILARDAN
ada göre gruplandır
COUNT(isim) > 1 HAVING

COUNT, aynı ada sahip birden fazla kullanıcısı olan satırları seçmenizi sağlar.

Bu sorguyu çalıştırdığınızda, veritabanı yinelenenler olarak John ve Jane'i içeren satırları döndürür.

Bir Veritabanından Kopyaları Silme

Yinelenenleri bulduktan sonra DELETE deyimini kullanarak bunları silmek isteyebilirsiniz.

Bu örnek için aşağıdaki sorguyu çalıştırın:

İLE cte GİBİ (
SEÇME *
ROW_NUMBER() ÜZERİNDEN (
TARAFINDAN BÖLÜNME
isim, puan
TARAFINDAN SİPARİŞ
isim, puan
) R
İTİBAREN
Kullanıcılar
)

SİLMEKİTİBAREN cte
NEREDE R > 1;

Bu sorgu, yinelenenleri bulmak için bir CTE ifadesi kullanır ve biri dışında hepsini siler.

Yinelenen Verileri Neden Silmelisiniz?

Yinelenen verileri silmek bir zorunluluk değildir. Ancak yinelenen satırların kullandığı alanı boşaltmanıza olanak tanır.

Daha az satır aynı zamanda sorguların çok daha hızlı yürütülerek daha yüksek performansa yol açabileceği anlamına gelir. Bir SQL veritabanındaki yinelenenleri bulmanıza ve kaldırmanıza yardımcı olması için bu öğreticideki sorguları kullanın.