PostgreSQL EXISTS with SELECT Operator (Örnek)
⚡ Akıllı Özet
PostgreSQL EXISTS, ilişkili bir alt sorgunun herhangi bir satır döndürüp döndürmediğini test eden bir Boolean operatörüdür ve SELECT, INSERT, UPDATE ve DELETE ifadelerinin eşleşen kayıtların varlığına veya yokluğuna göre verileri verimli bir şekilde filtrelemesini sağlar.
Var olan nedir? PostgreSQL?
MKS PostgreSQL VAR `EXISTS` operatörü, bir alt sorguda bir veya daha fazla satırın 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 doğrulandığı söylenir. Bu işlemi `SELECT`, `UPDATE`, `INSERT` ve `DELETE` ifadeleriyle birlikte kullanabilirsiniz.
PostgreSQL EXISTS Sorgu Sözdizimi
İş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 ifadesiyle EXISTS
Şimdi EXISTS operatörüyle birlikte SELECT sorgusunun nasıl kullanılacağına bakalım. 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 ifadesiyle EXISTS
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.
PostgreSQL GÜNCELLEME Bildirimi ile MEVCUT
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ı.
PostgreSQL EXISTS with DELETE Deyimi
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 EXISTS ifadesi
SQL kabuğunun ötesinde, aynı EXISTS sorguları pgAdmin arayüzü üzerinden görsel olarak da yürütülebilir. Şimdi bu işlemlerin pgAdmin kullanılarak nasıl gerçekleştirilebileceğine bakalım:
SELECT ifadesiyle
Aşağıda EXISTS sorgusunu kullanmanın adımları verilmiştir. PostgreSQL pgAdmin kullanarak bir SELECT sorgusuyla:
) 1 Adım pgAdmin hesabınıza giriş yapın. pgAdmin'i açın ve kimlik bilgilerinizle hesabınıza giriş yapın.
) 2 Adım Bir demo veritabanı oluşturun.
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
) 3 Adım Sorgu düzenleyicisine aşağıdaki sorguyu yazın:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
) 4 Adım 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:
Bu Eğitimde kullanılan Veritabanını İndirin






















