Ana içeriğe geç
Kesit SQL
Temel · Veri Değiştirme

INSERT, UPDATE, DELETE

Tabloya satır eklemek, satırları güncellemek ve silmek; WHERE'siz UPDATE felaketinden korunmak.

Uygulamada aç, 9 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

INSERT: veri eklemek

INSERT INTO departments (dept_id, name, city)
VALUES (8, 'Lojistik', 'Kocaeli');

INSERT INTO departments (dept_id, name, city)
VALUES (9, 'Müşteri Hizmetleri', 'Ankara'),
       (10, 'Ar-Ge', 'İzmir');

SELECT * FROM departments;

Sütun listesini her zaman yaz; tabloya ileride sütun eklenirse sorgun bozulmaz. Sorgu sonucundan da ekleyebilirsin: INSERT INTO t (a, b) SELECT x, y FROM .... Mesajlar bölümünde kaç satırın etkilendiğini görürsün.

UPDATE: güncellemek

UPDATE products
SET price = ROUND(price * 1.10, 0), stock = stock - 1
WHERE category = 'Kitap';
SELECT name, price, stock FROM products WHERE category = 'Kitap';

DELETE: silmek

DELETE FROM orders WHERE status = 'cancelled' AND order_date < '2023-01-01';
SELECT COUNT(*) AS kalan_iptal FROM orders WHERE status = 'cancelled';
WHERE'siz UPDATE / DELETEUPDATE employees SET salary = 0; tüm çalışanların maaşını sıfırlar. Gerçek sistemlerde değiştirmeden önce aynı WHERE ile bir SELECT çalıştırıp etkilenecek satırları gör, işlemi transaction içinde yap.
Bu uygulamadaDers alıştırmaları her denemede veritabanının temiz bir kopyası üzerinde çalışır. Rahatça silip güncelleyebilirsin.

Derinleş: güvenli değişiklik alışkanlıkları

  1. Önce aynı WHERE ile SELECT çalıştır, kaç satırın etkileneceğini gör.
  2. Değişikliği bir işlem (transaction) içinde yap; sonucu kontrol edip COMMIT veya ROLLBACK de.
  3. Toplu silmede önce yedek tablo oluştur: CREATE TABLE yedek AS SELECT ....
  4. UPDATE'te başka bir tablodan değer alırken birden çok eşleşme olmadığından emin ol.
SELECT COUNT(*) AS etkilenecek
FROM lk_orders
WHERE status = 'teslim' AND tip = 0 AND placed_at >= '2024-12-01';
Alıştırmalara geç (9)