Translate

12 Ekim 2015 Pazartesi

SQL(3) : GROUP BY Kullanımı

Select sorgusu ile çekilen kayıtlar üzerinde belirtilen kolon yada kolonlar özelinde gruplama yapılması için kullanılır. Kullanımda dikkat edilmesi gereken group by ile gruplanan kolon listelenmelidir. Bu durumu aşağıdaki örneklerde daha net göreceksiniz. Ogrenci tablosu üzerinden GROUP BY kullanımını detaylandıralım:

-Ogrenci tablosu:
-------------------------------------
|  id   |  ad    |  soyad   |  yas  |
-------------------------------------
|  1    | fatih  | nese     |  30   |
|  2    | faruk  | burak    |  25   |
|  3    | tarkan | yildirim |  24   |
|  4    | serkan | yildirim |  24   |
-------------------------------------

-Ogrenci tablosundaki yas column’u grupluyoruz:
Select yas from ogrenci group by yas;
---------
|  yas  |
---------
|  30   |
|  25   |
|  24   |
---------

-Ogrenci tablosundaki yas column’u grupluyoruz ve hangi yaştan kaç öğrenci olduğu bilgisini listeliyoruz:
Select yas,count(*) from ogrenci group by yas;
----------------------
|  yas  |   count(*)  |
----------------------
|  30   |     1       |
|  25   |     1       |
|  24   |     2       |
----------------------

- Burada DISTINCT kullanımından da bahsetmek istiyorum. DISTINCT select sorgusu ile çekilen listedeki belirtilen kolon özelinde tekrarlanan kayıtları sadeleştirerek(tekilleştirerek) gösterilmesini sağlamaktadır. Ogrenci tablosundaki yas column’u distinct ediyoruz:
Select distinct yas from ogrenci;
---------
|  yas  |
---------
|  30   |
|  25   |
|  24   |
---------


Bu yazıda GROUP BY ve DISTINCT kullanımına dair örnekleri inceledik. İyi çalışmalar..

SQL(2) : ORDER BY Kullanımı

Select sorgusu ile çekilen kayıtlar üzerinde sıralama yapmak için kullanılır. Sıralama yapılacak kolon yada kolonlar belirtilebilir. Sıralamanın artan (ASC) yada azalan (DESC) olarak yapılması sağlanabilir, bu seçim belirtilmez ise artan(ASC)  yönde sıralama yapılmaktadır. Ogrenci tablosu üzerinden ORDER BY kullanımını detaylandıralım:

-Ogrenci tablosu:
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  1    | fatih  | nese     |
|  2    | faruk  | burak    |
|  3    | tarkan | yildirim |
|  4    | serkan | yildirim |
-----------------------------

-Tüm öğrencileri id column’a göre artan sırayla listeliyoruz:
Select * from ogrenci order by id asc;
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  1    | fatih  | nese     |
|  2    | faruk  | burak    |
|  3    | tarkan | yildirim |
|  4    | serkan | yildirim |
-----------------------------

-Tüm öğrencileri id column’a göre azalan sırayla listeliyoruz:
Select * from ogrenci order by id desc;
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  4    | serkan | yildirim |
|  3    | tarkan | yildirim |
|  2    | faruk  | burak    |
|  1    | fatih  | nese     |
-----------------------------

- id’si 1’den büyük olan tüm öğrencileri ad ve soyad’larına göre artan şekilde sıralıyoruz:
Select * from ogrenci where id>1 order by ad,soyad;
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  2    | faruk  | burak    |
|  4    | serkan | yildirim |
|  3    | tarkan | yildirim |
-----------------------------
NOT: Order by ifadesi ad,soyad şeklinde belirtildiği için sıralamada öncelik ad column’u olacaktır, ad’ları aynı olan kayıtlar kendi aralarında soyad’larına göre sıralama yapılarak listelenmektedir.


Bu yazıda Order by kullanımına dair örnekleri inceledik. İyi çalışmalar..

SQL(1) : SELECT Kullanımı

Tablodaki belirli koşullara uyan kayıtların sorgulanmasında kullanılan sql komutudur. Ogrenci tablosu üzerinden select sorgusu kullanımını detaylandıralım:

-Ogrenci tablosu:
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  1    | fatih  | nese     |
|  2    | faruk  | burak    |
|  3    | tarkan | yildirim |
|  4    | serkan | yildirim |
-----------------------------

-Tüm öğrencileri listeliyoruz:
Select * from ogrenci;
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  1    | fatih  | nese     |
|  2    | faruk  | burak    |
|  3    | tarkan | yildirim |
|  4    | serkan | yildirim |
-----------------------------

-Tüm öğrencilerin id ve ad bilgilerini listeliyoruz:
Select id,ad from ogrenci;
------------------
|  id   |  ad    | 
------------------
|  1    | fatih  |
|  2    | faruk  |
|  3    | tarkan |
|  4    | serkan |
------------------

-Tüm öğrencilerin id ve ad bilgilerini listeliyoruz ancak id column isminin numara olarak görünmesini sağlıyoruz:
Select id as numara,ad from ogrenci;
---------------------
| numara   |  ad    | 
---------------------
|  1       | fatih  |
|  2       | faruk  |
|  3       | tarkan |
|  4       | serkan |
---------------------

-Tüm öğrencilerin id ve ad bilgilerini listeliyoruz ancak id column isminin numara olarak görünmesini sağlıyoruz:

Select id numara,ad from ogrenci;
---------------------
| numara   |  ad    | 
---------------------
|  1       | fatih  |
|  2       | faruk  |
|  3       | tarkan |
|  4       | serkan |
---------------------

-id değeri 1 olan öğrenciyi listeliyoruz:
Select * from ogrenci where id=1;
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  1    | fatih  | nese     |
-----------------------------

-id değeri 1’den büyük ve 3’den küçük eşit olan öğrencileri listeliyoruz:
Select * from ogrenci where id>1 and id<=3;
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  2    | faruk  | burak    |
|  3    | tarkan | yildirim |
-----------------------------

-id değeri 2 ve 4 de dahil olmak üzere arasındaki tüm öğrencileri listeliyoruz:
Select * from ogrenci id between 2 and 4;
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  2    | faruk  | burak    |
|  3    | tarkan | yildirim |
|  4    | serkan | yildirim |
-----------------------------

-id değeri 2’ye eşit olmayan tüm öğrencileri listeliyoruz:
Select * from ogrenci where id<>2;
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  1    | fatih  | nese     |
|  3    | tarkan | yildirim |
|  4    | serkan | yildirim |
-----------------------------

-Adı faruk yada fatih olan tüm öğrencileri listeliyoruz:
Select * from ogrenci where ad in ('faruk','fatih');
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  1    | fatih  | nese     |
|  2    | faruk  | burak    |
-----------------------------

-Adının içerisinde ‘an’ harf grubu geçen tüm öğrencileri listeliyoruz:
Select * from ogrenci where ad like '%an%';
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  3    | tarkan | yildirim |
|  4    | serkan | yildirim |
-----------------------------

-Soyadı ‘yildirim’ olmayan tüm öğrencileri listeliyoruz:
Select * from ogrenci where soyad not in ('yildirim');
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  1    | fatih  | nese     |
|  2    | faruk  | burak    |
-----------------------------

-Adının ikinci harfi ‘a’ olan tüm öğrencileri listeliyoruz:
Select * from ogrenci where ad like '_a%';
-----------------------------
|  id   |  ad    |  soyad   |
-----------------------------
|  1    | fatih  | nese     |
|  2    | faruk  | burak    |
|  3    | tarkan | yildirim |
-----------------------------

Select sorgusunun kullanımına dair örnekleri inceledik. Sizlerin farklı kombinasyonlarla benzer sorguları denemenizi tavsiye ediyorum. Sağlıcakla..