Sub Query Nedir?

Sub Query Nedir?

Subquery, bir SQL sorgusunun içinde bulunan bir sorgudur ve bir ana sorgunun sonuç kümesindeki verileri döndürür. Bir alt sorgu, bir üst sorgunun kaynak verilerinin bir parçasını döndürmek için kullanılır. Alt sorgu, üst sorguda kullanılan bir operatör, fonksiyon veya ifade içinde yer alabilir. Bu alt sorgular, karmaşık sorgulama gerektiren durumlarda kullanışlıdır ve genellikle diğer sorgulama teknikleri ile birlikte kullanılırlar.

Subquery, bir SQL sorgusunun içinde yer aldığı için, bir sorgu içindeki bir tablodan veya başka bir veri kaynağından veri çekmek için kullanılabilir. Alt sorgu, ana sorguda kullanılan bir koşul ifadesi olarak işlev görebilir ve bir sorgunun sonuç kümesini daha da filtreleyebilir veya sınırlayabilir. Alt sorgular ayrıca, bir sorgunun içinde yer alan bir başka sorgunun sonucunu işlemek için kullanılabilir.

Alt sorgular, iki ana kategoriye ayrılabilir: Tek satırlı alt sorgular ve çok satırlı alt sorgular. Tek satırlı alt sorgular, yalnızca bir değer döndürür ve bir sorgu içinde bir koşul ifadesi olarak kullanılabilir. Çok satırlı alt sorgular, bir sorgu sonucu olarak birden çok satır döndürebilir ve bir tablonun bir parçası olarak kullanılabilir.

Alt sorguların kullanımı, SQL sorgularının karmaşıklığını artırabilir, ancak bazı durumlarda daha verimli bir sorgu yazmayı mümkün kılar. Alt sorgular, başka bir sorgunun sonucuna dayanan sorgular yazmak için kullanılabilir ve birçok veritabanı yönetim sistemi, alt sorguların desteklenmesi için optimize edilmiştir.

Bir alt sorgu, bir SQL sorgusunun herhangi bir yerinde kullanılabilir. Alt sorgular, SELECT, INSERT, UPDATE ve DELETE sorgularının herhangi birinde kullanılabilir. Örneğin, bir alt sorgu, bir tablonun herhangi bir alanında veri aramak için kullanılabilir. Alt sorgular ayrıca, bir sorgunun sonucuna göre bir tablodan veri eklemek veya güncellemek için de kullanılabilir.

Bir alt sorgu, bir SELECT sorgusu içinde kullanılarak, bir sorgunun sonuç kümesindeki verileri daha da filtrelemek için kullanılabilir. Örneğin, aşağıdaki SQL sorgusu, Customers tablosundaki müşterilerin isimlerini, şehirlerini ve devletlerini döndürür:

SELECT CustomerName, City, State

FROM Customers;

Ancak, bu sorgunun sonucu çok fazla veri içerebilir ve daha spesifik bir

sonuç kümesi elde etmek isteyebilirsiniz. Bu durumda, bir alt sorgu kullanarak sorgunun sonucunu daha da filtreleyebilirsiniz. Örneğin, aşağıdaki SQL sorgusu, müşterilerin şehirleri “London” olanları döndürür:

SELECT CustomerName, City, State

FROM Customers

WHERE City = ‘London’;

Bu sorgu, sadece “London” şehrindeki müşterileri döndürür. Ancak, bu sorgu, yalnızca “London” şehrindeki müşterileri döndürür ve diğer şehirlerdeki müşterileri dışlar. Bu durumda, bir alt sorgu kullanarak sorgunun sonucunu daha da filtreleyebilirsiniz. Örneğin, aşağıdaki SQL sorgusu, “London” şehrindeki müşterilerin “UK” devletinde olduğunu döndürür:

SELECT CustomerName, City, State

FROM Customers

WHERE State = (

SELECT State

FROM Customers

WHERE City = ‘London’

);

Bu sorgu, “London” şehrindeki müşterilerin “UK” devletinde olduğunu döndürür ve diğer şehirlerdeki müşterileri dışlamaz.

Bir alt sorgu, bir SELECT sorgusu içinde kullanılabilmesinin yanı sıra, bir INSERT sorgusu içinde de kullanılabilir. Örneğin, aşağıdaki SQL sorgusu, “Orders” tablosuna bir yeni sipariş ekler:

INSERT INTO Orders (CustomerID, OrderDate, ShippedDate)

VALUES (

(SELECT CustomerID FROM Customers WHERE CustomerName = ‘Alfreds Futterkiste’),

‘2023-04-05’,

‘2023-04-10’

);

Bu sorgu, “Customers” tablosundan müşteri ID’sini ve belirtilen tarihleri alan bir alt sorgu kullanarak “Orders” tablosuna yeni bir sipariş ekler.

Bir alt sorgu, bir UPDATE sorgusu içinde de kullanılabilir. Örneğin, aşağıdaki SQL sorgusu, “Customers” tablosundaki müşterilerin şehirlerini “Paris” olarak günceller:

UPDATE Customers

SET City = ‘Paris’

WHERE Country = (

SELECT Country

FROM Customers

WHERE City = ‘Paris’

);

Bu sorgu, “Paris” şehrindeki müşterilerin ülkelerini alan bir alt sorgu kullanarak “Customers” tablosundaki müşterilerin şehirlerini “Paris” olarak günceller.

Son olarak, bir alt sorgu, bir DELETE sorgusu içinde de kullanılabilir. Örneğin, aşağıdaki SQL sorgusu, “Customers” tablosundaki şehri “Berlin” olan müşterileri siler:

DELETE FROM Customers

WHERE City = (

SELECT City

FROM Customers

WHERE City = ‘Berlin’

);

Bu sorgu, “Berlin” şehrindeki müşterileri alan bir alt sorgu kullanarak “Customers” tablosundaki müşterileri

Sosyal Medyada Paylaş

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir