2006-12-25

Veri İşleme Dili(DML)

Amaç: Bu makale ile SQL(Structure of Query Language)'in DML(Data Manuplation Language) komutlarından SELECT deyimini inceleyip, irdelemeye çalışacağız.

Veri işleme dili(kısaca DML) veritabanı içindeki verileri elde etmek, yeni veri eklemek, mevcut verileri değiştirmek ve silmekle ilgili SQL komutlarıdır. Bu deyimler aşağıdaki gibidir:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE


DML verilerin nasıl tutulduğu ile ilgilenmez sadece var olan kayıtları görüntülemek, değiştirmek,silmek ve yeni kayıt eklemek için kullanılır.

Şimdi sırası ile bu komutların ne olduğunu; hangi ifadeler ile birlikte kullanılabileceğini; sonuç olarak ne döndürdüklerini irdelemeye çalışalım.

SELECT KOMUTU:
Bu deyim veritabanından satırları getirme ve bir yada birden çok tablo(table) veyahut view'dan bir yada birden çok satır(row) veya sütun(column)ün seçilmesine izin verir. Kısaca verileri görmenin en sıkı kullanılan yöntemidir.
Genel Yapısı:
SELECT ifadesinin söz diziminin tam şekli oldukça karmaşıktır. Bununla birlikte en çok kullanılan şekli aşağıdaki gibidir:
SELECT [ DISTINCT ] [ TOP sayi TOP sayi PERCENT ] secim_listesi [ INTO yeni_tablo ]
FROM kaynak_tablo
[ WHERE arama_kriterleri ]
[ GROUP BY gruplama_ifadeleri ]
[ HAVING arama_kriterleri ]
[ ORDER BY sıralama_ifadeleri [ ASC DESC ] ]

Merak edenler için SELECT deyiminin tam söz dizimi aşağıdaki gibidir:
SELECT statement ::= <> [ ORDER BY { order_by_expression column_position [ ASC DESC ] } [ ,...n ] ] [ COMPUTE { { AVG COUNT MAX MIN SUM } ( expression ) } [ ,...n ] [ BY expression [ ,...n ] ] ] [ FOR { BROWSE XML { RAW AUTO EXPLICIT } [ , XMLDATA ] [ , ELEMENTS ] [ , BINARY base64 ] } ] [ OPTION ( <> [ ,...n ]) ]
<> ::= { <> ( <> ) } [ UNION [ ALL ] <> ) [...n ] ]
<> ::= SELECT [ ALL DISTINCT ] [ { TOP integer TOP integer PERCENT } [ WITH TIES ] ] <> [ INTO new_table ] [ FROM { <> } [ ,...n ] ] [ WHERE <> ] [ GROUP BY [ ALL ] group_by_expression [ ,...n ] [ WITH { CUBE ROLLUP } ] ] [ HAVING <> ]

Örnek: SELECT * FROM GIDER ile Gider tablomuzdaki tüm kayıtları görüntüleyebiliriz. Burda *(asteriks) ile tüm alanları gösteriyoruz. Gider tablomuzdaki Kod ve Aciklama alanları vardı. Yukarıdaki ifade yerine
SELECT Kod, Aciklama FROM GIDER
ifadesi ile de aynı şeyleri görüntüleyebiliriz. Tablomuzdaki veriler aşağıdaki gibi olsun.



SELECT ifadesi istenilen tablodan istenildiği kadar alan seçilebilir. Örneğin sadece Gider Açıklamlarına ihtiyacımız olsaydı bunu için yazacağımız SQL kodu aşağıdaki gibi olurdu:
SELECT Aciklama FROM GIDER

Yeri gelmişken FROM ifadesinin niçin kullanıldığını açıklayayım. FROM ile hangi tablo yada tablolardan verilerimizi çekeceğimizi belirliyoruz.

Bir tablo içerisinde belirli kayıtları ararken aşağıdaki arama operatörlerinden faydalanırız:
  1. Karşılaştırma Operatörleri : =, <>, !=, <, >, >=, <=, !>, !<
  2. Aralık belirtme : BETWEEN, NOT BETWEEN
  3. Liste içerisinde : IN, NOT IN
  4. String benzerliği : LIKE , NOT LIKE
  5. Bilinmeyen Değerler : IS NULL, IS NOT NULL
  6. Oluşsuzlaştırma : NOT

VERİLERİ SIRALAMAK(ORDER BY):

Seçilen veriler istenilirse sıralanabilir. Sıralama bir yada birden çok alana göre yapılabilir. Sıralama ASC artan yada DESC azalan sırada yapılabilir. Alanlar arasına hernagi bir şey yazılmadığı zaman default ASC'dir. Hatırlatmakta yarar var: Bir sorgu içerisinde sıralama birden çok alana göre artan aynı şekilde birden çok alana göre de azalan olabilir.

Örnek: PERSONEL tablosunu Adi ve Soyadi artan, maaşı azalan olacak şekilde görüntüleyelim:

SELECT * FROM PERSONEL
ORDER BY ADI, SOYADI ASC, MAAS DESC

Hiç yorum yok:

.::YASAL UYARI::.

©2004-2016 Mehmet GÜZEL, http://www.mehmetguzel.net/ & http://www.mehmetguzel.com/

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.