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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?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
12345678910111213 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:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 <?php$con = mysql_connect(“localhost”,”serpito”,”abc123″);if (!$con){die(‘Baglamadi: ‘ . mysql_error());}// Veritabanı oluşturif (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şturmysql_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
|
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
1234567891011121314151617 $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);