SQL Mülakatlarında Karşılaşabileceğiniz Yapılar: EXCEPT

Serdar Tafralı
3 min readOct 7, 2024

--

SQL dünyasına daldığınızda, bazen iki farklı sonuç kümesini karşılaştırmak ve birindeki verilerin diğerinde olup olmadığını öğrenmek gerekebilir. İşte bu noktada EXCEPT devreye giriyor. Bu makalede, SQL’de EXCEPT yapısının ne olduğunu, nasıl kullanıldığını ve mülakatlarda karşınıza nasıl çıkabileceğini samimi bir dille ele alacağız. Haydi başlayalım!

EXCEPT Nedir?

Basitçe ifade edersek, EXCEPT, iki sorgu arasındaki farkı bulur. Yani, birinci sorgudan dönen verilerde olup, ikinci sorguda olmayan satırları bize döndürür. SQL'deki EXCEPT, aslında matematiksel kümelerdeki fark işlemi gibidir.

SQL’deki EXCEPT fonksiyonunun kullanımı da tıpkı matematiksel fark işlemi gibidir:

  • A kümesinde olan ama B kümesinde olmayan elemanları döndür.

Yani iki tablo veya sorgunun sonuçlarını karşılaştırmak için harika bir yapı! Kulağa hoş geliyor, değil mi? Hem iş hayatında hem de SQL mülakatlarında karşınıza çıkabilecek etkili bir araç.

Kullanım Söz Dizimi

Söz dizimi son derece basit:

SELECT sütunlar
FROM tablo1
EXCEPT
SELECT sütunlar
FROM tablo2;

Burada dikkat etmeniz gereken en önemli şey, her iki sorguda da aynı sütun sayısı ve veri tiplerinin kullanılması gerektiği. Eğer bunlar uymazsa, SQL bir hata fırlatır ve “Hangi kafayla bu sorguyu yazdın?” dercesine size bakar! 🙂

EXCEPT Yapısının Gücü: Mülakatlarda Sıkça Sorulabilir!

Bu arada, EXCEPT, SQL mülakatlarında da karşınıza çıkabilecek bir yapı. Özellikle iki tabloyu karşılaştırarak farkları bulmanızı isteyen sorularda, EXCEPT kullanmanız tam yerinde olur. Ayrıca, mülakatlarda kodu temiz ve anlaşılır yazmanız her zaman artı puandır. EXCEPT, bu anlamda farkları temiz bir şekilde gösterebilmenizi sağlar.

Mülakatlarda şu tarz bir soru gelebilir: “Elimizde iki tablo var, biri çalışanlar (Employees), diğeri yöneticiler (Managers). Yöneticiler tablosunda olmayan çalışanları nasıl bulursunuz?” Cevap tabii ki EXCEPT!

Şimdi bunu örneklerle detaylandıralım.

Örneklerle EXCEPT

Tablolarımız

İki tablo üzerinden ilerleyelim: Employees (çalışanlar) ve Managers (yöneticiler).

Yöneticiler tablosunda sadece John ve Alice var. Yani diğer çalışanlar yöneticiler arasında yok.

EXCEPT Kullanımı

Bu sorgu, çalışanlar (Employees) tablosundaki ve yöneticiler (Managers) tablosunda olmayan çalışanları bulur:

SELECT employee_id, name, department_id
FROM Employees
EXCEPT
SELECT manager_id, name, department_id
FROM Managers;

Bu çıktı, yöneticiler arasında olmayan çalışanların listesidir. Gördüğümüz gibi Bob, Carol ve Dave yöneticiler arasında yer almıyor.

Sütun Sayısı ve Veri Türü Uyumu

Tabii ki her zaman işler bu kadar pürüzsüz gitmeyebilir. Eğer sütun sayısı veya veri türleri uymazsa SQL hata verecektir. Mesela:

SELECT employee_id, name
FROM Employees
EXCEPT
SELECT manager_id, department_id
FROM Managers;

Bu sorguyu çalıştırdığınızda bir hata ile karşılaşacaksınız çünkü name ve department_id sütunları farklı veri tiplerinde.

EXCEPT ile Tek Sütun Farkı Bulma

İki tablo arasındaki farkı sadece tek bir sütun ile bulmak için EXCEPT kullanabiliriz. Örneğin, sadece bir sütuna odaklanmak isterseniz, mesela departmanları karşılaştırmak isteyebilirsiniz:

SELECT department_id
FROM Employees
EXCEPT
SELECT department_id
FROM Managers;

Bu çıktı bize yöneticilerde olmayan departmanları gösteriyor. 30 numaralı departman yöneticiler arasında bulunmuyor.

Nerelerde Kullanılır?

EXCEPT, özellikle raporlama ve analiz işlerinde, farklı veri kümelerini karşılaştırırken oldukça kullanışlıdır. Mesela:

  • İki farklı döneme ait satış verilerini karşılaştırırken hangi ürünlerin satılmadığını bulmak.
  • İki farklı tablodaki müşterileri karşılaştırarak ortak olmayanları tespit etmek.

Bir başka senaryo da veritabanı güncellemelerinde kullanılan testlerdir. Veri değişikliklerini takip ederken, hatalı ya da eksik veri setlerini tespit etmek için EXCEPT biçilmiş kaftandır.

Sonuç

SQL’de EXCEPT, karşılaştırmalar yaparken oldukça kullanışlı ve pratik bir yapıdır. İki sonuç kümesi arasındaki farkı anlamak ve eksik olanları tespit etmek için mükemmel bir araçtır. Ayrıca, SQL mülakatlarında karşılaşabileceğiniz soruların başında gelir. Hemen birkaç sorgu ile pratik yaparak EXCEPT’i iyice kavrayabilirsiniz.

SQL’in derin sularında yüzmeye devam ederken, bu küçük ama güçlü yapıyı aklınızda tutun. Belki bir sonraki mülakatta işinize yarayacak!

Bu makalede SQL’de EXCEPT yapısının nasıl çalıştığını ve ne zaman kullanmanız gerektiğini öğrendiniz. Bu bilgilerle SQL mülakatlarına daha hazırlıklı gireceğinizden eminim! Bir sonraki yazıda görüşmek üzere!

Serdar Tafrali

--

--

Serdar Tafralı

Dedicated and eager lifelong learner with a very solid mathematical background. Deeply passionate about Data Science and Artificial Intelligence