Message: | Trying to access array offset on value of type null |
File: | /home/romarekl/public_html/sosyallift.com/ow_plugins/forum/controllers/topic.php |
Line: | 136 |
MYSQL’DE AS, LIMIT VE ORDER BY İFADELERİ
MySQL’de verileri okurken, güncellerken, silerken veya ilişkilendirirken bazı durumlarda (genellikle) bir takım ek yapılara ihtiyaç duyarız. Bu ek yapılar kritik önem teşkil
edebilmektedirler. Çünkü; Onlarca, yüzlerce, binlerce, yüzbinlerce hatta milyonlarca veri içeren bir tabloda okuma, güncelleme, silme ve ilişkilendirme işlemleri tamamen hatasız
ve yazılımcının isteği doğrultusunda olması gerekir.
Örneğin;
Tablolar birbirine bağlandığında / ilişkilendirildiğinde (join) genellikle bir veya daha fazla sütunun isimleri her bir tabloda aynı şekilde yazılmış olabileceğinden dolayı aynı
sütun isimleri yazılımcının fazlasıyla kafasını karıştıracak ve doğal olarak yüksek ihtimalle hataya sebebiyet verecektir.
Yada 10.000 adet veri içeren bir tablonun içerdiği veriler ekrana çekileceğinde hepsinin tek bir sayfada listelenmesi yada tek bir düzenle listelenmesi, korkunç bir görünüm,
aşırı yavaşlık, çok büyük trafik kullanımı, tam bir kargaşa ve kullanıcı kaybı demektir. İşte bu gibi durumlarla karşılaşmamamız için MySQL’in çok önemli üç ifadesi devreye giriyor.
AS, LIMIT ve ORDER BY. Bu ifadeleri inceleyecek olur isek;
AS : MySQL sunucusundaki database (veritabanı) içerisinde bulunan herhangi bir tablonun, belirtilecek olan herhangi bir sütununa alias (takma ad) atamak için
kullanılır.
Örnek kullanımlar;
SELECT id AS Kimlik
<İşlem sayesinde artık id isimli sütuna Kimlik ismiyle erişilebilecektir.>
SELECT id AS Kimlik, isim AS KullaniciIsmi, soyisim AS KullaniciSoyismi
<İşlem sayesinde artık id isimli sütuna Kimlik, isim isimli sütuna KullaniciIsmi, soyisim isimli sütuna da KullaniciSoyismi isimleriyle erişilebilecektir.>
SELECT sum(puan) AS Kullanicinin EnYuksekPuani
<İşlem sayesinde artık puan isimli sütunun toplamına KullanicininEnYuksekPuani ismiyle erişilebilecektir.>
SELECT min(puan) AS KullanicininEnDusukPuani, max(puan) AS KullanicininEnYuksekPuani
<İşlem sayesinde artık puan isimli sütunun en düşük değerine KullanicininEnDusukPuani ismiyle, en yüksek değerine ise KullanicininEnYuksekPuani ismiyle erişilebilecektir.>
LIMIT : MySQL sunucusundaki database (veritabanı) içerisinde bulunan herhangi bir tablonun işlem esnasında tüm verilerini işlemek yerine sadece belirtilen adet veya aralıklar kadar işlemek istenildiğini belirtmek için kullanılır.
Örnek kullanımlar;
LIMIT 10
<İstenilen işlemde ilk kayıttan başlanılarak, 10 adet kayıt işleme tabi tutulacak anlamına gelir.
Sonuç : 1,2,3,4,5,6,7,8,9,10>
LIMIT 10, 10
<İstenilen işlemde 10. kayıttan başlanılarak, 10 adet kayıt işleme tabi tutulacak anlamına gelir.
Sonuçlar : 10,11,12,13,14,15,16,17,18,19>
LIMIT 800, 2
<İstenilen işlemde 800. kayıttan başlanılarak, 2 adet kayıt işleme tabi tutulacak anlamına gelir.
Sonuçlar : 800, 801>
ORDER BY : MySQL sunucusundaki database (veritabanı) içerisinde bulunan herhangi bir tablonun verilerine işlem esnasında hangi sıra / sıralar dahilinde erişilmek
istenildiğini belirtmek için kullanılır. İki farklı parametreden birinin yazılması gerekmektedir. Bu parametreler ASC ve DESC’dir. ASC, a’dan z’ye / küçükten büyüğe sıralama yapar.
DESC, z’den a’ya / büyükten küçüğe sıralama yapar.
Örnek kullanımlar;
ORDER BY id ASC
<İstenilen işlemde id sütununa göre bir sıralama yapılacağı ve bu sıralamanın küçükten büyüğe olarak yapılacağı anlamına gelir.
Sonuç : 1,2,3,4,5,6,7,8,9,10…>
ORDER BY id DESC
<İstenilen işlemde id sütununa göre bir sıralama yapılacağı ve bu sıralamanın büyükten küçüğe olarak yapılacağı anlamına gelir.
Sonuç : …10,9,8,7,6,5,4,3,2,1>
ORDER BY isim ASC
>İstenilen işlemde isim sütununa göre bir sıralama yapılacağı ve bu sıralamanın a’dan z’ye yapılacağı anlamına gelir.
Sonuç : Hakan, Onur, Volkan>
ORDER BY isim DESC
<İstenilen işlemde isim sütununa göre bir sıralama yapılacağı ve bu sıralamanın z’den a’ya yapılacağı anlamına gelir.
Sonuç : Volkan, Onur, Hakan>
ORDER BY isim ASC, bakiye ASC
<İstenilen işlemde önce isim sütununa göre bir sıralama yapılacağı ve bu sıralamanın a’dan z’ye yapılacağı, ayrıca bakiye sütununun da sıralama yapılması gerektiğini ve bu sıralamanın da büyükten
küçüğe olarak yapılacağı anlamına gelir.
Sonuç : Hakan 0, Hakan 700, Hakan 1500, Onur 300, Volkan 700, Volkan 1500>
ORDER BY isim ASC, bakiye DESC
<İstenilen işlemde önce isim sütununa göre bir sıralama yapılacağı ve bu sıralamanın a’dan z’ye yapılacağı, ayrıca bakiye sütununun da sıralama yapılması gerektiğini ve bu sıralamanın da büyükten
küçüğe olarak yapılacağı anlamına gelir.
Sonuç : Hakan 1500, Hakan 700, Hakan 0, Onur 300, Volkan 1500, Volkan 700>
ORDER BY bakiye ASC, isim ASC
<İstenilen işlemde önce bakiye sütununa göre bir sıralama yapılacağı ve bu sıralamanın büyükten küçüğe yapılacağı, ayrıca isim sütununun da sıralama yapılması gerektiğini ve bu sıralamanın da a’dan
z’ye olarak yapılacağı anlamına gelir.
Sonuç :0 Hakan, 300 Onur, 700 Hakan, 700 Volkan, 1500 Hakan, 1500 Volkan>
ORDER BY bakiye ASC, isim DESC
<İstenilen işlemde önce bakiye sütununa göre bir sıralama yapılacağı ve bu sıralamanın büyükten küçüğe yapılacağı, ayrıca isim sütununun da sıralama yapılması gerektiğini ve bu sıralamanın da z’den
a’ya olarak yapılacağı anlamına gelir.
Sonuç :0 Hakan, 300 Onur, 700 Volkan, 700 Hakan, 1500 Volkan, 1500 Hakan>
Ek kaynak:
Ek Kaynak :
MYSQL’DE KOŞUL OPERATÖRLERİ VE WHERE İFADESİ