Ana içeriğe geç
Modül 8 · Ders 1 ders 4Kurstaki 29/57~10 min
Modül dersleri (1/4)

Veri ekleme: INSERT

Şu ana kadar verileri okudunuz. Biraz yazmanın zamanı geldi. INSERT: Tabloya yeni satırlar ekleyen komut.

Temel sözdizimi

SQL
INSERT INTO tabella (col1, col2, …)
VALUES (val1, val2, …);

Veri kümemizdeki örnek:

SQL
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Marco', 'Bianchi', 'marco.bianchi@example.com', 'Verona', 'Italia', '2025-07-15');

Sütunları adlandırmak önerilen uygulamadır: sorguyu yapar Gelecekteki şema değişikliklerine karşı dayanıklı (örneğin yeni bir isteğe bağlı phone sütunu) hiçbir şeyi bozmaz) ve kendi kendini belgeleme.

Çok sıralı INSERT

Tek bir ifade, birden çok satır — N ayrı INSERTs'den çok daha hızlı:

SQL
INSERT INTO categories (name, parent_id) VALUES
  ('Gaming',         1),
  ('Smart Home',     1),
  ('Cucina vegana',  8);

GERİ DÖNÜŞ: az önce eklediğiniz değerleri okuma

PostgreSQL'in bir özelliği: RETURNING aşağıdaki satırları döndürür: yeni yaratıldılar. Otomatik olarak oluşturulan id'yi almak için son derece kullanışlıdır:

SQL
INSERT INTO categories (name, parent_id)
VALUES ('Gaming', 1)
RETURNING id, name;

Çıktı, id (SERIAL tarafından atanan) içeren tek satırlı bir tablodur ve name.

Bir sütun eksikse ne olur?

INSERT'de bir sütunu atlarsanız:

  • eğer NOT NULL DEFAULT olmadan → hata ise;
  • eğer bir DEFAULT varsa (kimlik için SERIAL dahil) → kullanılan;
  • NULL kabul ederse → NULL olur.
SQL
-- Va bene: id è SERIAL (auto), country ha NOT NULL ma forniamo tutti i campi
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Olivia', 'Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');

-- Errore: first_name è NOT NULL e non è fornito
INSERT INTO customers (last_name, email, city, country, signed_up_on)
VALUES ('Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');

Sıra sende

Egzersiz#sql.m8.l1.e1
Denemeler: 0Yükleniyor…

Müşteriler tablosuna, adı 'Marco', soyadı 'Bianchi', e-postası 'marco.bianchi@example.com', şehri 'Verona', ülkesi 'Italia' ve Signed_up_on '2025-07-15' olan yeni bir müşteri ekleyin. Tüm sütunları açıkça adlandırın.

Düzenleyici yükleniyor…
İpucu göster

VALUES içindeki değerlerin sırası, adlandırdığınız sütunların sırası ile eşleşmelidir.

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#sql.m8.l1.e2
Denemeler: 0Yükleniyor…

'Elettronica'nın alt öğesi olarak yeni bir 'Oyun' kategorisi ekleyin (id = 1). Yeni oluşturulan kategorinin kimliğini ve adını döndürmek için RETURNING yan tümcesini kullanın.

Düzenleyici yükleniyor…
İpucu göster

RETURNING, tıpkı SELECT gibi bir sütun listesini (veya '*') kabul eder.

3 denemeden sonra çözüm mevcut