PostgreSQL Seç, Ekle, Güncelle ve Sil Örneğiyle Mevcuttur
Neler Var? PostgreSQL?
The PostgreSQL VAR operatörü bir alt sorguda satır(lar)ın mevcut olup olmadığını test eder. Bu, operatörün bir alt sorguyla birlikte kullanıldığı anlamına gelir. Alt sorguda en az bir satır bulunduğunda Exists operatörünün karşılandığı söylenir. Bu işlemi SELECT, UPDATE, INSERT ve DELETE ifadeleriyle birlikte kullanabilirsiniz.
Postgres Sorgu Söz Dizimi Mevcuttur
İşte sözdizimi PostgreSQL EXISTS beyanı:
WHERE EXISTS (subquery);
Yukarıdaki sözdizimi, EXISTS operatörünün bir alt sorgu olan bir bağımsız değişkeni aldığını gösterir. Alt sorgu yalnızca bir SELECT ifadesi bu, sütun adları veya ifadelerin listesi yerine SELECT * ile başlamalıdır.
PostgreSQL SELECT İfadesiyle birlikte bulunur
EXISTS operatörüyle SELECT ifadesinin nasıl kullanılacağını görelim. Aşağıdaki tablolarımız var:
Kitap:
Fiyat:
Aşağıdaki ifadeyi çalıştırın:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Bu, aşağıdakileri döndürür:
Yukarıdaki komut, Kitap tablosundaki kimliği alt sorguya göre herhangi bir kaydın kimliğiyle eşleşen tüm kayıtları döndürmelidir. Yalnızca bir kimlik eşleştirildi. Bu nedenle yalnızca bir kayıt döndürüldü.
PostgreSQL INSERT İfadesi ile mevcuttur
EXISTS operatörünü şu şekilde kullanabiliriz: INSERT beyanıAşağıdaki 3 tablomuz var:
Kitap:
Fiyat:
Fiyat2:
Daha sonra şu ifadeyi çalıştırabiliriz:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Fiyat tablosu şu an şu şekilde:
Price5 adlı tablodaki id'si 2 olan satır eşleştirildi. Bu kayıt daha sonra Fiyat tablosuna eklendi.
Postgres, UPDATE İfadesiyle Vardır
EXISTS operatörünü UPDATE deyiminde kullanabiliriz.
Aşağıdaki sorguyu çalıştırın:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
Fiyat tablosunun fiyat sütununu güncelliyoruz. Amacımız aynı kimliği paylaşan öğelerin fiyatlarının aynı olmasını sağlamaktır. Yalnızca bir satır eşleşti, yani 5.
Ancak fiyatlar eşit yani 205 olduğundan güncelleme yapılmadı. Eğer farklılık olsaydı güncelleme yapılırdı.
Postgres, DELETE İfadesiyle Vardır
A PostgreSQL DELETE ifadesi EXISTS operatörünü kullanabilir. İşte bir örnek:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Fiyat tablosu şu an şu şekilde:
Kimliği 5 olan satır silindi.
PostgreSQL pgAdmin kullanarak Exist Beyanı
Şimdi bu eylemlerin pgAdmin kullanılarak nasıl gerçekleştirilebileceğini görelim:
Exists Sorgusu Nasıl Kullanılır? PostgreSQL pgAdmin kullanarak SELECT İfadesi ile
Aşağıda Exists sorgusunu kullanma adımları verilmiştir. PostgreSQL pgAdmin kullanarak SELECT ifadesiyle:
Adım 1) pgAdmin hesabınıza giriş yapın
PgAdmin'i açın ve kimlik bilgilerinizi kullanarak hesabınıza giriş yapın
Adım 2) Demo Veritabanı Oluşturun
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
Adım 3) Sorguyu Yazın
Sorgu düzenleyicisine aşağıdaki sorguyu yazın:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Adım 4) Sorguyu Yürütün
Yürüt düğmesine tıklayın
Aşağıdaki sonucu döndürmesi gerekir:
INSERT Deyimi ile
Aynısını pgAdmin aracılığıyla gerçekleştirmek için şunu yapın:
) 1 Adım pgAdmin hesabınıza giriş yapın.
) 2 Adım
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
) 3 Adım Sorgu düzenleyicisine sorguyu yazın:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
) 4 Adım Yürüt düğmesine tıklayın.
Fiyat tablosu artık aşağıdaki gibi olmalıdır:
GÜNCELLEME Bildirimi ile
Aynısını pgAdmin aracılığıyla gerçekleştirmek için şunu yapın:
) 1 Adım pgAdmin hesabınıza giriş yapın.
) 2 Adım
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
) 3 Adım Sorgu düzenleyicisine sorguyu yazın:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
) 4 Adım Yürüt düğmesine tıklayın.
Fiyat tablosu artık aşağıdaki gibi olmalıdır:
DELETE İfadesi ile
Aynısını pgAdmin aracılığıyla gerçekleştirmek için şunu yapın:
) 1 Adım pgAdmin hesabınıza giriş yapın.
) 2 Adım
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
) 3 Adım Sorgu düzenleyicisine sorguyu yazın:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
) 4 Adım Yürüt düğmesine tıklayın.
Fiyat tablosu artık aşağıdaki gibi olmalıdır:
ÖZET
- EXISTS operatörü, bir alt sorguda satır(lar)ın mevcut olup olmadığını test eder.
- Bir alt sorguyla birlikte kullanılır ve alt sorgu en az bir satır döndürdüğünde karşılandığı söylenir.
- SELECT, UPDATE, INSERT ve DELETE ifadeleriyle birlikte kullanılır.
Bu Eğitimde kullanılan Veritabanını İndirin