Bir veritabanı bir veya birden çok tablo içerir.
Veritabanı Oluştur
CREATE DATABASE ifadesi MySQL de veritabanı oluşturur.
Syntax
CREATE DATABASE veritabani_adi
Yukardaki ifade oluşan veritabanından bilgi sorgulaması için mysql_query() fonksiyonu kullanılır.
Bu fonksiyon MySQL bağlantısına istek ve sorgu gönderir.
Örnek
Aşağıdaki örnekte “my_db” adında bir veritabanı oluşturduk:
<?php
$con = mysql_connect(“localhost”,”serpito”,”abc123″);
if (!$con)
{
die(‘Bağlanamadı: ‘ . mysql_error());
}
if (mysql_query(“CREATE DATABASE my_db”,$con))
{
echo “veritabanı oluşturuldu”;
}
else
{
echo “veritabanı oluşturulmadı: ” . mysql_error();
}
mysql_close($con);
?>
Tablo Oluştur
CREATE TABLE ifadesi MySQL veri tablosu oluşturur.
Syntax
CREATE TABLE tablo_adi
(
satir_adi1 veri_tipi,
satir_adi 2 veri_tipi,
satir_adi 3 veri_tipi,
…….
)
CREATE TABLE ifadesi mysql_query() fonksiyonu fonksiyonunun muhattabı olarak yer alır ve sorgularda oluşturulan tablolar incelenir.
Örnek
Aşağıdaki örneğimizde, “adi” , “soyadi” ve “yas” olarak 3 sutunluk bir “arkadas” tablosu oluşturalım:
<?php
$con = mysql_connect(“localhost”,”serpito”,”abc123″);
if (!$con)
{
die(‘Baglamadi: ‘ . mysql_error());
}
// Veritabanı oluştur
if (mysql_query(“CREATE DATABASE my_db”,$con))
{
echo “Veritabanı yaratıldıs”;
}
else
{
echo “veritabanı oluşturulamadı: ” . mysql_error();
}
// my_db veritabanında tablo oluştur
mysql_select_db(“my_db”, $con);
$sql = “CREATE TABLE arkadas
(
adi varchar(15),
soyadi varchar(15),
yas int
)”;
mysql_query($sql,$con);
mysql_close($con);
?>
Önemli: Tablo eklemek için öncelikle bağlanılacak veritabanı seçilmeli.mysql_select_db() fonksiyonu ile veritabanı seçilir..
Not:varchar değeri için veritabanı alanı oluşturduğumuzda alanın maximum karakter uzunluğunu belirtmemiz gerekmektedir. Örnek; varchar(16).
MySQLVeri Türleri
Numerik Veri Türleri
Tanımı
int(size)
smallint(size)
tinyint(size)
mediumint(size)
bigint(size) Yanlızca integer(tamsayı) değeri tutar.Max. karakter genişliği parametre olarak alınır.
decimal(size,d)
double(size,d)
float(size,d) Sayıları kesirleri ile birlikte tutar. Max. karakter genişliği parametre olarak alınır.Ondalık sayı uzunluğu “d” parametresi ile tutulur.
Text Veri Türleri Tanımı
char(size) Sabit bir string uzunluğu tutar(harf, rakam,ve özel karakter).Parantez içinde sabit uzunluk tutulur.
varchar(size) Değişken bir string uzunluğu parametre olarak tutulur(harf, rakam,ve özel karakter).Parantez içinde sabit uzunluk tutulur.
tinytext Değişken bir stringi max.255 karakter uzunluğu ile tutar.
text
blob Değişken bir string I max. 65535 karakter uzunluğu ile tutar.
mediumtext
mediumblob Değişken bir stringi max. 16777215 karakter uzunluğu ile tutar.
longtext
longblob Değişken bir stringi max. 4294967295 karakter uzunluğu ile tutar.
Tarih Veri Türleri Tanımı
date(yyyy-mm-dd)
datetime(yyyy-mm-dd hh:mm:ss)
timestamp(yyyymmddhhmmss)
time(hh:mm:ss) Tarih ve zaman değerlerini tutar.
Karışık Veri Türleri Tanımı
enum(value1,value2,ect) ENUM ENUMERATED listesinin kisaltılmış halidir. () içinde 65535 değer tutabilir.Parantez içine geçersiz bir değer girildiğinde default boş değer atanır.
set SET, ENUM a benzer. Farkli olarak 64 değerlidir
Primary Keys ve Auto Increment Alanları
Her tabloda primar key(Birincil Anahtar) alanı bulunmalıdır.
Primary key tablodaki herhangi bir satıra tek bir kimlik verir.Her primary key tabloda da tek olmalıdır. Ayrıca primary key alanı kesinlikle boş “null” olamaz.Çünkü database sunucusu kayıtları almak için primary keyden değer isteyecektir.
Primary key alanı herzaman indexlenir.Bu istisnasız bir kuraldır!
Aşağıdaki örneğimizde , personID alanını primaryu key olarak tanımlıyoruz.Görelim;
Örnek
$sql = “CREATE TABLE person
(
personID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(personID),
FirstName varchar(15),
LastName varchar(15),
Age int
)”;
mysql_query($sql,$con);