13 Mart 2017 Pazartesi

SQL SORGULARI

1-SELECT İFADESİ
Veri tabanında belirlediğimiz kritere uygun verileri getirme işlemini select ifadesi yapıyor.Aşağıda yazımında da  gördüğümüz gibi select ifadesinden sonra getirmek istediğimiz kolonun adını from ifadesiylede hangi tablodan getirmemiz gerektiğini yazarız. Select * ifadesi ise o tabloya ait tüm verileri getirme işlemini yapar.

SELECT Kolon_adi FROM Tablo_adi 
SELECT * FROM Tablo_adi

Kişiler tablosu
Id               Ad                                 Soyad                               Şehir
1                Ayşegül                       Hatipoğlu                          BURSA
2                Miraç                            Aydın                                ANKARA
3                Mehmet                       Emin                                  ERZURUM        

Elimizde yukarıdaki gibi bir tablo olsun. "SELECT Ad , Soyad , Şehir  FROM Kişiler"  ifadesi sırasıyla isim soyisim ve şehir özelliklerini tablo şeklinde geri döndürür yani tüm kişilere ait özelllikleri listeler. "SELECT * FROM" dersek Id özelliğide gelir.


2-WHERE İFADESİ

Eğer getirilmesini istediğimiz veriler belli kriterlere sahip ise where anahtar kelimesi ile koşulumuzu tanımlamalıyız. Bunu da yine bir örnek üzerinden yazalım.


Kişiler tablosu

Id               Ad                                 Soyad                               Şehir
1                Ayşegül                       Hatipoğlu                          BURSA
2                Miraç                            Aydın                                ANKARA
3                Mehmet                       Emin                                  ERZURUM       
4                Kübra                           Ateş                                  GÜMÜŞHANE
5                Sümeyye                     Ay                                      ERZURUM
6                Yusuf                            Hatipoğlu                         BURSA

"SELECT * FROM Kisiler WHERE Şehir = 'ERZURUM'"  ifadesi şehir özelliği ERZURUM olan kişileri tüm özelliklerini getirir .Yani tablo çıktımız şu şekilde olacaktır:
3                Mehmet                       Emin                                  ERZURUM       
5                Sümeyye                     Ay                                      ERZURUM


"SELECT * FROM Kisiler WHERE Id>2"   ifadesi Id özelliği 2 'den büyük olan kişileri tüm özelliklerini getirir .Yani tablo çıktımız şu şekilde olacaktır:
3                Mehmet                       Emin                                  ERZURUM       
4                Kübra                           Ateş                                  GÜMÜŞHANE
5                Sümeyye                     Ay                                      ERZURUM
6                Yusuf                            Hatipoğlu                         BURSA


3-AND OR İFADELERİ

Birden fazla koşul tanımlamak istediğimizde işimize oldukça yarayan ifadelerdir. İfadelerin Türkçe karşılıklarındanda anlaşılacağı üzere AND ifadesinin çalışması için iki koşulunda doğru olması gerekir.OR da ise koşullardan birinin doğru olması yeterlidir.

Kişiler tablosu

Id               Ad                                 Soyad                               Şehir
1                Ayşegül                       Hatipoğlu                          BURSA
2                Miraç                            Aydın                                ANKARA
3                Mehmet                       Emin                                  ERZURUM       
4                Kübra                           Ateş                                  GÜMÜŞHANE
5                Sümeyye                     Ay                                      ERZURUM
6                Yusuf                            Hatipoğlu                         BURSA
7                Kübra                           Mumcu                                İSTANBUL

"SELECT * FROM Kisiler WHERE Ad='Kübra' AND Id=4" ifadesinin çıktısı 4 idsine sahip Kübra isimli kişinin tüm özelliklerini getirir.
4                Kübra                           Ateş                                  GÜMÜŞHANE
"SELECT * FROM Kisiler WHERE Ad='Kübra' OR Id=5" ifadesinin çıktısı 5 idsine sahip yada  Kübra isimli kişinin tüm özelliklerini getirir.
4                Kübra                           Ateş                                  GÜMÜŞHANE
5                Sümeyye                     Ay                                      ERZURUM
7                Kübra                           Mumcu                                İSTANBUL

"SELECT * FROM Kisiler WHERE Ad='Kübra' AND ( Id=7 OR Şehir=BURSA)" ifadesinin çıktısı Adı Kübra olan kişilerden  id=7 olan yada şehir=BURSA olan kişileri tüm özelliklerini getirir.
7                Kübra                           Mumcu                               İSTANBUL


4-ORDER BY

SELECT ile çektiğimiz kayıtları Order  by ile kolona göre sıralarız.Küçükten büyüğe yada büyükten küçüğe olabilir.Azalan sıra için DESC artan sıra için ASC kullanılır.
Id               Ad                                 Soyad                               Şehir
1                Ayşegül                       Hatipoğlu                          BURSA
2                Miraç                            Aydın                                ANKARA
3                Mehmet                       Emin                                  ERZURUM       
4                Kübra                           Ateş                                  GÜMÜŞHANE
5                Sümeyye                     Ay                                      ERZURUM
6                Yusuf                            Hatipoğlu                         BURSA
7                Kübra                           Mumcu                                İSTANBUL


"SELECT * FROM Kisiler ORDER BY Ad" :İsim kolonuna göre küçükten büyüğe sıralar.
1                Ayşegül                       Hatipoğlu                          BURSA
4                Kübra                           Ateş                                  GÜMÜŞHANE
7                Kübra                           Mumcu                                İSTANBUL
3                Mehmet                       Emin                                  ERZURUM       
2                Miraç                            Aydın                                ANKARA
5                Sümeyye                     Ay                                      ERZURUM
6                Yusuf                            Hatipoğlu                         BURSA

"SELECT * FROM Kisiler ORDER BY Ad DESC" :İsim kolonuna göre büyükten küçüğe sıralar.
6                Yusuf                            Hatipoğlu                         BURSA
5                Sümeyye                     Ay                                      ERZURUM
5-DISTICT:
Select ifadesi ile sorgu yaptığımızda aynı bilgiden birden fazla kayıtta bulunması durumunda bu veri tekrarına engel olmak için kullanır yani tekrarlı verileri bir kere gösterir.
"SELECT * DISTINCT FROM tablo_adi"
şeklinde kullanılır.

6-SEÇİLEN BİR SÜTUNA TAKMA İSİM ATAMA: 
Sorgulama yaparken cok fazla işimize yarayan bir özelliktir. 
Tablo isimlerini akılda tutmak hem zordur hem uzun isimler kullanılması durumunda kod kalabalığı yapar. Ayrıca aynı tabloyu karmaşık sorgularda farklı varlıklar için kullanmamız gerekebilir ve bu durumda isimlendirme yapmaya mecbur kalabiliriz.
"SELECT sütun_adi AS takma_ad"
7-TOP:
Belirli bir SQL sorgusunun ilk belli sayıdaki kaydını almaya yarar.
"SELECT TOP sayi sütun_adi FROM tablo_adi " Şeklinde kullanılabilir.
8-GROUP BY:
Tablomuzda ortak özellikleri olan kayıtların birbiri ile ilişkilendirilmiş


şekilde sorgulanmasıdır. HAVİNG ifadesi ise gruplandırma koşulunu
belirtmek için kullanılır. Genelde bir arada kullanımları mevcuttur.


SELECT sütun_adi FROM tablo_adi
WHERE koşul
GROUP BY g_sütun_adi
HAVING BY koşul ORDER BY sütun_adi
9-IN-NOT:
İç içe sorgularda kullanılır.Böyle sorgularda önce içteki sorgu
sorgu sonra dıştaki sorgu gerçekleşir. Yani birinden çıkan sonuç

diğerinde kullanılabilir.



10-AVG() COUNT:
AVG istediğimiz sorgu sonucuna göre sütun değerlerinin
ortalamasını verir. COUNT ise istediğimiz sütunun barındırdığı
kayıt sayısını verir.


11-EXCEPT:
Adından da anlaşılacağı üzere fark işlemidir. İlk sorguda
bulunalardan EXCEPT sorgusundan sonra bulunmayanları
listelemek için kullanılır.
11-EXIST:
Alt sorgudaki şartların yerine getirildiği durumlardaüstteki sorgu
değer üretir. Bu ifade doğru ya da yanlış sonuç dödürür.

ORM KULLANIMI

ORM(OBJECT RELATİONAL MAPPİNG) NEDİR ?

ORM bir ilişkisel veri tabanıyla nesneyi bağlamak için meta
data tanımlayan programlama tekniğine verilen isimdir. C# Java gibi nesneye yönelimli programlama dilleriyle yazılır.Veritabanımızda yaratmış olduğumuz her bir nesneye karşılık kod tarafında bir nesne oluşturan program şeklinde düşünülebilir.Bu programlar bizim yazmamız gereken kodu otomatik olarak üretiyorlar. ORM ilişkisel veri tabanı ve Nesneye yönelimli programlama arasındaki veri dönüşümünü sağlar aralarında ki bir köprü gibi düşünülebilir Veritabanındaki tabloları sınıflara çevirir. ORM sayesinde kod aşamasında veri tabanında daha az zaman harcarız. Daha az SQL sorgusu yazarız ve tüm nesneye yönelimli programlama dilleri için mevcuttur. ORM kullanımının biraz daha oturması için bir örnek üzerinde inceleyelim.Bunun için Microsoft SQL Server Management Studio programında hazırlamış olduğum Database'in Diagram görüntüsü üzerinden ilerleyelim. Görüntü şu şekildedir:

Database görüldüğü gibi oluşturulduktan sonra visual studio programıyla database'i gerekli işlemler ile birleştirdim. Bu işlemler visual studio programının kullanımıyla alakalı olduğundan onun detayına değinmeyeceğim sadece konunun anlaşılması açısından bu örnek üzerinden ilerliyorum. Bu database'e karşılık aşağıdaki şekilde tablolara karşılık gelen class'ların bulunduğu visual ekran oluşturuldu. Yani bu tabloları biz elle oluşturmadık iki programı ORM kullanımıyla birleştirerek tablo oluşturma aşamasını programa yaptırmış olduk. 

Görüldüğü üzere ORM kullanımı işimizi oldukça kolaylaştırdı. ORM'nin bize sağladığı bir diğer kolaylığın da kod kalabalığından kurtardığından bahsetmek olduğunu söylemiştik yani kodları biz yazmadıkta bunu program bizim için otomatik olarak yaptı. Visual studio'nun database için oluşturduğu kod kısımları aşağıdaki gibidir.
namespace odevson
{
    using System;
    using System.Collections.Generic;
   
    public partial class authordetail
    {
        public int authorID { getset; }
        public string first { getset; }
        public string last { getset; }
        public string birth { getset; }
        public string death { getset; }
    }
}
_______________________________________________________________________________
namespace odevson
{
    using System;
    using System.Collections.Generic;
   
    public partial class ebook
    {
        public int etextID { getset; }
        public string title { getset; }
        public Nullable<int> copyright { getset; }
        public Nullable<int> download { getset; }
        public string filename { getset; }
    }
}
_______________________________________________________________________________
namespace odevson
{
    using System;
    using System.Collections.Generic;
   
    public partial class lccsubject
    {
        public int subjectID { getset; }
        public string subject { getset; }
    }
}
_______________________________________________________________________________
namespace odevson
{
    using System;
    using System.Collections.Generic;
   
    public partial class lchsubject
    {
        public int subjectID { getset; }
        public string subject { getset; }
    }
}
Bu oluşturulan kod kısmının bir bölümüdür ve görüldüğü üzere işimizi bir hayli kolaylaştırmıştır.

Hiç yorum yok:

Yorum Gönder