MsSQL’ de Tek tablo içerinde sorgulamalar

Veysel Güneş
4 min readDec 5, 2019

Merhaba arkadaşlar yepyeni bir seriye başlıyoruz.

Hali hazırda üniversite okuyor olmam aktif olarak ders müfredatından ötürü uzun zamandır blog ile ilgili yazılar yazamıyorum, ama bu uzun zaman dilimde çok daha verimli olmak adına daha neler yapabilrim diye farklı olarak düşüncelerim oldu bu çerçevede bir sql ve t-sql konularını içeren temel düzeyde anlatmaya çalışacağım bu konular hakkında kapsamlı bir araştırma yaptıktan sonra sevgili Turgut ÖZSEVER hocamın veritabanı yönetim ve sistemleri kitabından destek olarak bu blog yazılarımı yazmaya çalışacağım.

ilk olarak sql kavramında bahsetmek istiyorum.

Sql, kullanıcıların veri tabanıyla ilişkiler kurmaları için kullanılan bir iletişim aracıdır. Veritabanı sistemlerin hemen hemen hepsi bu dili kullandığı için günümüzde artık standart hale gelmiştir. Sql bir programlama dili olarak bilenler olabilir ama üzülerek sql’in bir programlama dili olamadığını söylemek isterim ancak sql günümüzde t-sql gibi sql’in bileşenleri ile aynı bir programlama dili yazıyoruz gibi bizlere bu kolaylığı sağlayacak araçlar bunları ilerleyen blog yazılarımda elimden geldiğince bahsetmeye çalışacağım.

Şimdi bu kadar tanımlama ve açıklama yaptıktan sonra şimdi artık kısa kısa anlatmaya başlayalım.

Tek tablo içerinde sorgulama SELECT

sorgu adından anlaşılacagı üzere tablo içerinde verileri sorgulaması yanı seçilmesidir. Bu bölümde kullanacağımız komut ise başlıktada bahsettiğimiz gibi select olacak

Select’tin kullanım şekli

Select kullanım Şekli

Select komutunu içeren küçük bir örnek vermek gerekirse, daha önceden oluşturduğumuz öğrenci tablomuzdan ögrencinin adı, soyadını geri döndürecek sql sorgusunu yazalım

öğrencinin adını ve soyadı veren sql komutu

Sorgu sonucu tekrarlı satırları önlemek

Select komutunda kullandığımız aynı bilgiyi birden fazla satırda(kayıt) bulunuyorsa bunların tamamı listeleyecektir. biz aynı kayıtların sadece bir tane gelmesini istiyorsak DISTINCT ifadesini kullanırız.

DISTINCT kullanım şekli

şimdi aşağıda’ki tablo gibi bir tablomuz var, istediğimiz ise sadece isimlerin tekrarlı olanları bana vermemesini istiyorum bu yüzden kullanacağım ifade DISTINCT’i kullanarak yapalım.

Yukarında bulunan tablomuzu dıstinct ifadesiyle yazıyoruz.

Sql Komutumuz

sorgu sonucunda oluşan çıktımız ise şu şekilde olacaktır.

Sorgu sonucunu sıralama Order By

Yapılan sorguların sonuçları kayıtların yapılma sırasına göre sıralanacaktır. Yapılan sorgunun istenilen bir veya birden fazla sütuna göre sıralama yapacaktır. Sıralama yaparken kullanacağımız ifade ise Order By olacaktır.

Order By ifadesini kullanırken eğer artan(küçükten büyüğe)sıralamasını istiyorsak kullanacağımız ifade ASC , azalan(büyükten küçüğe doğru) sıralamasını istiyorsak’ta DESC ifadesini kullanarak sorgulama işlemi yapabiliriz.

Artan Sıralama Kullanım Şekli

Select *From tablo_adi ORDER BY referans_sütun ASC

Veya

Select *From tablo_adi ORDER BY referans_sütun

şeklinde kullanabilir. Çünkü Order By Default değeri olarak artan sıraya göre sıralama yapmaktadır.

Azalan Sıralama Kullanım Şekli

Select *From tablo_adi ORDER BY referans_sütun DESC

öğrenci tablomuzda oluşturduğumuz notlar tablosunda final notların artan bir şekilde listelenmesini istiyorsak Yapmamız gerek sql sorgulaması şu şekilde olması gerekecektir

Select *from Ogrenci Order By final ESC

Veya

Select*From Ogrenci Order By Final

bu iki kullanımda bize aynı sonucu verecektir.

Sql de bu yazıp gösterelim,

ilk olarak artan sıraya göre sıraladık ASC ifadesini kullanarak bunu yaptık birde ASC ifadesini kullanmayarak yapmayı deneyelim.

Görüldüğü gibi ikisi de aynı sonuçları veriyor.

Şimdi ise DESC İfadesini kullanarak tablomuzda’ki vizeleri artandan azalana doğru sıralamasını yapalım

DESC ifadesini kullanarak yaptığımız bu sıralamada ise vize notları yüksel olandan düşük olana göre sıralayor.

Birden Fazla Sütuna Göre Sıralama

Select ifadesi aynı anda birden falza sütüna göre sıralama yaptrmak için yine ORDER BY kullanılır. Sıralamanın yapılacağı sütunlar arasına virgül konularak bu işlem yapılabilir.

Örnek Kullanım Şekli

Select*From Tablo_adi ORDER BY sütun1, sütun2

kod parçası ilk çalıştığında sütun1' dekine göre sıralama yapacak ve daha sonra sütun2’ye göre sıralama yapacaktır.

Bir örnek üzerinde yapacak olursak final ve numarasına göre artarak sıralayan bir sql sorgusunu yazalım,

Bu şekilde bir sorgulama yaptığımızda ilk olarak sütun1 de kısımı sıralıyor daha sonra ise sütün2 deki kısmı sıralıyor.

Sütunlara Takma İsim Kullanma

Sorguların çalışması anında bir sütunu bir veya daha fazla işlemlerde kullanabiliriz. Bunu yaparken’de sütun isimlerinde çakışma olacağı için kullanacağımız sütunlara takma ad verip çakışmaları giderebiliriz. Sql Sorgusunda takma ad vermek için kullandığımız ifade ise AS ifadesidir.

Takma Adı Kullanım Şekli

Select Sütun1_adi AS Takma_isim, Sütun2_adi AS Takma_isim

From Tablo_adi

Şeklinde kullanımı vardır.

Şimdi takma adını daha akılda kalıcı yapmak için bir örnek üzerinde uygulayalım.

Örneğimizde dersler tablosundaki Ders_kod ve Ders_adi Kısımlarındaki _ alt işaretini kaldırıp bunun yerine uygun isimleri yazan sql sorgusunu yazalım.

Evet arkadaşlar Select sorgulama üzerine yazdığımız yazımın sonuna geldik.

Sabırla okuduğunuz için teşekkür ederim.

--

--

Veysel Güneş

Studying software engineering at firat university, Blogger Öğrendiklerini yazmaktan ve ortaya bir ürün koymaktan mutlu olan http://veyselgunes.site/