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..


17 Aralık 2014 Çarşamba

PL/SQL(2): Cursor Kullanımı



    Selamlar, bu yazıda pl/sql cursor kullanımı anlatılacaktır. Öncelikle, kullanacağımız basit bir table oluşturuyoruz;

    CREATE TABLE dersler
    (
        id INTEGER,
        ad VARCHAR2(50)
 
    );

Tabloya kayıtları insert ediyoruz;


    insert into dersler(id,ad) values(1,'A');

    insert into dersler(id,ad) values(2,'B');

    insert into dersler(id,ad) values(3,'C');

    insert into dersler(id,ad) values(4,'D');

    insert into dersler(id,ad) values(5,'E');



Cursor kullanıma dair ilgili script örneğini şu şekildedir;


DECLARE
   c_id dersler.id%type;
   c_ad dersler.ad%type;

   CURSOR c_dersler is
          SELECT id,ad FROM dersler where id>3;

BEGIN

   OPEN c_dersler;--cursor acılıyor.

   LOOP

      FETCH c_dersler into c_id, c_ad;--cursordaki o anki satır verileri degiskenlere aktarılıyor.

      EXIT WHEN c_dersler%notfound;--cursorda veri kalmadıgı surece dongu bir sonraki veriye gecerek devam ediyor.
   
      IF c_id<5 THEN--id'si 5 den kücük kontrolü yapılıyor.
        dbms_output.put_line(c_id || '=>' || c_ad);
      END IF;
   
   END LOOP;

   CLOSE c_dersler;--islem sonrasında cursor kapatılıyor.

END;
/


Scripti çalıştırdığınızda output olarak göreceğiniz değer ;  4=>D


 Cursor kullanımı ile;

1)İstediğiniz tablo ile ilgili olarak tüm dataların kontrollerini dongu vasıtasıyla satır satır kontrol edebilmeniz mümkündür.
2)İlgilendiğiniz tablodaki istediğiniz şartlara uyan dataları çekebilmenizi ve işleyebilmenizi sağlar.

    Script örneğinde; dersler tablosunda yer alan ders adlarını ve id bilgilerinden id'si 3 den büyük dataları cursor ile ilişkilendirmiş oluyoruz. Döngü içerisinde ise cursor da bulunan id'si 3 den büyük verilerden id'si 5 den küçük olan (id=4) ekrana basılmış oluyor.

    Bu ders ile cursor kullanımına dair fikir edinebilmeniz amaçlanarak basit bir örnek üzerinden anlatım gerçekleştirilmiştir. Faydalı olması dileğiyle, sağlıcakla...




11 Aralık 2014 Perşembe

Android Studio Türkçe Karakter Sorunu




    Merhabalar, bu yazıda Android Studio da uygulama geliştirirken yaşanabilecek Türkçe karakter sorununun çözümü anlatılacaktır.

    Uygulamanızın yer aldığı;




   ekrandaki işaretli alanı açıyoruz. Açılan ekranda;



    şekilde, işaretli kod parçasını ekliyoruz. Projeyi kaydederek compile etmeniz gerekmektedir. Sonrasında projenizdeki Türkçe karakter sorunu çözülmüş olacaktır.


    Faydalı olması dileğiyle, sağlıcakla...