ForumTayfa  

Go Back   ForumTayfa > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama Bölümü > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama > Programlama

Programlama Programlama hakkında herşeyi paylaştığımız, soru ve sorunlarımızı tartıştığımız bölüm...

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 18.09.10, 12:23   #1 (permalink)
Turizmci Moderatör
 
NeoJima - ait Kullanıcı Resmi (Avatar)
 
Üyelik Tarihi: Dec 2006
Nereden: Marmaris.
İlişki Durumu: Karmaşık
Mesaj Sayısı: 12.156
Konu Sayısı: 2949
Takım: Galatasaray
Rep Gücü: 889759
Rep Puanı: 88973364
Rep Derecesi : NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000
Ruh Hali:

Üyenin Facebook Profilini Ziyaret Et Üyenin Twitter Profilini Ziyaret Et
Arrow SQL'yi öğrenmeyen kalmayacak




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.


__________________



Ya ya ya Ben özel
Ya ya ya Ben güzel
Ya ya ya Ben herşeyindim ya.

NeoJima isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18.09.10, 12:24   #2 (permalink)
Turizmci Moderatör
 
NeoJima - ait Kullanıcı Resmi (Avatar)
 
Üyelik Tarihi: Dec 2006
Nereden: Marmaris.
İlişki Durumu: Karmaşık
Mesaj Sayısı: 12.156
Konu Sayısı: 2949
Takım: Galatasaray
Rep Gücü: 889759
Rep Puanı: 88973364
Rep Derecesi : NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000
Ruh Hali:

Üyenin Facebook Profilini Ziyaret Et Üyenin Twitter Profilini Ziyaret Et
Standart Cevap: SQL'yi öğrenmeyen kalmayacak




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


__________________



Ya ya ya Ben özel
Ya ya ya Ben güzel
Ya ya ya Ben herşeyindim ya.

NeoJima isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18.09.10, 12:24   #3 (permalink)
Turizmci Moderatör
 
NeoJima - ait Kullanıcı Resmi (Avatar)
 
Üyelik Tarihi: Dec 2006
Nereden: Marmaris.
İlişki Durumu: Karmaşık
Mesaj Sayısı: 12.156
Konu Sayısı: 2949
Takım: Galatasaray
Rep Gücü: 889759
Rep Puanı: 88973364
Rep Derecesi : NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000NeoJima 0-10000000
Ruh Hali:

Üyenin Facebook Profilini Ziyaret Et Üyenin Twitter Profilini Ziyaret Et
Arrow Cevap: SQL'yi öğrenmeyen kalmayacak




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','Ankar a','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


__________________



Ya ya ya Ben özel
Ya ya ya Ben güzel
Ya ya ya Ben herşeyindim ya.

NeoJima isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Kıbrıs'ta fırsat penceresi hep açık kalmayacak ·• ΒєşiкţĀŞК•· Dünya Gündemi 0 30.07.09 17:27
Artık bilmediğiniz dosya uzantısı kalmayacak! 3RSAN Yeni Başlayanlar 4 18.05.09 17:57
Üniversitesiz il kalmayacak t o F i t A Üniversiteler 8 22.05.08 19:42
Unakıtan: Özelleştirilmedik yer kalmayacak Dr.TaKa Türkiye Gündemi 11 15.07.07 12:26
Kartal Fransız kalmayacak GenTLman_1903 Beşiktaş 1 01.06.07 12:49


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 05:00.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0
User Alert System provided by Advanced User Tagging v3.0.6 (Lite) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
ForumTayfa

Arşiv: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 102 103 104 105 106 155 156 157 158 159 160 161 162 163 164 167 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271


ForumTayfa - Link Değişimi
Telinka İletişim | Voip Ürünleri | Link Değişimine Katılın |

Sitemiz bir forum sitesi olduğundan dolayı, kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir. ForumTayfa Yöneticileri mesajları itina ile kontrol etse de, bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Yine de sitemizde yasalara aykırı unsurlar bulursanız [email protected] email adresine bildirebilirsiniz, şikayetiniz incelendikten sonra en kısa sürede gereken yapılacaktır.

Any member of our web site has the right of adding comments instantly without getting permisson due to the forum structure of our site basis. Althought, our site modarators check comments with care, all the responsibilities sourced from these comments directly belong to the members. If you still find any illegal content in our site ( A.buse, H.arassment, S.camming, H.acking, W.arez, C.rack, D.ivx, Mp.3 or any Illegal Activity ), please report us via [email protected] .Your reports will be evaluated as soon as the arrival of your e-mail.