Temel SQL Komutları

Dökümanın Forum Konusu Linktedir : http://www.tahribat.com/Forum-Dokuman-Temel-Sql-Komutlari-139254/

Temel Sql Komutları

Programlarımızda yada veritabanında doğrudan sorgulamak,ekleme,çıkarma,güncelleme ve silme işlemlerini yapabileceğimi sql de temel komutlar bulunmakta. Sql aslında dışardan bakıldığı kadar korkutucu değildir herşey yaratıcılıkta bitiyor yani temel komutları bildikten sonra bunları komples şekilde kullanarak her türlü sorguyu yapabilirsiniz : )

Başlamadan önce elinizde veritabanı olduğunu farz ediyorum J boş olması sorun değil zaten komutlarımız yardımıyla dolduracağız.

Başlamadan önce hangi komutlara bakacağımıza bir göz atalım,

Select : Kayıtları görüntülemek için.

Update : mevcut olan bir kaydı yada kayıtları güncellemek için

Insert : kayıt eklemek için.

Delete : silmek için.

Bu dökümanda insert ve Select kullanımına bakalım.

Şimdi başlayalım.

Önce sql sunucumuzu açıyoruz ve New Query’e basıyoruz.

Öncelikle karşımıza çıkan ekranı tanıyalım.

Burdan sorgulama yapacağımız veritabanını seçebiliriz. Zorunlu değildir sql komutları ile hangi veri tabanı üzerinde çalışabileceğimizi zaten ayarlayabiliriz.

Execute : Query e yazılan cümleleri çalıştırmak için ( F5 kısa yoluda mevcuttur )

Kırmızı kutucuk içine aldığım 3 adet daha alan var bu alanlar bize sorgunun nasıl bir çıktıda vereceği içindir ordaki seçenekler

Results to Text : sonuçları Text yani metin olarak çıkması için.

Results to grid ( kullanacağımız ) : sonuçların karşımıza tablo olarak çıkması.

Results to file : sonuçları sql report dosyası olarak kaydetmek için . ( ihtiyacınız olmaz )

Öncelikle veritabanımıza biraz kayıt ekleyelim bunun için kullanacağımız komut INSERT olacaktır. Şimdi bu komutu nasıl kullanacağımıza bakalım.

Insert Komutu ve kullanımı

insert cümlesini kullanmak için önce sql cümle kalıbını inceleyelim. cümlemiz insert into yani ekle diyerek başlar sonra tablo adını yazarız ve verilerin ekleneceği sutunlar ardından values yani değerler kelimesi ve sırasıyla alanlara karşılık gelecek verilerimizi yazarız.

insert into TabloAdi (TablodakiSutun1,Sutun2,Sutun3,Sutun4,Sutun5,Sutun6) values ('Sutun1Degeri',' Sutun2Degeri ',' Sutun3Degeri ',' Sutun4Degeri ',' Sutun5Degeri ',' Sutun6Degeri ')

Tablomuzu belirledik ve tablomuzdaki alanları teker teker yazdık ve sonrada bu alanlara karşılık gelen verilerimizi ekledik.  Örn aşağıda.

Resimde de görüldüğü gibi 1 row(s) affected yani sonuç başarılı kaydımızı düzgün bir şekilde ekledik.Cümlemiz ,

insert into uyelikbilgi (uyeliktarih,gecmis,siteadi,uyeadi,uyeid,telefon) values ('01.01.2011','muritcan','www.tahribat.com','sharp','31000','321432')

İpucu!! : tablonuzda anlık tarih gibi bir alan varsa SQL de GETDATE() komutuyla o andaki tarihi sql e otomatik olarak attırabilirsiniz.

insert into uyelikbilgi (uyeliktarih,gecmis,siteadi,uyeadi,uyeid,telefon) values (GETDATE(),'muritcan','www.tahribat.com','sharp','31000','321432')

birkaç tane bu şekilde kayıt ekledikten sonra şimdi bu kayıtlarımızı listeleyelim.

Bunun için Select komutunu kullanacağız.

Select Komutu ve kullanımı

Select * from uyelikbilgi

Komutu açmak gerekirse , uyelikbilgi isimli tablodan bütün verileri getir demek.

Bu şekilde tablodaki bütün kayıtlar gelir ama çok fazla kayıt olan tablolarda filtreleme yapmak istiyorsak bunu yapmak için WHERE komutunu kullanmamız lazım

Örn : uye adı buzul olan kayıtları listeleyelim.

Select * from uyelikbilgi where uyeadi='buzul'

Yada mesela gecmişimde murit kelimesi geçen üyeleri bulalım bunun içinde ek olarak LIKE komutunu kullanmamız lazım.

Select * from uyelik bilgi where gecmis like 'murit%'

İpucu !! : like komutu ile yaptığımız sorgularda % işaretini kullanabiliriz bu işareti örneklerle açıklamak gerekirse,

‘%murit%’ içerisinde murit geçenleri listeler

‘%murit’ murit ile bitenleri listeler

‘murit%’ murit ile başlayan kayıtları listeler.

Çok büyük ve alan sayısı fazla olan veritabanlarında sadece istediğimiz alanları çağırmak veritabanında hızlanma sağlar bunun için select cümlesini kullanırken  * olarak kullandığımız karakter bize bütün sütunları getirir ancak * yerine sadece istediğimiz sutunları yazarsak veritabanının sorgu hızında artış sağlanabilir.

Örn :

select uyeadi,uyeid from uyelikbilgi

Bu sorgu bize uyelik bilgi tablosundan sadece uyeadi ve uyeid alanlarını getirir.

Select  Sorgusu ile toplam kayıtı getirmek

Basit bir sorgu ile karşınıza tablonuzda kaç kayıt var listeleyebilirsiniz.

select COUNT(*)from uyelikbilgi

Çıktıda da gözüktüğü gibi (No Column name ) adında bir sütün altında toplam kayıt sayısı gözükmektedir.

İpucu !! : Sql güzelliklerinden biride tabloda içinde sutun açmadanda sutun ekleyebilir bunları anlık kullanabilirsiniz. Şimdi (No Column name ) yazan yere bir başlık ekleyelim

select COUNT(*) as Toplam_Kayit from uyelikbilgi

bu şekilde yazdığımızda çıktımız şu şekilde olacaktır.

Toplam_Kayit

4

Yada sadece içerisinde murit geçen kayıtları saydırabiliriz

select COUNT(*) as Toplam_Kayit from uyelikbilgi where gecmis like '%murit%'

bu komuttanda alacağımız çıktı sonucu

Toplam_Kayit

3

Olacaktır.

İpucu !! : Sql Query sayesinde elimizdeki kayıtlardaki sutunlardaki verileri yine sql içersinde birleştirebilir ve onları listeyebiliriz.

Örn : tablomuzdaki uyeadi,gecmis ve site adı alanları tek sutunda listeleyelim. Bunun için aşağıdaki komutu kullanabiliriz.

select uyeadi+' '+gecmis+' '+siteadi as uyeler_bilgi from uyelikbilgi

bu komuttan alacağımız çıktı ise şu şekilde olacaktır.

uyeler_bilgi

sharp muritcan www.tahribat.com

uyecan muritcan2 www.tahribat.com

buzul muritcan4 www.tahribat.com

rene rene www.tahribat.com

bu kadar çok örnek vermemin sebebi sql’in sınırsızlıklarını biraz hissettirmekti. Hiçbir program kullanmadan kayıtları istediğiniz gibi listeleyebilirsiniz.

UPDATE - DELETE ve Karşılaştırma Operatörleri

Bu dökümandan önce Select ve Insert komutlarına bakmıştık şimdide Insert ile ekleyip Select ile listelediğimiz kayıtları Update Komutu ile güncelleyelim Delete komutu ile silelim. sonrada sorgularımızdaki kullandığımız ve kullanacağımız operatörlere göz atalım.

Öncelikle tekrar kayıtlarımıza bakalım

Select * from uyelikbilgi

Sorgusu ile tablomdaki bütün kayıtları sorgulayalım

5 adet kayıt geldi karşımıza şimdi kayıtlarımızda güncelleme yapalım. Update komutunun kullanımını cümleyle anlatmak gerekirse.

Update TabloAdi Set SutunAdi=Deger,SutunAdi2=Deger2

Şimdi bizde tablomuzdaki siteadi alanındaki bütün bilgileri www.google.com olarak değiştirelim.

Bunun için yazıcağımız cümle şu şekilde olacaktır.

Update uyelikbilgi Set siteadi='www.google.com'

Bu cümleyi çalıştırdıktan sonra 5 tane kaydımız olduğundan alacağımız cevap

(5 row(s) affected)

Olacaktır.

Select * from uyelikbilgi

Cümlesi ile kayıtlarımızın son hallerine bakalım.

siteadi

www.google.com

www.google.com

www.google.com

www.google.com

www.google.com

bütün kayıtların site adları değişmiş oldu.

DİKKAT !!! : UPDATE komutu çok tehlikeli bir komuttur elinizde çok büyük bir veritabanı varsa elinizdeki kayıtların hepsini güncelleyebilirsiniz.

Update komutunu WHERE sorgusu ile kriterlerini belirlediğimiz komutlar üzerinde kullanmamız bütün kayıtları bozmamak için en mantıklısıdır.

İpucu !!! : koşullu yani WHERE sorgusuyla birliklte bir güncelleme yapacaksanız yazdığınız komutu ilk önce SELECT komutuyla bakın ve hangi kayıtlarını güncelleceğinizi görün.

Şimdi tablomuzda şöyle bir koşul yapalım

Üyelik Tarihi 2008’den küçük olanların Gorev alanlarını ‘Eski Toprak’ olarak güncelleyelim.

Update uyelikbilgi Set gorev='Eski Toprak' where uyeliktarih<'2008-10-01 00:00:00.000'

Bu komut sayesinde üyelik tarihi 2008den eski olan üyelerin gorev alanlarında değişiklik yapmış olduk.

Bu komutta görüldüğü gibi uyeliktarihi nin yanında < şeklinde bir operatör kullandım. SQL de kullanabileceğimiz operatörleri en sonda bahsederim.

Update komutu temelde bu şekilde çalışır bundan sonrası sizin, yaratıcılığınız ve hayal gücünüz arasındaki meseleye kalmıştır biraz WHERE komutundan sonraki sorgulamalar ne kadar fazla olursa o kadar az kayıtta güncelleme yaparsınız.

DELETE komutu

Bu komut kayıtları silmek için kullanılır kullanmanızı önermem hiçbir kayıdı silmenize gerek yoktur aslında.

Delete komutunun kullanımına bakacak olursak.

Delete From TabloAdi

Şeklinde kullanabiliriz ama bu bizim bütün kayıtlarımızı silmekten başka bir işe yaramaz. Eğer amacımız tabloların içini boşaltıp boş bir veritabanı hazırlamaksa bu komut işimizi görür. Bu sorguyada WHERE komutuyla kısıtlayıp filtreleyebiliriz.Örn,

Delete From Uyelikbilgi where uyeadi=’sharp’ dersem bu benim kullanıcımın silinmesi demektir.

Şimdi SQL de kullanabileceğimiz Operatörlere göz atalım isterseniz.

SQL’DE OPERATÖRLER

Mantıksal Operatörler

AND : birden fazla şart aranan kayıtları listelemek için kullanılır örn üye adı sharp ve uyeid si 31000 olan kayıtları listemek istersem aşağıdaki gibi bir komut yazmam gerekir.

select * from uyelikbilgi where uyeadi='sharp' and uyeid='31000'

OR : birden fazla şartta kayıt aramak için kullanılır mesela üye adı sharp ve buzul olanları listeleyelim. OR operatörünün özelliği istediğimiz koşulların herhangi birini karşılayan kayıt olduğunda bile listeler. Aşağıdaki cümleye OR yerine AND koyarsanız  karşınıza hiç kayıt çıkmaz.

select * from uyelikbilgi where uyeadi='sharp' or uyeadi='buzul'

NOT : listelemek istemediğimiz kayıtlar için kullanılır örn tablomuzda üye adı sharp olmayanları listelemek için.

select * from uyelikbilgi where not uyeadi='sharp'

NOT IN : İstemediğimiz kayıtları çıkartmak içinde bu komutu kullanabiliriz mesele uyeid alanı 31000 olan kayıtların gelmesini istemiyorsak aşağıdaki cümleyi kullanabiliriz.

select * from uyelikbilgi where uyeid NOT IN (31000)

Karşılaştırma Operatörleri

 Bu operatörlerinde hepsine birer tane örnek ekleyelim.

<      ..’ den daha küçük 

select * from uyelikbilgi where uyeliktarih<'2008-10-01 00:00:00.000'

     ..’ den daha büyük 

select * from uyelikbilgi where uyeliktarih>'2008-10-01 00:00:00.000'

>=    Büyük veya eşit 

select * from uyelikbilgi where uyeliktarih>='2008-10-01 00:00:00.000'

<=    Küçük veya eşit 

select * from uyelikbilgi where uyeliktarih<='2008-10-01 00:00:00.000'

     Eşit 

select * from uyelikbilgi where uyeid='31000'

<>    Eşit değil 

select * from uyelikbilgi where uyeid<>'31000'

!=     Eşit değil 

select * from uyelikbilgi where uyeid!='31000'

!<     ..’ den küçük değil 

select * from uyelikbilgi where uyeid!<'31000'

!>     ..’ den büyük değil

select * from uyelikbilgi where uyeid!>'31000'

Tarih:
Hit: 5200
Yazar: Sharp



Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.