Ana içeriğe geç
Kesit SQL
İleri · Sertifika Hazırlık

1Z0-071: DML ve işlem kontrolü (INSERT/UPDATE/DELETE, COMMIT, SAVEPOINT, TRUNCATE)

Alt sorgulu DML, okuma tutarlılığı, örtük commit, SAVEPOINT ve FOR UPDATE.

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ç.

Alt sorgulu DML

-- Alt sorgudan çoklu satır ekleme (VALUES yazılmaz)
INSERT INTO urun_arsiv (product_id, name, price)
SELECT product_id, name, price FROM products WHERE stock = 0;

-- İlişkili alt sorguyla güncelleme
UPDATE employees e
SET salary = (SELECT ROUND(AVG(x.salary)) FROM employees x WHERE x.dept_id = e.dept_id)
WHERE e.salary IS NULL;

-- Alt sorguyla silme
DELETE FROM order_items
WHERE order_id IN (SELECT order_id FROM orders WHERE status = 'cancelled');

-- Alt sorgu hedef olarak (inline view)
UPDATE (SELECT price FROM products WHERE category = 'Kitap') SET price = price * 1.1;

DELETE, TRUNCATE ve DROP

DELETETRUNCATEDROP
TürDMLDDLDDL
WHEREVarYok (tümü)—
Geri alınabilir mi?Evet (ROLLBACK)Hayır (örtük COMMIT)Hayır (geri dönüşüm kutusundan FLASHBACK)
TriggerÇalışırÇalışmaz—
YapıKalırKalır, alan serbest kalırTablo silinir

İşlem kontrolü (TCL)

UPDATE accounts SET balance = balance - 100 WHERE id = 1;
SAVEPOINT once_borc;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
ROLLBACK TO SAVEPOINT once_borc;   -- yalnızca ikinci UPDATE geri alınır
COMMIT;                            -- birinci UPDATE kalıcı olur
Alıştırmalara geç (9)