S1.01. Temel Sorgulama

Kendime Notlar
3 min readJul 26, 2022

--

Select İfadesi

Veritabanı içerisindeki veriler tablo olarak adlandırdığımız yapılar içerisinde saklanır.

Tablolar kolon ve satırlardan oluşur. Sorgulama yaparken tablodaki kolonlar kullanılarak satır bazındaki veriler çağrılır. Her bir satır tekil bir kaydı, her bir kolon da tablonun alanlarını temsil eder.

Klasik bir select ifadesi aşağıdaki syntax gibi kullanılır.

SELECT 
<Column(s)>
FROM
<SchemaName>.<TableName>
WHERE
<Criteria(s)>
GROUP BY
<Group Column(s)>
HAVING
<Filter Criteria(s)>
ORDER BY
<Order Column(s)>

Şema, Sql Server içerisindeki tablolar, indexler, viewlar gibi objeleri mantıksal olarak gruplamak için kullanılan yapılardır. Şemaları kullanarak, database design işlemlerini de mantıksal olarak yapabilirsiniz.

Not: Ben örneklerimde AdventureWorks veritabanını kullanacağım. Aynı örnekleri AdventureWorks veritabanını indirerek sizde deneyimleyebilirsiniz.

Bütün Kolonları Sorgulamak

Aşağıdaki kod bloğunda (*) bütün kolonları getir anlamına gelirken, sorgunun geneline baktığımızda HumanResources şemasına ait olan Employee tablosundan bütün kolonları ve satırları getir şeklinde sorgumuzu yorumlayabiliriz.

SELECT
*
FROM
HumanResources.Employee

Bir başka örnekte, HumanResources şemasına ait olan Employee tablosundan LoginID, JobTitle ve HireDate kolonlarını ve bütün satırları getir anlamına gelmektedir.

Belirli Kolonları Sorgulamak

-- Bütün çalışanların LoginID, JobTitle ve HireDate bilgilerini getiren sorgu
SELECT
LoginID, JobTitle, HireDate
FROM
HumanResources.Employee

Kriterlere Göre Sorgulamak

Bazen tablolardaki bütün veriler işimize yaramaz ve sadece istediğimiz kriterlere göre verileri sorgulamak isteriz. Bu gibi durumlarda da WHERE kullanırız.

-- Bütün kadın çalışanları getiren sorgu
SELECT
*
FROM
HumanResources.Employee
WHERE
GENDER = 'F'

Verilerin Sıralanması

Bazen de yaptığımız sorgulamalarda belirli kriterleri göre sonuç kümesinin sıralı olarak gelmesini isteriz. Bu durumda ORDER BY ifadesi kullanılır. ORDER BY ifadesinden sonra hangi kolona göre sıralamak istiyorsak o kolonun ismini vererek sıralama işlemini yapabiliriz.

Kolon adından sonra ASC (Ascending) ve DESC (Descending) keywordlerini kullanarak artan sıralı veya azalan sıralı şeklinde de sıralama işlemini yapabiliriz. Hiçbirisi yazılmasa default olarak ASC olarak sıralı gelecektir.

-- Bütün kadın çalışanların LoginID, JobTitle ve HireDate 
-- bilgilerini HireDate kolonuna göre artan sıralı olarak
-- getiren sorgu
SELECT
LoginID,JobTitle,HireDate,Gender
FROM
HumanResources.Employee
WHERE
GENDER = 'F'
ORDER BY
HireDate ASC --DESC
ORDER BY HireDare ASC — — — — — — — — — — — — — — — — — — — — — — — — — — — ORDER BY HireDate DESC

Verilerin Gruplanması

Verileri belirli kriterlere göre gruplama için GROUP BY ifadesi kullanılır. GROUP BY ifadesi genellikle bir aggregate function ile kullanılır.

-- Her bir meslekte kaç adet kadın çalışan olduğunu getiren sorgu
SELECT
JobTitle,
Count(0) Adet
FROM
HumanResources.Employee
WHERE
GENDER = 'F'
GROUP BY
JobTitle

Gruplanmış Verilerde Filtreleme

Gruplanmış Verilerde filtreleme yapmak için HAVING ifadesi kullanılır.

-- 1’den fazla kadın çalışanı bulunan mesleklerin adetlerini getiren sorgu
SELECT
JobTitle,
Count(0) Adet
FROM
HumanResources.Employee
WHERE
GENDER = 'F'
GROUP BY
JobTitle
HAVING
COUNT(*) > 1

SQL Server Engine bir sorguda işlem yapmaya başladığında sırasıyla aşağıdaki blokları okuyarak sorgu sonucunu geri döndürür.

FROM → WHERE → GROUP BY → SELECT → ORDER BY

Faydalı olması dileğiyle.

--

--

Kendime Notlar
Kendime Notlar

Written by Kendime Notlar

👨‍👩‍👦‍👦Husband & father of two sons, 💻DBA, volunteer of data engineering, Founder of DataWiser