Yandex Metrica
SQL'de Aynı Tablo İçerisindeki Verileri Yeniden Ekleme - Yasin Sunmaz

Yasin Sunmaz

Kodladıkça değişen bir dünya...

SQL'de Aynı Tablo İçerisindeki Verileri Yeniden Ekleme

16.02.2022 yasinsunmaz 3318 0

Bazı durumlarda tablolarımız içerisindeki verileri çoğaltamamız gerekebiliyor. Bunu normal INSERT işlemi ile de yapabiliriz. Bunun yanında WHILE döngüsü ile de yeni kayıtlar oluşturabiliriz. Fakat elimizde hazır veriler varken direk bunlar üzerinden işlem yapıp yeni kayıtlar eklemek mümkün. Örnek vermek gerekirse: Kullanıcılara ait rollerin olduğu bir tabloda siz yine bu kullanıcılara başka rol vermek istediğinizde bu yöntem ile basit bir sorgu iler aynı kullanıcıları sadece rol değerini değiştirerek ekleyebileceksiniz. Bu yazdığım sorguları Nortwind veri tabanı üzerinden yaptım. Veri tabanını indirmek için buraya tıklayabilirsiniz. Veri tabanını SQL Server üzerinden açıp script kodunu çalıştırabilirsiniz. SQL Server'da script dosyasını nasıl çalıştırılır bilmiyorsanız SQL Server Script Alma ve Çalıştırma adlı yazılımı inceleyebilirsiniz.

Mevcut Ürünler Tablosu

Biz bu tabloda kategori ID değeri 1 olanları yine aynı tablo içerisine ekleyeceğiz. Ama ekleme yaparken bazı değişlikler yapacağız.

SELECT * FROM Products

Ürünler Tablosu 1

Sorguyu Yazma ve Çalıştırma

Sorguyu normal insert işlemi yapar gibi yazıyoruz. Fakat "Values" alanı yerine SELECT komutu ile yine tablo için kullanacağımız alanları belirliyoruz. Aslında aynı tablo alanlarını buraya yazıyoruz. Siz bu çoğaltacağınız verilerin bazı yerlerini değiştirmek istiyorsanız oraya tablo alanı yerine istediğiniz veriyi yazıyorsunuz. Veri tiplerine dikkate alarak yazmayı unutmayın. Ben bu örnekte CategoryID=1, QuantityPerUnit=1 Yeni Ürün ve UnitPrice=13 olarak yaptım. Yani diğer alanlar aynısı olsun fakat bu 3 alan için benim bu istediğim veriler tabloya kayıt edilsin şeklinde bir tanımlama yaptım. Son olarak koşul olarak CategoryID=1 dedim.

Sorgunun Türkçe Meali:

CategoryID değeri 1 olan kayıtları al sonra bu kayıtları eklerken CategoryID "1" olsun, QuantityPerUnit alanı "1 Yeni Ürün" olsun ve UnitPrice alanı da "13" olsun demiş olduk. Sorguyu çalıştırdığınızda bu kurala uygun olarak yeni kayıtların oluştuğunu göreceksiniz.

INSERT INTO dbo.Products(ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued)
  SELECT ProductName, SupplierID, 1, '1 Yeni Ürün', 13, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued
FROM dbo.Products
WHERE CategoryID=1

Sorgu Sonucu

Sorgu sonucunda görmüş olduğunuz gibi kategori değeri 1, ürün bilgisi 1 Yeni Ürün ve ürün fiyatı olarak ise 13 şekilde veriler eklenmiş oldu. Dikkat ederseniz bu 3 alan dışındaki veriler hep aynı. Çünkü bir SELECT ifadesinden sonra o alanları var olanlar ile aynı olsun diye tablo alanını yazdık. Değiştirmek istediklerimizi de kendi istediğimiz verileri yazdık. Bu şekilde siz de aynı tablo içerisinde verilerinizi çoğaltabilirsiniz. İstediğiniz koşula göre aynı tablo içerisinde yeni veriler eklemeniz oldukça kolay.

Ürünler Tablosu 2

Umarım faydalı olmuştur. İyi çalışmalar.

 

  • Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.

Diğer Yazılar

SQL Server Synonym Nedir ve Nasıl Kullanılır?

09.01.2026 yasinsunmaz 159 0

Bu yazımda SQL Server'da oldukça faydalı olan synonym yapısını inceleyeceğiz. Veritabanı projelerinde zamanla tablo isimleri uzar, şema yapıları deği...

SQL Server Schema Kullanımı

10.12.2025 yasinsunmaz 201 0

Bu yazımda SQL Server'da oldukça faydalı olan schema yapısını inceleyeceğiz. SQL Server’da şema yapısı özellikle orta ve büyük ö...

SQL Server'da SELECT INTO ve INSERT INTO SELECT Kullanımı

31.05.2025 yasinsunmaz 577 0

Bu yazımda, SQL Server'da oldukça sık kullanılan ve günlük veri işlemlerinde hayat kurtaran iki komutu inceleyeceğiz: SELECT INTO ve INSERT INTO SELECT. Bu ...

SQL Server'da LAG() ve LEAD() Kullanımı

23.05.2025 yasinsunmaz 563 0

Bu yazımda SQL Server'da oldukça faydalı olan LAG() ve LEAD() fonksiyonlarını inceleyeceğiz. Bu fonksiyonlar, bir satırdaki veriye bakarken, o satırın öncesindeki v...

SQL Fonksiyonları: Veritabanlarında Güçlü ve Esnek İşlemler

09.06.2023 yasinsunmaz 1501 0

SQL (Structured Query Language), veritabanı yönetim sistemlerinde verileri yönetmek, sorgulamak ve işlemek için yaygın olarak kullanılan bir dildir. SQL fonksiyonl...