Tablo Oluşturma (Create Table)
Veritabanı oluşturmada bir sonraki adım, tablo oluşturmaktır. Bunu, create table MySQL komutunu kullanarak yapabiliriz. Tablo oluşturma işlemi yapılmadan önce mutlaka veritabanı seçilmelidir (use komutuyla). Bir create table ifadesinin genel formu şöyledir.
Create Table <tablo adı>
alan_adı veri_türü [Default ifade][alan_kısıtlaması],
| Tablo Adı |
: |
Tabloya verilecek isim (örnek: mezunkayit), |
| Alan Adı |
: |
Tabloda yer alacak bilgi alanlarının adı (örnek: ogr_no, adi, soyadi), |
| Alan Veri Türü |
: |
O alana girilecek bilginin türü (sayı, metin, tarih), |
| Default İfade |
: |
O alan belirtilmezse başlangıçta atanacak değer, |
| Alan Kısıtlaması |
: |
O alanla ilgili kısıtlama (boş olmaması, o alana sadece E veya K girilmesi gibi kısıtlamalar), |
| Tablo Kısıtlaması |
: |
Her kaydın belirli alanlara göre kısıtlanması (kayıtların tek olmasını sağlamak, başka bir tabloyla ilişkilendirmek) |
MySQL’de üç temel veri tipi vardır. Bunlar; sayısal (numeric), tarih ve saat (date and time) ve karakter katarıdır (string). Bu kategorilerin her birinin içinde de pek çok tip bulunur. Her bir tipin hafızada çeşitli depolama boyutları vardır. Veri türleri ve özelliklerini aşağıdaki tabloda görülmektedir.
| Alan Veri Türleri |
|||
| Veri Türü |
Aralık |
Kapladığı Yer |
|
|
TINYINT [(m)][UNSIGNED] [ZEROFILL] |
-128 ile 127 arasında |
1 byte |
|
|
SMALLINT [(m)][UNSIGNED] [ZEROFILL] |
-32768 ile 32767 arasında |
2 byte |
|
|
MEDIUM (m)][UNSIGNED][ZEROFILL] |
-8388608 ile 8388607 arasında |
3 byte |
|
|
INT[(m)][UNSIGNED][ZEROFILL] |
-2147483648 ile 2147483647 arasında |
4 byte |
|
|
BIGINT [(m)][UNSIGNED][ZEROFILL] |
-9223372036854775808 ile 9223372036854775807 arasında |
8 byte |
|
|
FLOAT |
Virgülden sonra 4 yada 8 haneli |
4 byte |
|
|
FLOAT (m,n) |
İşaretli Küçük Reel Sayı |
4 byte |
|
|
DOUBLE PRECISION [(m,n)] |
İşaretli Normal Reel Sayı |
8 byte |
|
|
REAL [(m,n)] |
Double ile aynıdır |
8 byte |
|
|
DECIMAL [(m,n)] |
Double ile aynıdır |
(m+n) byte |
|
|
NUMERIC [(m,n)] |
Decimal ile aynıdır |
(m+n) byte |
|
| Tarih ve Saat (Date and Time) Veri Türleri |
|||
| Veri Türü |
Aralık |
Kapladığı Yer |
|
|
TIMESTAMP [(m)] |
O andaki sistem zamanını tutar (tarih ve saat) |
4 byte |
|
|
DATE |
YYYY-MM-DD,YY-MM-DD,YYMMDD formatında 0000-0-00 ile 9999-12-31 arasında |
4 byte |
|
|
TIME |
HH:MM:SS,HHMMSS,HHMM,HH |
3 byte |
|
|
DATETIME |
YYYY-MM-DD HH:MM:SS |
8 byte |
|
| Alfasayısal (Karakter-String) Veri Türleri |
|||
| Veri Türü |
Aralık |
Kapladığı Yer |
|
|
CHAR (m)[BNIARY] |
M:1 ile 255 arası BINARY kullanılırsa aramalarda büyük/küçük harf arımıdır. |
m byte |
|
|
VARCHAR |
(m) [BINRY] Char ile aynıdır, fakat kapladığı alan açısından farklıdır. |
(Girilen uznlk+1) byte |
|
|
TINYTEXT(m),[BINARY] |
Char ile aynıdır, fakat kapladığı yer açısından farklıdır. |
(Girilen uznlk+1) byte |
|
|
TINYTEXT ve TINYBLOB |
Varchar ile aynıdır. Küçük/büyük harf ayrımı vardır. Uzunluk belirtilmez. |
(Girilen uznlk+1) byte |
|
|
TEXT ve BLOB |
Küçük/Büyük harf ayrımı vardır. Uzunluk belirtilmez. Max. 65535 karakter |
(Girilen uzunluk+2) byte |
|
|
MEDIUMTEXT ve MEDIUMBLOB |
Küçük/Büyük harf ayrımı vardır. Uzunluk belirtilmez. Max. 16777216 karakter. |
(Girilen uznlk + 3) byte |
|
|
LONGTEXT ve LONGBLOB |
Küçük/Büyük harf ayrımı vardır. Uzunluk belirtilmez. Max. 4294967295 karakter |
(Girilen uznlk+4) byte |
|
|
ENUM(‘değer1’,’değer2’,….,’değern’) |
Verilen değerlerden bir tanesi mutlaka seçilidir. (Alan kısıtlamasında kullanılır) |
En fazla 2 byte |
|
|
SET (‘değer1’, ’değer2’,…., ’değern’) |
Verilen değerlerden birden çok seçilebilir. |
1-8 byte arasında |
|
Tablo 1.1. Alan Veri Türü
Örnek; Mezun olan öğrenciler için mezun bilgilerinin tutulacağı bir tablo oluşturalım. Bu tablo için aşağıdaki alan adları bulunacaktır. Tablo adını kayit olarak kabul edelim.
adi : Öğrenci adı,
soyadi : Öğrenci soyadı,
ogrno : Öğrenci No,
Kayit tablosunun oluşturulması;
Örnek; Bir alışveriş sitesinde müşteri bilgilerini tutacak bir tablo için aşağıdaki alanlar bulunacaktır. Tablo adı musteri olsun.
adres : Müşteri adresi,
sehir : Şehir,
tlfon : Telefon,
Örnek; Bir satış sitesine konulacak ürünlerin tutulacağı urun adlı tabloyu aşağıdaki gibi oluşturalım.
Urun_kodu : Satılacak ürün kodu,
Urun_markasi : Satılacak ürünün markası,
Urun_turu : Satılacak ürün türü,
Urun_fiyati : Satılacak ürünün fiyatı,
Tabloları Silmek (Drop Table)
Bazen bir tablonun tamamından kurtulmak isteyebilirsiniz. Bunun için DROP TABLE ifadesiyle yapabilirsiniz. Genel kullanımı aşağıdaki gibidir.
DROP TABLE tablo_adi
Örnek; musteri tablosunu silmek için aşağıdaki ifade kullanılır.
