Tekil Mesaj gösterimi
Alt 01 Mart 2006, 05:34   #1
Çevrimdışı
hitman
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Birazda SQL öğrenelim..




SQL nedir ?
++ SQL in açılımı; Structured Query Language [ Yapısal Sorgu Dili ]
++ SQL sizi veritabanına erişmenizi saglar.
++ SQL, ANSI standardında bir bilgisayar dilidir.
++ SQL veritabanına karşı sorguları çalıştırabilir.
++ SQL veritabanındaki verileri tekrar ele alabilir.
++ SQL veritabanına yeni bir kayıt ekleyebilir.
++ SQL veritabanından bir kayıt silebilir.
++ SQL veritabanındaki bir kaydı guncelleyebilir.
++ SQL kolay öğrenilir
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


SQL standarttır, fakat ...
SQL, ANSI (American National Standards Institute - Amerikan Ulusal Standardları Enstitusü) standardında vertabanına ulasmak ve işlemek için kullanılan bir bilgisayar dilidir. SQL komutları veritabanındaki verileri guncellemek, tekrar ele almak için kullanılır. SQL in kullanıldıgı veritabanı programları MS Access, MS SQL Server, DB2, Informix, Oracle, Sybase vs. Fakat SQL dilinin birçok farklı versiyonları vardır, ama yinede önemli anahtarlar genelde aynıdır yada cok benzerdir (örnegin SELECT, UPDATE, DELETE, INSERT, WHERE, ve digerleri).

SQL Veritabanı tabloları
Veritabanı bir yada birden fazla tablodan olusur. Her tablonun bir adı vardır. Bu tablolardaki kayıtlar dizilerde (row) saklanır.

Örneğin "bilgi" tablosunda;

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19

yukardaki tablo üç kayıda sahiptir, her bir kişi için bir tane, yani 3 satıra (row) ve ayrıca 4 adet kolona (column) sahiptir.

SQL sorguları

SQL ile, veritabanı sorgulanabilir ve soncuları alınabilir.

Örnek bir sorgu;

SELECT soyad FROM bilgi

Sonucu;

soyad
-----
özgür
sözcü
yakan

SQL Veri işleme dili (DML - Data Manipulation Language)

SQL, sorguları calıstırmak için bir sözdizimidir. Fakat aynı zamanda kayıtları guncelleme, ekleme ve silmek içinde kullanılır.
Bu sorgu ve guncelleme komutları, birlikte SQL in bir bolumu olan Veri işleme dilinin olusturuyor:

++ SELECT - veritabanındaki tablodan veri alır
++ UPDATE - veritabanındaki tablodaki veriyi gunceller
++ DELETE - veritabanındaki tablodan veri siler
++ INSERT INTO - veritabanındaki tabloya yeni bir veri ekler

SQL Veri tanımlama dili (DDL - Data Definition Language)

SQL in bir bolumu olan veri tanımlama dili, veritabanı tablolarında işlem yapmaya izin veren, tabloları olusturmak yada silmek için kullanılır. Ayrıca index (arama anahtarı) belirlemedede kullanılan bir dildir. Tablolar arasında etkileşimi saglayabilir, aralarında bir bağ kurabilirsiniz.

En sık kulllanılan veri tanımlama sözdizimleri:

## CREATE TABLE - tablo yaratır
## ALTER TABLE - tabloyu degiştirir
## DROP TABLE - tabloyu siler
## CREATE INDEX - index (arama anahtarı) olusturur
## DROP INDEX - indexi siler

şimdi bu sözdizimlerini biraz daha ayrıntılı anlatalım...

SELECT ifadesi
Bu ifade tablodan veri secmek için kullanılır.

ifadenin kurulusu;
SELECT kolonAd(lar)i FROM tabloAdi

örnek veri tabanımızda "bilgi" tablomuzda

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19

verileri var diyelim

SELECT yas FROM bilgi
dediğimizde

yas
---
15
20
19

sonucu alırız.

birden cok kolon secmek için ise;

SELECT ad,soyad FROM bilgi
dediğimzde

ad soyad
----- -------
ali özgür
veli sözcü
necmi yakan

sonucunu verir.

tum kolonları secmek içinde;

SELECT * FROM bilgi
dememiz yeterlidir.

SELECT DISTINCT ifadesi

Bu ifade sadece farklı ifadeleri secmek için kullanılır.

ifadenin kurulusu;
SELECT DISTINCT kolonAd(lar)i FROM tabloAdi


örnek veritabanımızda "veriler" tablomuzda

firma urunNo
----- --------
CS 4586278
CW 7894331
CL 456
CH 45689
CW 789666879

verileri var diyelim

SELECT firma FROM veriler

dediğimizde sonuc;

firma
-----
CS
CW
CL
CH
CW

olucaktır.

Ama ifadeye distinct eklersek, yani

SELECT DISTINCT firma FROM veriler

dersek sonuc;

firma
-----
CS
CW
CL
CH

seklinde olucaktır, yani tekrarlanan satır bilgileri alınmıyacaktır.

WHERE şartı

Bu şart, select ifadesi ile kullanılır.

şartın kurulusu;
SELECT kolonAdi FROM tabloAdi WHERE kolonAdi operator deger

Bu şartta kullanılabilir operatorler;

= eşit
<> eşit değil
> büyüktür
< kücüktür
>= büyük yada esittir
<= kücük yada esittir
BETWEEN belli bir aralık arasında
LIKE belli bir kalıpla arama


NOT: bazı SQL versiyonlarında <> yerine != de kullanılabiliyor.

örnek veritabanımızda "ipList" tablomuz olsun;

kullaniciAdi sifresi ipNumarasi
------------ --------- ----------
Admin bulamazsın 127.0.0.1
Ziyaretci bulsamdasoylemem 127.0.0.2
Backup op. guvenlisifre 127.0.0.1
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] enguzelsifrebu 127.0.0.1
Haberci forerunner 127.0.0.3

SELECT * FROM ipList WHERE ipNumarasi=’127.0.0.1’

dediğimizde sonuc;

kullaniciAdi sifresi ipNumarasi
------------ --------- ----------
Admin bulamazsın 127.0.0.1
Backup op. guvenlisifre 127.0.0.1
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] enguzelsifrebu 127.0.0.1

olucaktır.

Bu şartta kullandıgımız degeri tek tırnak (’) içine almamız onemlidir, aksi taktirde sorunlar cıkabilir.

SELECT * FROM ipList WHERE ipNumarasi=’127.0.0.1’ ---> Dogru
SELECT * FROM ipList WHERE ipNumarasi=127.0.0.1 ---> Yanlıs
SELECT * FROM ipList WHERE kullaniciAdi=’[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]’ ---> Dogru
SELECT * FROM ipList WHERE kullaniciAdi=[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ---> Yanlıs

LIKE operatorunun kullanılısı

Bu operatorle belli bir kalıpta arama yapabilirsiniz.

ifadenin kurulusu;
SELECT kolonAdi FROM tabloAdi WHERE kolonAdi LIKE kalip

(%) işareti bilinmeyen yada eksik olan karakter için kullanılır.

Örnek SQL ifadeleri;

SELECT * FROM ipList WHERE kullaniciAdi LIKE ’A%’
SELECT * FROM ipList WHERE kullaniciAdi LIKE ’%x’
SELECT * FROM ipList WHERE kullaniciAdi LIKE ’%er%’

INSERT INTO ifadesi

Bu ifadeyi kullarak veritabanındaki bir tabloya bir satır ekleyebilirsiniz.

ifadenin kurulusu;
INSERT INTO tabloAdi (kolonBir,kolonIki,...) VALUES (kolonBir,kolonIki,...)

veritabanımızda "bilgi" tablomuz olsun;

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15

INSERT INTO bilgi VALUES (’veli’, ’sözcü’, ’trabzon’, ’20’)

dediğimizde sonucu;

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20

olucaktır.

Tüm satırdaki bilgileri doldurmak yerine, sadece belli yerlere veri girmek için ne yapmak gerek derseniz, bir ornekle acıklayalım..

veritabanımızda "bilgi" tablomuz olsun;

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20

INSERT INTO Persons (ad, il) VALUES (’necmi’, ’sivas’)

dediğimizde sonucu;

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi sivas

olucaktır.

UPDATE ifadesi

Bu ifadeyi kullanarak veritabanındaki bir veriyi guncelleyebilirsiniz.

ifadenin kurulusu;
UPDATE tabloAdi SET kolonAdi = Yenideger WHERE kolonAdi = tanimlayiciDeger

veritabanımızda "bilgi" tablomuz olsun;

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19

UPDATE bilgi SET ad = ’osman’ WHERE soyad = ’yakan’

dediğimizde sonucu;

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
osman yakan sivas 19

olucaktır.

Birden fazla veriyi guncellemek isteyebiliriz, ohalde alttaki ornegi inceleyelim:

veritabanımızda "bilgi" tablomuz olsun;

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19

UPDATE bilgi SET il = ’hatay’, yas = ’13’ WHERE soyad = ’yakan’

dediğimizde sonucu;

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan hatay 13

DELETE ifadesi

Bu ifadeyi kullanarak veritabanındaki bir satırı silebilirsiniz.

ifadenin kurulusu;
DELETE FROM tabloAdi WHERE kolonAdi = tanimlayiciDeger

veritabanımızda "bilgi" tablomuz olsun;

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19

DELETE FROM bilgi WHERE yas = ’20’

dediğimizde sonuc

ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
necmi yakan sivas 19

Tablodaki tüm bilgileri silmek için şu ifadeleri kullanabilirsiniz:

DELETE FROM tabloAdi
DELETE * FROM tabloAdi

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklamver bizimmekan