• 14 Ekim 2024 07:56

Sait ORHAN

Öğretmek için Öğrenin- Öğrenmek için Öğretin

SQL Server DML Komutlarına Hızlı Bakış

DML (Data Manipulation Language) komutları, tabloya veri ekleme, tablodan veri güncelleme, silme ve veri sorugulama işlemlerinde kullanılan komutlardır. Bu komutlar, yaptıkları işlemlerin baş harflerinin alınmasından oluşan CRUD kelimesi ile de tabir edilir. Bu komutlar;

  • Veri Girişi (INSERT)
  • Okuma (Select)
  • Güncelleme (UPDATE)
  • Silme (DELETE)

Makalemiz boyunca yapacağımız örnekler aşağıdaki tablo yapısı üzerinden ilerleyecektir.

Veri Gerişi (INSERT)

CRUD kelimesinin ilk harfinde geçen CREATE işlemidir. INSERT komutu ile tabloya veri girişi sağlanır. Temel kullanımı aşağıdaki gibidir.

INSERT INTO Tablo_Ad(col1, col2,...., coln) VALUES(deger1, deger2, ..., degern)

Tablo adından sonra gelen parantez içerinde veri ekleme işleminde değer atanacak kolonların adları ve VALUES anahtar kelimesinden sonra gelen parantezde ise bu kolonların sırası ile değerleri belirtilir.

Aşağıda öğretmenler tablosuna bazı veri girişi örneklerini inceleyelim.

INSERT INTO Ogretmenler(Isim, Soyisim, SicilNo, DogumTarihi) VALUES('Sait', 'ORHAN', '123456', '1989-06-28')

Bu örneğimizde kolonlara sırası ile aşağıdaki değerler atanmıştır.

IsimSait
SoyIsimORHAN
SicilNo123456
DogumTarih28.06.1989

Bu örnekte olduğu gibi bütün kolonlara değer atanacak ise tablo isminden sonra parantez içerisinde kolon isimlerini belirtmeye gerek yoktur. Böyle bir kullanımda da VALUES anahtar değerleri kolonların tablodaki sıralarına göre atanacaktır. Örnek kullanımı aşağıdaki gibidir.

INSERT INTO Ogretmenler VALUES('Sait', 'ORHAN', '123456', '1989-06-28')

Veri ekleme işleminde null değer alabilen kolonlara değer atanmadan da işlem yapılabilir. Örneğin aşağıdaki sorguda null değer alabilen DogumTarih kolonuna değer atanmamış şekilde tabloya kayıt girilmektedir.

INSERT INTO Ogretmenler(Isim, Soyisim, SicilNo) VALUES('Bilal', 'ORHAN', '123456789')

Bu sorgu kaydedilen satırın görüntüsü aşağıdaki gibi olur.

@@IDENTITY değeri tabloda otomatik olarak artan kolonun son atanan değerini verir.

Aynı anda birden fazla satır eklemek için de VALUES anahtar kelimesinden sonra satırları virgül ile ayrılarak eklenebilir.

INSERT INTO Ogretmenler(Isim, Soyisim, SicilNo) VALUES('Çetin', 'Güneş', '123456785'),('Ahmet', 'Yıldız', '123456780')

Veri Güncelleme (UPDATE)

CRUD kelimesindeki U harfinde belirtilen UPDATE işlemi tablodaki verilerin güncellenmesini sağlar. Tablodaki belli kolonların bütün değerlerini değiştirebileceği gibi WHERE anahtar kelimesi ile sadece belirtilen şartları sağlayan satırların değerleri de değiştirilebilir. Temel kullanım şekli aşağıdaki gibidir.

UPDATE Tablo_Ad SET col1 = deger1, col2 = deger2,... coln = degern WHERE sart

UPDATE komutunun kullanımında WHERE ile sadece değeri değiştirilmek istenen kolonlara ait şartlar verilmelidir. Herhangi bir şart belirtilmeden komut çalıştırılırsa tablodaki bütün değerleri değiştirir.

Aşağıdaki örnekte sadece Id değeri 7 olan satırın isim ve soy isim alanları güncelleniyor.

UPDATE Ogretmenler SET Isim = 'Mustafa', Soyisim = 'Yıldırım' WHERE Id = 7

Aşağıdaki komutta ise öğretmenler tablosundaki bütün isimler ve soy isimler Mustafa ve Yıldırım olarak değiştirilmektedir.

UPDATE Ogretmenler SET Isim = 'Mustafa', Soyisim = 'Yıldırım'

Veri Silme (DELETE)

CRUD kelimesindeki D harfinde belirtilen DELETE işlemi tablodaki verilerin silinmesini sağlar. Tablodaki belli tüm satırlar silinebileceği gibi WHERE anahtar kelimesi ile sadece belirtilen şartları sağlayan satırlar da silinebilir. Temel kullanım şekli aşağıdaki gibidir.

DELETE Tablo_Ad WHERE sart

DELETE komutunun kullanımında WHERE ile sadece silinmek istenen satırlara ait şartlar verilmelidir. Herhangi bir şart belirtilmeden komut çalıştırılırsa tablodaki bütün satırları.

Aşağıdaki örnekte sadece Id değeri 7 olan satır siliniyor.

DELETE Ogretmenler WHERE Id = 7

Aşağıdaki kullanımda ise öğretmenler tablosunun bütün içeriği silinmektedir.

DELETE Ogretmenler

Veri Sorgulama (SELECT)

CRUD kelimesinde geçen R (READ) harfi ile ifade edilen işlemdir. Tablodan veri çekmek için kullanılır. Temel kullanımı aşağıdaki gibidir.

SELECT column1, column2, ...
FROM tablo_ad
WHERE sartlar

SELECT sorgusunda WHERE anahtar kelimesi ile bir şart verilmezse tablodan istenen kolonların bütün verilerini getirir. Örneğin aşağıdaki sorgu ile öğretmenler tablosunda yer alan bütün veriler listelenir.

SELECT sorgusunda bütün kolonlar alınacak ise SELECT ifadesinden sonra bütün kolonları yazmak yerine * işareti konarak da bütün kolonlar getirilebilir.

SELECT * FROM Ogretmenler

veya * yerine aşağıdaki gibi bütün kolonların adlarını yazmak da aynı sonucu getirecektir.

SELECT Id, Isim, Soyisim, SicilNo, DogumTarihi FROM Ogretmenler

SELECT işleminde bütün kolonlar alınabileceği gibi sadece ihtiyaç duyulan kolonları ihtiyaç duyulan sırada da alınması mümkündür. Örneğin aşağıdaki sorguda öğretmenlerin isim, soy isim, doğum tarihi ve son kolon olarak da tabloda olmamasına rağmen formül yazılarak anlık hesaplanan yaşları kolonu listelenmiştir.

SELECT Isim, Soyisim, DogumTarihi, DATEDIFF(YEAR, DogumTarihi ,GETDATE()) Yas FROM Ogretmenler

Aşağıdaki sorguda da aynı sorguyu sadece Id değeri 7 olan öğretmen için sorgulanıyor.

SELECT Isim, Soyisim, DogumTarihi, DATEDIFF(YEAR, DogumTarihi ,GETDATE()) Yas FROM Ogretmenler WHERE Id = 7

Sorgularda Birden Fazla Şartın Birleştirilmesi

Bazı sorgularda WHERE anahtar kelimesi ile verilen şartlarda birden fazla şart olabilmektedir. Bu durumda OR veya AND bağlaçları ile şartlar birleştirilir.

ORVeya anlamındadır. OR ile bağlanan şartlardan en az biri doğru olduğunda şart sağlanmış olur.
ANDVe anlamındadır. AND ile bağlanan şartların tümünün doğru olması durumunda şart sağlanmış olur.

Aşağıdaki sorguda Id değeri 7 olan veya sicil numarası 123456789 olan öğretmenler listelenmektedir.

SELECT * FROM Ogretmenler WHERE Id = 7 OR SicilNo = '123456789'

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.