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 2303 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 Fonksiyonları: Veritabanlarında Güçlü ve Esnek İşlemler

09.06.2023 yasinsunmaz 309 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...

SQL'e Dair Her Şey OneSQL'de, Ne Ararsanız Bulabileceksiniz

03.06.2023 yasinsunmaz 262 0

Veri tabanı yöneticilerinin yanında zaman zaman yazılımcıların da SQL'i aktif olarak kullanması gerekebiliyor. SQL'i belli başlı şekillder kullanıp işlemlerimizi ...

SQL Server Offset Fetch Kullanımı

06.03.2023 yasinsunmaz 669 0

Merhabalar uzun zamandır yazı yazamadım. Ülke olarak zor zamanlar geçirmekteyiz. Herkese çok geçmiş olsun diyerek kısa bir yazı ile tekrar buradayım. SQL ...

SQL Server Sequence Kullanımı

14.01.2023 yasinsunmaz 1292 0

Veritabanında yeni keşfettiğim Sequence özelliğini sizlerle paylaşmak isterim. Squence genel olarak belirli değerler arasında numeric ve sıralı sayılar üretir. ...

SQL Server OUTPUT Kullanımı Silinen Kaydın Bilgilerini Geriye Döndürme

11.01.2023 yasinsunmaz 374 0

Bu yazımda SQL Server'da OUTPUT ile DELETED komutunun yapısını inceleyeceğiz. Kayıtlar üzerinde yapılan silme işlemlerinde, kaydın bilgilerin...