PHP MySQL Veritabanı

Veritabanı bir veya daha fazla tabloyu içerir.

Veritabanı oluşturma

CREATE DATABASE ifadesi, MySQL'de veritabanı oluşturmak için kullanılır.

Sözdizimi

CREATE DATABASE database_name

Üstteki cümleleri PHP çalıştırmak için mysql_query() fonksiyonunu kullanmamız gerekiyor. Bu fonksiyon, MySQL bağlantısına sorgu veya komut göndermek için kullanılır.

Örnek

Aşağıdaki örnekte, "my_db" adında bir veritabanı oluşturduk:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Bağlantı kurulamadı: ' . mysql_error());
  }
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Veritabanı oluşturuldu";
  }
else
  {
  echo "Veritabanı oluşturma hatası: " . mysql_error();
  }
mysql_close($con);
?>

Tablo oluşturma

CREATE TABLE, MySQL'de veritabanı tablosu oluşturmak için kullanılır.

Sözdizimi

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
.......
)

Bu komutu çalıştırmak için mysql_query() fonksiyonuna CREATE TABLE ifadesi eklemem gerekiyor.

Örnek

Aşağıdaki örnek, "Persons" adında bir tablo oluşturmayı ve bu tablonun üç sütunu olduğunu gösterir. Sütun adları "FirstName", "LastName" ve "Age" dir:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Bağlantı kurulamadı: ' . mysql_error());
  }
// Veritabanı oluşturma
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Veritabanı oluşturuldu";
  }
else
  {
  echo "Veritabanı oluşturma hatası: " . mysql_error();
  }
// my_db veritabanında tablo oluştur
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons" 
(
FirstName varchar(15),
LastName varchar(15),
Yaş int
)";
mysql_query($sql,$con);
mysql_close($con);
?>

Önemli Not:Tabloyu oluşturmadan önce, önce veritabanını seçmeniz gerekmektedir. mysql_select_db() fonksiyonu ile veritabanını seçin.

Açıklama:varchar türündeki veritabanı alanını oluşturduğunuzda, o alanın en fazla uzunluğunu belirtmeniz gerekmektedir, örneğin: varchar(15).

MySQL veri türleri

kullanılabilir çeşitli MySQL veri türleri:

sayısal veri türü Açıklama
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
sadece tam sayıları destekler. size parametresinde sayının en büyük değerini belirtin.
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

ondalık sayıları destekler.

size parametresinde sayının en büyük değerini belirtin. d parametresinde ondalık nokta sağındaki rakamların en büyük değerini belirtin.

metin veri türü Açıklama
char(size)

sabit uzunluklu stringleri destekler.(Harfler, rakamlar ve özel karakterler içerebilir).

size parametresinde sabit uzunluk belirtin.

varchar(size)

değişken uzunluklu stringleri destekler.(Harfler, rakamlar ve özel karakterler içerebilir).

size parametresinde en fazla uzunluğu belirtin.

tinytext değişken uzunluklu stringleri destekler, en fazla uzunluk 255 karakterdir.
  • text
  • blob
değişken uzunluklu stringleri destekler, en fazla uzunluk 65535 karakterdir.
  • mediumtext
  • mediumblob
değişken uzunluklu stringleri destekler, en fazla uzunluk 16777215 karakterdir.
  • longtext
  • longblob
değişken uzunluklu stringleri destekler, en fazla uzunluk 4294967295 karakterdir.
tarih veri türü Açıklama
  • date(yyyy-aa-dd)
  • datetime(yyyy-aa-dd saat:mm:ss)
  • timestamp(yyyyayyymmddhhmmss)
  • time(saat:mm:ss)
Tarih veya zamanı destekler
Karışık Veri Tipleri Açıklama
enum(value1,value2,ect) ENUM, ENUMERATED listesinin kısaltmasıdır. Körüklere en fazla 65535 değer konabilir.
set SET, ENUM ile benzerdir. Ancak, SET en fazla 64 liste öğesi sahip olabilir ve birden fazla choice barındırabilir

Anahtar ve Otomatik Artırma Alanları

Her tablo için bir anahtar alanı olmalıdır.

Anahtar, tablo satırlarını benzersiz olarak tanımlamak için kullanılır. Tabloda her anahtar değerin benzersiz olması gerekir. Ayrıca, anahtar alanının boş olmaması gerekir, çünkü veritabanı motoru, kayıtları belirlemek için bir değer gerektirir.

Anahtar alan her zaman indekslenmelidir. Bu kurala istisna yoktur. Anahtar alanını indekslemek zorundasınız, böylece veritabanı motoru, bu anahtar değerine sahip satırları hızlı bir şekilde belirleyebilir.

Aşağıdaki örnek, personID alanını anahtar alan olarak ayarlar. Anahtar alan genellikle ID numarasıdır ve genellikle AUTO_INCREMENT ile ayarlanır. AUTO_INCREMENT, yeni kayıt eklendiğinde bu alanın değerini tek tek artırır. Anahtar alanın boş olmamasını sağlamak için bu alana NOT NULL ayarı eklememiz gerekmektedir.

Örnek

$sql = "CREATE TABLE Persons" 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
FirstName varchar(15),
LastName varchar(15),
Yaş int
)";
mysql_query($sql,$con);