SQL DDL Komutları

Merhaba Arkadaşlar,
Mobilhanem.com sitesi üzerinden SQL Dersleri Serisini birlikte işleyeceğiz. Bu derste SQL DDL (Data Definition Language) komutlarını işleyeceğiz ve en temel komutlardan olan SQL DDL komutlarını örnekler ile sizlere anlatmaya çalışacağız. O zaman haydi başlayalım.

SQL DDL(Data Definition Language) Nedir?

Türkçe karşılığı Veri Tanımla Dili olan DDL veritabanın da ki verilerin tipiyle ilgilenir. Yani veri tabanında ki tabloların, tabloların birbiri ile olan ilişkileri tabloda ki verilerinin türleri ne olacak bunların hepsini DDL ile yapıyoruz. DDL temel olarak üç komuttan oluşur.

CREATE : Nesne oluşturmak için kullanılır(Table/Database vb.)
ALTER : Nesneler üzerinde değişiklik yapmak için kullanılır.
DROP : Nesneleri silmek için kullanılır

CREATE KOMUTU

Veri tabanı ve veritabanı neslerini oluşturmak için kullanılır. Veri tabanı nesneleri nelerdir?

Table (Tablo)Birbiriyle ilgili sütunları olan satırlar bütünü
Constraints(Kısıtlamalar)Sütunlarda bulunan değerler için kısıtlamalar getirir.
Index (Dizin)Verilere hızlı erişimi sağlar.
View (Görünüm)Bir veya birkaç tablo ya da görünümden
bilgiye erişmeyi sağlar.
Stored Procedure
(Saklı Yordam)
SQL komutlarından oluşan bir bütün
Trigger (Tetikleyici)Kullanıcı bilgi üzerinde bir değişiklik yaptığında
otomotik olarak yürütülen SQL komutlar bütünü
(Bir çeşit saklı yordam)

Biz bu yazıda veritabanı oluşturma ve veritabanı nesnesi olan tabloları oluşturacağız
sonraki derslerde diğer nesneleri işleyeceğiz.

Create Database( Veritabanı oluşturma)

Bunun için ilk olarak SQL Server arayüzünü görelim;

Yeni sayfa için yukarıda işaretlediğim yeri tıklayarak açabilirsiniz.
Genel olarak kullanım şekli şu şekildedir.

CREATE DATABASE veritabanı_ismi

Ve bu kullanım bütün veritabanı yönetim sistemleri için aynıdır.

Hemen bakalım veritabanı oluşmuş mu?

Gördüğünüz gibi  mobilhanem varitbanını oluşturduk.
Şimdilik veritabanı parametrelerini göstermeyeceğiz.

Create Table(Tablo oluşturma)

Tablo oluşturmadan önce tabloyu hangi veritabanı üzerinde oluşturacağımızı belirtmemiz lazım. Bunun için;
Genel kullanım şekli şu şekildedir.

use tablo_ismi

Hemen Yazalım

Tamam hangi veritabanı üzerinde oluşturacağımızı belirttik şimdi tablomuzu oluşturalım.
Bunun için genel kullanım şu şekildedir.

CREATE TABLE tablo_ismi(

sütün_ismi1, veri_tipi(boyut),

sütün_ismi2, veri_tipi(boyut),

sütün_ismi2, veri_tipi(boyut))

Şeklinde kullanılır.
O zaman örnek olarak mobilhanem.com yazarları tablosunu oluşturalım.

Hemen anlatalım ne yaptık, ilk önce yazarlar isminde bir tablo oluşturduk, sonra bu veritabanı içine ilk olarak veri tipi integer olan bir bir yazar_id isminde sütun oluşturduk. Sonrada diğer varchar() veri tipinde ki sütunlarımızı ekledik buradaki varchar(15) max 15 karakter alabileceğini belirtiyor siz istediğiniz veri uzunlukta alabilirsiniz.
Temel basit şekilde tablo oluşturma bu şekildedir. Ama bizim bu tabloyu bazı özellikler eklememiz lazım, mesela yazar_id her yazarda farklı olmalı ki ben onları ayırt edebileyim.

Kişinin tc numarası gibi, çünkü biz insanları ad veya soyad özelliklerine göre ayıramayız, kişilerin isimleri ve soyadları bazen aynı olabiliyor. Peki nasıl yapacağım diye soracaksınız hemen göstereyim.

Primary Key İfadesi

Primary key bir tabloda bir alanı, yani bir sütunu eşsiz bir değer yapmaya yarar. Bu ne demek oluyor eğer tablonun içinde yazar_id = 15 olan bir yazar varsa siz ikinci bir yazar_id numarası 15 olan bir yazar ekleyemezsiniz demek oluyor. Örneğin tc kimlik numaraları primary değerdir. Asla iki kişinin aynı tc kimlik numarası olamaz. Dolayısıyla tc kimlik numarası tutacak bir tablo muz varsa tc kimlik numarası sütunu primary olmalıdır.
Hemen kullanalım;

Değişken tipinin yanına primary key yazarak bu sütünun primary_key yani unique (benzersiz) bir değer olduğu bilgisini verdik.


NOT:

Bu şekilde bir hata mı aldınız

Hiç telaş yapmayın biz daha önce yazarlar isminde bir tablo oluşturduğumuz için hata verdi. Çünkü tablo isimleri tekildir primary gibi düşünün. Bir veritabanı içinde aynı isimde birden fazla tablo olamaz. Onun için ilk tablomuzu silelim ve tekrar çalıştıralım.


 

Şimdi sizin burada bana bir soru sormanız lazım; eğer yazar_id numarası girilmez ise o zaman nasıl ayırt edeceğiz. Yani diğer alanları doldurup yazar_id sütununu boş bırakırsa.  Bu durumda ayırt edemezsiniz bunun için yazar_id kısmını zorunlu kılmalıyız. Çoğu zaman bir siteye veya bir yere kayıt olurken kullanıcı adı veya email adresi boş geçilmez şeklinde bir uyarı almışsınızdır. İşte bizde burada kullanıcıyı uyaracağız yazar_id boş geçilemez diye. Nasıl mı not null anahtar kelimesi ile. Hemen kullanalım;

Bu şekilde halletmiş olduk. Artık yazar_id sütunu hem primary hemde not null yani boş bırakılamaz.  Peki eksik bir şey var mı? Yok bitmedi daha şimdi biz yazar_id kısmını aldık almasına ama bir şey kontrol etmeyi unuttuk. Günümüzde birçok zaman karşılaşmıştırsınız 11 karakterli tc numarasını veya 10 karakterli telefon numarasını girin diye veya siz sınav puanı gireceksiniz ama sınav puanı 0 -100 arasında bir değer girmelisiniz gibi. Evet bizde burada bunu kontrol etmeliyiz. bunun için;

Check İfadesi

Evet burada yazar_id numaramızın max 100 olabileceğini belirttik.
Peki sadece 100 den büyük olduğu durumlarda mı hata vermeli? Bir kullanıcı id numarası negatif olamaz o zaman birden fazla durumu kontrol etmeliyiz bunun için hemen aklınıza şu şekilde bir kullanım gelmiştir.
tabi ki bu doğrudur. Yukarıda yazar_id’nin primary olduğunu boş olamayacağını ve 100 den küçük 0 dan büyük olacağını belirttik.

Eğer birden fazla sütunun ayrı koşulları varsa ? Örneğin 2 sütunun da primary olması gerekliyse ? 3 sütunun not null olması gerekirse? tek tek mi yazmalıyız?

Constarint İfadesi

Constraint ifadesi birden fazla  sütünü kontrol edeceğimiz zaman kullanacağımız ifadedir. Hemen bir örnekle gösterelim.

Burada aynı anda ders_kodu ve yazar_id sütunlarının primary key olduğunu belirttik. Sizden isteğim sizde aynı şekilde contsraint kelimesini check ifadesi ilk birlikte kullanmanız. Dilerseniz dersin altında yorum kısmında benimle paylaşırsanız birlikte bakarız 🙂
Son olarak başka bir ifade daha gösterelim.

Identity İfadesi

Bazı durumlarda kendimiz değilde id numarsı vb. sütünları otomatik olarak eklemek isteyeceğiz. Bunun için identity ifadesini kullanacağız. Dilerseniz tabloya ekleme işlemini IDENTITY(1,1) ifadesi ile de tabloya otomatik olarak ekleneceğini belirleyebilirsiniz. Bu kullanış 1’den başla birer aralıklarla devam et anlamında kullanılmıştır.
Hemen göstereyim;

ALTER KOMUTU

Türkçe karşılığı değiştirmek ve güncellemek olan bu komut tablolar üzerinde güncelleme yapmak için kullanılır. Önce tablomuzu görelim.

Alter komutu üç farklı parametre alıyor:

  • ADD
  • DROP
  • ALTER

O zaman öğrenmeye başlayalım:)

ADD : Bu parametre tabloya sütün ekleme işlemi yapmamızı sağlıyor.

ALTER TABLE tablo_adı ADD sütün_adı   sütün_özelliği

Şimdi yeni bir sütün ekleyelim, örneğin  tarihi sütünü ekleyelim;

Şimdi tablomuzun son haline bakalım;

Gördüğünüz gibi tarih sütünü eklemiş olduk.

DROP : Bu parametre ile tablodan sütün silme işlemi yapmamızı sağlıyor.

ALTER TABLE tablo_adı DROP  COLUMN sütün_adi

Şimdi tablomuzda ki bir sütünü silelim, ben az önce eklediğimiz tarih sütünü tekrar siliyorum.

 

Böylelikle tarih sütünü silinmiş oldu.

ALTER: Bu parametre ile tabloda belirtilen  sütünü güncellemenizi sağlıyor.

ALTER TABLE tablo_adı ALTER COLUMN sütün_adı   sütün özellikleri

Şimdi tablo üzerinde ki yazar_ders sütünü veri türü varchar() iken bunu text yapalım;

Tablomuzun son haline bakalım:

Tablo üzerinde güncelleme işlemini de yapmış olduk böylelikle.

DROP

Bu komut oluşturmuş olduğumuz veritabanı ve tabloları silmeye yarıyor.

Veritabanı Silme

Var olan bir veritabanı silmek için genel kullanım:

DROP DATABASE veritabanı_adı

Tablo Silme

Var olan bir tabloyu silmek için genel kullanım:

DROP TABLE tablo_adı

Bu şekilde veritabanı ve tablo silme işlemlerini de öğrenmiş olduk.

Yazdığımız komutları Online çalıştırmak isterseniz tıklayınız.

Mobilhanem.com da SQL Dersleri eğitim serisinde bir yazının daha sonuna geldik.Bu dersimizde SQL DDL komutlarını işledik. Bir sonraki derste SQL DML Komutları dersi işleyeceğim. Eksik yada yanlış gördüğünüz bir yer varsa dersin altındaki yorum kısmında veya iletişim bilgilerimden bana ulaşabilirsiniz bir sonraki derste görüşmek üzere.

Tüm SQL Dersleri

Cahit İşleyen

Fırat Üniversitesi Yazılım Mühendisliği
Python ve Linux sever.
Çay tiryakisi

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?