PostgreSQL IN Maddesi

Postgresql In Maddesi



PostgreSQL'de kullanabileceğiniz pek çok cümle vardır. IN cümlesi bu cümlelerden biridir ve özellikle WHERE cümlesiyle birleştirildiğinde nasıl kullanılacağını anladığınızda pek çok faydası vardır. IN yan tümcesi, sorgunun nasıl yürütülmesini istediğinizi filtrelemek için esas olarak SELECT ifadesiyle birlikte çalışır. Yürütüldüğünde, IN yan tümcesi, ölçütlerle eşleşip eşleşmediğini görmek için belirtilen listeyi kontrol eder ve eşleşen değerlerin çıktısını verir.

PostgreSQL IN Maddesi ile Nasıl Çalışılacağını Anlamak

PostgreSQL'de, bir değerler listesini kontrol ederek çıktıyı filtrelemek için IN yan tümcesini WHERE yan tümcesiyle birlikte kullanırsınız ve sonuç bir Boolean değeri olur.

Kullanılacak söz dizimi şöyle:







değer IN (değer1, değer2, değer_n);

Verilen sözdizimi değeri alır ve onu değer1, değer2 ve değer_n ile karşılaştırır. Daha sonra bir eşleşme varsa bir Boole değeri döndürür. Kontrol edilecek değerlerin listesi, dizeler ve tamsayılar da dahil olmak üzere herhangi bir değişmez türde olabilir. Ayrıca SELECT ifadesi gibi bir alt sorgu da oluşturabilirsiniz.



PostgreSQL IN operatörünü kullanmanın farklı yollarını tartışalım.



1. Alt Sorguyla Çalışmak

Daha önce de belirttiğimiz gibi, kontrol edilecek değer, SELECT gibi bir sorgu ifadesini kullanarak değerleri çıkaran bir alt sorgu olabilir. Bu şekilde, belirli bir sütunun değerlerini kontrol etmek için bir tabloyu sorgulayabilirsiniz. Örneğimiz için aşağıdaki tabloyu kullanalım:





Diyelim ki “order_id”si sorgu bölümünde belirtilen değerlerden herhangi biri olabilecek tüm müşterileri kontrol etmek istiyoruz. Hedef değeri ifademizin ilk kısmı olarak ekliyoruz ve ardından sorguyu oluşturmak için WHERE yan tümcesini IN yan tümcesiyle birlikte kullanıyoruz.



Sorgumuz şu şekilde görünüyor:

PostgreSQL, 'müşteriler' tablosundaki 'order_id' sütununu kontrol eder ve 'order_id' değeri parantez içinde belirttiğimiz herhangi biriyle eşleşen tüm kayıtları döndürür.

İlk örnek olarak, tamsayı değer listesi durumunu kullandık. Ayrıca dizeleri de kontrol edebiliriz. Belirttiğiniz dizelerin tümü hedef değerle eşleşmiyorsa hiçbir şeyin döndürülmediğini unutmayın. Aşağıdaki örnek, tablomuzda bulunmayan bazı dizeleri içermektedir. Bu tür dizeler atlanacak ve aşağıdaki çıktıda yalnızca eşleşen dizeler görüntülenecektir:

2. IN(SELECT) ile çalışma

Bazen değer listesini manuel olarak belirlemek işe yaramayabilir. Tablonuzdan bir değerler listesi getirmek için SELECT deyimini kullanmayı ve bunları hedef değere göre kontrol etmek için kullanmayı seçebilirsiniz. Aşağıdaki tabloyu veri tabanımıza ekleyerek, alt sorgumuzu oluşturmak için onu önceki “müşteriler” tablosuyla birleştirebiliriz:

Diyelim ki hedef değer (order_id) “müşteriler” tablosunda yer alıyorsa “orders” tablosundaki kayıtları görüntülemek istiyoruz. Burada 'customers.order_id' sütunu bizim değer listemizdir ve değerlerini 'orders.order_id' sütunundakilerle karşılaştırırız.

Bu durumda, aramayla yalnızca üç giriş eşleşir ve IN(SELECT) PostgreSQL cümlemizin çıktısı olarak elde ettiğimiz şey budur.

3. NOT IN PostgreSQL Cümlesiyle Çalışmak

Bir önceki komutu kullanarak hedef değerle eşleşmeyen diğer değerlerin görüntülenmesini seçebiliriz. Bunun için IN cümlesinin yaptığının tam tersini yapıyoruz. Bu nedenle NOT IN komutunu reddediyoruz.

Yeni komutumuzu şu şekilde yazıyoruz:

Örnek 2'de elde ettiğimizden farklı bir çıktı elde ettiğimize dikkat edin. Bunun nedeni IN cümlesi yerine NOT IN ile çalışıyor olmamızdır.

İdeal durumda, PostgreSQL IN cümleciğiyle elde ettiğiniz sonuçları reddetmek istediğinizde NOT'u ekleyebilirsiniz. Başvurular sonsuzdur. Değerleri kontrol etmek ve eşleşenleri hızlı bir şekilde görmek istediğinizde IN cümlesi en iyi arkadaşınızdır.

Çözüm

IN yan tümcesi, bir hedef değeri bir değerler listesine göre kontrol etmek için WHERE yan tümcesiyle birlikte çalışır. IN yan tümcesi, hedef değerin belirttiğiniz değerler listesinde bir eşleşme olup olmadığını doğrulayan bir Boole değeri döndürür. Değerleri değişmez değerler olarak belirtebilir veya kullanılacak bir alt sorgu oluşturmak için SELECT ifadesini kullanabilirsiniz. PostgreSQL IN deyimini nasıl kullanabileceğinize dair üç örnek verdik. Umarız bu size PostgreSQL IN cümleciğiyle nasıl çalışılacağını anlama konusunda fikir vermiştir.