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

6 thoughts on “MySQL Create

  • Aşağıda ki kodda tablo olusturmaya çalışıyorum ama olmuyor ekran çıktısı “koyler tablosu olusturulamadi.Hata:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘{ koyad char(30), koy_ilce char(30), koy_il char(30), koy_paket char(30)’ at line 1” şeklinde oluyor baya uğraştım ama çözemedim,Php designer 2008 de yazıyorum ve herhangi bi’syntax hatası vermiyor, hatalı olduğum yeri belirtip düzeltirseniz çok sevinirim.

    “””$tb_koyler=mysql_query(“CREATE TABLE koyler {
    koyad char(30),
    koy_ilce char(30),
    koy_il char(30),
    koy_paket char(30),
    koy_nufus int,
    koy_yonetici char(30),
    koy_editor char(30),
    koy_link blob,
    abone_tarihi date,
    koy_banner_url text,
    PRIMARY KEY(koyad);
    }”);
    if (!$tb_koyler) echo “koyler tablosu olusturulamadi.Hata:”.mysql_error().””;
    else echo “koyluler tablosu olusturuldu “;
    “””

  • Değişken atamalarında çakışma var Şenol, autoincrement sütun ekleyip , onu primary key atarsan sorun ortadan kalkar, ayrıca CRATE TABLE koyler sorgusunun içeriğini normal parantez kullanmalıydın, o şekilde hatra veriyor ,benim derlediğim çalışan sorgu şu şekilde ;

    CREATE TABLE koyler(
    id int NOT NULL AUTO_INCREMENT ,
    koyadchar( 30 ) ,
    koy_ilcechar( 30 ) ,
    koy_ilchar( 30 ) ,
    koy_paketchar( 30 ) ,
    koy_nufus int,
    koy_yoneticichar( 30 ) ,
    koy_editorchar( 30 ) ,
    koy_link blob,
    abone_tarihi date,
    koy_banner_url text,
    PRIMARY KEY ( id )
    )

  • Çok Teşekkürler,sayenizde sorun çözüldü.

    Kod yazımı esnasında sık sık siteye girmek ve geçiş yapmak bazen benim için sıkıntı oluyor, bu kısımdaki makalelerinizi kağıda basıp o şekilde kullanabilirmiyiz?

    Çok teşekkürler.

  • öncelikle çok güzel bi anlatım hakkaten süper. emeğine eline sağlık

    mysql_query($sql,$con); talo örneğinde geçiyo bu komut tam olarak ne demek? yer mi değiştiriyo?

    diğeri
    if (mysql_query(”CREATE DATABASE my_db”,$con))
    burada if sorgusundan tam anlam çıkaramadım? $con bağlantısı ile birtablo oluştur diyo ama if ile query kafamı karıştırdı.

    ilgin için çok teşekkür ederim…

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir