Bu eğitimde, size MySQL CREATE TABLE deyimini kullanarak bir veritabanında nasıl yeni bir tablo oluşturulacağını göstereceğiz.
MySQL CREATE TABLE sözdizimi
Veritabanında yeni bir tablo oluşturmak için MySQL CREATE TABLE deyimini kullanırsınız. CREATE TABLE ifadesi, MySQL’deki en karmaşık ifadelerden biridir.
Aşağıdaki, CREATE TABLE ifadesinin basitleştirilmiş versiyonunun sözdizimini gösterir:
1 2 3 4 5 | CREATE TABLE [IF NOT EXISTS] tablo_adi( sutun_listesi ) ENGINE=kayit_moturu |
Sözdizimi daha ayrıntılı olarak inceleyelim.
İlk önce, CREATE TABLE yan tümcesinden sonra oluşturmak istediğiniz tablonun adını belirtirsiniz. Tablo adı bir veritabanında benzersiz olmalıdır.
IF NOT EXISTS, oluşturduğunuz tablonun veritabanında zaten mevcut olup olmadığını kontrol etmenizi sağlayan isteğe bağlı bir maddedir. Bu durumda, MySQL tüm ifadeyi görmezden gelecek ve yeni bir tablo yaratmayacaktır. Zaten var olan yeni bir tablo oluşturma hatasını önlemek için her CREATE TABLE deyiminde IF EXISTS IF kullanmanız önerilir.
İkinci olarak, sutun_listesi bölümündeki tablo için sütunların bir listesini belirtirsiniz, sütunlar virgüllerle ayrılır.
Üçüncüsü, isteğe bağlı olarak ENGINE yan tümcesinde tablonun depolama motorunu belirleyebilirsiniz. InnoDB ve MyISAM gibi herhangi bir depolama motorunu kullanabilirsiniz. Depolama motorunu açıkça bildirmezseniz, MySQL varsayılan olarak InnoDB kullanacaktır.
InnoDB, MySQL sürüm 5.5’ten bu yana varsayılan depolama motoru oldu. InnoDB depolama motoru, ACID işlemi, referans bütünlüğü ve kilitlenme kurtarma gibi ilişkisel bir veritabanı yönetim sisteminin birçok avantajını sunar. Önceki sürümlerde, MySQL MyISAM’i varsayılan depolama motoru olarak kullanıyordu.
CREATE TABLE ifadesinde tablo için bir sütun tanımlamak için aşağıdaki söz dizimini kullanırsınız:
1 2 3 | sutun_adi veri_tipi(uzunluk) [NOT NULL] [DEFAULT deger] [AUTO_INCREMENT] |
Yukarıdaki söz diziminin en önemli bileşenleri:
- sutun_adı, sütunun adını belirtir. Her sütun belirli bir veri türüne ve maksimum uzunluğa sahiptir, örneğin VARCHAR (255)
- NOT NULL, sütunun NULL’a izin vermediğini gösterir.
- DEFAULT değer, sütunun varsayılan değerini belirtmek için kullanılır.
- AUTO_INCREMENT, tabloya yeni bir satır eklendiğinde sütun değerinin otomatik olarak bir tarafından üretildiğini gösterir. Her tablonun bir ve yalnızca bir AUTO_INCREMENT sütunu vardır.
Birincil anahtar olarak bir sütun veya bir sütun kümesi ayarlamak istiyorsanız, aşağıdaki sözdizimini kullanırsınız:
1 2 3 | PRIMARY KEY (sutun1,sutun2,...) |
MySQL CREATE TABLE deyimi örneği
Aşağıdaki ifade, gorevler adında yeni bir tablo oluşturur:
1 2 3 4 5 6 7 8 9 10 11 12 | CREATE TABLE IF NOT EXISTS gorevler ( gorev_id INT AUTO_INCREMENT, baslik VARCHAR(255) NOT NULL, baslama_zamani DATE, bitis_zamani DATE, durum TINYINT NOT NULL, oncelik TINYINT NOT NULL, tanim TEXT, PRIMARY KEY (gorev_id) ) ENGINE=INNODB; |
Görevler tablosu aşağıdaki sütunlara sahiptir:
- gorev_id, bir otomatik artan sütuntur. gorev_id sütunu için bir değer belirtmeden tabloya yeni bir satır eklemek için INSERT deyimini kullanırsanız, gorev_id sütunu bir taneden başlayarak otomatik olarak oluşturulan bir tamsayı alır. gorev_id birincil anahtar sütundur.
- baslik sütunu, maksimum uzunluğu 255 olan değişken karakterli bir dize sütunudur. Bu, uzunluğu bu sütuna 255’ten büyük bir dize ekleyemeyeceğiniz anlamına gelir. NOT NULL, sütunun bir değeri olması gerektiğini belirtir. Başka bir deyişle, bu sütunu eklerken veya güncellerken bir değer sağlamanız gerekir.
- baslama_zamini ve bitis_zamani, NULL kabul eden tarih sütunlarıdır.
- durum ve oncelik NULL’a izin vermeyen TINYINT sütunlardır.
- tanim sütunu NULL kabul eden bir TEXT sütunu.
Bu derste, veritabanında yeni bir tablo oluşturmak için MySQL CREATE TABLE ifadesinin nasıl kullanılacağını öğrendiniz.
1 Yorum