Bilgisayar | Toplama Bilgisayar

kıdem maaşınızı igdaş iski hesabınızı müzesi museum degistiren gelirinizi zenginlik zenginisiniz kitap8 araclari paintshoppro quarkders wirelessrouter xpcd aria türkiyenin ihbar tazminatı netten brüte sandığı bilet sigortalı şehirlerinde uçuş saatlerini günlerini milli ihale ilanlarını piyango loto aramamotorutaktikleri cnotlari framemaker babylon nvidia folders farmalist bilesenleri bileşenlerjoomla ziyaterci edinme setleribilişim setleriasp solidworks scrıplerı derslerhazır dağılımları bigisayarı güvendeyiz foxit winxp setihtml webci calistir komutlaricalistir yollarıbılgısayarınızı ıçerik yüklemeler kymk ahşap presetsrushes photoshop7 lassoarka gif/gif89a yararli yükleyicisi objectdock korku ayrılırken program veritabannda habaerleri linklerselect section yarışı ösys kpds iett eşya şahıs puanı tcmb döviz kurlarını speedtest çalıntı kota 3dmax bilgisayar programlar microsoft programı flash bilgisayarın bilgisayarı bilgisayara telefon vista modüler bilgisayarciniz bilgisayarcı mambotlar actionlar scripler kategorilerde odası tesbit motorlarının gelirinize zengini bölgesinin bölgelerine gezegenlerdeki ağırlığınızı karayollarında şehirlerarası festivallerini kasko zammı bağkur kalori yediklerinizi kaloriyi alaldığı biyografi ilaç sözlerini nöbetçi eczane gündüzü geceyi yaşıyor takvimlere bugünkü bölgelerinden rezervasyon argo olmadıgını kısaltmaların anlamlarını yeraldıgı borcunun

SQL
SQL'e Giriş

 
SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir.

SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veri tabanı ortamında kullanılan bir alt dildir. (sub language) SQL ile yalnızca veri tabanı üzerinde işlem yapabiliriz. SQL cümleceikleri kullanarak veri tabanına kayıt ekleyebilir, olan kayıtları değiştirebilir silebilir ve bu kayıtlardan listeler oluşturabiliriz. SQL cümlecikleri genellikle aynı olmakla birlikte farklı veri tabanı ortamlarında değişebilmektedir. Ayrıca veri tabanlarının kendilerine özgü sql komutlarıda vardır. Biz burada her ortamda geçerli olan temel sql komutları işleyeceğiz.Şimdi örnekler kullanacağımız bir database tanımlayalım. Aşağıdaki Örnekler Microsoft SQL Server 6.5 'da denenmiştir.

Tablo adı : personel
Kolon : sicil_no:text (8)
Kolon : ad:text (8)
Kolon : soyad:text (8)
Kolon : dogum_tarihi:date
Kolon : dogum_yeri:text (8)
Kolon : cinsiyeti:text(1)
Kolon : medeni_hali:binary
Kolon : meslek_id:smallint
Kolon : egitim_durumu:binary
Kolon : adres:text (50)

Tablo adı : ucretler
Kolon : per_sicil_no:text (8)
Kolon : baslama_tarihi:date
Kolon : aylık_ucret:numeric
Kolon : aile_yardimi:numeric
Kolon : egitim_yardimi:numeric
Kolon : kesinti:numeric:

Tablo adı : meslekler
Kolon : meslek_id:smallint
Kolon : aciklama:text (23)
Kolon : taban_ücret:numeric

From

İlk önce bu komut ile başlayalım. Bu komut bütün SQL cümleciklerinde bulunması gerekli bir komuttur.Bu komut ile hangi tablolar üzerinde çalışacağımı veri tabanına söylüyoruz. Eğer aynı sql cümleciği ile bir kaç tablo üzerinde işlem yapmak istersek tablo isimleri arasına virgül koymalıyız. aşagıdaki örnekleri SELECT komutundan sonra açıklayacağım.

Örnek 1 :
 

SELECT * FROM personel;

Örnek 2 :

SELECT * FROM personel,ucretler;

Select

Bu komut ile database üzerindeki tablonun hangi kolonları alacağımız veritabanına söyleriz.Tablonun bütün kolonlarını görmek istiyorsak '*' karekterini kullanırız. Sadece belli kolonları görmek istiyorsak kolon isimlerini aralarına virgül koyarak yanyana yazmalıyız.Yukarıdaki örnekleri açıklayacak olursak birinci örnek personel tablosundaki bütün kayıtları getirecektir. İkinci örnekte ise persenol ve ücretler tablosundaki bütün kayıtlar çekilecektir.

Örnek 3 :
 

SELECT * FROM meslekler ;

Bütün meslek bilgilerini almak istersek yukarıdaki gibi bir query yazmalıyız.

Örnek 4 :
 

SELECT ad,soyad FROM personel ;

Bu query ise bize firmamızda çalışan bütün personeli listeler.

SQL'de Veri Tabanı Yaratma

 

SQL komutları yalnızca bir veri tabanı üzerinde geçerli olduğu için veri tabanı yaratma işlemlerinide anlatmanın yararlı olacağına inanıyorum. Aşağıda anlatılan işlemler SQL Server 6.5 üzerinde gerçekleştirilmiştir.Database yaratmak için aşagıdaki komutu yazabiliriz.

CREATE DATABASE database_name
[ON {DEFAULT | database_device} [= size]
[, database_device [= size]]...]
[LOG ON database_device [= size]
[, database_device [= size]]...][FOR LOAD]


database_name : Bu yaratılacak olan veri tabanının ismidir.

ON            : Bu ise yaratılacak olan veri tabanın hangi device üzerinde yer alacağını belirten bir parametredir. Burada aynı zamanda bu device üzerinde size parametresi ile database'in ne kadar yer kaplayacağını belirmiş oluyoruz. Eğer device tanımlamaz isek SQL server default device üzerinde 5 mb bir veri tabanı yaratacaktır.Bu parametre içinde birkaç device ismi kullanarak veri tabanını bir kaç device üzerinde yer almasını sağlayabiliriz.

LOG ON        : Bu ise yaratılacak olan veri tabanın log'unun hangi device üzerinde yer alacağını belirten bir parametredir. Burada aynız zamanda bu device üzerinde size parametresi ile database'in log'unun ne kadar yer kaplayacağını belirmiş oluyoruz. Eğer device tanımlamaz isek SQL server default device üzerinde bir log tutacaktır.Bu parametre içinde birkaç device ismi kullanarak veri tabanı log'unun bir kaç device üzerinde yer almasını sağlayabiliriz.

Örnek 1 :

CREATE  DATABASE fat123


Bu komut ile SQL Server üzerinde fat123 isimli boş bir database yaratmış oluyoruz. (Dönen mesaj :CREATE DATABASE: allocating 2560 pages on disk 'a1v1')

Örnek 2 :
 

CREATE DATABASE fat123
ON master = 10

Bu komut ile SQL Server'da master device'ı üzerinde 10 mb'lık fat123 isimli boş bir database yaratmış oluyoruz.

Örnek 3 :
 

CREATE DATABASE fat123
ON fat123 = 10
LOG ON fat123log = 5

Bu komut ile SQL Server'da fat123 device'ı üzerinde 10 mb'lık fat123 isimli boş bir database ve fat123log device'ı üzerinde 5 mb bir log yaratmış oluyoruz.

Örnek 4 :
 

CREATE DATABASE fat123
ON fat=10 , fat1 = 10 , fat2=10 , fat3=10
LOG ON fat123log = 20


Bu komut ile ise fat123 isimli veri tabanını 4 farklı device üzerinde yaratıyoruz.

Genellikle yaratılan database'in yarısı kadar bir alanda log için oluşturulur.

SQL Komutları
 


Order By
Bu komut ile belirtilen kolona göre artan veya azalan bir sıralama ile sorgulama yapabiliriz.
ASC  : kullanarak küçükten büyüğe doğru artan sıralama yapabiliriz.
DESC : kullanarak büyükten küçüğe doğru azalan sıralama yapabiliriz.
Ancak ASC kullanmak zorunlu değildir. Çünki default sıralama tipi ASC'dir. Aynı anda birkaç kolon üzerindende sıralama yapabiliriz.

Örnek 1 :
 

SELECT * FROM personel ORDER BY ad ASC;

Bu query ile personel tablosundaki bütün kayıtları ad'a göre küçükten büyüğe dogru sıralarız.

Örnek 2 :

 

SELECT * FROM personel ORDER BY soyad DESC;

Bu query da yukarıdakinin tersine kayıtları büyükten küçüğe dogru sıralar.

Örnek 3 :

 

SELECT * FROM personel ORDER BY ad,soyad;

Bu query kayıları ad göre artan bir sıralama yapar. Ancak aynı ad ile yaratılmış birden fazla kayıt varsa ise bunlarıda soyad sırasına göre artan bir şekilde sıralar. Eğer her iki kolnda aynı ise o zaman okuduğu sırada sıralar.

Örnek 4 :

 

SELECT * FROM personel ORDER BY dogum_tarihi DESC,ad,soyad ;

Bu query'de ise pernel kayıtları büyükten küçüğe doğru sıralanıyor. Yani en genç eleman'dan başlanarak en yaşlı elemana doğru bir liste yapılıyor. Doğum tarihleri aynı olanlarda ise ad ve soyad'a göre bir sıralama yapılmaktadır.


Where
Yukarıda yaptığımız sorgulamaların hepsinde hiç bir koşul belirtmedik.Yani bütün kayıtları tablolardan çektik. Ancak gerçek hayat'ta bu kayıtların sadece bir kısmına ihtiyaç duyarız.Bize gerekli olan dataları diğerlerinden ayıran bazı özellikleri vardır. İşte bu özellikleri bu komut yardımı ile kullanarak gerekli datalara ulaşabiliriz.

Örnek 5 :
Adı ahmet olan personeli listelemek istersek ne yapacağız.Aşagıdaki gibi bir sorgulama yapacağız.
 

SELECT * FROM personel WHERE ad='ahmet';

Örnek 6 :
Yaşı 40'dan büyük personeli listeleme istersek;

 

SELECT * FROM personel WHERE dogum_tarihi < '01.01.1959'

sorgulamasını kullanmalıyız.Elemanın 40 yaşında büyük olması için 1959 yılından önce doğmuş olması gerekmektedir. O halde dogum_tarihi 1959 yılından küçük olmalıdır.

Örnek 7 :
Adana'da doğmuş personeli listelemek istersek
 

SELECT * FROM personel WHERE dogum_yeri = 'Adana'

Örnek 8 :
300 milyondan fazla maaş alan kişileri işe maaşa göre sıralamak istersek;
 

SELECT * FROM ucretler WHERE  aylik_ucret >= 300000000 ORDER BY aylik_ucret;

Operatörler

Her programlama dilinde olduğu gibi SQL'de de operatörler bulunur. Üç çeşit operatör mevcuttur. Karşılaştırma oparatörleri , mantıksal operatörler ve kümeleme operatörleri.Bu karşılaştırma operatörleri aşağıdaki gibidir ;
operatör anlamı
a>X          ... X... a'dan küçük
a<X          ... X... a'dan büyük
a=X          ... X... a'ya eşit
a=>X        ... X... a'dan küçük eşit
a<=X        ... X... a'dan büyük eşit
a<>X        ... X... a'ya eşit değil

Mantıksal operatörler ise AND,OR,NOT olarak verilebilir. Bu operatörler burada anlatmayacağız. Bunlar standart bütün dillerde aynı olan operatörlerdir.Kümeleme operatörleri ise datalar üzerinde gruplama yapmamızı sağlayan operatörlerdir.Bu operatörler Between , In , Like operatörleridir. Bu operatörlerin hepsini where ile birlikte kullanmalıyız.

Between :  Aralıklı sorgulama yapmak istersek kullanabilecegimiz bir operatördür.

Örnek 1 :

SELECT * FROM ucretler WHERE aylik_ucret BETWEEN 200000000 AND 300000000


Bu cümlecik ile 200 ile 300 milyon arasında maaş alanlar listelenecektir.

Örnek 2 :


 

SELECT *
FROM fat_bsl
WHERE ft_tar BETWEEN '01.01.1998' and  '04.06.1999'


Bu sorgulamada ise fatura tarihi 01.01.1998 ve 04.06.1999 tarihleri arasındaki faturalar listelenmiştir.Verilen tarih formatının sistemde kullanılan tarih formatı ile aynı olmasına dikkat edilmelidir. Yoksa sizin verdiğiniz tarih doğru olsa bile format farklı ise sorgulamanız geriye data döndürmez. (Yukarıdaki sorgulamada başıma geldide (:) )

In      :  Bu komut ile belli bir kolonun kümesini vererek işlemimizi daha kolay bir şekilde yapabiliriz.

Örnek 3 :

 

SELECT * FROM personel WHERE meslek_id IN (1,2,3)


Buradaki örnek 'te 1,2 veya 3 meslek grubundan herhangi birine dahil olan personel listelenemektedir.Bu örnek aşagıdaki şekildeki gibide yapabiliriz;


 

SELECT * FROM personel
WHERE meslek_id=1 OR meslek_id=2 OR meslek_id=3


Like    : Bu ise içinde belli bir karakter dizisi bulunan datalara ulaşmak istersek kullanabileceğimiz bir operatördür.

Örnek 4 :

 

SELECT * FROM personel WHERE adres LIKE '%İstanbul%'


Bu sorgulama ile adres alanında İstanbul geçen kayıtları listelemiş oluruz.

Örnek 5 :

 

SELECT * FROM personel WHERE adres LIKE '%İstanbul'


Bu sorgulama ile adres alanının sonunda İstanbul geçen kayıtları listelemiş oluruz.

Örnek 6 :

 

SELECT * FROM personel WHERE adres LIKE 'İstanbul%'

Bu sorgulama ile adres alanının başında İstanbul geçen kayıtları listelemiş oluruz

SQL'de Yeni Bir Kayıt Eklemek

 

Tabloya yeni bir satır eklemek istersek INSERT INTO sözcüğünü kullanırız. Genel kullanım şekli aşağıdaki biçimdedir ;

INSERT INTO tablo adı VALUES (deger1,deger2,deger3,...)

Eğer sadece belirli sahalara değer girmek istersek INSERT INTO'yu aşağıdaki şekildeki gibide kullanabiliriz.  

INSERT INTO tablo adı(kolon1,kolon3,kolon9,kolon7) VALUES (deger1,deger3,deger9,deger7)

Örnek :

Yeni bir personel eklemek istersek ;
 

INSERT INTO personel VALUES ('asdf2345','Ahmet','Yıldırım','01.01.1960','Ankara','E',1,7,1,'ebuziya cad. Bakırköy')

Örnek :

Yeni bir meslek eklemek istersek ;
 

INSERT INTO meslekler VALUES (23,'Belçi',200.000.000)

Bir tablodan bazı kayıtları başka bir tabloyada aktarabiliriz. Bunun için aşağıdaki gibi bir ifade yazmalıyız;
INSERT INTO tablo1
SELECT kolon1,kolon2,..
FROM tablo2

Örnek :
 

INSERT INTO NEW_CUSTOMER
SELECT NAME,CITY
FROM CUSTOMER

SQL'de Tablolar Üzerinde İşlem Yapma

 

Genellikle veri tabanı kayıları oluştururken bütün bilgileri bir tabloda değilde birkaç tablo üzerinde tutarız.Bu dataların hem daha
düzenli durmasını hemde gereksiz veri tekrarlarını engellemiş olur.Şimdi farklı tablolara bölünmüş datalar üzerinde işlem yapmamız gerekirse ne yapmamız gerekir.Aslında fazla bir şey yapmamız gerekmez.Tek yapacağımız hangi tabloları kullanacaksak bunları from cümleceğinde belirtmemizdir.Tabloları belirtirken aralarıda , koymayı unutmazsak o zaman sorun yok.

Örnek 1 :
Hangi personelin ne kadar maaş aldığını listelemek istersek;
 

SELECT ad,soyad,aylik_ucret
FROM personel,ucretler
WHERE sicil_no=per_sicil_no

Örnek 2 :
İstanbul'da yaşayan Adana doğumlu personelin maaşlarını listelemek istersek;
 

SELECT ad,soyad,aylik_ucret
FROM personel,ucretler
WHERE sicil_no=per_sicil_no AND adres LIKE '%İstanbul%' AND
dogum_yeri = 'Adana'

Örnek 3 :
300 milyondan fazla maaş alan ve 2 nolu meslek grubuna ait personeli listelemek istersek;
 

SELECT ad,soyad,aylik_ucret
FROM personel,ucretler
WHERE sicil_no=per_sicil_no AND aylik_ucret>300000000 AND meslek_id=2

Örnek 4 :
Muhasebe meslek grubuna ait personel listesi;
 

SELECT ad,soyad
FROM personel,meslekler
WHERE  meslek_id=meslek_id AND meslek_aciklama='Muhasebe'

Şimdi buradaki sorgulamımızda bir karışıklık söz konusu olacak.İki tane aynı isimde meslek_id oldu.Bunu şu şekilde engelleyebiliriz.
Tablolarda aynı isimde iki kolon varsa bu kolanları kullanırken başlarıda tablo ismini getiririz araya bir nokta koyarak kolon adını yazarız.
 

SELECT ad,soyad
FROM personel,meslekler
WHERE  personel.meslek_id=meslekler.meslek_id
AND meslek_aciklama='Muhasebe'

Örnek 5 :
Şirketimizde 30 yıldır çalışan ve 200 milyon altında maaş alan personeli ödüllendirecegiz.
Bunun için nasıl bir sorgulama yapmalıyız.
 

SELECT ad,soyad
FROM personel,ucretler
WHERE  sicil_no=per_sicil_no AND baslama_tarihi < '01.01.1969'
AND aylik_ucret < 200000000

Örnek 6 :
22 yaşından büyük bilgi işlemde çalışan bayan personeli listelemek istersek
(NOT : cinsiyet= 0 : bayan 1 : erkek
medeni_hal= 0 : bekar 1 : evli )
 

SELECT ad,soyad
FROM personel,meslekler
WHERE  personel.meslek_id=meslekler.meslek_id
AND meslek_aciklama='Bilgi İşlem' AND cinsiyet=0
AND dogum_tarihi < '01.01.1977'

Örnek 7 :
40 yaşından küçük ,bilgi işlem veya muhasebe bölümünde çalışan,erkek,200 milyondan
fazla maaş alan ,Ankara doğumlu ,Sarıyer'de oturan,10 yıldan fazla şirkette çalışan , bekar
,10 milyondan fazla kesinti yapılan  personeli listelemek istersek;
 

SELECT ad,soyad
FROM personel,meslekler,ucretler
WHERE  dogum_tarihi > '01.01.1959'
AND personel.meslek_id=meslekler.meslek_id
AND (meslek_aciklama='Bilgi İşlem' OR meslek_aciklama='Muhasebe')
AND cinsiyet=1
AND sicil_no=per_sicil_no AND aylik_ucret > 200000000
AND dogum_yeri='Ankara'
AND adres LIKE '%Sarıyer%'
AND baslama_tarihi > '01.01.1989'
AND medeni_hal=0
AND kesinti>10000000

Örnek 8 :
Muhasebe ve Pazarlama bölümü dışında çalışan perseneli listelemek istersek;
 

SELECT ad,soyad
FROM personel,meslekler
WHERE  personel.meslek_id=meslekler.meslek_id
AND meslek_aciklama<>'Pazarlama' AND meslek_aciklama<>'Muhasebe'

Örnek 9 :40 yaşları arasında İzmir ve Bursa doğumlu adayları listelemek istersek;
 

SELECT ad,soyad
FROM personel
WHERE  dogum_tarihi BETWEEN '01.01.1959' AND '01.01.1969'
AND (dogum_yeri='İzmir' OR dogum_yeri='Bursa')

Örnek 10 :
Adı E ile başlayan, 3,5 ve 7 nolu meslek grubuna ait ,bayan,bekar,30 yaşından küçük ,
100 milyondan fazla maaş alan personel listesi ;
 

SELECT ad,soyad
FROM personel,ucretler
WHERE  ad LIKE 'E%'
AND meslek_id IN (3,5,7)
AND cinsiyet=0
AND medeni_hal=0
AND dogum_tarihi > '01.01.1969'
AND sicil_no=per_sicil_no
AND aylik_ücret > 100000000

Örnek 11 :
Evli ve aile yardımı almayan persenol listesi;
 

SELECT ad,soyad
FROM personel,ucretler
WHERE  medeni_hal=1 AND aile_yardim=0

SQL Tablo'dan Kayıt Silmek

 

Tablodan bir satır silmek istersek DELETE sözcüğünü kullanırız. Genel kullanım şekli aşağıdaki biçimdedir ;

DELETE FROM tablo adı


Eğer yukarıdaki gibi bir sorgulama yazıp çalıştırırsak tablodaki bütün kayıtları sileriz. Bunun için DELETE cümleciğini kullanırken dikkat edilmelidir.

Örnek :

Sicil nosu 12345678 olan kayıt silinmek istenirse;
 

DELETE FROM personel WHERE sicil_no='12345678'

Örnek :

Doğum tarihi 1940'dan önce doğmuş personel kayıtları silinmek istenirse ;
 

DELETE FROM personel WHERE dogum_tarihi<'0

SQL'de Kayıt Değişikliği
 


Tablodan bir kayıtı değiştirmek istersek UPDATE sözcüğünü kullanırız. Genel kullanım şekli aşağıdaki biçimdedir ;

UPDATE tablo adı
      SET kolon1=deger1,kolon2=deger2,...
      WHERE kosul;


Örnek :

Sicil nosu 12345678 olan kayıtın adresi değiştirlmek istenirse  ;
 

UPDATE personel SET adres='Bronz Sok. Teşvikiye' WHERE sicil_no='12345678'

Örnek :

Bütün personele uygulanan kesinti ücreti 10.000.000 sabit olarak belirlenirse ;
 

UPDATE ucretler SET kesinti=10000000

Örnek :

Bütün personelin maaşına %20 zam yapılırsa ;

 

UPDATE ucretler SET aylik_ucret=aylık_ucret*1.20

SQL Gruplama Fonksiyonları

 

(SUM,AVG,MIN,MAX,COUNT(*),COUNT(DISTINCT))


MAX


Verilen kolondaki en büyük değeri geri döndürür. Genel yazım biçimi aşağıdaki gibidir;
Select MAX(kolon_adı) FROM tablo;

Örnek :
En fazla aylık ücret alan personel ne kadar maaş alıyor?
 

Select MAX(aylik_ucret) From ucretler;

Örnek :
En fazla aile yardımı alan personelin maaşını ve sicil no'sunu öğrenmek istersek ;

Select per_sicil_no,MAX(aylik_ucret) From ucretler ;


MIN

Verilen kolondaki en küçük değeri geri döndürür. Genel yazım biçimi aşağıdaki gibidir;
Select MIN(kolon_adı) FROM tablo;

Örnek :
En düşük aylık ücret alan personel ne kadar maaş alıyor ?

 

Select MIN(aylik_ucret) From ucretler;


Örnek :
En az aile yardımı alan personelin maaşını ve sicil no'sunu öğrenmek istersek ;


 

Select per_sicil_no,MIN(aylik_ucret) From ucretler ;


SUM

Verilen kolondaki Bütün değerleri toplayarak geri döndürür. Genel yazım biçimi aşağıdaki gibidir;
Select SUM(kolon_adı) FROM tablo;

Örnek :
Personele ödenen toplam ücret nedir ?


 

Select SUM(aylik_ucret) From ucretler;


Örnek :
Toplam ödenen aile yardımı bulunmak istenirse

 

Select SUM(aile_yardimi) From ucretler ;


AVG

Verilen kolondaki değerlerin aritmetiksel ortalamsını geri döndürür. Genel yazım biçimi aşağıdaki gibidir;
Select AVG(kolon_adı) FROM tablo;

Örnek :
Aylık ödenen ücret ortalamasını bulmak istersek ;


 

Select AVG(aylik_ucret) From ucretler;


COUNT(*)

Verilen tablodaki record sayısını geri döndürür. Genel yazım biçimi aşağıdaki gibidir ;
Select COUNT(*) FROM tablo;


Örnek :
Kaç tane personel çalıştığını listelenmek istersek;


 

Select COUNT(*) From personel;


COUNT(DISTINCT ..)

Verilen kolondaki unique record sayısını geri döndürür. Genel yazım biçimi aşağıdaki gibidir ;
Select COUNT(DISTINCT kolon_adı) FROM tablo;


Örnek :
İsmi farklı kaç tane personel çalıştığını listelenmek istenirse;

 

Select COUNT(DISTINCT ad) From personel;


Örnek 1:
En yüksek taban ücret olan meslek listelenmek istenirse ;

 

Select MAX(taban_ücret) From meslekler;


Örnek 2:
Ortalama taban ücret listelenmek istenirse ;

 

Select AVG(taban_ücret) From meslekler;


Örnek 3:
30.01.1990 yılından sonra işe başlıyanların ortalama ücreti hesaplanmak istenirse ;

 

Select AVG(aylik_ücret) From ucretler
Where baslama_tarihi>'30.01.1990';


Örnek 4:
Maaşından kesinti yapılan personele ödenen toplam ücret bulunmak istenirse ;

 

SELECT KOMUTU

Select komutu ile bir tablodan bize gerekli olan bilgileri alabiliriz.
Örnek olarak SELECT komutunu asagidaki gibi kullanabiliriz.

SELECT *
FROM musteri;


Bu komut, musteri tablosundki tüm bilgileri listeleyecektir.
Bazi durumlarda tablodaki tüm alanlara degil sadece bazi alanlara ihtiyacimiz olabilir. Bu durumda bu komutu kullanabiliriz.

SELECT musteri_ad,sehir
FROM musteri;


Musteri tablosundaki musteri_ad ve sehir alanlarini listeleyecektir.

TABLOYA VERİ EKLEME

SQL'de var olan bir tabloya veri ekleme komutu INSERT'dir. Eger birden fazla veri ekleyeceksek veri sayisi kadar INSERT komutu kullanmaliyiz. Örnek olarak musteri tablosuna veri ekleyelim.

INSERT INTO musteri (musteri_ad, sigorta_no, adres, sehir)
VALUES('Mehmet S Batal' , '19006019' , 'Sisli' , 'Istanbul');


TABLOLARA VERİ YÜKLENMESİ


SQL dilinde bir tabloya veri yükleme komutu :

INSERT INTO/VALUES seklindeki komuttur.

Örnek:
Müsteri tablosuna ve mus_hesap tablosuna veri yükleyelim

INSERT INTO musteri
VALUES ("M. Selcuk Batal" , "61" , "Refahiye" , "Erzincan");

INSERT INTO mus_hesap
VALUES ("1471" , "100" , {05/02/03});


TABLODAKİ VERİLERİ GÜNCELLEME İŞLEMİ


SQL 'de bir tablonun satirlarindaki verilerde güncelleme yapmak. icin kullanacagimiz komut UPDATE komutudur.
Ornegin tüm musterilerin hesabindan Yillik %10 vergi ücretini düselim:

UPDATE hesap
SET Kalan_TL=Kalan_TL * 0.90;


Güncelleme islemini bir kosula bagli olarak ta gerceklestirebiliriz.
Örnegin sigorta numarasi 6019 olan müsteri ayni sehir icinde baska bir adrese tanimli olsun. Simdi bu kayit üzerinde adres güncellemesini yapalim:


UPDATE musteri
SET adres='Sisli'
WHERE sigorta_no='6019';

TABLODAKİ SATIRLARI SİLME

SQL 'de bir tablonun satirlarini silme komutu DELETE"dir. Örnegin müsteri tablosunun satirlarini(kayitlarini) silelim.

DELETE FROM musteri;


Eger ifadeyi yukaridaki gibi kosulsuz olarak kullanirsak tablonun tüm satirlarini siler. Simdi DELETE komutunu bir kosula bagli olarak kullanalim:

DELETE FROM musteri
WHERE sigorta no=6019
;

Yukaridaki ifadede müsteri tablosundan sadece sigorta numarasi 6019 olan satir silinir.

TABLO ADINI DEĞİŞTİRME

SQL 'de ALTER TABLE komutu icerisinde RENAME TABLE sözcügünü kullanarak bu islemi gerceklestirebiliriz. Örnegin islem tablosunun adini process olarak degistirelim:

ALTER TABLE islem
RENAME TABLE process;

TABLO SİLME İŞLEMİ

Bu amacla DROP TABLE komutu kullanilmalidir. Yanliz bir tablo silindiginde bu tabloya ait kopya(es) tablolar, indeksler de silinir. Örnegin hesap tablosunu silelim:

DROP TABLE hesap;

 


KOŞULLU LİSTELEME VE SIRALAMA

Su ana kadar verdigimiz tablodan bilgi listeleme ya da siralanmis olarak listeleme islemlerinde her hangi bir kosul belirtmemistik. Dogal olarak uygulamalarin pek cogunda tablolardaki verilen tümüne birden ihtiyac olmayabilir. Örnegin bir uygulamada sadece maasi belirli bir degerin üstünde olan personelin adlarina göre sirali olarak listelenmesi istenebilir.
Bu tür kosullu listeleme ya da siralama ihtiyaci belirince SELECT komutu icinde WHERE komutu kullanarak bu ihtiyaci karsilayabiliriz. Örnek:

SELECT * FROM islem WHERE hesap_no>350;


Yukaridaki ifadede islem tablosunda hesap numarasi 340'dan büyük olanlar listelenecektir.

WHERE komutu ile mantiksal operatörlerden yararlanarak birden fazla kosula göre de islem yapabiliriz. Örnek:

SELECT * FROM islem WHERE hesap_no>340 AND islem_no>50;

Ifadesi, hesap_no'su 340'dan büyük olan ve ayni zamanda islem nosu 50'den büyük olan satirlari listeleyecektir.

 


TABLOYA KOLON EKLEME

SQL 'de ALTER TABLE komutu icerisinde ADD sözcügünü kullanarak bu islemi gerceklestirebiliriz. Örnegin hesap tablosuna hesap acilis tarihi adli bir sutun ekleyelim:

ALTER TABLE hesap ADD hesap_acilis_tar DATE;

KOLON ADINI DEĞİŞTİRME

SQL'de ALTER TABLE komutu icersinde RENAME sözcügünü kullanarak bu islemi gerceklestirebiliriz. Örnegin müsteri tablosundaki adres kolonunun adini müsteri adresi olarak degistirelim:

ALTER TABLE musteri
RENAME adres mus_adres;


TABLODAN KOLON SİLME

SQL 'de ALTER TABLE komutu icerisinde DROP sözcügünü kullanarak bu islemi gerceklestirebiliriz. Örnegin biraz önce hesap tablosuna ekledigimiz hesap acilis tarihi adli bir sutunu silelim

ALTER TABLE hesap
DROP hesap_acilis_tar;


Ayni anda birden fazla kolonu silebiliriz. Örnegin hesap tablosundan hesap acilis tarihi ve hesap numarasi kolonlarini silelim:

ALTER TABLE hesap
DROP hesap_acilis_tar, hesap_no;

SQL SONUCUNU FARKLI BİR TABLODA SAKLAMAK

Bir SELECT komutu sonucu eIde edilecek bilgilerin, gecici olarak baska bir tabloda saklanmasi mümkündür. Bu amacla SELECT komutu ile birlikte SAVE TO TEMP sözcügü kullanilmalidir. Örnegin, hesap tablosundan kalan parasi yüz milyonun üzerinde olanlari bulalim ve deneme isimli baska bir tabloda saklayalim:

SELECT *
FROM hesap
WHERE Kalan_TL>100000 SAVE TO TEMP deneme;


Burada üretilen bilgilerin gecici degil de kalici olmasi amaciyla yukaridaki ifadenin sonuna KEEP sözcügü eklenmelidir:

SELECT *
FROM hesap
WHERE Kalan_TL>100000 SAVE TO TEMP deneme KEEP

ORDER BY

Bir SQL ifadesinde listeleme isleminde bilgilerin belirtilen bir alana göre siralanmis olarak görüntülenmesi amaciyla SELECT komutu ile birlikte kullanilir. Örnegin mus_hesap adli tabloyu tarih alanina göre siralanmis olarak listelemek istersek asagidaki gibi bir SELECT ifadesi kullanmak gerekecektir.

SELECT sigorta_no,hesap_no,tarih
FROM mus_hesap
ORDER BY tarih ASC;


Yukaridaki ifadede ASC (ascending) sözcügü artan anlamindadir. Veriler artan degilde azalan sirada istense idi, ASC sözcügü yerine azalan anlamina gelen DESC(descending) sözcügü kullanilabilir. Default deger ASC'dir.

LIKE KOMUTU

Karakter türü bilgi icinde arama yapma islemini gerceklestirmek icin kullanilir.
Musteri tablosu icerisinde adres alani 50 karakter uzunlugunda tanimlanmis olsu. Adres bilgisinin asagidaki gibi yüklenmis oldugunu yarsayalim:

"Ataonal Cad. 78 Sok. 18-1 Beyoglu - Taksim"

Burada adres icinde semtin de belirtildiginde ve bunun ayri bir sütün olarak tanimlanmadigina dikkat edelim. Simdi bu tür bir tabloda belirli bir semmte ikamet eden personeli listelemek icin semt alanini adres alani icinde aramak gerekecektir. Bu islemi SQL'de LIKE komutu ile gerceklestirebiliriz.

SELECT *
FROM musteri
WHERE adres LIKE '%TAKSIM%';


Bu komut ile adres alaninda "Taksim" sözcügü yazan tün satirlari listeleyecektir.


DISTINCT KOMUTU

Bir SQL ifadesinde tablodaki tekrarli satirlarin listeleme sirasinda birkez yazilmasi icin SELECT komutu icinde DISTINCT komutu kullanilmasi gerekir. Örnek:

SELECT DISTINCT musteri_ad FROM musteri;

Örnegin ayni isimde bir cok musteri olabilir DISTINCT komutu kullanilmasi durumunda bu ekrana bir kez yazilacaktir.


BİRDEN FAZLA ALANA GÖRE SIRALAMA

Tablo icindeki verileri istersek birden fazla alana görede siralayabiliriz. Örnek olarak musteri tablosunu musteri adi ve sehir'e göre siralayalim.

SELECT musteri_ad, sigorta_no, adres, sehir
FROM musteri
ORDER BY musteri_ad, sehir;


Bu SQL ifadesine göre listelenecek alanlar öncelikle musteri adina göre siralanacaktir. Sadece musteri adi ayni olan satirlar kendi aralarinda sehir alanina göre siralanacaktir.

BETWEEN KOMUTU

Son örnekte AND operatörü ile sigorta numarasi 7000 ile 9000 arasinda olanlar listelenmisti. Bu amacla BETWEEN sözcügü de kullanilabilir.

SELECT *
FROM musteri
WHERE sigorta_no BETWEEN 7000 AND 9000;


Bu ifade ile musteri tablosundan sigorta numarasi 7000 ile 9000 arasinda Olan (7000 ve 9000 dahil) müsterilerin bilgileri listelenir.

AVG FONKSİYONU

Belirtilen alan üzerinde aritmetiksel ortalama islemini yapar. Örnegin hesap tablosundan musterilerin kalan paralarinin ortalamalarini alalim, Bu amacla kullanilacak SQL ifadesi asagidaki gibidir:

SELECT AVG (Kalan_TL)
FROM hesap;


COUNT FONKSİYONU

Tablo icerisinde herhangi bir sayma islemini gerceklestirir. Örnegin müsteri tablosundan kayitli müsteri sayisini bulalim. Bu amacla kullanilacak SQL ifadesi asagidaki gibidir:

SELECT COUNT (*)
FROM musteri;


yada

SELECT COUNT(*)
FROM hesap
WHERE Kalan_TL>100000;


Kalan parasi 100000'den fazla olanlari say.


MAX FONKSİYONU

Belirtilen alan üzerindeki en büyük degeri bulur. Ornegin hesap tablosundan müsterilerin kalan paralarindan en büyük olanini listeleyelim. Bu amacla kullanilacak SQL ifadesi asagidaki gibidir:

SELECT MAX (Kalan_TL)
FROM hesap;


MIN FONKSİYONU

Belirtilen alan üzerindeki en kücük degeri bulur. Örnegin hesap tablosundan müsterilerin kalan paralarindan en kücük olanini listeleyelim. Bu amacla kullanilacak SQL ifadesi asagidaki gibidir:

SELECT MIN (Kalan_TL)
FROM hesap;

SUM FONKSİYONU

Fonksiyonun agumani olarak verilen alan ile iliskili olarak toplama islemi gerceklestirilir. Örnegin hesap tablosundaki tüm musterilerin kalan paralarinin toplamini alalim:

SELECT SUM(Kalan_para)
FROM hesap;


Bir baska örnegimizde hesap numaralari 351'den büyük olan müsterilerin paralarinin toplamini bulalim:

SELECT SUM(Kalan_para)
FROM hesap
WHERE hesap_no>351;


IN OPERATÖRÜ

Su ana kadar ögrendigimiz bilgilerle örnegin hesap tablosundan hesap numarasi 501 veya 310 olanlari asagidaki ifade ile listeleyebiliriz:

SELECT *
FROM hesap
WHERE hesap_no=310 OR hesap_no=501;


Bu ifade ile yapilan islemi gerceklestirmenin baska bir yolu da asagidaki gibi IN operatörünü kullanmaktir.

SELECT *
FROM hesap
WHERE hesap_no IN(310,501);


Burada IN operatörü belirtilen küme icindeki elemanlardan biri ile uyusan bir hesap numarasi bulunca o hesap numarasinin bulundugu satirdaki bilgileri listeleyecektir.

Select SUM(aylik_ücret) From ucretler
Where kesinti>0;

 

5 ADIMDA WEB SAYFASI

1. ADIM
2.ADIM
3.ADIM
4.ADIM
5.ADIM

PROGRAMLAMA DİLLERİ

C++
DELPHI
FORTRAN
PASCAL
VISUAL BASIC
Web Tasarım  Haberler  Yemekler   Web Tasarım  Reklam Ajans   Web Tasarım   Parça Kontör  bilgisayar cografya  mavi ladin  spor