Ara 13th, 2008
yazar Zihni.
Aşağıdaki gibi bir tarih stringimiz olsun, Örneğin MySQL datetime alanındaki veriler gibi.
‘2008-12-13 06:11:25′
Bunu Yıl, Ay, Gün, Saat, Dakika, Saniye şeklinde parse etmek isteyelim.
1
2
3
4
5
6
7
8
| $tarih = "2008-12-13 06:11:25";
preg_match("/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/",$tarih,$diziTarih);
$yil = $diziTarih[1]; // 2008
$ay = $diziTarih[2]; // 12
$gun = $diziTarih[3]; //13
$saat = $diziTarih[4]; //06
$dakika = $diziTarih[5]; //11
$saniye = $diziTarih[6]; //25 |
preg_match işlevi düzenli ifade ile verilen eşleşmeyi bulduğu takdirde bunu $diziTarih dizisine doldurur.
$diziTarih[0] tüm eşleşmeyi verir yani ‘2008-12-13 06:11:25′ değerini.
Diğer bölümler 1 inci anahtardan başlayarak devam eder.
Eki 6th, 2008
yazar Zihni.
CONCAT(str1,str2,...)
MySql CONCAT fonksiyonu iki stringi birleştirir ve tek bir string yapar.
Çalışanlar tablosu aşağıdaki gibi olsun.
+-----+-----+--------+
| id | adi |soyadi |
+-----+-----+--------+
| 1 |Ali |Kaya |
| 2 |Veli |Soylu |
| 3 |Esra |Güzel |
+-----+-----+--------+
adi ve soyadı kolonlarını birleştirmek isteyelim:
mysql> SELECT CONCAT(adi,soyadi) AS adi_ve_soyad FROM calisanlar
+-----+----------+
| adi_ve_soyadi |
+----------------+
|AliKaya |
|VeliSoylu |
|EsraGüzel |
+----------------+
Ağu 11th, 2008
yazar Zihni.
inner join: birleştirme yapılan tablolardaki join koşuluna(ON) uyan satırları getirir.
left join: birleştirme yapılan tablolardan, soldaki tabloyu referans alarak, join koşuluna uymayan satırları da getirir.
Müşteriler tablosu aşağıdaki gibi olsun.
+-----+-----+------+
| musteri_id | adi |
+-------------+-----+
| 123 |Ali |
| 124 |Veli |
| 125 |Ayşe |
+-------------+-----+
Siparişler tablosu ise aşağıdaki gibi olsun.
+------------+------------+------+
| sipari_id | musteri_id |tutar |
+------------+------------|------+
| 1 |123 |100 |
| 2 |124 |200 |
| 3 |123 |300 |
+------------+------------+------|
Inner join'e örnek: sipariş veren müşteriler
->SELECT m1.adi,s.tutar FROM musteriler AS m INNER JOIN siparisler AS s
ON m.musteri_id = s.musteri_id
+------+------------+
| adi | tutar |
+------+------------+
| Ali |100 |
| Vali |200 |
| Ali |300 |
+------+------------+
Left join'e örnek sipariş vermeyen müşteriler
->SELECT m1.adi,s.tutar FROM musteriler AS m LEFT JOIN siparisler AS s
ON m.musteri_id = s.musteri_id WHERE s.tutar is null
+------+------------+
| adi | tutar |
+------+------------+
| Ayşe |NULL |
+------+------------+
May 27th, 2008
yazar Zihni.
ADDDATE(tarih,INTERVAL ifade birim)
Tarih hesaplamaları için kullanılır.
tarih paremetresi başlangıç değeridir. Date veya Datetime tipinde bir değer almalıdır.
İkince parametre ise iki bölümden oluşur;
her bir birim değeri için beklenen ifade değerleri aşağıdaki tabloda gösterilmiştir..
| Birim değeri |
beklenen ifade değeri |
| MICROSECOND |
Mikrosaniyeler |
| SECOND |
Saniyeler |
| MINUTE |
Dakikalar |
| HOUR |
Saatler |
| DAY |
Günler |
| WEEK |
Haftalar |
| MONTH |
Aylar |
| QUARTER |
Çeyrekler |
| YEAR |
Yıllar |
| SECOND_MICROSECOND |
Saniyeler.Mikrosaniyeler |
| MINUTE_MICROSECOND |
Dakikalar.Mikrosaniyeler |
| MINUTE_SECOND |
Dakikalar:Saniyeler |
| HOUR_MICROSECOND |
Saatler.Mikrosaniyeler |
| HOUR_SECOND |
Saatler:Dakikalar:Saniyeler |
| HOUR_MINUTE |
Saatler:Dakikalar |
| DAY_MICROSECOND |
Günler.Mikrosaniyeler |
| DAY_SECOND |
Günler Saatler:Dakikalar:Saniyeler |
| DAY_MINUTE |
Günler Saatler:Dakikalar |
| DAY_HOUR |
Günler Saatler |
| YEAR_MONTH |
Yıllar-Aylar |
Örnek
mysql> SELECT ADDDATE('2008-06-01', INTERVAL 31 DAY);
-> '2008-07-02'
May 11th, 2008
yazar Zihni.
Tüm integer tipler için kullanılabilir. Bir alan unsigned olarak işaretlendiğinde sadece pozitif değer alabilir.
Örneğin tinyint alan unsigned olarak işaretlendiğinde 0 ile 255 arasında bir değer alabilir. Normalde tinyint bir alan -128 ile 127 arasında bir değer alabilir.