SQL Server DDL KOMUTLARI

Merhabalar, bu makalemizde SQL üzerinde işlemler yapmamızı sağlayan komutlardan olan DDL ile devam ediyoruz. Bu yazımızda SQL’de nesne nasıl oluşturulur, tablo sütun adları nasıl değiştirilir , view nasıl silinir gibi soruların cevaplarını bulacağız. Hazırsak, başlayalım 😊

Data Definition Language (Veri Tanımlama Dili) ‘ in ilk harflerinden oluşturulan DDL,

veritabanı obje(nesne)leri üzerinde işlemler yapmamızı sağlar.

Peki nedir bu SQL nesneleri ?

  1. Tablo
  2. Constraint
  3. View
  4. Stored Procedure
  5. User Defined Functions
  6. Trigger

olarak sıralayabiliriz. Bu yazımızda DDL komutlarını kullanmak amacıyla bu nesnelerden faydalanacağız. Ayrıntılı olarak nesneleri incelemek isterseniz, SQL nesneleri üzerine olan yazılardan konuyu takip edebilirsiniz.

DDL komutlarımızı,

  1. CREATE Komutu
  2. ALTER Komutu
  3. DROP Komutu

olarak sıralayalım ve ilk sırada yer alan Create ile başlayalım.

1.CREATE Komutu

Create, SQL üzerinde nesne oluşturmak için kullanılan bir deyimdir.

CREATE DATABASE — Veritabanı oluşturmak için kullanılır.

CREATE TABLE — Tablo oluşturmak için kullanılır.

Create komutunun genel kullanım şeklini örnekler üzerinden inceleyelim.

Örnek :

[php] CREATE TABLE tablo_adi (Kolon_adi veri_tipi,Kolon_adi2 veri_tipi)[/php]

CREATE VIEW—View oluşturmak için kullanılır.

Genel kullanımı ;

[php] CREATE VIEW vw_ViewAdi AS SELECT * FROM tablo_adi WHERE istenilen_kosullar [/php]

şeklindedir.

ÖRNEK : İlk olarak  ‘FIRMA’ adında bir veritabanı oluşturalım. Bu veritabanının altında da ‘Personel’ adında bir tablo oluşturup içerisine kayıtlar girelim.

[php]USE FIRMA

GO

CREATE TABLE PERSONEL (ID int primary key identity(1,1) not null, Adi varchar(50), Soyadi varchar(50), Telefon_No varchar(11), Email varchar(50))[/php]

ile database üzerinde bir tablo oluşturalım. Henüz herhangi bir kayıt eklenmediği için tablomuz boş gelecektir.

[php] SELECT * FROM PERSONEL [/php]

Tablomuza birkaç kayıt ekleyelim.

[php]INSERT INTO PERSONEL VALUES (‘Çağlar’,‘ÖZENÇ’,’0555555555’,’1@dmcteknoloji.com’), (‘Baki‘,’ABACI’,’0555555556’,’2@dmcteknoloji.com’), (‘Çağdaş’,‘KOCA’,’0555555557’, ’3@dmcteknoloji.com’)[/php]

  • Şimdi bu tablodan istediğimiz koşulların listeleneceği bir view oluşturalım.
[php]CREATE VIEW vw_deneme AS SELECT * FROM PERSONEL WHERE Adi LIKE ‘Ç%’[/php]

Oluşturduğumuz view ile Personel tablosundan adı Ç ile başlayan verileri, sorguyu her seferinde yazmaya gerek kalmadan

[php]SELECT * FROM vw_deneme[/php]

ile çekebiliriz.

2.ALTER Komutu

Database üzerinde oluşturduğumuz tablo, view, stored procedure’ler gibi nesneler üzerinde değişiklik yapmak istediğimizde kullandığımız komuttur. Örneğin, tabloya kolon eklemek, trigger koşullarını değiştirmek, view’da ekstradan bir koşul daha eklemek gibi değişiklikler istenildiğinde kullanılır.

[php]ALTER TABLE PERSONEL ADD kolon_adi veri_tipi[/php]

Örnek verecek olursak eğer ;

  • Personel tablomuza “Cinsiyet” kolonu ekleyelim. Tablomuza kolon eklemek, tablo üzerinde değişiklik yapmak olduğundan ALTER komutu ile bu işlemi gerçekleştireceğiz.
[php]ALTER TABLE PERSONEL ADD Cinsiyet varchar(5)[/php]

değişikliği yaptıktan sonra Personel tablosunu yeniden getirelim.

Cinsiyet kolonunu yeni eklediğimizden herhangi bir veri bulunmamaktadır.

Şimdi bu kolona veri girişi yapalım.

Daha öncesinde veritabanında olan kayıtlarımızda değişiklik yapacağımız için UPDATE komutunu kullanacağız.

[php]UPDATE PERSONEL SET Cinsiyet=’ERKEK’ WHERE ID IN (1,2,3)[/php]

NOT: İlk olarak tablomuzda yani bir “nesne” üzerinde değişiklik yaptığımız için ALTER komutunu kullandık. Daha sonrasında ise satır bazlı olarak yani “veri” üzerinde değişiklik yaptığımız için UPDATE komutunu kullandık.

 

3.DROP Komutu

Veritabanından objeleri silmek için kullanılır. Database’i silmek, tabloyu ya da tablo üzerinde bir kolonu silmek, stored procedure(sp) silmek gibi örnekleri çoğaltabiliriz.

  • DROP DATABASE database_adi — Veritabanını siler.
  • DROP TABLE tablo_adi — Tabloyu siler.
  • DROP PROC — Stored Procedure siler.

Örnek : Personel tablomuza bir kolon daha ekleyerek devam edelim.

[php]ALTER TABLE PERSONEL ADD TEL2 varchar(11)[/php]

  • Yeni eklediğimiz telefon numarası kolonunu, kayıtlı veriler için güncelleyip yeniden listeleyelim.
[php]UPDATE PERSONEL SET TEL2=2121234567 WHERE ID IN(1,2,3)[/php]

  • Yeni bir telefon numarası alanına sahip olduğumuz için diğer telefon bilgisi alanını silelim.
[php]ALTER TABLE PERSONEL DROP COLUMN Telefon_No[/php]

  • Başka bir örnek üzerinden ilerleyelim ve ID’si 3 olan personeli veritabanımızdan silelim.
[php]DELETE FROM PERSONEL WHERE ID=3[/php]

Tabloyu da silmek istediğimizde,

[php]DROP TABLE PERSONEL[/php]

sorgusu ile bu işlemi gerçekleştirebiliriz.

NOT : Görüldüğü üzere, veritabanında kayıtlı bir ”veri” üzerinde silme işlemi gerçekleştirilecekse DELETE komutunu, tablo gibi bir ”nesne” üzerinde silme işlemi gerçekleştirilecekse DROP komutunu kullanmaktayız.

TRUNCATE Komutu

SQL tabloları üzerinde kayıtlı tüm verileri siler. Tablo oluşturulduğu ilk haline geri döner. DELETE komutu ile silinen verilerle primary key alanı sıfırlanmazken ,TRUNCATE komutu ile Primary key alanı sıfırlanır.

Bir örnek üzerinde görelim ve Personel tablomuzdaki tüm verileri silelim.

[php]TRUNCATE TABLE Personel[/php]

Bu yazımızda DDL komutları ile işlemleri nasıl gerçekleştirdiğimizi inceledik. TRUNCATE- DELETE-DROP farklarını ve ALTER-UPDATE farklarını görmüş olduk. Yapılan örnekleri çoğaltmak adına , siz de internet üzerinden rahatlıkla bulunabilecek Microsoft’un ücretsiz olarak sunduğu ‘AdventureWorks’ veritabanı üzerinde çalışmalar yapabilirsiniz.

Umarım faydalı bir yazı olmuştur.

Bir sonraki yazımızda görüşmek üzere. 😊

Leave a Reply

Your email address will not be published. Required fields are marked *