SQL Create

 

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);