30 Temmuz 2015 Perşembe

7.Mysql 'de CASE,IF,IFNULL,NULLIF

                  Mysql'de CASE,IF,IFNULL,NULLIF


CASE


MySQL'de bazı yerlerde (örneğin select işleminde seçilecek değer için) koşul kullanılabilir. Case deyimini bu işlem için kullanabiliriz.


Kullanım Şekli;

Örneklerle açıklayalım:

Bu örneğimizde bolumıd'si değerine göre bölüm adlarını yazdırıcağız.

//Ekrana gelecek sutunlerı belirledik
SELECT ad,soyad,bolumId,case bolumId


//bolumId si değerine göre gelecek yeni değerleri belirledik
When '1' then 'Bilgisayar Öğretmenliği'
When '2' then 'Fizik Öğretmenliği'
When '3' then 'Fizik Bölümü'
When '4' then 'Kimya Öğretmenliği'
When '5' then 'Biyokimya Mühendisliği'



//yeni değerlerin sütun ismini bolumAdi olarak değiştirdik
end as bolumAdi from ogrenci

If kullanımı

Hangi programlama dili olursa olsun programın akışını kontrol etmek, gerektiği gibi
 yönlendirebilmek için bazı kontroller yapmamız gereklidir.  Bir program içerisinde bazı kod satırlarının, belirli şartlar sağlanmadan çalışmasını engellemek için , yada bu durumun  tersi olarak belirli şartlar sağlandığında kod satırlarının çalışmasını sağlamak  için if kontrol deyimine ihtiyaç duyulur.
IF Kontrol Yapısı  PHP'de IF yapısı kodların belli bir koşula bağlı olarak çalıştırılmasını sağlar.

Kullanımı: 

Eğer bir IF deyiminden sonra gelen ifade sonucu TRUE olan boolean bir değer verirse, IF deyiminden sonra gelen koşulun gerçekleşmesi durumunda yapılacak işlem veya işlemler PHP tarafından çalıştırılır, aksi takdirde (FALSE bir değer geri verirse), dikkate alınmaz. 
Örnek 1:

IFNUL

Ifnull kullanımı içinde verilen iki değer için eğer ilk değer boş(null) değilse sonuca ilk değeri,  boş ise sonuca ikinci değeri döndürür. Ifnull sonuca bir string  yada integer değerlerini döndürür.

Kullanım Şekli;
















örnek;

SELECT IFNULL(1,2); 

SONUÇ:1

  1. SELECT IFNULL(NULL,2);  

SONUÇ:2


NULLIF

Nullif koşul ifadesinde eğer içinde verilen iki değer eşit ise boş(null) değerini değil ise ilk değeri değer sütunumuza döndürecektir.

Kullanım Şekli;


NULLIF(ifade1, ifade2);
örnek;

  1. SELECT NULLIF(2,2);  

SONUÇ:NULL

SELECT NULLIF(2,3); 

SONUÇ:2












6.Mysql 'de "Join" Kullanımı

                         Mysql'de "Join " Kullanımı

SQL sorgulama dilinde birden fazla tablo ile çalışıyorsak tablolar arasında bir ilişki kurmak durumda kalabiliriz. Kısaca join; birbiriyle alakalı olan iki veya daha fazla tablolardan tek seferde veri çekme/filtreleme/sıralama işlemi için JOIN yapısından faydalanırız. Joinler 4 gruptan oluşur.bunlar;
  1. Inner Join
  2. Left Join
  3. Right Join
  4. Full Join


1.INNER JOİN

  • Inner join en çok kullanılan join türüdür ve her iki tablodaki ortak kayıtları döndürür.sol tablodaki(kitaplar)ve sağ tablodaki (yazarlar) veriler her iki  tablonunda birleşme şartı  "yazarlar.id = kitaplar.yazar_id" 'i sağlayarak geri dönerler. 

2.LEFT JOIN

Sol (kitaplar) tablodaki tüm değerler sağ tablodaki (yazarlar) değerlerle eşleşerek geri döner.  Kitaplar tablosunda olup ama yazarlar tablosunda olan kayıtların değeri NULL olarak geri  döner.
Null değerlerinin geri dönmesini istemiyorsak.

3. RIGHT JOIN

Sağ tablodaki (yazarlar) tüm değerler sol (kitaplar) tablodaki değerlerle eşleşerek geri döner.  Yazarlar tablosunda olup ama kitaplar tablosunda olmayan kayıtların değeri NULL olarak geri döner.

4.FULL JOİN
Full join left join ve right join ile birlikte kullanılarak ya da sadece sorgu olarak yazdığımızda iki tablonun birleşimini verir.


5.Mysql Komutları ile Veritabanı Oluşturma, Tablo Oluşturma ,Veri Ekleme, Silme, Güncelleme İşlemleri

Mysql Komutları ile Veritabanı Oluşturma, Tablo Oluşturma ,Veri Ekleme, Silme, Güncelleme İşlemleri


Mysqual kolay erişim için birçok veri depolamaya yarar.Veritabanları oldukları haliyle insanlar tarafından kolaylıkla okunamaz.Mysqual veritabanları;forumlar,ziyaretçi defteri gibi birçok uygulama tarafından gereklidir.Sadece veritabanı olan kullanıcılar (email hesaplarından veya diğer kullanıcılardan farklı) okuma veya yazma işlemleri için veritabanına erişebilirler.


Mysql’de Tablo Oluşturmak;


Öncelikle veritabanımızı oluşturuyoruz. Daha sonra cpanelde isek cpanel veritabanları grubundaphpmyadmin bağlantısı var ona tıklayarak açalım. Kendi bilgisayarımızda yani localhostta çalışıyorsak internet tarayıcımızın adres satırına “localhost/phpmyadmin” yazarak veritabanı kontrol panelini açalım. Burada kullanıcı adı ve şifre sorabilir cpanelde kendi oluşturduğumuz kullanıcı adı ve şifredir. Localhostta ise programın kurulumunda tanımlanan kullanıcı adı ve şifredir. 
.  Phpmyadmin ekranı gelecektir. Burada veritabanları arasından kendi oluşturduğumuz (tablo eklemek istediğimiz) veritabanını seçiyoruz. Aşağıdaki gibi ekran gelecektir.


Burada işlem yapmadan önce nasıl bir tablo yapacağımızı belirlememiz gerekmektedir. Ben localhosttaki deneme_vt veritabanını seçtim ve içine duyurular diye tablo eklemek istiyorum. Duyurular tablosunda kayitno, duyurubaslik, duyurumetni olmasını istiyorum. Yani 3 alan (3 sütun) olacak.
Yukarıdaki ekrandaki 1 numaralı alana tablomuzun adını (duyurular) yazıyoruz. Sütun sayısı yazan yere ise alan sayımızı (3 alan belirlemiştik) yazıyoruz. Bu alanları yazdıktan sonra Git butonuna basarak tablomuzun yapısal ayarlarını yapacağımız aşağıdaki sayfa gelecek.


Ben resimden gördüğünüz gibi doldurdum. Buradaki en çok kullanacağımız alanları açıklayayım.
*Sütun: Oluşturacağımız alanın adı.  

*Türü: Oluşturulan alanın kayıt türü. Burada tamsayı değer tutulacaksa int, belirli büyüklükte karakterler tutulacaksa varchar, uzun metinler tutulacaksa text seçiyoruz. Bütün türleri açıklamayı gerek görmedim.

*Uzunluk/Değerler: Burası ise karakter uzunluğunun belirlendiği alandır. Text için gerek yoktur. Diğerleri için karakter uzunluğu belirtilmelidir.

*Karşılaştırma: Bu alan ise yazı dilinin seçildiği alandır. Ben Türkçe seçtim.

*İndeks: Bu alan ise tablomuza birincil anahtar belirleyeceğimiz alandır. Burada kayıt numarası ile işlem yapacağımız için kayitno alanını primary seçtim.

*Auto_increment: Bu alan işaretli ise buranın değeri otomatik olarak verilir. Kayitno alanını için işaretledim bu da kayıt eklerken kayitno için değer göndermeyeceğim veritabanı otomatik sayılarla buraya değer verecektir. 1,2,3,… gibi.
Yukarıdaki alanları doldurduktan sonra Kaydet butonuna tıklayarak tablomuzu oluşturuyoruz. Hepsi bu kadar. Yukarıdaki adımları tekrarlayarak istediğiniz kadar tablo oluşturabilirsiniz.

MYSQL’DE TABLOYA NASIL VERİ EKLENİR ?

MySQL’de veritabanı ve tablo oluşturmadan sonra sıra geldi tabloya veri eklemeye.MySQL’de tabloya veri ekleme“INSERT INTO” komutu ile yapılır.Bu veri ekleme komututabloya veri eklerken iki şekilde kullanılır.
Birincisi veri ekleme komutunu yazıp daha sonra hangi tabloya veri eklemek istediğimizi yazarak ve hemen ardına “()” parantez içerisinde direk olarak veri değerini yazarak tabloya veriyi ekleyebilirsiniz.
İkinci veri ekleme yöntemi ise tabloya veri ekleme komutunu yazıp daha sonra veri ekleyeceğimiz tabloyu tablonun adını yazarak ve önce tabloya eklemek istediğimiz sütunları “()” parantez içerisinde belirtip daha sonra “VALUES” komutunu ekleyip veri değerlerini tekrar “()” parantez içerisinde girerek veri değerlerini tabloya ekleyebilirsiniz

MYSQL’DE VERİ EKLEME KOMUTU KULLANIMI NASILDIR ?

MySQL’de veri eklemeyi yukarıda yazılı olarak anlattım.Kullanımını gösterecek olursak kullanımları aynen aşağıda gösterdiğim şekildeki gibi olacaktır.
Kullanımları bir önceki dersimiz olan MySQL’de Tablo Oluşturma Komutları Ve Veri Türlerin’de oluşturduğum tablo yapısına göre göstereceğim.
// Birinci Bahsettiğim Kullanım
INSERT INTO `kodbara` VALUES('1','Hakan','17','Kobra_fighterTR');
 
// İkinci Bahsettiğim Kullanım
INSERT INTO `kodbara` (`id`, `ad`, `yas`, `nick`) VALUES('1','Hakan','17','Kobra_fighterTR');
Eğer “id” kısmını boş bırakırsanız id değeri otomatik olarak MySQL tarafından değer atanacaktır.

Kayıt Silmek

Tablolarda yer alan kayıtların tamamını ya da WHERE koşul ile belirttiğimiz koşullara uyanları silmek için DELETE FROM tablo_adı komutunu kullanırız:

DELETE FROM uyeler WHERE yas < 18;

Yukarıdaki sorgu ile tablomuzda "yas" sütunundaki değer 18'in altında olan tüm kayıtlar silinecektir.
Eğer WHERE belirtmemiş olsaydık. İlgili tablodaki tüm veriler silinecektir.

DELETE FROM uyeler;

Tablo Silmek

Bunun için DROP TABLE tablo_adı kullanılır. Tablo tamamen ortadan kalkar ve içerisindeki tüm veriler de silinir:

DROP TABLE uyeler;

Veritabanı Silmek
Bir veritabanını kaldırmak içerisinde barındırdığı tüm tabloları ve kayıtları da silmek anlamına gelmektedir. Bunun için de DROP DATABASE veritabanı_adı kullanılır:

DROP DATABASE veritabanim;