Bu eğitimde, MySQL REPLACE deyiminin nasıl kullanılacağını öğreneceksiniz.
MySQL REPLACE deyimi, standart SQL için bir MySQL eklentisidir. MySQL REPLACE deyimi aşağıdaki şekilde çalışır:
- Yeni satır zaten mevcut değilse, MySQL REPLACE deyimi yeni bir satır ekler.
- Yeni satır zaten mevcutsa, REPLACE ifadesi ilk önce eski satırı siler ve sonra yeni bir satır ekler. Bazı durumlarda, REPLACE deyimi yalnızca varolan satırı güncelleştirir.
MySQL, yeni satırın zaten tabloda olduğunu belirlemek için PRIMARY KEY veya UNIQUE KEY dizinini kullanır. Tablo bu dizinlerden birine sahip değilse, REPLACE ifadesi INSERT ifadesine eşdeğerdir.
MySQL REPLACE deyimini kullanmak için INSERT ve DELETE ayrıcalıklarına sahip olmanız gerekir.
Buradaki REPLACE ifadesinin yanında bir de REPLACE fonksiyonu mevcuttur. Bu iki kavram isim benzerliği dışında her hangi bir benzerliği yoktur. REPLACE ifadesi tablolardaki alanlar üzerinde kullanılırken, REPLACE fonksiyonu ise string veriler üzerinde kullanılmaktadır.
REPLACE deyimini kullanma örneğine bir göz atalım.
MySQL REPLACE İfadesi Örnekleri
Öncelikle kişiler tablosunu aşağıdaki gibi oluşturalım.
1 2 3 4 5 6 7 8 |
CREATE TABLE kisiler ( id INT AUTO_INCREMENT PRIMARY KEY, isim VARCHAR(50) NOT NULL, soyisim VARCHAR(50), dtarih DATE ); |
Sonra üzerine aşağıdaki gibi biraz veri girişi yapalım.
1 2 3 4 5 6 |
INSERT INTO kisiler(isim,soyisim,dtarih) VALUES('Hayri','KOÇ','1983-06-10'), ('Ahmet','CAN','1981-07-20'), ('Yeşim','BAKAN','1985-11-15'); |
Artık içinde 3 tane verisi olan kişiler tablosuna sahibiz.
Şimdi kişiler tablosundaki Ahmet CAN isimli kişinin doğum tarihini güncelleyelim. (Ahmet CAN id değeri 2)
1 2 3 4 5 6 7 |
UPDATE kisiler SET dtarih = '1979-07-25' WHERE id = 2; |
UPDATE deyimi verileri beklendiği gibi güncelleştirir.
Şimdi aynı aynı işlemi REPLACE ifadesi kullanarak yapalım. Yukarıdaki açıklamaları unutmayın. Yoksa oluşturur varsa eskisini silip yeniden oluşturur.
1 2 3 4 |
REPLACE INTO kisiler(id,isim,soyisim) VALUES(2,'Ahmet','CAN'); |
Doğum tarihini her hangi bir veri girişi olmadığı için sonuç aşağıdaki gibi olacaktır.
Aşağıdaki sorguyu çalıştırdığımızda birincil anahtar ile eşleşen her hangi bir kayıt olmadığı içinde bu satırı ekleyecektir.
1 2 3 4 |
REPLACE INTO kisiler(isim,soyisim,dtarih) VALUES('Mert','GÜZELYURT','1995-10-20') |
Diğer REPLACE Kullanımları
REPLACE ifadesinin ikinci şekli UPDATE ifadesine benzer şekilde kullanımıdır. Aşağıdaki gibi de kullanabilirsiniz:
1 2 3 4 5 |
REPLACE INTO tabloadi SET sutun1= deger1, sutun2= deger2; |
Ancak burada dikkat edilmesi gereken husus şudur. UPDATE ifadesinde bulunan WHERE yan tümcesi, REPLACE içinde mevcut değildir.
REPLACE ifadesinin diğer bir kullanım şeklide REPLACE INTO SELECT şeklidir. REPLACE ifadesinin üçüncü şekli INSERT INTO SELECT ifadesine benzer:
1 2 3 4 5 6 |
REPLACE INTO tabloadi(sutunlar) SELECT sutunlar FROM tabloadi2 WHERE şart; |
Bu eğitimde, tablolara veri eklemek veya güncellemek için REPLACE deyimini öğreneceksiniz.
1 Yorum