Veritabanı ve Tablo oluşturmak
MySQL veya MariaDB sunucusundaki veritabanlarını ve tabloları yönetmek için komut satırı istemcisi (mysql
veya mariadb
) kullanılır. Grafiksel araçlar da mevcut olsa da, temel işlemleri komut satırından yapmak önemlidir.
MySQL/MariaDB Kabuğuna Bağlanma:
Genellikle root
kullanıcısı ile bağlanılır. Bağlantı yöntemi, kurulum sırasında belirlenen kimlik doğrulama yöntemine göre değişir:
Şifre ile:
Bu komut
root
kullanıcısının şifresini soracaktır.-u
kullanıcı adını,-p
şifre sorulacağını belirtir.Unix Soket Kimlik Doğrulaması ile (Yaygın): Modern kurulumlarda
root
kullanıcısı genellikle şifre yerine sisteminroot
kullanıcısı ile eşleştirilir (örn.auth_socket
veyaunix_socket
eklentisi ile). Bu durumdasudo
kullanarak şifresiz bağlanılabilir:
Başarıyla bağlandıktan sonra mysql>
veya MariaDB [(none)]>
gibi bir istem (prompt) görürsünüz.
Şimdi varolan veritabanlarını listelemek için SHOW DATABASES;
komutunu kullanalım.
Not: MySQL/MariaDB kabuğundaki çoğu SQL komutu noktalı virgül (
;
) ile bitirilmelidir.\g
de alternatif olarak kullanılabilir.help;
veya\h
komutu yardım bilgilerini gösterir.exit
veyaquit
ile kabuktan çıkılır.
Şu an MySQL'in içinde varsayılan sistem veritabanlarını görüyoruz (information_schema
, mysql
, performance_schema
, sys
). Kendi veritabanımızı oluşturalım.
Veritabanı Oluşturma (CREATE DATABASE
):
company
adında yeni bir veritabanı oluşturalım. Türkçe karakterleri ve modern Unicode desteğini düzgün sağlamak için genellikle utf8mb4
karakter seti ve uygun bir collation (örn. utf8mb4_general_ci
veya utf8mb4_unicode_ci
) belirtmek iyi bir pratiktir.
Komut başarıyla çalıştı. SHOW DATABASES;
komutuyla company
veritabanının eklendiğini görebilirsiniz.
Veritabanını Seçme (USE
):
İşlemlerimizi bu veritabanı üzerinde yapmak için onu seçmemiz gerekir:
Veritabanımıza bağlandık. İçerisindeki tabloları görüntülemek için SHOW TABLES; komutunu çalıştıralım.
Gördüğünüz gibi içinde herhangi bir tablo yok. Şimdi member
adında bir tablo oluşturalım.
Tablo Oluşturma (CREATE TABLE
):
CREATE TABLE
komutu ile tablonun adı ve içereceği sütunlar (kolonlar) tanımlanır. Her sütun için bir ad, bir veri tipi ve isteğe bağlı kısıtlamalar (constraints) belirtilir.
Açıklamalar:
id INT NOT NULL AUTO_INCREMENT
:id
adında, tam sayı (INT
), boş olamayan (NOT NULL
), her yeni kayıtta otomatik olarak artan (AUTO_INCREMENT
) bir sütun. Genellikle birincil anahtar olarak kullanılır.first_name VARCHAR(50) NOT NULL
: En fazla 50 karakter uzunluğunda metin (VARCHAR
), boş olamaz.email VARCHAR(100) UNIQUE
: En fazla 100 karakter uzunluğunda metin, bu sütundaki değerler benzersiz (UNIQUE
) olmalıdır (aynı e-posta iki kez girilemez).birthday DATE NULL
: Tarih (YYYY-MM-DD
formatında), boş (NULL
) olabilir.created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
: Zaman damgası (YYYY-MM-DD HH:MM:SS
formatında). Kayıt eklendiğinde varsayılan olarak o anki zaman damgasını alır (DEFAULT CURRENT_TIMESTAMP
).updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
: Zaman damgası. Kayıt eklendiğinde varsayılan olarak o anki zamanı alır ve kayıt her güncellendiğinde otomatik olarak o anki zaman damgasıyla güncellenir (ON UPDATE CURRENT_TIMESTAMP
).PRIMARY KEY (id)
:id
sütununu tablonun birincil anahtarı olarak tanımlar. Birincil anahtar, tablodaki her satırı benzersiz şekilde tanımlar ve genellikleNOT NULL
olmalıdır.ENGINE=InnoDB
: Kullanılacak depolama motorunu belirtir.InnoDB
varsayılan ve en yaygın kullanılan motordur; ACID uyumluluğu (transactions), satır seviyesinde kilitleme ve yabancı anahtar (foreign key) desteği sunar. EskiMyISAM
motoru genellikle özel durumlar dışında tercih edilmez.DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
: Tablo için varsayılan karakter setini ve karşılaştırma (collation) kurallarını belirler.utf8mb4
modern Unicode karakterlerini (emoji dahil) destekler ve genellikle önerilir.
Tablomuz başarıyla oluşturuldu. SHOW TABLES;
komutu artık member
tablosunu listelemelidir.
Tablo Yapısını Görme (DESCRIBE
veya SHOW COLUMNS
):
Oluşturulan tablonun sütunlarını ve özelliklerini görmek için DESCRIBE
veya SHOW COLUMNS FROM
komutları kullanılır:
Sıradaki bölümde tablomuza veri ekleyeceğiz.
Last updated