Category Archives: MySQL

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

MySql de Tablo Oluşturmak

Bu yazımda MySql veritabanında nasıl tablo oluşturacağımızda bahsedeceğim. Öncelik ile veritabanında tablo neden kullanılır konusunda bahsetmek istiyorum.

Tablolar veritabanında verileri kayıt etmek amacıyla kullanılan, veri havuzlardır. Şimdi bir tablo oluşturma şablonun bakalım.

CREATE TABLE tablom (

–tabloda yer alacak alanları burada
tanımlanır.

  )

Yukarıda şablonu gördükten sonra hazır bir tabloya bakalım.

CREATE TABLE tablom (

  Id int(11) NOT NULL auto_increment,

  Ad varchar(50) default NULL,

  Soyad varchar(50) default
NULL,

  PRIMARY KEY  (Id)

)

Yukarıda da gördüğünüz gibi mysql veritabanına bir tablo tanımlamak bu kadar kolay. Gördüğünüz gibi birkaç farklık dışında mssql veritabanındaki script çok benzemektedir. Bu yazım burada sona ermektedir.

MySQL de Stored Procedure kullanımı

Merhaba arkadaşlar

Bildiğiniz gibi mysql web uygulamlarında en çok kullanılan veritabanınlarından bir olmaktadır.bu yazımda ise sizlere mysql 5.0 ile birlikte gelen yeniliklerden olan Stored Procedure kullanımından bahsetmek istiyorum.

Şimdi sizler ile birlikte basit bir procedure yazalım .(genel taslak)

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_KayitEkle`()

BEGIN

–sql sorgularını yaza biliriz.

END

Şimdi ise parametre alan bir Procedure yazalım.

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_KayitEkle`(

IN _Id int ,

IN _Ad varchar(50), — veri türlerini yazmamız gerek

IN _Soyad varchar(50))

BEGIN

insert into ilktablom(id,ad,soyad)

values(_Id,_Ad,_Soyad);

END

Yazmış olduğumuz Stored Procedure ‘leri inceleyelim; dikkat ederseniz tanımlama yaparken IN diye bir terim kullandım, bu ve diğer terimleri aşağıda belirtilmektedir.

IN : Veri girmek için

OUT : Sadece veri çıkışı

İNOUT : Hem veri girmeyi hemde veri çıkışı için kullanır.

Mysql de Stored Procedure kullanımları bu şekilde yapılmaktadır. Gördüğünüz üzeri MSSQL veritabanındanda fazla bir fark görünmemektedir. Bu sebetten dolayı mysql ile çaıştığımız uygulamlarda performans kazanmak için kullanmamız gereke bir çözümde üretmiş olduk. Çalışmanın yararlı olması dileği ile herkese kolay gelsin.