Ana içeriğe atla

SQL IN Operatörü Nasıl Kullanılır: Verimli Filtreleme Tekniklerine Kılavuz

SQL IN operatörü, sorgu sonuçlarını yalnızca belirtilen koşulları karşılayan satırları içerecek şekilde filtrelemenizi sağlar. Tüm potansiyelini ve alternatiflerini keşfedin.
Güncel 3 Eki 2026  · 8 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

SQL IN operatörü, bir değer kümesine göre verileri filtrelemek için kullanışlı bir araçtır. Uzun sorgularda yer aldığında, IN operatörü karmaşık sorguları basitleştirir ve okunabilirliği artırır.

Gelişmekte olan bir veri uzmanıysanız, verileri filtrelemek için SQL uygulamasının temellerini öğrenmek amacıyla DataCamp’in Introduction to SQL ve SQL Fundamentals kurslarını öneririm. Hızlı bir hatırlatma için SQL Temelleri Cheat Sheet’imize göz atın.

SQL IN Operatörü Nedir?

SQL IN operatörü, SQL sorgularında verileri filtrelemek için güçlü bir araçtır. Belirtilen koşulları karşılayan satırları döndürerek sorgu sonuçlarını iyileştirir.

Ancak, birden fazla koşulla sonuç döndürmek için IN operatörü WHERE koşulundan sonra kullanılır. Bu nedenle, filtrelenen veri türünün farklı değerlere sahip olduğu durumlarda IN operatörü kullanılabilir.

-- Select the employee ID, employee name, and department columns
SELECT employee_id, employee_name, department
FROM employees
-- Filter the results to include only employees whose department is 'Sales' and 'HR'
WHERE department IN ('Sales', 'HR');

Yukarıdaki örnekte, employees tablosundan employee_id, employee_name ve department sütunlarını seçiyoruz. Ancak yalnızca çalışanların Sales ve HR departmanlarında olduğu satırları döndürüyoruz.

IN operatörü, metinler, sayılar ve tarihler dahil olmak üzere farklı SQL veri türlerini filtreleyebilir. Satırları filtrelerken başvuru sütununun uygun veri türüne sahip olduğundan her zaman emin olun.

SQL IN Operatörünün Söz Dizimi

IN operatörünün değerleri filtrelemek için basit bir söz dizimi vardır. WHERE koşulunda, bir sütun listesinden birden fazla değeri filtrelemeye olanak tanımak için kullanılır. IN operatörünün genel söz dizimi aşağıda gösterildiği gibidir.

-- Select the columns you want to retrieve
SELECT column_name(s)
-- Specify the table from which to retrieve the data
FROM table_name
-- Filter the results to include only those rows where the column's value matches any value in the specified list
WHERE column_name IN (value1, value2, ...);

WHERE koşuluna IN operatörünü eklemeye ilişkin pratik bir örnek aşağıdadır.

-- Select the employee ID, employee name, and department columns
SELECT employee_id, employee_name, department
FROM employees
-- Filter the results to include only employees whose department is 'Sales' and 'HR'
WHERE department IN ('Sales', 'HR');

Unutulmaması Gereken Önemli Noktalar

IN operatörü, SELECT ifadesinin WHERE koşulunda yer alır. Bu konumlandırma, sorgunun birden fazla değere göre satırları filtrelemesini sağlar. Bir SQL sorgusunda kullanıldığında, IN operatörü karmaşık sorguları basitleştirir ve okunmalarını kolaylaştırır.

IN operatörü, SQL Server, PostgreSQL, MySQL ve Oracle veritabanları dahil olmak üzere farklı veritabanlarında standarttır. Okunabilirliği artırmak için IN operatörünü standart olarak büyük harfle yazmak önemlidir.

IN Operatörünün Yaygın Kullanım Alanları

SQL IN operatörü, farklı veri analizi uygulamalarında kullanılır. Bu bölümde, veri filtreleme, birden çok değeri ele alma ve alt sorgulardan yararlanma gibi en yaygın kullanım senaryolarından bazılarını inceleyeceğiz. 

Veri filtreleme

IN operatörü, kayıtları filtreler ve belirtilen bir değer kümesini döndürür. Örneğin, aşağıdaki sorgu employees tablosundaki tüm sütunları seçecek ve Sales, HR ve IT departmanlarındaki çalışanların bulunduğu satırları döndürecektir.

-- Select all columns from employees table
SELECT employee_id, employee_name, department
FROM employees
-- Filter to include only 'Sales', 'HR', and 'IT' departments
WHERE department IN ('Sales', 'HR', 'IT');

Birden çok değeri ele alma

IN operatörü, birden çok değere sahip kayıtları filtrelemek için de kullanılır. Bu kullanım, verileri birden fazla OR koşuluyla filtrelerken yararlıdır. Dolayısıyla, IN operatörü sorgu okunabilirliğini artırmak için daha basit bir yol sağlar.

Aşağıda, IN operatörü yerine OR operatörü ile sorgunun nasıl görüneceği yer almaktadır.

-- Main query to select employee_id and name from the employees table
SELECT employee_id, name
FROM employees
-- Filter employees based on multiple department names using OR conditions
WHERE department = 'Sales'
OR department = 'Marketing'
OR department = 'HR';

İşte IN operatörünü kullanan sorgu. Yinelenen OR operatörlerini kaldırmanın sağladığı sadeliğe dikkat edin.

-- Main query to select employee_id and name from the employees table
SELECT employee_id, name
FROM employees
-- Filter employees based on a list of department names using the IN operator
WHERE department IN ('Sales', 'Marketing', 'HR');

Alt sorgular

IN operatörünü bir alt sorguda sonuçları filtrelemek için de kullanabilirsiniz. Bu işlem, başka bir sorgudaki veya ilişkili verilerdeki kayıtları filtrelemenizi sağlar. Aşağıdaki örnekte alt sorgu, departments tablosundan Sales departmanının department_id değerini seçer. Bu nedenle ana sorgu, alt sorguya göre filtrelenmiş olarak employees tablosundan employee_id ve ad içeren satırları döndürecektir.

-- Main query to select employee_id and name from the employees table
SELECT employee_id, name
FROM employees
-- Filter employees based on department_id using a subquery
WHERE department_id IN (
    -- Subquery to get department_id for the "Sales" department
    SELECT department_id
    FROM departments
    WHERE department_name = 'Sales'
);

Sınırlamalar ve Alternatifler

Her ne kadar IN operatörü SQL sorgularında kullanımı kolay olsa da, uygulamalarında bazı sınırlamalar vardır. Bunlar şunları içerir:

  • Geniş Listelerde Performans Sorunları: IN operatörünün uzun değer listeleriyle kullanılması performans sorunlarına yol açabilir ve sorgu yürütmesini yavaşlatabilir.
  • NULL Değerleri Ele Alma: IN operatörü NULL değerleri verimli bir şekilde işlemez ve öngörülemeyen sonuçlar döndürebilir. Bu sorun, NULL değerlerin değer listesine dahil olmamasından kaynaklanır.
  • Sınırlı Esneklik: IN operatörü, birden çok sütun içeren büyük veri kümelerini işlerken sınırlıdır. Yalnızca alt sorgular kullanılarak sınırlı sayıda sütun filtrelenebilir.

IN operatörünün sınırlamalarından kaçınmak için alternatifler şunlardır:

EXISTS operatörünü kullanma

EXISTS operatörü, belirtilen kayıtların bir alt sorguda bulunup bulunmadığını kontrol eder. Doğru kullanıldığında bu operatör verimlidir ve daha hızlı çalışır.

-- Select employee ID and name for employees in departments located in New York using EXISTS
SELECT employee_id, employee_name
FROM employees e
-- Check if there exists a row in the departments table
WHERE EXISTS (
    -- Select 1 is used here as a placeholder; it simply checks for existence
    SELECT 1
    FROM departments d
    -- Match the department_id in employees with department_id in departments
    WHERE d.department_id = e.department_id
    -- Filter for departments located in New York
    AND d.location = 'New York'
);

JOIN kullanma

SQL JOIN ifadesi, karmaşık filtrelemeyle veri sorgularken etkilidir ve birden çok ilişkili sütundan veri filtrelerken kullanışlıdır. Aşağıdaki örnekte, New York’ta yaşayan çalışanların kayıtlarını filtrelemek için department_id üzerinde employees ve departments tablolarını birleştirmek amacıyla JOIN ifadesi kullanılmıştır.

-- Select employee ID and name for employees in departments located in New York using JOIN
SELECT e.employee_id, e.employee_name
FROM employees e
-- Join the employees table with the departments table on department_id
JOIN departments d ON e.department_id = d.department_id
-- Filter the results to include only departments located in New York
WHERE d.location = 'New York';

Ortak Tablo İfadeleri (CTE) veya geçici tablolar kullanma

Uzun listelere sahip tablolarınız varsa, sorgulamadan önce değer listesini depolamak için CTE kullanmayı düşünebilirsiniz. Bu yöntem sorgu performansını ve okunabilirliğini artırır.

-- Define a CTE (Common Table Expression) to store the list of department IDs located in New York
WITH DepartmentList AS (
    SELECT department_id
    FROM departments
    WHERE location = 'New York'
)
-- Select employee ID and name for employees who belong to the departments listed in the CTE
SELECT e.employee_id, e.employee_name
FROM employees e
-- Filter the results to include only employees whose department_id is in the list of department IDs from the CTE
WHERE e.department_id IN (SELECT department_id FROM DepartmentList);

Veri filtrelemeye yönelik diğer ileri teknikleri öğrenmek için DataCamp’in Associate Data Analyst in SQL kariyer yolunu öneririm. Ayrıca ortak tablo ifadeleri ve diğer ileri konulara yer veren DataCamp’in Intermediate SQL Server kursuna da göz atabilirsiniz. 

Sonuç

SQL IN operatörünü anlamak, analiz sırasında verileri filtrelemenize ve dönüştürmenize olanak tanıdığı için bir veri uygulayıcısı için önemlidir. IN operatörünün kullanımına ilişkin SQL becerilerinizi geliştirmek için farklı veri kümeleri üzerinde pratik yapmanızı öneririm.

SQL bilginizi orta seviyeye taşımak isterseniz, diğer karmaşık sorgulama tekniklerini keşfetmek için Reporting in SQL kursunu öneririm. Ayrıca SQL Associate Certification, ileri düzey analiz için SQL kullanma konusundaki pratik bilginizi göstererek diğer veri analistleri arasında öne çıkmanıza yardımcı olacaktır.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Veri analitiği, iş zekâsı ve veri bilimi alanlarında pratik deneyime sahip Veri Bilimi Teknik Yazarı. SQL, Python, Power BI, Databricks ve veri mühendisliği üzerine, gerçek dünya analitik çalışmalarına dayanan, uygulamaya dönük ve sektöre odaklı içerikler yazıyorum. Yazılarım teknik derinlikle iş etkisi arasındaki köprüyü kurarak profesyonellerin veriyi güvenle karara dönüştürmelerine yardımcı olur.

Sıkça Sorulan Sorular

IN operatörünü farklı veri türlerini filtrelemek için kullanabilir miyim?

IN operatörü, metinler, sayılar ve tarihler dâhil olmak üzere farklı SQL veri türlerini filtreler.

IN operatörü alt sorgularda kullanılabilir mi?

IN operatörü, ana sorgudan verileri filtrelemek için gelişmiş bir yöntem olarak alt sorgularda kullanılır.

IN operatörünün alternatifi nedir?

EXISTS operatörü, JOIN ifadesi ve Ortak Tablo İfadeleri (CTE) IN operatörüne en iyi alternatiflerdir.

IN operatörü ile uyumlu veritabanları hangileridir?

Yaygın veritabanları, SQL Server, MySQL, PostgreSQL ve Oracle veritabanları dâhil olmak üzere IN operatörünün kullanımını destekler.

Konular
SQL
Veri Analizi

DataCamp ile SQL öğrenin

{count, plural, one {Kurs} other {Kurs}}

SQL’e Giriş

{hours} sa
1.6M
Sadece iki saat içinde SQL kullanarak ilişkisel veritabanlarını nasıl oluşturacağınızı ve sorgulayacağınızı öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

{count, plural, one {blog} other {blog}}

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

{count, plural, one {blog} other {blog}}

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

{count, plural, one {Eğitim} other {Eğitim}}

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

{count, plural, one {Eğitim} other {Eğitim}}

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör