Monthly Archives: June 2010

MySQL de kullanılan Veri Tipler

MySQL, bir çok veritabanı yönetim sisteminde olduğu gibi SQL dilini desteklemektedir. SQL dili hafızada veri saklayabilmek için çeşitli veri tipleri ile bir bütün haline gelmiştir.

Bu yazımda sizlere MySQL de kullanılan veri tiplerinde bahsetmeye çalışacağım.MySQL de,veri tipleri olarak

4 ana başlık altında incelenebilir.

  • Sayısal veri tipleri
  • Metin veri tipleri
  • Tarih ve zaman
  • Coğrafi veri tipleri

Sayısal veri tipleri

Veri Tipi Byte Minumum Değer Maksimum Değer
TINYINT 1 -128 127
SMALLINT 2 -32768 65535
MEDIUMINT 3 -8388608 16777215
INT 4 -2147483648 4294967295
BIGINT 8 -9223372036854775808 18446744073709551615

Metinsel veri tipleri

Veri Tipi Örnek Veri Örnek Kullanımı

CHAR

CHAR(8) – ’59DC8714’

CREATE TABLE PLAKA (c CHAR(8))

VARCHAR

VARCHAR(2) – ‘59’

CREATE TABLE IL (i VARCHAR(2));

ENUM

ENUM(‘e’, ‘E’, ‘k‘,’K’

CREATE TABLE insan ( cinsiyet ENUM(‘b’, ‘B’, ‘k‘,’K’,’e’,’E’) );

SET

SET(‘a’,’b’,’c’,’d’)

CREATE TABLE sesli (sutun SET(‘a’, ‘e’,‘i’, ‘o’, ‘u’)); -> ‘i,a,o’ – ‘i,i,o,o,a’

Tarih ve Zaman veri tipleri

Veri Tipi “Değer” Şekli

DATETIME

‘0000-00-00 00:00:00’

DATE

‘0000-00-00’

TIMESTAMP

‘0000-00-00 00:00:00’

TIME

’00:00:00′

YEAR

0000

Coğrafi veri tipleri

Bu veri tipleri diğer veri tiplerine oran ile daha gelişmiş ve ayrıntılı olduğu için bu yazımda konu almamaktayım. Veri tipi ile ilgili olarak ayrıntılı bilgiyi bağlantıda bulabilirsiniz.

Bu yazımda özetle MySQL de kullanılan veri tiplerini incelemiş olduk.Konu ile ilgili sorularınızı iletişim bölümünde sorabilirisiniz.

IBRAHIM ATAY

MySQL de Trigger uygulaması

Veritabanı odaklı uygulama geliştir iken, bazen gerçekleşen değişleri takip edilmesi gerekir. İşte o noktada bir veritabanı nesnesi olan tetikleyicileri(Trigger) kullanırız. Bu özelikle bir çok veritabanında olduğunu gibi MySql 5.0 versiyonunda karşımıza çıkmaktadır.

Mysql ‘de trigger nesneleri iki çeşit olarak bulunmaktadır.

  • Veritabanında nesneler üzeride yapılan değişikler için(Drop,Create,Alter),
  • Tablolar içersinde bulundukları kayıtlar, içerisinde yalpan değişler (Insert,Update,Delete)için kullanır.

Bu yazımda tablolar üzerine deki değişimleri inceleyebileceğimizi tetikleyici(trigger) inceleceğim.

Bu uygulamazda insert trigger kullanacağız. İlk olarak uygulama içerisinde kullanacağımız tabloları oluşturalım. Kayıtlar üzerinde yapan değişimleri takip eden bir trigger geliştirelim.

Product tablosu

CREATE TABLE `product` (
  `Id` int(11) NOT NULL auto_increment,
  `ProductName` varchar(255) default NULL,
  `Prices` decimal(10,2) default NULL,
  PRIMARY KEY  (`Id`)
)

State tablosu

CREATE TABLE `state` (
  `Id` int(11) NOT NULL auto_increment,
  `ProductID` int(11) default NULL,
  `RecordDate` datetime default NULL,
  PRIMARY KEY  (`Id`)
)

Şimdi uygulayacağımız senaryodan bahsetmek istiyorum.Product(ürün) tablosuna her kayıt eklediğinde State(Durum) tablosuna product ile ilgili ID ve kayıt tarihi eklenmektedir.Aslında .net de sihirbazla yaptığımız cache sistemine benzeye bir olay hazırlamaktayız.

CREATE TRIGGER [TRIGGER adı] [hangi olayda çalışacağı | insert | update | delete ]
    ON [izlenecek olan tablo adı ] FOR EACH ROW [ tabloda bulunan değişikleri alabilceğiz degşikeni tanımladığı yer]

Yukarıdaki yazım şekline uyarak kullanacağımız trigger hazırlayalım.

Create TRIGGER trg_Product_int
BEFORE INSERT ON product  
    FOR EACH ROW SET @ProductID=New.ID
    insert into state(ProductID,RecordDate) VALUES(@ProductID,NOW())
   

Hazırlamış olduğumuz insert trigger’dır. Yani kayıt eklediğinde çalışan.

Öneri :

Hazırlamış olduğumuz veritabanı nesnelerinde yukarıdaki örnekte de olduğu gibi nesnenin ne olduğu anlatan kısaltmalar koymayı unutmayın

Tetikleyicileri konu alan yazımız burada sonları iken konu ile ilgili sorunlarını iletişim bölümünde iletebilirsiniz.

IBRAHIM ATAY