Delphi' de SQL Kullanımı
SQL komutları yerel DataBase' ler yanında genellikle
Client / Server uygulamalarında yoğun olarak kullanılmaktadır.
Hatta bu kullanım Client / Server uygulamalarında neredeyse
DataBase ile yapılan işlerin tamamını oluşturmaktadır.
Aşağıdaki kod satırında, Delphi içerisinden TQuery
bileşeni vasıtası ile SQL komutlarını
çalıştırmak için kullanılan kod satırı görülmektedir.
Aşağıdaki kod satırı SQL komut satırı yazarken delphi
içerisinde izlenecek temel adımları göstermektedir.
procedure TForm1.Button1Click(Sender: TObject);
begin
a.Query1.Close;
b.Query1.SQL.Clear;
c.Query1.SQL.Add('SQL komut satırları 1,2,3, ... N');
d.Query1.Open;
end;
a. Daha önceden SQL komut satırı açık ise kapatılır, şayet Query1 açık değilse, bu komutu çalıştırmak herhangi bir problem oluşturmayacağı için dosya açık veya kapalı mı ? diye hiç bakmadan en baştan bu komutu yazın. Tablonuz açık veya kapalı fark etmez bu komut işlem başlangıcında tabloyu kapatarak tablo üzerinden yapacağımız işlemler için zemin hazırlamaktadır.
b. İkinci yazacağınız komut satırı Query1.SQL.Clear; olmalıdır. Bu komut satırı önceden Query1 ile çalıştırılmış farklı komut parçacıkları varsa, onları temizlememizi sağlar. Query1.SQL.Clear komutunu da mutlaka çalıştırın çünkü daha önceden kalmış olan komut parçacıklarını temizler. Şayet temizlenmezse, önceden kalmış komut satırları yenileri ile karışarak programınızın düzgün çalışmamasına ve hata vermesine sebep olabilir.
c. Yukarıdaki iki işlemi yaptıktan sonra artık gönül rahatlığı ile her türlü SQL komutlarını yazabilirsiniz. Yukarıda SQL.Add bir satır olarak verdik ama siz yazacağınız komut adedi kadar SQL.Add komut satırını kullanabilirsiniz ya da bir SQL.Add komut satırı ile programda kullanacağınız tüm SQL komutunu yazabilirsiniz. SQL.Add komutunun görevi sadece çalıştırılacak SQL komutlarını bünyesine dahil etmektir. Dahil edeceği komut satırları tırnak işaretleri içerisinde verilir. Yazılan bu SQL komut komutları, SQL.Open komut satırı çalıştırılıncaya kadar hiçbir aktif rol oynamaz.
d. Son olarak ise Query1 bileşenine yüklenen komutları çalıştırarak istenilen sonuca ulaşmanızı sağlayacak olan, Query1.Open komutunu çalıştırmaya geldi. Bu komut satırı ile birlikte sorgulama işlemi için son adımı atarak temel manada SQL Yazım sırasını görmüş olduk.
"Select" Cümleciğinin İncelenmesi
Select komutunun kullanımı MS SQL Server, Oracle, SysBase, hatta yerel tablolarda dahi kullanımı hep aynıdır. Aşağıda yazdığımız komut satırı ile yukarıda bahsi geçen tüm DataBaselerde aynı sonucu elde edebilirsiniz. Select cümleciğinin en temel kullanımı, "SELECT tablodaki değişken adları FROM Tablo isimleri" şeklindedir. Bu komut satırı şartlara göre tablo bilgilerine değişik alternatifler ve sorgulamalar, işe ulaşma yöntemine göre farklı parametreler alır. Bu komut satırı ile kullanılan temel komutlar şöyledir.
a. Select değişken1, değişken2, değişkenN : Tablo içerisinden seçilecek alanların yazıldığı bölümdür. Tablo içerisinden seçilecek alandan kastımız tüm verileri alabilme yanında, istenilen alan bilgilerini alma anlamına geliyor. Şayet bir tablodan tüm alanlar okunacak ise "*" konulur. Bunu yanında istenilen bilgi bir den fazla tablodan alınacak ise, yine tablo işaretçileri kullanılarak birden fazla tablodan rapor elde edilebilir.
b. From Table1, Table2, TableN : Parametre verilen tablo sayısı bu komponent ile ulaşmak istediğimiz tablo sayısına göre değişir.
c. Where sorgu şartları1, sorgu şartları2, sorgu şartları3 : Tablo içerisinde alanlardan birisinde belirli özellikleri sağlayan kayıtlara ulaşmak istediğimiz zaman başvuracağımız satırdır. Yine buraya da bir çok şart yazabiliriz. Şayet ulaşmak istediğimiz kayıtlarda belirli bir özellik gözlemeden tüm kayıtlara ulaşmak istiyorsak, bu satırı kullanmamıza gerek yoktur. Sorgu şartlarında aşağıdaki operatörleri kullanabilirsiniz.
= Eşitlik Operatörü
> Büyüklük Operatörü
>= Büyük Eşit Operatörü
< Küçük Operatörü
!= Eşit Değil Operatörü
bu operatörler yanında iki değer arası kayıt için Between ... And ... değişken içerisinde geçen herhangi bir In (liste) şartla bir bölümü uyan kayıtlar için Like vs. olmak üzere çeşitli operatörleri kullanabilirsiniz.
GROUP BY gruplanacak değişken ismi: Belirli alanlara göre verileri gruplamak maksadıyla kullanılır.
HAVING gruplanacak veri şart bölümü : grupla ilgili şart bölümüdür. ORDER BY değişken1, değişken2, değişkenN (ASC, DSEC): parametrede verilen değişkenler doğrultusunda istenilen verileri sıralayarak getirir. Bu sıralamada değişken sayısı arttıkça, sıralama şekli ilk önce birinci değişken daha sonra ikinci ve diğerleri olmak üzere sıralama mantığı kullanılır. Ayrıca bu değişkenden sonra verilecek ASC veya DSEC komutları ile sıralamanın yönleri büyükten küçüğe veya küçükten büyüğe yöneltilebilir.
ORDER BY Adı, Soyadi DESC // bu satır önce isim ve isim altıda soy isim olmak üzere tersten sıralama yapar.
örnek 1: Varolan bir Personel tablosundan Personelin Tüm bilgilerini SQL komutları şart' a bağlı olmadan okuyalım.
procedure TForm1.Button2Click(Sende: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From personel');
Query1.Open;
end;
Yukarıda Where yazılmadığı için tüm kayıtların hepsini ifade
ediyor. Ayrıca parametre olarak da "*" kullanıldığı için personel
tablosundan tüm bilgilerin alanların sorgulanacağını ifade eder.
örnek 2: Personel listesinden bilgi işlem departmanında bulunan elamanların adını soyadını ve işe geliş saatlerinin listesini almak isteyelim.
procedure TForm1.Button3Click(Sender: TObject);
begin
With Query1 Do
Begin
Query1.Close;
SQL.Clear;
SQL.Add('SELECT adi, soyadi, Departman, MesaiBaslangic From personel);
SQL.Add('Where Departman="Bilgi işlem"');
Query1.Open;
End;
end; |