SQL Dilinde `INSERT INTO` Komutunun Detaylı Kullanımı
Veritabanı yönetim sistemlerinde, tablolara yeni veri satırları eklemek temel bir işlemdir. SQL dilinde bu amaçla kullanılan anahtar komut INSERT INTO ifadesidir. Bu komut, bir tablonun belirli sütunlarına veya tüm sütunlarına tek bir satır veri eklemekten, başka bir sorgunun sonucunu kullanarak birden fazla satır eklemeye kadar geniş bir kullanım yelpazesine sahiptir. Bu makale, INSERT INTO komutunun sözdizimini, detaylı açıklamalarını ve pratik örneklerini sunarak veritabanı manipülasyonu yeteneklerinizi geliştirmeyi amaçlamaktadır.
Sözdizimi
INSERT INTO komutu, temelde iki farklı şekilde kullanılabilir. Birincisi, belirli sütunlara değer atamak için kullanılırken, ikincisi tablonun tüm sütunlarına değer atamak için kullanılır.
-- Belirli sütunlara veri ekleme
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
-- Tablonun tüm sütunlarına veri ekleme (sütun sırasına dikkat edilmeli)
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
-- Başka bir tablodan veri kopyalama
INSERT INTO table_name (column1, column2, ...)
SELECT column_a, column_b, ...
FROM source_table
WHERE condition;Detaylı Açıklama
Yukarıda belirtilen sözdizimindeki her bir bileşenin işlevi aşağıda açıklanmıştır:
- 
        
INSERT INTO: Bu anahtar kelime dizisi, bir tabloya yeni bir satır ekleme işlemini başlattığını belirtir. - 
        
table_name: Verinin ekleneceği hedef tablonun adını temsil eder. Bu, mevcut bir tablonun adı olmalıdır. - 
        
(column1, column2, ...): Bu parantez içindeki liste, verinin ekleneceği belirli sütunların adlarını içerir. Bu kısım isteğe bağlıdır. Eğer belirtilmezse,VALUESlistesindeki değerlerin tablonun tüm sütunlarına, tanımlandıkları sıraya göre atanacağı varsayılır. Sütun adlarını belirtmek, hem okunabilirliği artırır hem de sütun sırasındaki olası değişikliklerden kaynaklanabilecek hataları önler. - 
        
VALUES: Bu anahtar kelime, eklenecek değerlerin listesinin başlangıcını işaret eder. - 
        
(value1, value2, ...): Bu parantez içindeki liste,(column1, column2, ...)listesindeki sütunlara veya eğer sütun listesi belirtilmediyse tablonun tüm sütunlarına atanacak değerleri içerir. Hervalue, karşılık gelencolumn'un veri tipiyle uyumlu olmalıdır. - 
        
SELECT column_a, column_b, ... FROM source_table WHERE condition: Bu yapı, başka bir tablodan veri seçerek hedef tabloya eklemek için kullanılır. Bu, birden fazla satırı aynı anda eklemek için oldukça güçlü bir yöntemdir. 
Pratik Kullanım Örnekleri
INSERT INTO komutunun farklı senaryolarda nasıl kullanıldığını gösteren pratik örnekler aşağıda sunulmuştur.
Örnek 1: Belirli Sütunlara Veri Ekleme
Aşağıdaki örnek, Musteriler adlı bir tabloya yalnızca Ad, Soyad ve Email sütunlarına veri eklemeyi göstermektedir. Diğer sütunlar varsayılan değerlerini alacak veya NULL olarak ayarlanacaktır (eğer izin veriliyorsa).
INSERT INTO Musteriler (Ad, Soyad, Email)
VALUES ('Ayşe', 'Yılmaz', 'ayse.yilmaz@example.com');Bu komut, Musteriler tablosuna yeni bir müşteri kaydı ekler. Sadece belirtilen sütunlar için değerler sağlanmıştır.
Örnek 2: Tüm Sütunlara Veri Ekleme (Sütun Adı Belirtmeden)
Eğer tablonun tüm sütunlarına, tanımlandıkları sıraya göre veri ekleniyorsa, sütun adlarını belirtmek zorunlu değildir. Ancak, bu yöntemde değerlerin sırası ve sayısı tablo yapısıyla tam olarak eşleşmelidir.
-- Varsayalım ki Urunler tablosunun sütunları sırasıyla:
-- UrunID (otomatik artan), UrunAdi, Fiyat, StokAdedi, KategoriID
INSERT INTO Urunler
VALUES (DEFAULT, 'Akıllı Telefon', 7500.00, 150, 1);Bu örnekte, UrunID sütunu otomatik artan bir alan olduğundan DEFAULT anahtar kelimesi kullanılmıştır. Diğer sütunlar için ise doğrudan değerler belirtilmiştir.
Örnek 3: Başka Bir Tablodan Veri Kopyalama
INSERT INTO ... SELECT ifadesi, bir veya daha fazla satırı başka bir tablodan seçip mevcut tabloya eklemek için kullanılır. Bu, toplu veri aktarımı için idealdir.
INSERT INTO ArsivMusteriler (MusteriID, Ad, Soyad, KayitTarihi)
SELECT ID, Isim, Soyisim, KayitTarihi
FROM Musteriler
WHERE KayitTarihi < '2020-01-01';Yukarıdaki komut, Musteriler tablosundaki 1 Ocak 2020'den önce kaydedilmiş tüm müşterileri seçerek, bu verileri ArsivMusteriler tablosuna aktarır. SELECT sorgusundaki sütunlar ve INSERT INTO ifadesindeki sütunlar veri tipi ve sıra olarak uyumlu olmalıdır.
Önemli Notlar
INSERT INTO komutunu kullanırken dikkat edilmesi gereken bazı önemli noktalar şunlardır:
- 
        
Veri Tipi Uyumluluğu: Eklenecek değerlerin, atandıkları sütunların tanımlanmış veri tipleriyle uyumlu olması esastır. Aksi takdirde, veritabanı bir hata döndürebilir.
 - 
        
NULLDeğerler: Bir sütununNULLdeğer kabul etmesi durumunda, o sütun için açıkçaNULLdeğeri atanabilir veya sütun adıINSERT INTO (column1, ...)listesinde belirtilmezse otomatik olarakNULLatanır (eğer sütunun varsayılan değeri yoksa). - 
        
Otomatik Artan Alanlar (
IDENTITY/AUTO_INCREMENT): Çoğu veritabanı sisteminde, otomatik artan (örneğin,PRIMARY KEYolanID) sütunlar için genellikle manuel olarak değer belirtmeye gerek yoktur. Bu tür sütunlar içinDEFAULTanahtar kelimesini kullanabilir veya basitçe sütun listesinden çıkarabilirsiniz. - 
        
Sütun Sırası: Sütun adları belirtildiğinde,
VALUESlistesindeki değerlerin sırası bu adlara uymalıdır. Sütun adları belirtilmediğinde ise, değerlerin sırası tablonun fiziksel sütun sırasına tam olarak uymalıdır. - 
        
Tırnak İşaretleri: Metinsel (
VARCHAR,TEXT) ve tarih/saat (DATE,DATETIME) değerleri tek tırnak (') içine alınmalıdır. Sayısal değerler (INT,DECIMAL, vb.) tırnak içine alınmaz. - 
        
Kısıtlamalar ve Hata Yönetimi: Tablolara tanımlanmış
PRIMARY KEY,UNIQUE,CHECKveyaFOREIGN KEYgibi kısıtlamalar, ekleme işlemi sırasında ihlal edilirse veritabanı bir hata döndürecektir. Bu durumlar, uygun hata yönetimi stratejileriyle ele alınmalıdır. 
        
                
            
            
Yorum yap
Yorumlar