|
mySQL Dilinin Özellikleri / Veritipleri - MySql Webmaster bilgi bankası, knowledge base Webmaster Araçları
AnaSayfa > MySql > mySQL Dilinin Özellikleri / Veritipleri |
| Kategori | : MySql | Gönderen | : Admin | Tarih | : 2008-10-19 | Puan | : 4 | Katılımcı : 8 | Okunma | : 7072 | | | |
| | Stringler:
Stringler karakter dizileridir. Tek tırnak ''' veya çift tırnak '"' tarafından
kapsanırlar.
Örnek olarak;
'Bir String'
"Başka Bir String."
mySQL stringler, içinde özel karakterlere izin vermektedir. Bu özel karakterlere
escape karakterleri de denir. mySQL aşağıdaki özel karakterleri tanır.
ASCII 0 karakteri yani NUL.
n Yeni satır karakteri (newline).
t Tab karakteri.
r Satir başı karakteri (CR)
b Silme karakteri.
' Tek tırnak karakteri. (`'')
" Çift tırnak karakteri. (`"') character.
\ Ters Bölü yani backslash karakteri (`')
% `%' karakteri. `%' içeren satırlar farklı yorumlanır.
_ `_' Karakteri. `_' içeren satırlar farklı yorumlanır.
Aşağıda tırnak işaretlerini içeren bir SELECT cümleciği görülüyor.
mysql> SELECT 'hello', '"hello"', '""hello""', 'hel"lo', ''hello';
+-------+---------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+---------+-----------+--------+--------+
mysql> SELECT "hello", "'hello'", ""hello"", "hel""lo", ""hello";
+-------+---------+-----------+--------+--------+
| hello | 'hello' | "hello" | hel"lo | "hello |
+-------+---------+-----------+--------+--------+
MySQL> select "BunCümlenDörtnSatırdır.";
+--------------------+
| Bu
Cümle
Dört
Satirdir |
+--------------------+
1 row in set (0.00 sec)
Sayılar:
Sayılar rakamlardan oluşur. Kayan noktalı sayılar "." ile ayrılır. Ve sayılarin
negatif
olduklarını göstermek için "-" kullanılır.
Örnek
1221
0
-32
Kayan noktalı sayılar için,
294.42
-32032.6809e+10
148.00
şeklinde verilebilir.
NULL Degerler:
NULL değerler data içermezler ve sayılar için de 0 değildirler.
mysql> select NULL;
+------+
| NULL |
+------+
| NULL |
+------+
1 row in set (0.01 sec)
mysql> insert into deneme.deneme_1 values (NULL);
Query OK, 1 row affected (0.29 sec)
mysql> insert into deneme.deneme_1 values (3);
Query OK, 1 row affected (0.00 sec)
mysql> select * from deneme.deneme_1;
+--------+
| numara |
+--------+
| 1000 |
| 5 |
| NULL |
| 3 |
+--------+
4 rows in set (0.00 sec)
Tablolarda NULL olan değerler NULL biçiminde tutulurlar. NULL değerli değişkenlerle
yapılan herhangi bir işlemin sonucu da NULL dur.
mysql> select NULL,1+NULL,CONCAT("Görünmez",NULL);
+------+--------+-------------------------+
| NULL | 1+NULL | CONCAT("Görünmez",NULL) |
+------+--------+-------------------------+
| NULL | NULL | NULL |
+------+--------+-------------------------+
1 row in set (0.01 sec)
mysql> insert into deneme_2 values(3,NULL);
Query OK, 1 row affected (0.15 sec)
mysql> insert into deneme_2 values(4,NULL);
Query OK, 1 row affected (0.01 sec)
mysql> select * from deneme.deneme_2 where adi="";
Empty set (0.02 sec)
mysql> select * from deneme.deneme_2 where adi IS NULL;
+--------+------+
| numara | adi |
+--------+------+
| 3 | NULL |
| 4 | NULL |
+--------+------+
2 rows in set (0.01 sec)
Yukardaki örneklerde de görüldüğü gibi, MULL değerli değişkenler, her zaman NULL
biçiminde tutulurlar ve herhangi string işlemlerine veya matematiksel işlemlere
girmezler.
Database, Tablo, Index, Sütun ve Alias'lar
Database, tablo, index ve alias'lar için mySQL'de aynı kurallar geçerlidir.
* Herhangi bir ad, alfanumeric karakter, '_' ve '$' içerebilir.
* Database, tablo, index ve sütun adı en fazla 64 karakter olabilir. Alias adları
ise en fazla 256 karakter olabilir.
* mySQL'de ilk karakter diğer database programlarından farklı olarak herhangi bir
rakamla başlayabilir. Ancak bir ismin tamamı rakamlardan oluşamaz.
* İsimleri 1e biçiminde kullanmaniz önerilmez. Çünkü 1e+1 biçiminde bir ifade
çelişkiye yol açar ve farklı şekillerde yorumlanabilir.
* '.' karakteri isimlerde kullanılamaz. Çünkü '.' karakterini biz sütun işlemleri
için kullanıyoruz.
Büyük-Küçük Harfli İsimler
mySQL'in UNIX versiyonlarında büyük-küçük harf ayrımı vardır (case sensitive). Ama
mySQL'in WIN32 versiyonlarında bu ayrım yoktur (case insensitive). Bu harf ayrımı
aliaslar içinde geçerlidir.
mysql> select * from mysql.UsEr;
Bu ifade çalışmayacaktır. Çünkü mysql database'inde UsEr adlı bir tablo yoktur.
Aynı şekilde;
mysql> SELECT * FROM mysql.user AS a
-> WHERE a.user='root' OR A.user='siseci';
ERROR 1109: Unknown table 'A' in where clause
Bu ifade de çalışmayacaktır. Çünkü alias yapılırken 'a' ismine alias edilmiş.
Fakat kullanımda hem 'a' hem de 'A' bulunmaktadır.
mysql> SELECT * FROM mysql.user AS a
-> where a.USER='root';
+------+------------------+
| user | password |
+------+------------------+
| root | 7a2f0e5f21e11de1 |
+------+------------------+
1 row in set (0.00 sec)
Bu cümlecik ise çalışacaktır. Çünkü aliasların sütun adlarında büyük-küçük harf
ayrımı yoktur (case insensitive).
|
Yorumlar | Henüz Kimse Yorum Yapmamış, ilk yorumu siz ekleyin! | Yorum Ekleme Aparatı | Yorum Eklemek için lütfen sol menuden giris yapınız.. | Toplam 0 yorum listelendi. |
|