Mysql Veri Türleri
mySQL veri
türleri
MySQL`de bir çok veri türü oluşturulabilir. Ancak Web
programları açısından önemli olan bir kaçı ve özellikleri
şöyle saralanabilir:
INT Tamsayı: -2147483648`den 2147483647 kadar değişen diziye "signed"
(işaretli), 0`dan 4294967295`e kadar değişenine "unsigned"
(işaretsiz) denir.
VARCHAR(n) n sayısını geçmemek şartıyla değişen boyutta
karakter olabilir.
CHAR(n) Kesinlikle n sayısı kadar karakter olabilir.
TEXT En fazla 65535(2^16-1) karakter alabilen metin alanı.
MEDIUMTEXT En fazla 16777215(2^24-1) karakter alabilen metin
alanı.
DATE 1000-01-01`den 9999-12-31`e kadar değişebilen tarih
alanı.
TIMESTAMP 1 Ocak 1970`den 18 Ocak 2038`e kadar olan ve
Yıl+Ay+Gün+Saat+Dakika+Saniye biçimindeki zaman bilgisi.
MySQL`de bir tablo oluşturmak için gerekli CREATE TABLE komutu
şöyle kullanılır:
SQL:
CREATE TABLE uyeler (adi VARCHAR(30), soyadi VARCHAR(30),
üye_no INT ) ;
Bu komutla, "uyeler" isimli üç sütunlu bir tablo oluşturulur:
birinci ve ikinci sütunlarda en fazla 30, karakterlik değişen
boyutta alfanümerik değerler yer alırken, üçüncü sütunda
sadece tam sayı olan değerler bulunabilir. Bu komutla
oluşturulan tabloya INSERT INTO komutuyla veri girebilirsiniz:
SQL:
INSERT INTO uyeler (adi, soyadi, uye_no) VALUES
(`Muharrem`,`Taç`,`1234`)
Bir tablonun oluşturulması ile içine veri yerleştirilmesi
komutları ayrı ayrı zamanlarda, ayrı işlemler olarak
yapılabileceği gibi, toplu bir metin halinde, otomatik olarak
da yapılabilir.
MySQL veritabanından bilgi edinmek için SELECT komutunu
kullanırız:
SQL:
SELECT * FROM uyeler ;
Bu, MySQL`e, uyeler adlı tablodaki bütün değerlerin okunmasını
bildirir. Buradaki "*" işareti, "bütün sütunlardaki bütün
değerler" anlamına gelir. Diyelim ki yukardıda oluşturduğumuz
tablonun sadece "adi" ve "soyardi" sütunlarındaki bilgileri
almak isteseydik, bu komutu şöyle yazacaktık:
SQL:
SELECT adi soyadi FROM uyeler ;
Bir veritabanındaki bilgilerin yenileriyle değiştirilmesini,
yani veritabanı dosyasının güncelleştirilmesini UPDATE komutu
sağlar. Bu komutu kullanarak veritabanımızdaki bazı
kutucukların içindeki bilgileri değiştirebiliriz. Veritabanı
dosyalarını güncelleştirme zorunluğu bulunması ise bize
veritabanı tasarımının çok önemli olduğunu gösterir. Örneğin:
SQL:
UPDATE uyeler SET adi = "Şahika" ;
Bu komut, veritabanındaki bütün satırlarda, birinci sütundaki
değerleri "Şahika" olarak değiştirmekle sonuçlanırdı. Amacımız
bu ise, sorun değil; ancak çoğu kez MySQL`e hangi satırda
(veritabanı tekniğindeki terimle söylersek, hangi kayıtlarda)
değişiklik yapılacağını daha ayrıntılı sölememiz gerekir.
Veritabanı dosyamızı oluştururken, her kaydın diğer kayıtlarda
olmayan (unique) bir sütun (bunu da veritabanı tekniğindeki
terimle söylersek. alan) bulunmalıdır, ki MySQL`e yapılacak
değişikliğin tam yerini söyleyelim. Örneğin
SQL:
UPDATE uyeler SET adi = "Şahika" WHERE uye_no = 1234;
MySQL bu komutu alınca sadece üye numarası 1234 olan kişinin
(yani uye_no alanındaki değer 1234 olan kaydın) "adi"
alanındaki değeri silecek ve yerine verdiğimiz yeni değeri
yazacaktır. Böyle birincil alanı bulunan, iyi düşünülmüş bir
veritabanından seçim yapmak da kolay olur. Örneğin:
SQL:
SELECT adi soyadi FROM uyeler WHERE uye_no >= 123;
deyimi ile tablomuzda bulunan kayıtlardan sadece üye numarası
123`den büyük olanları seçebiliriz.
Bir MySQL veritabanındaki kaydı silmek için DELETE komutunu
kullanırız:
SQL:
DELETE FROM uyeler WHERE uye_no = 1234;
Vveritabanında sadece bir kayıtta üye numarası 1234 olacağı
için bu komutla sadece bir satır silinecektir. Bu komutu,
diyelim ki üyelik kaydını yenilememiş kişilerin tümünü silmek
için de kullanabiliriz. Veritabanımızda üyelik kaydının
yenilendme tarihini gösteren bir alan bulunduğunu varsayalım:
SQL:
DELETE FROM uyeler WHERE yenileme_tarihi < 2000-01-31;
Bu komutla, üyeliğini yenileme tarihi 31 Ocak 2000`den eski
olan bütün üyelerimizin kaydını veritabanından silmiş oluruz.
Bu komutların MySQL`in DOS komut işlemcisi ile komutsatırından
yapılacağını belirtmemiz gerekir. Bunu yapabilmek için MySQL
Server`ın Windows`da çalıştırılması gerekir. MySQL`in paylaşım
sürümünü kullanmak için Windows sistemlerinde mysqld-shareware.exe
programını çalıştırmanız gerekir. Bunun için DOS komut
istemcisi penceresinde "C:/mysql/bin" dizinine giderek, şu
komutu vermemiz yeter:
mysqld-shareware
MySQL sürücülerinizin kişisel Web sunucusunda başarıyla
çalıştığına, kitapçığın baş tarafında belirttiğimiz küçük
alıştırmayı yaparak emin olduktan sonra gerçek bir veritabanı
dosyası yazabiliriz.
Yukarıda gördüğümüz komutları komut istemci satırından tek tek
verebileceğimiz gibi, bir düzyazı dosyasında toplayıp, MySQL
programına da otomatik olarak yaptırabiliriz. Bu dosyaya,
içindeki verileri alıp veritabanına boca edeceğimiz için, Dump
dosyası denir.
Aşağıdaki metni MySQL programının kurulu olduğu dizindeki
/bin/ alt-dizinine (muhtemelen c:mysqlbin) veri.dump adıyla
kaydedin (Notpad kullanıyorsanız, dosya adına .txt eklendiğine
dikkat edin!)
SQL:
CREATE TABLE calisanlar ( id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id), adi VARCHAR(20), soyadi VARCHAR(20), adres
VARCHAR(60), pozisyon VARCHAR(60));
INSERT INTO calisanlar VALUES (1 , `Sahika` ,`Tabak` ,`PCLife
Dergisi, Istanbul` , `Yazar`);
INSERT INTO calisanlar VALUES (2 , `Muharrem` , `Tac` , `Işık
Kultur Merkezi, Bursa` , `Yonetmen`);
Bu metnin sadece üç satır olmasına, örneğin Notpad`de Düzen
menüsünde Sözcük Kaydır maddesinin işaretsiz olmasına dikkat
edin. Daha sonra yine DOS komut istemcisi penceresinde MySQL
programının dizininde /bin alt-dizinine gidin ve şu komutu
yazın:
mysqladmin -u root create veri
MySQL veri adlı veritabanının oluuştuğunu bildirecektir. Şimdi
içi boş bir veri dosyamız oldu. Yazdığımız dump dosyasındaki
bilgileri veritabanı dosyasına işletmek işini MySQL
yapacakatır. Bunu, şu komutla yapabiliriz:
mysql u root veri < veri.dump
İşlerin yolunda gidip gitmediğini c:mysqldata dizininde veri
adlı bir klasör oluşturulduğunu kontrol ederek anlayabiliriz.
Bu klasörün içinde calisanlar.frm, calisanlar.isd ve
calisanlar.ism adında dosyalar bulunması gerekir.
|