T-SQL DML Insert Komutu

SQL Server’da INSERT komutu, veritabanı tablolarına yeni kayıtlar eklemek için kullanılan temel bir DML (Data Manipulation Language) komutudur. Bu makalede, INSERT komutunun tüm detaylarını ve farklı kullanım örneklerini inceleyeceğiz.

Temel Insert Komutu:

INSERT INTO TableName (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

Belirtilen sütünların veri türüne göre yeni değerler insert yapılmaktadır. Örneğin sayısal bir tür ise sayısal ifadelerin, metinsel tür ise metinsel ifadelerin girilmesi gerekmektedir. INTO kullanılmazsada olmaktadır.

Aşağıdaki komutumuzla tablomuza insert işlemi gerçekleştiririz. CustomerID otomatik artan identity olmuş olsaydı manuel değer insert edemezdik.

INSERT INTO Musteriler (CustomerID, Name, Surname, Email, Phone)
VALUES (1, 'Yunus', 'Yücel', 'yunus@example.com', '5551234567');

Bazı sütünları belirtmeden veri ekleme işlemi yapılmaktadır. Veri eklenecek sütünün NULL olabilir ifadesinin olması gerekmektedir. Insert işlemi başarılı bir şekilde gerçekleşir. Musteriler tablosunda belirtilmeyen kolonlar NULL değeri ile doldurulur. Kolon türünün NOT NULL olması insert ederken hata almamıza sebebiyet verecektir. Sadece NOT NULL kolonların belirtirsek diğer değerler belirtilmezsede olur.

INSERT  Musteriler (CustomerID, Name, Surname, Email)
VALUES (1, 'Yunus', 'Yücel', 'yunus@example.com');

Sütun sırasını biliyorsanız ve tüm sütunlara değer veriyorsanız sütun listesini atlayabilirsiniz. Bu yöntemde değerlerin tablo tanımındaki sütun sırasıyla tam olarak eşleşmesi gerekir.

INSERT Musteriler
VALUES (2, 'Yunus', 'Yücel', 'yunus@example.com', '5551234567');

Tek komutla çoklu kayıt eklenebilir.

INSERT INTO Kullanicilar (KullaniciID, AdSoyad) VALUES
(1, 'Ali Yılmaz'),
(2, 'Ayşe Demir'),
(3, 'Mehmet Kaya'),
(4, 'Fatma Çelik'),
(5, 'Caner Aydın');

Başka bir tablodan veya sorgudan kendi tablomuza veri ekleme işlemi yapabiliriz. YeniMusteriler tablosundan Musteriler tablosuna veri aktarma işlemi yapabiliriz.

INSERT Musteriler (MusteriID, Ad, Soyad, Email)
SELECT MusteriID, Ad, Soyad, Email FROM YeniMusteriler
WHERE OnayDurumu = 1;

Top komutu ile sınırlı sayıda kayıt tablomuza ekleyebiliriz. Select sorgusundaki kolon sayısı kadar Into komutundaki tabloda da o kadar kolon olması gerekmektedir. Belirtilen şarttan büyük olan ifadeleri getirmektedir.

INSERT TOP (2) INTO Musteriler (MusteriID, Ad, Soyad, Email)
SELECT MusteriID, Ad, Soyad, Email FROM GeciciMusteriler
WHERE KayitTarihi > '2023-01-01';

IDENTITY  olan kolonumuza manuel değer insert etmek için aşağıdaki komutlar kullanılmaktadır. Normal yapımızda identity olan kolonumuza manuel değer insert edilmez.

-- IDENTITY_INSERT özelliğini açma
SET IDENTITY_INSERT Musteriler ON;

INSERT Musteriler (MusteriID, Ad, Soyad, Email)
VALUES (100, 'Özel', 'Kullanıcı', 'ozel@example.com');

-- IDENTITY_INSERT özelliğini kapatma
SET IDENTITY_INSERT Musteriler OFF;

Farklı bir veritabanındaki tabloya veri eklemek için aşağıdaki komut kullanılmaktadır.

INSERT INTO OtherDatabase.dbo.Musteriler (Ad, Soyad)
SELECT Ad, Soyad FROM MevcutMusteriler;

Select sorgusundan dönen değeri aynı veritabanın da farklı bir tabloya kaydetme kolonların aynı olması gerekmektedir.

INSERT  MusterilerYeni
SELECT Ad, Soyad FROM MevcutMusteriler;

Select sorgusu sonucu dönen kayıtları farklı bir tabloya eklemek için aşağıdaki komut kullanılmaktadır. Bu yöntemle primary key foreign key oluşturamazlar.

SELECT Ad,Soyad INTO YeniTablo From GercekTablo

OPENQUERY ile uzak sunucuya veri ekleme işlemi yapılmaktadır.

INSERT OPENQUERY(LINKED_SERVER, 'SELECT Ad, Soyad FROM RemoteDB.dbo.Musteriler')
VALUES ('Uzak', 'Kullanıcı');

Tablomuzdaki verileri bir değişkene atmak istersek aşağıdaki yöntem kullanılmaktadır.

 select * into #temp from [AdventureWorks2012].[dbo].[Table_1]

Sorgularımızı optimize ederken order by ifadesinden önce veriler geçici tablolara atıldıktan sonra bu tablo üzerinde order by işlemi yapılmaktadır.

Bu makalede insert komutunu detaylı bir şekilde görmüş olduk. Başka makalede görüşmek dileğiyle..

“De ki: ‘Sizinle benim aramda şahit olarak Allah yeter. Çünkü O, kullarından hakkıyla haberdardır, onları hakkıyla görendir.’ “ İsra Suresi; 96. Ayet

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir