{"id":38288,"date":"2026-01-27T21:40:47","date_gmt":"2026-01-27T18:40:47","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38288"},"modified":"2026-01-27T21:40:47","modified_gmt":"2026-01-27T18:40:47","slug":"sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/","title":{"rendered":"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi<\/h2>\n<p>Veritabanlar\u0131, modern uygulamalar\u0131n ve sistemlerin temelini olu\u015fturur. Bilgiyi d\u00fczenli, eri\u015filebilir ve g\u00fcvenli bir \u015fekilde saklamak i\u00e7in tasarlanm\u0131\u015flard\u0131r. Bir veritaban\u0131n\u0131n en temel yap\u0131 ta\u015f\u0131 ise tablolard\u0131r. Tablolar, ili\u015fkisel veritaban\u0131 y\u00f6netim sistemlerinde (RDBMS) verilerin sat\u0131rlar ve s\u00fctunlar halinde organize edildi\u011fi yap\u0131lard\u0131r. SQL (Structured Query Language) dilinde, bu tablolar\u0131 olu\u015fturmak i\u00e7in kullan\u0131lan komut <code>CREATE TABLE<\/code>&#8216;d\u0131r.<\/p>\n<p>Bu makale, <code>CREATE TABLE<\/code> komutunun derinlemesine bir incelemesini sunarak, temel s\u00f6zdiziminden geli\u015fmi\u015f \u00f6zelliklerine, veri tiplerinden k\u0131s\u0131tlamalara kadar her y\u00f6n\u00fcn\u00fc ele alacakt\u0131r. Amac\u0131m\u0131z, veritaban\u0131 tasar\u0131mc\u0131lar\u0131na ve geli\u015ftiricilerine sa\u011flam, verimli ve hatas\u0131z tablolar olu\u015fturmalar\u0131 i\u00e7in kapsaml\u0131 bir rehber sa\u011flamakt\u0131r.<\/p>\n<h3>CREATE TABLE Komutuna Giri\u015f<\/h3>\n<p><code>CREATE TABLE<\/code> komutu, bir veritaban\u0131nda yeni bir tablo tan\u0131mlamak i\u00e7in kullan\u0131l\u0131r. Bu komut, tablonun ad\u0131n\u0131, i\u00e7erece\u011fi s\u00fctunlar\u0131n adlar\u0131n\u0131, her s\u00fctunun veri tipini ve bu s\u00fctunlara uygulanacak k\u0131s\u0131tlamalar\u0131 (constraints) belirtmenizi sa\u011flar. Do\u011fru bir tablo yap\u0131s\u0131, veritaban\u0131n\u0131n performans\u0131n\u0131, b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini do\u011frudan etkiler. Bu nedenle, <code>CREATE TABLE<\/code> komutunu dikkatli ve bilin\u00e7li bir \u015fekilde kullanmak b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r.<\/p>\n<p>Bir tablo olu\u015ftururken, her s\u00fctun i\u00e7in bir veri tipi tan\u0131mlamak zorunludur. Veri tipleri, s\u00fctunun hangi t\u00fcrde veri saklayabilece\u011fini (\u00f6rne\u011fin, say\u0131, metin, tarih) ve bu verilerin ne kadar yer kaplayaca\u011f\u0131n\u0131 belirler. K\u0131s\u0131tlamalar ise, s\u00fctunlardaki verilerin do\u011frulu\u011funu ve tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak i\u00e7in kullan\u0131lan kurallard\u0131r.<\/p>\n<h3>Temel CREATE TABLE S\u00f6zdizimi<\/h3>\n<p><code>CREATE TABLE<\/code> komutunun genel s\u00f6zdizimi a\u015fa\u011f\u0131daki gibidir:<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE tablo_adi (\n    sutun1_adi VERI_TIPI [KISITLAMA],\n    sutun2_adi VERI_TIPI [KISITLAMA],\n    ...\n    sutunN_adi VERI_TIPI [KISITLAMA],\n    [TABLO_DUZEYINDE_KISITLAMA]\n);<\/code><\/pre>\n<p>*   <strong><code>tablo_adi<\/code><\/strong>: Olu\u015fturulacak tablonun benzersiz ad\u0131d\u0131r. Anlaml\u0131 ve a\u00e7\u0131klay\u0131c\u0131 isimler kullanmak \u00f6nemlidir.<br \/>\n*   <strong><code>sutun_adi<\/code><\/strong>: Tablonun her bir s\u00fctununun ad\u0131d\u0131r.<br \/>\n*   <strong><code>VERI_TIPI<\/code><\/strong>: S\u00fctunda saklanacak verinin t\u00fcr\u00fcn\u00fc belirtir (\u00f6rn. <code>INT<\/code>, <code>VARCHAR<\/code>, <code>DATE<\/code>).<br \/>\n*   <strong><code>KISITLAMA<\/code><\/strong>: S\u00fctundaki verilere uygulanacak kurallard\u0131r (\u00f6rn. <code>NOT NULL<\/code>, <code>PRIMARY KEY<\/code>, <code>UNIQUE<\/code>). Bu k\u0131s\u0131m iste\u011fe ba\u011fl\u0131d\u0131r.<br \/>\n*   <strong><code>TABLO_DUZEYINDE_KISITLAMA<\/code><\/strong>: Birden fazla s\u00fctunu ilgilendiren k\u0131s\u0131tlamalar (\u00f6rn. bile\u015fik <code>PRIMARY KEY<\/code> veya <code>FOREIGN KEY<\/code>) genellikle tablo d\u00fczeyinde tan\u0131mlan\u0131r.<\/p>\n<p>\u00d6rnek olarak, basit bir &#8220;Calisanlar&#8221; tablosu olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Calisanlar (\n    CalisanID INT,\n    Ad VARCHAR(50),\n    Soyad VARCHAR(50),\n    DogumTarihi DATE\n);<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>Calisanlar<\/code> ad\u0131nda bir tablo olu\u015fturulmu\u015ftur. Bu tablo <code>CalisanID<\/code> (tam say\u0131), <code>Ad<\/code> (50 karakter uzunlu\u011funda metin), <code>Soyad<\/code> (50 karakter uzunlu\u011funda metin) ve <code>DogumTarihi<\/code> (tarih) olmak \u00fczere d\u00f6rt s\u00fctuna sahiptir.<\/p>\n<h3>Veri Tipleri (Data Types)<\/h3>\n<p>Veri tipleri, bir s\u00fctunun depolayabilece\u011fi veri t\u00fcr\u00fcn\u00fc ve bu verilerin nas\u0131l i\u015flenece\u011fini tan\u0131mlar. Do\u011fru veri tipini se\u00e7mek, depolama alan\u0131n\u0131 optimize etmek, performans\u0131 art\u0131rmak ve veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in kritik \u00f6neme sahiptir. \u0130\u015fte yayg\u0131n olarak kullan\u0131lan baz\u0131 SQL veri tipleri:<\/p>\n<h4>Say\u0131sal Veri Tipleri<\/h4>\n<p>*   <strong><code>INT<\/code> \/ <code>INTEGER<\/code><\/strong>: Tam say\u0131lar i\u00e7in kullan\u0131l\u0131r (\u00f6rn. 1, 100, -50). \u00c7o\u011fu RDBMS&#8217;de 4 bayt yer kaplar.<br \/>\n*   <strong><code>SMALLINT<\/code><\/strong>: Daha k\u00fc\u00e7\u00fck tam say\u0131lar i\u00e7in kullan\u0131l\u0131r. Genellikle 2 bayt yer kaplar.<br \/>\n*   <strong><code>BIGINT<\/code><\/strong>: \u00c7ok b\u00fcy\u00fck tam say\u0131lar i\u00e7in kullan\u0131l\u0131r. Genellikle 8 bayt yer kaplar.<br \/>\n*   <strong><code>TINYINT<\/code><\/strong>: \u00c7ok k\u00fc\u00e7\u00fck tam say\u0131lar i\u00e7in kullan\u0131l\u0131r (\u00f6rn. 0-255). Genellikle 1 bayt yer kaplar.<br \/>\n*   <strong><code>DECIMAL(p, s)<\/code> \/ <code>NUMERIC(p, s)<\/code><\/strong>: Sabit noktal\u0131 ondal\u0131k say\u0131lar i\u00e7in kullan\u0131l\u0131r. <code>p<\/code> toplam basamak say\u0131s\u0131n\u0131 (precision), <code>s<\/code> ise ondal\u0131k k\u0131sm\u0131n basamak say\u0131s\u0131n\u0131 (scale) belirtir. \u00d6rne\u011fin, <code>DECIMAL(5, 2)<\/code> en fazla 5 basamakl\u0131, ondal\u0131k k\u0131sm\u0131nda 2 basamak olan say\u0131lar (\u00f6rn. 123.45) depolayabilir.<br \/>\n*   <strong><code>FLOAT<\/code> \/ <code>REAL<\/code><\/strong>: Kayar noktal\u0131, yakla\u015f\u0131k ondal\u0131k say\u0131lar i\u00e7in kullan\u0131l\u0131r. Hassasiyet gerektirmeyen bilimsel hesaplamalar i\u00e7in uygundur.<br \/>\n*   <strong><code>DOUBLE PRECISION<\/code><\/strong>: Daha y\u00fcksek hassasiyetli kayar noktal\u0131 say\u0131lar i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4>Metinsel Veri Tipleri<\/h4>\n<p>*   <strong><code>VARCHAR(n)<\/code> \/ <code>NVARCHAR(n)<\/code><\/strong>: De\u011fi\u015fken uzunlukta karakter dizileri i\u00e7in kullan\u0131l\u0131r. <code>n<\/code> maksimum karakter say\u0131s\u0131n\u0131 belirtir. <code>VARCHAR<\/code>, ASCII karakterleri depolarken, <code>NVARCHAR<\/code> Unicode karakterleri (\u00f6rn. T\u00fcrk\u00e7e, \u00c7ince karakterler) depolayabilir. Depolama alan\u0131, girilen metnin uzunlu\u011funa g\u00f6re de\u011fi\u015fir.<br \/>\n*   <strong><code>CHAR(n)<\/code> \/ <code>NCHAR(n)<\/code><\/strong>: Sabit uzunlukta karakter dizileri i\u00e7in kullan\u0131l\u0131r. <code>n<\/code> karakter say\u0131s\u0131n\u0131 belirtir. Belirtilen <code>n<\/code> say\u0131s\u0131na ula\u015f\u0131lmad\u0131\u011f\u0131nda bo\u015fluklarla doldurulur. <code>VARCHAR<\/code>&#8216;a g\u00f6re daha az esnektir ancak baz\u0131 durumlarda daha h\u0131zl\u0131 olabilir.<br \/>\n*   <strong><code>TEXT<\/code> \/ <code>NTEXT<\/code> \/ <code>CLOB<\/code><\/strong>: \u00c7ok uzun metinler i\u00e7in kullan\u0131l\u0131r. Maksimum uzunluk veritaban\u0131na g\u00f6re de\u011fi\u015fir (genellikle gigabaytlarca veri). <code>TEXT<\/code> ASCII, <code>NTEXT<\/code> Unicode karakterler i\u00e7indir. <code>CLOB<\/code> (Character Large Object) ise Oracle gibi sistemlerde kullan\u0131lan bir terimdir.<\/p>\n<h4>Tarih ve Zaman Veri Tipleri<\/h4>\n<p>*   <strong><code>DATE<\/code><\/strong>: Yaln\u0131zca tarihi (y\u0131l, ay, g\u00fcn) saklar.<br \/>\n*   <strong><code>TIME<\/code><\/strong>: Yaln\u0131zca zaman\u0131 (saat, dakika, saniye) saklar.<br \/>\n*   <strong><code>DATETIME<\/code><\/strong>: Tarih ve zaman\u0131 birlikte saklar.<br \/>\n*   <strong><code>TIMESTAMP<\/code><\/strong>: Tarih ve zaman\u0131, genellikle verinin son de\u011fi\u015ftirilme zaman\u0131n\u0131 otomatik olarak kaydetmek i\u00e7in kullan\u0131l\u0131r. Zaman dilimi bilgisi i\u00e7erebilir.<br \/>\n*   <strong><code>SMALLDATETIME<\/code><\/strong>: <code>DATETIME<\/code>&#8216;\u0131n daha az hassasiyetli ve daha k\u00fc\u00e7\u00fck bir versiyonu (SQL Server&#8217;a \u00f6zg\u00fc).<\/p>\n<h4>Di\u011fer Veri Tipleri<\/h4>\n<p>*   <strong><code>BOOLEAN<\/code> \/ <code>BIT<\/code><\/strong>: Mant\u0131ksal de\u011ferler (do\u011fru\/yanl\u0131\u015f, 1\/0) i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong><code>BLOB<\/code> \/ <code>VARBINARY<\/code><\/strong>: \u0130kili b\u00fcy\u00fck nesneler (Binary Large Object) i\u00e7in kullan\u0131l\u0131r. Resimler, ses dosyalar\u0131, video veya di\u011fer ikili verileri saklamak i\u00e7in uygundur. <code>VARBINARY(max)<\/code> veya <code>BLOB<\/code> gibi varyantlar\u0131 bulunur.<br \/>\n*   <strong><code>UUID<\/code> \/ <code>GUID<\/code><\/strong>: Evrensel olarak benzersiz tan\u0131mlay\u0131c\u0131lar (Universally Unique Identifier) i\u00e7in kullan\u0131l\u0131r. 128 bitlik bir de\u011ferdir ve d\u00fcnya \u00e7ap\u0131nda benzersizlik garantisi sunar.<\/p>\n<p>Veritaban\u0131 sistemleri (MySQL, PostgreSQL, SQL Server, Oracle vb.) aras\u0131nda veri tiplerinin isimleri ve \u00f6zellikleri k\u00fc\u00e7\u00fck farkl\u0131l\u0131klar g\u00f6sterebilir. Her zaman kulland\u0131\u011f\u0131n\u0131z RDBMS&#8217;nin dok\u00fcmantasyonuna ba\u015fvurmak en do\u011frusudur.<\/p>\n<h3>K\u0131s\u0131tlamalar (Constraints)<\/h3>\n<p>K\u0131s\u0131tlamalar, bir tablodaki verilerin do\u011frulu\u011funu, tutarl\u0131l\u0131\u011f\u0131n\u0131 ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in kullan\u0131lan kurallard\u0131r. Yanl\u0131\u015f veri giri\u015fini \u00f6nler, ili\u015fkisel b\u00fct\u00fcnl\u00fc\u011f\u00fc korur ve veritaban\u0131 tasar\u0131m\u0131n\u0131n temelini olu\u015fturur.<\/p>\n<h4>NOT NULL K\u0131s\u0131tlamas\u0131<\/h4>\n<p><code>NOT NULL<\/code> k\u0131s\u0131tlamas\u0131, bir s\u00fctunun <code>NULL<\/code> (bo\u015f) de\u011fer i\u00e7eremeyece\u011fini garanti eder. Bu, ilgili s\u00fctuna her zaman bir de\u011fer girilmesi gerekti\u011fi anlam\u0131na gelir.<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Urunler (\n    UrunID INT NOT NULL,\n    UrunAdi VARCHAR(100) NOT NULL,\n    Fiyat DECIMAL(10, 2)\n);<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>UrunID<\/code> ve <code>UrunAdi<\/code> s\u00fctunlar\u0131 bo\u015f b\u0131rak\u0131lamaz.<\/p>\n<h4>UNIQUE K\u0131s\u0131tlamas\u0131<\/h4>\n<p><code>UNIQUE<\/code> k\u0131s\u0131tlamas\u0131, bir s\u00fctundaki t\u00fcm de\u011ferlerin benzersiz olmas\u0131n\u0131 sa\u011flar. Yani, ayn\u0131 de\u011fer bir s\u00fctunda birden fazla kez bulunamaz. <code>NULL<\/code> de\u011ferler genellikle <code>UNIQUE<\/code> k\u0131s\u0131tlamas\u0131ndan etkilenmez ve birden fazla <code>NULL<\/code> de\u011ferine izin verilebilir (ancak bu durum veritaban\u0131na g\u00f6re de\u011fi\u015febilir).<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Musteriler (\n    MusteriID INT NOT NULL UNIQUE,\n    Email VARCHAR(100) UNIQUE,\n    Ad VARCHAR(50)\n);<\/code><\/pre>\n<p>Burada, <code>MusteriID<\/code> ve <code>Email<\/code> s\u00fctunlar\u0131ndaki de\u011ferler benzersiz olmal\u0131d\u0131r.<\/p>\n<h4>PRIMARY KEY K\u0131s\u0131tlamas\u0131<\/h4>\n<p><code>PRIMARY KEY<\/code> (Birincil Anahtar) k\u0131s\u0131tlamas\u0131, bir tablodaki her kayd\u0131 benzersiz bir \u015fekilde tan\u0131mlayan bir veya daha fazla s\u00fctundur. Birincil anahtar iki temel \u00f6zelli\u011fe sahiptir:<br \/>\n1.  <strong><code>NOT NULL<\/code><\/strong>: Birincil anahtar s\u00fctunu <code>NULL<\/code> de\u011fer i\u00e7eremez.<br \/>\n2.  <strong><code>UNIQUE<\/code><\/strong>: Birincil anahtar s\u00fctunundaki t\u00fcm de\u011ferler benzersiz olmal\u0131d\u0131r.<\/p>\n<p>Bir tabloda yaln\u0131zca bir <code>PRIMARY KEY<\/code> olabilir. Genellikle, tablonun do\u011fal bir benzersiz tan\u0131mlay\u0131c\u0131s\u0131 yoksa, otomatik artan bir tam say\u0131 s\u00fctunu birincil anahtar olarak kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Siparisler (\n    SiparisID INT PRIMARY KEY,\n    MusteriID INT NOT NULL,\n    SiparisTarihi DATE\n);<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>SiparisID<\/code> s\u00fctunu <code>Siparisler<\/code> tablosunun birincil anahtar\u0131d\u0131r. Hem benzersizdir hem de bo\u015f olamaz.<\/p>\n<p>Birden fazla s\u00fctun i\u00e7eren birincil anahtar (bile\u015fik anahtar) tan\u0131mlamak i\u00e7in tablo d\u00fczeyinde tan\u0131mlama yap\u0131l\u0131r:<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE DersKayit (\n    OgrenciID INT,\n    DersKodu VARCHAR(10),\n    Donem VARCHAR(10),\n    PRIMARY KEY (OgrenciID, DersKodu, Donem)\n);<\/code><\/pre>\n<p>Bu durumda, <code>OgrenciID<\/code>, <code>DersKodu<\/code> ve <code>Donem<\/code> s\u00fctunlar\u0131n\u0131n birle\u015fimi benzersiz olmal\u0131d\u0131r.<\/p>\n<h4>FOREIGN KEY K\u0131s\u0131tlamas\u0131<\/h4>\n<p><code>FOREIGN KEY<\/code> (Yabanc\u0131 Anahtar) k\u0131s\u0131tlamas\u0131, iki tablo aras\u0131ndaki ba\u011flant\u0131y\u0131 kurar ve referans b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flar. Bir tablodaki yabanc\u0131 anahtar, ba\u015fka bir tablodaki birincil anahtara veya benzersiz anahtara (UNIQUE key) referans verir. Bu, ili\u015fkili tablolardaki verilerin tutarl\u0131 kalmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Departmanlar (\n    DepartmanID INT PRIMARY KEY,\n    DepartmanAdi VARCHAR(50) NOT NULL\n);\n\nCREATE TABLE Calisanlar (\n    CalisanID INT PRIMARY KEY,\n    Ad VARCHAR(50) NOT NULL,\n    Soyad VARCHAR(50) NOT NULL,\n    DepartmanID INT,\n    FOREIGN KEY (DepartmanID) REFERENCES Departmanlar(DepartmanID)\n);<\/code><\/pre>\n<p>Burada, <code>Calisanlar<\/code> tablosundaki <code>DepartmanID<\/code> s\u00fctunu, <code>Departmanlar<\/code> tablosundaki <code>DepartmanID<\/code> birincil anahtar\u0131na referans veren bir yabanc\u0131 anahtard\u0131r. Bu, yaln\u0131zca <code>Departmanlar<\/code> tablosunda mevcut olan bir <code>DepartmanID<\/code> de\u011ferinin <code>Calisanlar<\/code> tablosuna girilebilece\u011fi anlam\u0131na gelir.<\/p>\n<p>Yabanc\u0131 anahtar k\u0131s\u0131tlamalar\u0131, referans verilen sat\u0131r\u0131n silinmesi veya g\u00fcncellenmesi durumunda ne olaca\u011f\u0131n\u0131 belirleyen eylemlerle birlikte tan\u0131mlanabilir:<br \/>\n*   <strong><code>ON DELETE CASCADE<\/code><\/strong>: Referans verilen sat\u0131r silindi\u011finde, bu tablodaki ilgili sat\u0131rlar\u0131 da siler.<br \/>\n*   <strong><code>ON UPDATE CASCADE<\/code><\/strong>: Referans verilen sat\u0131r g\u00fcncellendi\u011finde, bu tablodaki ilgili yabanc\u0131 anahtar de\u011ferini de g\u00fcnceller.<br \/>\n*   <strong><code>ON DELETE SET NULL<\/code><\/strong>: Referans verilen sat\u0131r silindi\u011finde, bu tablodaki ilgili yabanc\u0131 anahtar s\u00fctununu <code>NULL<\/code> olarak ayarlar (s\u00fctun <code>NOT NULL<\/code> de\u011filse).<br \/>\n*   <strong><code>ON DELETE NO ACTION<\/code> \/ <code>ON UPDATE NO ACTION<\/code><\/strong>: Varsay\u0131lan davran\u0131\u015ft\u0131r; referans b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ihlal eden i\u015flemleri engeller.<br \/>\n*   <strong><code>ON DELETE RESTRICT<\/code> \/ <code>ON UPDATE RESTRICT<\/code><\/strong>: <code>NO ACTION<\/code> ile benzerdir, ancak baz\u0131 veritabanlar\u0131nda <code>NO ACTION<\/code> ertelenebilirken <code>RESTRICT<\/code> hemen kontrol eder.<\/p>\n<h4>DEFAULT K\u0131s\u0131tlamas\u0131<\/h4>\n<p><code>DEFAULT<\/code> k\u0131s\u0131tlamas\u0131, bir s\u00fctuna de\u011fer girilmedi\u011finde otomatik olarak atanacak varsay\u0131lan bir de\u011fer belirler.<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Siparisler (\n    SiparisID INT PRIMARY KEY,\n    MusteriID INT NOT NULL,\n    SiparisTarihi DATE DEFAULT GETDATE(), -- SQL Server i\u00e7in\n    Durum VARCHAR(20) DEFAULT 'Beklemede'\n);<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>SiparisTarihi<\/code> s\u00fctununa de\u011fer girilmezse o anki tarih (<code>GETDATE()<\/code> fonksiyonu SQL Server&#8217;a \u00f6zg\u00fcd\u00fcr, di\u011fer RDBMS&#8217;lerde <code>NOW()<\/code> veya <code>CURRENT_TIMESTAMP<\/code> gibi farkl\u0131 fonksiyonlar kullan\u0131labilir) atan\u0131r. <code>Durum<\/code> s\u00fctununa de\u011fer girilmezse &#8216;Beklemede&#8217; de\u011feri atan\u0131r.<\/p>\n<h4>CHECK K\u0131s\u0131tlamas\u0131<\/h4>\n<p><code>CHECK<\/code> k\u0131s\u0131tlamas\u0131, bir s\u00fctundaki t\u00fcm de\u011ferlerin belirli bir ko\u015fulu kar\u015f\u0131lamas\u0131n\u0131 sa\u011flar. Bu, belirli bir aral\u0131kta veya belirli bir listedeki de\u011ferleri zorunlu k\u0131lmak i\u00e7in kullan\u0131labilir.<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Personel (\n    PersonelID INT PRIMARY KEY,\n    Ad VARCHAR(50) NOT NULL,\n    Maas DECIMAL(10, 2) CHECK (Maas >= 0),\n    Cinsiyet VARCHAR(10) CHECK (Cinsiyet IN ('Erkek', 'Kad\u0131n', 'Belirtilmedi'))\n);<\/code><\/pre>\n<p>Burada, <code>Maas<\/code> s\u00fctunundaki de\u011ferlerin s\u0131f\u0131rdan b\u00fcy\u00fck veya e\u015fit olmas\u0131, <code>Cinsiyet<\/code> s\u00fctunundaki de\u011ferlerin ise &#8216;Erkek&#8217;, &#8216;Kad\u0131n&#8217; veya &#8216;Belirtilmedi&#8217; de\u011ferlerinden biri olmas\u0131 zorunludur.<\/p>\n<h3>Tablo Olu\u015fturma \u00d6rnekleri<\/h3>\n<p>\u015eimdiye kadar \u00f6\u011frendiklerimizi birle\u015ftirerek daha kapsaml\u0131 tablo olu\u015fturma \u00f6rneklerine bakal\u0131m.<\/p>\n<h4>Otomatik Artan Anahtar S\u00fctunlar\u0131<\/h4>\n<p>Birincil anahtarlar genellikle otomatik olarak artan say\u0131lard\u0131r. RDBMS&#8217;lere g\u00f6re farkl\u0131 s\u00f6zdizimleri kullan\u0131l\u0131r:<\/p>\n<p><strong>SQL Server (IDENTITY):<\/strong><\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Urunler (\n    UrunID INT IDENTITY(1,1) PRIMARY KEY, -- 1'den ba\u015fla, 1'er 1'er art\u0131r\n    UrunAdi VARCHAR(100) NOT NULL,\n    StokAdedi INT DEFAULT 0 CHECK (StokAdedi >= 0),\n    Fiyat DECIMAL(10, 2) NOT NULL CHECK (Fiyat > 0)\n);<\/code><\/pre>\n<p><strong>MySQL (AUTO_INCREMENT):<\/strong><\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Urunler (\n    UrunID INT AUTO_INCREMENT PRIMARY KEY,\n    UrunAdi VARCHAR(100) NOT NULL,\n    StokAdedi INT DEFAULT 0 CHECK (StokAdedi >= 0),\n    Fiyat DECIMAL(10, 2) NOT NULL CHECK (Fiyat > 0)\n);<\/code><\/pre>\n<p><strong>PostgreSQL (SERIAL \/ BIGSERIAL):<\/strong><\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Urunler (\n    UrunID SERIAL PRIMARY KEY, -- Otomatik olarak bir sequence olu\u015fturur ve kullan\u0131r\n    UrunAdi VARCHAR(100) NOT NULL,\n    StokAdedi INT DEFAULT 0 CHECK (StokAdedi >= 0),\n    Fiyat DECIMAL(10, 2) NOT NULL CHECK (Fiyat > 0)\n);<\/code><\/pre>\n<h4>\u0130ki Tablo Aras\u0131nda \u0130li\u015fki Kurma<\/h4>\n<p>Bir e-ticaret sistemi i\u00e7in <code>Musteriler<\/code> ve <code>Siparisler<\/code> tablolar\u0131n\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Musteriler (\n    MusteriID INT IDENTITY(1,1) PRIMARY KEY,\n    Ad VARCHAR(50) NOT NULL,\n    Soyad VARCHAR(50) NOT NULL,\n    Email VARCHAR(100) UNIQUE NOT NULL,\n    Telefon VARCHAR(20),\n    KayitTarihi DATETIME DEFAULT GETDATE()\n);\n\nCREATE TABLE Siparisler (\n    SiparisID INT IDENTITY(1,1) PRIMARY KEY,\n    MusteriID INT NOT NULL,\n    SiparisTarihi DATETIME DEFAULT GETDATE(),\n    ToplamTutar DECIMAL(10, 2) CHECK (ToplamTutar >= 0),\n    Durum VARCHAR(20) DEFAULT 'Yeni Siparis',\n    FOREIGN KEY (MusteriID) REFERENCES Musteriler(MusteriID)\n        ON DELETE CASCADE -- M\u00fc\u015fteri silindi\u011finde sipari\u015fleri de sil\n        ON UPDATE CASCADE  -- M\u00fc\u015fteri ID'si g\u00fcncellendi\u011finde sipari\u015flerde de g\u00fcncelle\n);<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>Musteriler<\/code> tablosunun <code>MusteriID<\/code>&#8216;si, <code>Siparisler<\/code> tablosundaki <code>MusteriID<\/code> s\u00fctunu taraf\u0131ndan referans al\u0131n\u0131r. <code>ON DELETE CASCADE<\/code> ve <code>ON UPDATE CASCADE<\/code> ile referans b\u00fct\u00fcnl\u00fc\u011f\u00fc dinamik olarak korunur.<\/p>\n<h3>Geli\u015fmi\u015f CREATE TABLE \u00d6zellikleri<\/h3>\n<p><code>CREATE TABLE<\/code> komutu, temel tablo olu\u015fturman\u0131n \u00f6tesinde baz\u0131 geli\u015fmi\u015f yetenekler de sunar.<\/p>\n<h4>Tablodan Tablo Olu\u015fturma (CREATE TABLE AS SELECT)<\/h4>\n<p>Mevcut bir tablonun yap\u0131s\u0131n\u0131 ve\/veya verilerini kullanarak yeni bir tablo olu\u015fturmak i\u00e7in <code>CREATE TABLE AS SELECT<\/code> (baz\u0131 RDBMS&#8217;lerde <code>SELECT INTO<\/code>) s\u00f6zdizimi kullan\u0131l\u0131r. Bu, \u00f6zellikle veri kopyalama, ar\u015fivleme veya raporlama i\u00e7in ge\u00e7ici tablolar olu\u015fturmak i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-sql\">-- Sadece belirli s\u00fctunlar\u0131 ve sat\u0131rlar\u0131 kopyala\nCREATE TABLE EskiCalisanlar AS\nSELECT CalisanID, Ad, Soyad, DogumTarihi\nFROM Calisanlar\nWHERE DogumTarihi < '1990-01-01';\n\n-- Sadece tablo yap\u0131s\u0131n\u0131 kopyala (veri kopyalama)\nCREATE TABLE CalisanYedek LIKE Calisanlar; -- MySQL\nCREATE TABLE CalisanYedek AS SELECT * FROM Calisanlar WHERE 1=0; -- PostgreSQL, SQL Server<\/code><\/pre>\n<p><strong>\u00d6nemli Not:<\/strong> <code>CREATE TABLE AS SELECT<\/code> genellikle kaynak tablodaki k\u0131s\u0131tlamalar\u0131 (PRIMARY KEY, FOREIGN KEY, CHECK vb.) otomatik olarak kopyalamaz. Bu k\u0131s\u0131tlamalar\u0131n yeni tabloya manuel olarak eklenmesi gerekebilir.<\/p>\n<h4>Ge\u00e7ici Tablolar (Temporary Tables)<\/h4>\n<p>Ge\u00e7ici tablolar, yaln\u0131zca ge\u00e7erli oturum veya i\u015flem s\u00fcresince var olan tablolard\u0131r. Karma\u015f\u0131k sorgular\u0131n ara sonu\u00e7lar\u0131n\u0131 depolamak veya ge\u00e7ici raporlar olu\u015fturmak i\u00e7in kullan\u0131l\u0131rlar. Oturum sona erdi\u011finde otomatik olarak silinirler.<\/p>\n<p><strong>SQL Server:<\/strong><\/p>\n<pre><code class=\"language-sql\">CREATE TABLE #GeciciRapor ( -- Tek hash ile yerel ge\u00e7ici tablo\n    ID INT,\n    Veri VARCHAR(100)\n);\n\nCREATE TABLE ##GlobalGeciciRapor ( -- \u00c7ift hash ile global ge\u00e7ici tablo (t\u00fcm oturumlar eri\u015febilir)\n    ID INT,\n    Veri VARCHAR(100)\n);<\/code><\/pre>\n<p><strong>MySQL:<\/strong><\/p>\n<pre><code class=\"language-sql\">CREATE TEMPORARY TABLE GeciciRapor (\n    ID INT,\n    Veri VARCHAR(100)\n);<\/code><\/pre>\n<p><strong>PostgreSQL:<\/strong><\/p>\n<pre><code class=\"language-sql\">CREATE TEMPORARY TABLE GeciciRapor (\n    ID INT,\n    Veri VARCHAR(100)\n) ON COMMIT DROP; -- Oturum bitti\u011finde veya commit edildi\u011finde silinir<\/code><\/pre>\n<h4>Dizinler (Indexes)<\/h4>\n<p>Dizinler, tablolar\u0131n belirli s\u00fctunlar\u0131ndaki verilere h\u0131zl\u0131 eri\u015fim sa\u011flamak i\u00e7in olu\u015fturulan \u00f6zel arama tablolar\u0131d\u0131r. <code>CREATE TABLE<\/code> komutu s\u0131ras\u0131nda <code>PRIMARY KEY<\/code> ve <code>UNIQUE<\/code> k\u0131s\u0131tlamalar\u0131 otomatik olarak dizinler olu\u015fturur. Ancak, sorgu performans\u0131n\u0131 art\u0131rmak i\u00e7in manuel olarak da dizinler olu\u015fturulabilir.<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Urunler (\n    UrunID INT PRIMARY KEY,\n    UrunAdi VARCHAR(100),\n    KategoriID INT\n);\n\nCREATE INDEX IX_Urunler_KategoriID ON Urunler (KategoriID);<\/code><\/pre>\n<p>Dizinler, <code>CREATE TABLE<\/code> komutunun bir par\u00e7as\u0131 olmasa da, tablo tasar\u0131m\u0131 s\u0131ras\u0131nda g\u00f6z \u00f6n\u00fcnde bulundurulmas\u0131 gereken \u00f6nemli bir performans fakt\u00f6r\u00fcd\u00fcr.<\/p>\n<h4>Tablo Se\u00e7enekleri (Table Options)<\/h4>\n<p>Baz\u0131 RDBMS'ler, <code>CREATE TABLE<\/code> komutu s\u0131ras\u0131nda tabloya \u00f6zg\u00fc ek se\u00e7enekler belirtmeye izin verir.<\/p>\n<p><strong>MySQL'de depolama motoru ve karakter seti belirtme:<\/strong><\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Ayarlar (\n    ID INT PRIMARY KEY,\n    AyarAdi VARCHAR(50),\n    AyarDegeri VARCHAR(255)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;<\/code><\/pre>\n<p>*   <code>ENGINE<\/code>: MySQL'de depolama motorunu (\u00f6rn. <code>InnoDB<\/code>, <code>MyISAM<\/code>) belirtir.<br \/>\n*   <code>DEFAULT CHARSET<\/code>: Tablonun varsay\u0131lan karakter setini ayarlar.<br \/>\n*   <code>COLLATE<\/code>: Tablonun varsay\u0131lan s\u0131ralama d\u00fczenini ayarlar.<\/p>\n<h3>CREATE TABLE Kullan\u0131m\u0131nda En \u0130yi Uygulamalar<\/h3>\n<p>Verimli, bak\u0131m\u0131 kolay ve performansl\u0131 veritabanlar\u0131 olu\u015fturmak i\u00e7in <code>CREATE TABLE<\/code> komutunu kullan\u0131rken baz\u0131 en iyi uygulamalar\u0131 takip etmek \u00f6nemlidir:<\/p>\n<p>1.  <strong>Anlaml\u0131 \u0130simlendirme<\/strong>: Tablo ve s\u00fctun adlar\u0131 a\u00e7\u0131klay\u0131c\u0131, tutarl\u0131 ve anla\u015f\u0131l\u0131r olmal\u0131d\u0131r. \u00d6rne\u011fin, <code>MusteriAdresi<\/code> yerine <code>Musteriler<\/code> tablosunda <code>Adres<\/code> s\u00fctunu veya <code>MusteriAdresleri<\/code> tablosu.<br \/>\n2.  <strong>Do\u011fru Veri Tiplerini Se\u00e7in<\/strong>: Her s\u00fctun i\u00e7in m\u00fcmk\u00fcn olan en k\u00fc\u00e7\u00fck ve en uygun veri tipini se\u00e7in. Bu, disk alan\u0131 kullan\u0131m\u0131n\u0131 azalt\u0131r ve sorgu performans\u0131n\u0131 art\u0131r\u0131r. \u00d6rne\u011fin, sadece 0-255 aras\u0131 de\u011ferler alacak bir s\u00fctun i\u00e7in <code>INT<\/code> yerine <code>TINYINT<\/code> kullan\u0131n.<br \/>\n3.  <strong>K\u0131s\u0131tlamalar\u0131 Etkin Kullan\u0131n<\/strong>: <code>PRIMARY KEY<\/code>, <code>FOREIGN KEY<\/code>, <code>NOT NULL<\/code>, <code>UNIQUE<\/code>, <code>CHECK<\/code> ve <code>DEFAULT<\/code> k\u0131s\u0131tlamalar\u0131n\u0131 kullanarak veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flay\u0131n. Bu, uygulama katman\u0131nda hata yakalamak yerine veritaban\u0131 d\u00fczeyinde veri tutarl\u0131l\u0131\u011f\u0131n\u0131 zorlar.<br \/>\n4.  <strong>Normalizasyon Prensiplerine Uyun<\/strong>: Veri tekrar\u0131n\u0131 en aza indirmek ve veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc art\u0131rmak i\u00e7in veritaban\u0131n\u0131z\u0131 normal formlara (1NF, 2NF, 3NF, BCNF) uygun olarak tasarlay\u0131n. Bu, daha esnek ve bak\u0131m\u0131 kolay bir veritaban\u0131 yap\u0131s\u0131 sa\u011flar.<br \/>\n5.  <strong>Otomatik Artan Anahtarlar Kullan\u0131n<\/strong>: Genellikle, birincil anahtar olarak otomatik artan (IDENTITY, AUTO_INCREMENT, SERIAL) tam say\u0131 s\u00fctunlar\u0131 kullanmak en iyi uygulamad\u0131r. Bunlar benzersizlik sa\u011flar ve ili\u015fkili tablolar i\u00e7in yabanc\u0131 anahtar olarak kolayca referans verilebilir.<br \/>\n6.  <strong>Yorumlar Ekleyin<\/strong>: \u00d6zellikle karma\u015f\u0131k tablolar veya s\u00fctunlar i\u00e7in veritaban\u0131 \u015femas\u0131na yorumlar eklemek, gelecekteki bak\u0131m ve dok\u00fcmantasyon i\u00e7in \u00e7ok faydal\u0131d\u0131r.<br \/>\n7.  <strong>S\u00fcr\u00fcm Kontrol\u00fc ve Yedekleme<\/strong>: <code>CREATE TABLE<\/code> komutlar\u0131n\u0131 ve di\u011fer \u015fema de\u011fi\u015fikliklerini s\u00fcr\u00fcm kontrol sistemlerinde (Git gibi) saklay\u0131n. Veritaban\u0131n\u0131z\u0131n d\u00fczenli yedeklerini al\u0131n.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Hatalar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p><code>CREATE TABLE<\/code> komutunu kullan\u0131rken kar\u015f\u0131la\u015f\u0131labilecek baz\u0131 yayg\u0131n hatalar ve bunlar\u0131n \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>1.  <strong>S\u00f6zdizimi Hatalar\u0131<\/strong>: En yayg\u0131n hatalardan biridir. Virg\u00fcl eksikli\u011fi, parantezlerin yanl\u0131\u015f yerle\u015ftirilmesi veya anahtar kelimelerin yanl\u0131\u015f yaz\u0131lmas\u0131 gibi durumlar.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>: Komutu dikkatlice g\u00f6zden ge\u00e7irin, RDBMS'nizin hata mesaj\u0131n\u0131 okuyun ve s\u00f6zdizimi referans\u0131na bak\u0131n.<br \/>\n2.  <strong>Tablo Ad\u0131 \u00c7ak\u0131\u015fmas\u0131<\/strong>: Ayn\u0131 isimde bir tablo zaten varsa.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>: Farkl\u0131 bir tablo ad\u0131 se\u00e7in veya mevcut tabloyu <code>DROP TABLE<\/code> komutuyla silin (dikkatli olun!). <code>IF NOT EXISTS<\/code> ile var olup olmad\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz: <code>CREATE TABLE IF NOT EXISTS TabloAdi (...)<\/code>.<br \/>\n3.  <strong>S\u00fctun Ad\u0131 \u00c7ak\u0131\u015fmas\u0131<\/strong>: Bir tabloda ayn\u0131 isme sahip iki s\u00fctun tan\u0131mlamaya \u00e7al\u0131\u015fmak.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>: S\u00fctun adlar\u0131n\u0131 benzersiz yap\u0131n.<br \/>\n4.  <strong>Veri Tipi Uyumsuzlu\u011fu<\/strong>: Belirtilen veri tipinin RDBMS taraf\u0131ndan desteklenmemesi veya yanl\u0131\u015f kullan\u0131lmas\u0131.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>: RDBMS'nizin veri tipi dok\u00fcmantasyonunu kontrol edin.<br \/>\n5.  <strong>K\u0131s\u0131tlama \u0130hlalleri<\/strong>: \u00d6rne\u011fin, bir <code>PRIMARY KEY<\/code> s\u00fctununa <code>NULL<\/code> de\u011feri atamaya \u00e7al\u0131\u015fmak veya <code>UNIQUE<\/code> bir s\u00fctuna zaten var olan bir de\u011feri eklemek.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>: <code>CREATE TABLE<\/code> s\u0131ras\u0131nda k\u0131s\u0131tlamalar\u0131 do\u011fru tan\u0131mlad\u0131\u011f\u0131n\u0131zdan ve <code>INSERT<\/code> veya <code>UPDATE<\/code> i\u015flemlerinde bu k\u0131s\u0131tlamalara uydu\u011funuzdan emin olun.<br \/>\n6.  <strong>Yabanc\u0131 Anahtar Referans Hatas\u0131<\/strong>: Yabanc\u0131 anahtar\u0131n referans verdi\u011fi birincil anahtar\u0131n veya tablonun mevcut olmamas\u0131.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>: Referans verilen tablonun ve birincil anahtar\u0131n var oldu\u011fundan ve do\u011fru yaz\u0131ld\u0131\u011f\u0131ndan emin olun. Genellikle, referans verilen tablo \u00f6nce olu\u015fturulmal\u0131d\u0131r.<\/p>\n<h3>CREATE TABLE Sonras\u0131 Yap\u0131labilecek \u0130\u015flemler<\/h3>\n<p>Bir tablo olu\u015fturulduktan sonra, ihtiya\u00e7lar do\u011frultusunda \u00fczerinde \u00e7e\u015fitli i\u015flemler yap\u0131labilir:<\/p>\n<p>*   <strong><code>ALTER TABLE<\/code><\/strong>: Tablonun yap\u0131s\u0131n\u0131 de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r. Yeni s\u00fctunlar ekleyebilir, mevcut s\u00fctunlar\u0131 de\u011fi\u015ftirebilir (veri tipi, k\u0131s\u0131tlamalar) veya s\u00fctunlar\u0131 silebilirsiniz.<\/p>\n<pre><code class=\"language-sql\">ALTER TABLE Calisanlar\n    ADD COLUMN Email VARCHAR(100) UNIQUE;\n\n    ALTER TABLE Calisanlar\n    ALTER COLUMN DogumTarihi DATETIME; -- SQL Server\n    -- ALTER TABLE Calisanlar MODIFY COLUMN DogumTarihi DATETIME; -- MySQL\n    -- ALTER TABLE Calisanlar ALTER COLUMN DogumTarihi TYPE TIMESTAMP; -- PostgreSQL<\/code><\/pre>\n<p>*   <strong><code>DROP TABLE<\/code><\/strong>: Bir tabloyu veritaban\u0131ndan tamamen silmek i\u00e7in kullan\u0131l\u0131r. Bu i\u015flem geri al\u0131namaz ve tabloyla birlikte t\u00fcm verileri, dizinleri ve k\u0131s\u0131tlamalar\u0131 da siler.<\/p>\n<pre><code class=\"language-sql\">DROP TABLE Calisanlar;<\/code><\/pre>\n<p>    <code>IF EXISTS<\/code> ile g\u00fcvenli silme: <code>DROP TABLE IF EXISTS Calisanlar;<\/code><br \/>\n*   <strong><code>TRUNCATE TABLE<\/code><\/strong>: Bir tablodaki t\u00fcm verileri silmek i\u00e7in kullan\u0131l\u0131r, ancak tablonun yap\u0131s\u0131n\u0131 korur. <code>DELETE<\/code> komutuna g\u00f6re genellikle daha h\u0131zl\u0131d\u0131r ve otomatik artan anahtarlar\u0131 s\u0131f\u0131rlar.<\/p>\n<pre><code class=\"language-sql\">TRUNCATE TABLE Urunler;<\/code><\/pre>\n<h3>Sonu\u00e7<\/h3>\n<p><code>CREATE TABLE<\/code> komutu, ili\u015fkisel veritaban\u0131 tasar\u0131m\u0131n\u0131n kalbinde yer al\u0131r. Bu komutu do\u011fru bir \u015fekilde anlamak ve uygulamak, sa\u011flam, verimli ve bak\u0131m\u0131 kolay veritaban\u0131 sistemleri olu\u015fturmak i\u00e7in temel bir ad\u0131md\u0131r. Veri tiplerinin, k\u0131s\u0131tlamalar\u0131n ve geli\u015fmi\u015f \u00f6zelliklerin bilin\u00e7li kullan\u0131m\u0131, veritaban\u0131n\u0131z\u0131n performans\u0131n\u0131, b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve g\u00fcvenilirli\u011fini do\u011frudan etkileyecektir.<\/p>\n<p>Veritaban\u0131 tasar\u0131m\u0131, dikkatli planlama ve en iyi uygulamalar\u0131n takip edilmesini gerektiren bir s\u00fcre\u00e7tir. Bu rehberde sunulan bilgilerle, <code>CREATE TABLE<\/code> komutunu ustal\u0131kla kullanarak projeleriniz i\u00e7in g\u00fc\u00e7l\u00fc ve optimize edilmi\u015f veritaban\u0131 yap\u0131 ta\u015flar\u0131 olu\u015fturma yolunda \u00f6nemli bir ad\u0131m atm\u0131\u015f olacaks\u0131n\u0131z. Unutmay\u0131n, iyi bir veritaban\u0131 \u015femas\u0131, uygulaman\u0131z\u0131n ba\u015far\u0131s\u0131n\u0131n temelidir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi\nVeritabanlar\u0131, modern uygulamalar\u0131n ve sistemlerin temelini olu\u015fturur.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1505],"tags":[],"class_list":{"0":"post-38288","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-sql-2","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi\" \/>\n<meta property=\"og:description\" content=\"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi Veritabanlar\u0131, modern uygulamalar\u0131n ve sistemlerin temelini olu\u015fturur.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-27T18:40:47+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi\",\"datePublished\":\"2026-01-27T18:40:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/\"},\"wordCount\":2674,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"SQL\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/\",\"name\":\"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-27T18:40:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi","og_description":"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi Veritabanlar\u0131, modern uygulamalar\u0131n ve sistemlerin temelini olu\u015fturur.","og_url":"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-27T18:40:47+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi","datePublished":"2026-01-27T18:40:47+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/"},"wordCount":2674,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["SQL"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/","name":"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-27T18:40:47+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/sql-create-table-komutu-veritabani-yapi-taslarini-olusturma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL CREATE TABLE Komutu: Veritaban\u0131 Yap\u0131 Ta\u015flar\u0131n\u0131 Olu\u015fturma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38288"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38288\/revisions"}],"predecessor-version":[{"id":38289,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38288\/revisions\/38289"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}