You are on page 1of 20

22 11 2013

SQL DERS NOTLARI

SQL DERS NOTLARI

TEK TABLODAN SORGULAMALAR:


SELECT FROM SE GEL

RNEK: 1) Btn bilgileri personel tablosundan koulsuz olarak listele. SELECT * FROM personel SE * GEL personel

RNEK:2) Personel tablosundan SE komutuyla istenen stun adlarn belirt. SELECT sicil,sosy_g_no,ad,soyad,dog_tar, adres,cins,brt,bl_no,yn_s_g_n FROM personel; SE sicil,sosy_g_no,ad,soyad,dog_tar, adres,cins,brt,bl_no,yn_s_g_n GEL personel;

RNEK:3)Personel tablosundan istenen stn balklarn listele. SELECT sicil,ad,soyad,brt FROM personel; SE sicil,ad,soyad,brt GEL personel;

DISTINCT

TEKRARSIZ

TANIM:SQLde tablo iinde birbirinin ayn datalar bulunabilir.Ayn satrlarn listeleme esnasnda bir kez yazlmas RNEK: 1)Par _sat dosyasndan sat_nolar tekrarsz olarak listelenecektir. SELECT DISTINCT sat_no FROM par_sat; SE TEKRARSIZ sat_no GEL par_sat;

i)TABLO BLGLERNN SIRALANMI OLARAK LSTELENMES:


ORDER BY SIRALA

TANIM:Tablodaki stunlardan ,belirli bir stuna gre listelemek iin SE komutuna ,SIRALA eklenir. RNEK: 1)Personel dosyasndan,sicil,ad,soyad,brt stunlarn se ve brt(maaa)gre bykten ke srala. SELECT sicil,ad,soyad,brt FROM personel
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

SE sicil,ad,soyad,brt GEL personel


1/20

22 11 2013

SQL DERS NOTLARI

ORDER BY brt ASC; DESC Kkten bye srala

SIRALA brt B-K; ASC Bykten ke srala

)BRDEN OK ALANA GRE SIRALAMA:


TANIM:Bir tablo iinde ,birden fazla stundan ayn anda sralamak iin kullanlr. RNEK 1)Personel dosyasndan seilen stunlarn ayn anda hem ad,hem de otomatik olarak sralar. SELECT sicil,ad,soyad,brt FROM personel ORDER BY ad,brt; SE sicil,ad,soyad,brt GEL personel SIRALA ad,brt;

RNEK 2)Personel tablosundan seili stunlar ncelik adda olmak zere (B-K) ad bozmadan soyad (K-B) sral listeler. SELECT sicil,ad,soyad,brt FROM personel ORDER BY ad ASC,soyad DESC, brt ASC; veya; SELECT sicil,ad,soyad,brt FROM personel ORDER BY ad,soyad DESC,brt; SE sicil,ad,soyad,brt GEL personel SIRALA ad,soyad K-B,brt; SE sicil,ad,soyad,brt GEL personel SIRALA ad B-K,soyad K-B, brt B-K;

DESCli durumda yanna yazp belirtilir,yazlmazsa ASC direct kabul edilir.

KOULA BALI OLARAK LSTELEME:


WHERE OLAN

TANIM:Verilen koulu salayanlar listelenir.ki veri birbiriyle karlatrlmaktadr. Karlatrlan verilerin tr ayn olmaldr. SELECT * FROM personel WHERE brt > 5000000; SE * GEL personel OLAN brt > 5000000;

KARILATIRMA OPERATRLER:
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm 2/20

22 11 2013

SQL DERS NOTLARI

OPERATR < > = <= >= <> != !< !>

ANLAMI ...den daha kk ...den daha byk Eit Kk veya eit Byk veya eit Eit deil Eit deil ...den kk deil ...den byk deil

ETL VER TPLER N BAST SORGULAMALAR: i)NMERK VER TPLER:


RNEK: Maa 8000000TLden fazla olmayan personeli listele. SELECT * FROM personel WHERE brt <= 8000000; SE * GEL personel OLAN brt <= 8000000;

ii)KARAKTER VER TPLER (CHAR):


Karakter ift veya tek trnak ile gsterilir. RNEK: Ad Ali olmayan personele ait kaytlar listele. SELECT * FROM personel WHERE ad <> Ali; SE * GEL personel OLAN ad <> Ali;

)TARH VER TP:


Tarih veri tipleri { } sembolleri iinde yazlr. RNEK: Hangi personelin doum tarihi 1960 ylndan daha ncedir? SELECT * FROM personel WHERE dog_tar <={12/31/59}; SE * GEL personel OLAN dog_tar <={12/31/59};

MANTIKSAL (LOJK) VER TP:


Mantksal veriler iin mmkn olabilen sadece iki deer szkonusudur.DORU D(TRUE T) , YANLI Y (FALSE F) ile simgelenir. RNEK: Personel tablosunda personelin cinsiyetini belirten cins adl alan mantksal(logical) olarak tanmlanmtr.Cinsiyeti erkek olanlar D,kadn olanlar y ile tanmlarsak erkek olanlar
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm 3/20

22 11 2013

SQL DERS NOTLARI

listele. SELECT * FROM personel WHERE cins = .T.; SE * GEL personel OLAN cins =.D.;

BRDEN OK KOULA DAYALI SORGULAMALAR: (NOT,AND,OR)


TANIM:Mantksal operatrlerin yardm ile birden ok koulun gerekletirmesine bal olarak ifade edilebilecek (karmak yada birleik koullu listelemeleri gerekletirilmektedir.) AND VE

RNEK:Maa 5000000dan fazla olan ve cinsiyeti erkek olan personelin listelenmesi istenir yani iki koul verilmektedir ve ikisininde olmas istenir. SELECT * FROM personel WHERE brt >5000000 AND cins =.T.; NOT OR DEL VEYA SE * GEL personel OLAN brt > 5000000 AND cins =.D.

RNEKLER: i)Doum tarihi 1960dan nce olan maa 6000000 10000000 arasndaki bayan personelin listele. SELECT * FROM dog_tar < {01/01/60} AND brt > = 6000000 AND brt < =10000000 AND cins = .F.; SE * GEL dog_tar < {01/01/60} VE brt > = 6000000 VE brt < =10000000 VE cins =.Y.;

)Sat blmyle muhasebe blmndekiler kimlerdir? (Sat blmnn bl_nosunun 1 ve muhasebe blmnn bl_nosunun 2 olduu varsaylmaktadr.) SELECT * FROM personel WHERE bol_no =1 OR bol_no = 2; SE * GEL personel OLAN bol_no = 1 VEYA bol_no =2;

)Blm Sat yada Muhasebe olamayan 1960dan sonra domu bayan personeli listele. 1.YAZILIM: SELECT *
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

SE *
4/20

22 11 2013

SQL DERS NOTLARI

FROM personel WHERE NOT (bl_no =1 OR bl_no =2) AND dog_tar > ={01/01/60} AND cins =.F.; 2.YAZILIM: SELECT * FROM personel WHERE bl_no <> 1 AND bl_no <> 2 AND dog_tar > ={01/01/60} AND cins =.F.;

GEL personel OLAN DEL (bl_no =1 VEYA bl_no =2)VE dog_tar >={01/01/60} VE cins=.Y.;

SE * FROM personel OLAN bl_no <> 1 VE bl_no <> 2 AND dog_tar > = {01/01/60} VE cins =.Y.;

BR VER KMESNDE ARAMA IN OPERATR


IN NDE

IN operatr DEL(NOT) ile kullanllabilir.

RNEK:i) Blm 1,2,3 olmayan personel kimlerden olumaktadr? SELECT * FROM personel WHERE bol_no NOT IN (1,2,3); SE * GEL personel OLAN bl_no DEL NDE (1,2,3);

RNEK:ii) Bl_nosu 1,2 yada 3 olan personeli listele. SELECT * FROM personel WHERE bl_no = 1 OR bl_no= 2 OR bl_no = 3; SE * GEL personel OLAN bl_no =1 VEYA bl_no =2 VEYA bl_no = 3;

Bu rnein IN ile yaplm ekli daha ksadr. SELECT * FROM personel WHERE NOT bl_no IN (1,2,3); SE * GEL personel OLAN DEL bl_no NDE (1,2,3);

ARALIK SORGULAMA SZC:


BETWEEN ARASINDA

RNEK:Maa 5- 10 milyon arasnda olan personel kimlerdir? SELECT * FROM personel


file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

SE * GEL personel
5/20

22 11 2013

SQL DERS NOTLARI

WHERE brt > =5000000 AND brt < = 10000000;

OLAN brt > =5000000 VE brt < = 10000000;

BETWEEN (ARASINDA) komutu ile daha ksa olacaktr.

SELECT * FROM personel WHERE brt BETWEEN 5000000 AND 10000000;

SE * GEL personel OLAN brt ARASINDA 5000000 VE 10000000;

KARAKTER TR BLG NDE ARAMA YAPMA LIKE SZC:


TANIM RNE: Adres sutunu ierisinde semt blmne ait ayrca bir sutun olmadn varsayarak semt ad adres sutunu ierisinde yer alr ve buradan da LIKE (BULUNAN) komutuyla adres sutunu ierisinde Taksim semtinde oturan personeli listele. SELECT * FROM personel WHERE adres LIKE % TAKSM % ; SE * GEL personel OLAN adres LIKE % TAKSM% ;

Adres LIKE %TAKSM% ifadesi adres iinde her hangi bir yerde TAKSM yazan yerde oturan personeli listeleyecektir. LIKE szcn ,alt izgi (-) sembol ile birlikte kullanmakta mmkndr. SELECT * FROM personel WHERE ad LIKE Mehmet -----; SE * GEL personel OLAN ad BULUNAN Mehmet ----;

ekildeki komut ile ad alan Mehmet ile balayan ve ad alan uzunluu 10 karakter olan isimlere sahip personeli listeleyecektir.Mehmet Ali,Mehmet Can- Mehmetcik gibi isimler listeleyecektir.Anlalaca gibi - sembol , tek karakterlik bir bilgiyi temsil etmektedir. SQLDE ARTMETKSEL FADELER VE FNKSYONLAR : KME FONKSYONLARI: SUM FONKSYONU: SUM TOPLA

Fonksiyonun argman olarak belirtilen stun ile ilikili olana toplama ilemini gerekletirir. RNEK:letmedeki personelin brt maalar toplam ne kadardr? SELECT SUM (brt) FROM personel; SE TOPLA(brt) GEL personel;

file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

6/20

22 11 2013

SQL DERS NOTLARI

AVG FONKSYONU: AVG ORT

Aritmetiksel ortalama (average) hesaplamak iin kullanlr. SELECT AVG(brt) FROM personel; MAX FONKSYONU: MAX ST SE ORT (brt) GEL personel;

Tablo iinde ,belirtilen sutun (alan)iindeki en byk deeri bulur. RNEK:letme iindeki en yksek maa ne kadardr? SELECT MAX (brt) FROM personel; SE ST (brt) GEL personel;

MIN FONKSYONU: MIN ALT

Tablo iinde,belirlenen sutun alan iindeki en kk deeri bulur. RNEK:letme iinde 4 Mays 1970den nce doanlar iin,asgari cret nedir? SELECT MIN(brt) FROM personel WHERE dog_tar < {05/04/70}; COUNT FONKSYONU: COUNT SAY SE ALT(brt) GEL personel OLAN dog_tar < {05/04/70};

Tablo iinde ,her hangi bir sayma ilemi gerekletirmek iin kullanlr. RNEK:creti 6000000dan olan personel says nedir? SELECT COUNT (*) FROM personel WHERE brt > 6000000; SE SAY(*) GEL personel OLAN brt > 6000000;

COUNT (SAY) fonksiyonu DISTINCT (TEKRARSIZ)szc ile de kullanlr. RNEK:Personel tablosunda mevcut personelin iletme iinde ka tane farkl blmde altn bul.
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm 7/20

22 11 2013

SQL DERS NOTLARI

SELECT COUNT(DISTINCT bl_no) FROM personel; COUNT (bl_no)

SE SAY (TEKRARSIZ bl_no) GEL personel; SAY (bl_no)

GRUPLANDIRARAK LEM YAPMA: GROUP BY GRUPLA

RNEK: Her blmdeki ortalama maa nedir? SELECT bl_no,AVG (brt) FROM personel GOUP BY bl_no; HAVING: HAVING SAHP SE bl_no GEL personel GRUPLA bl_no;

Gruplandrarak kmeleme fonksiyonunu uygularken koulda verilebilir.Bu durumda grup zerindeki hesaplamalarla ilgili koul belirtilirken HAVING (SAHP) szc kullanlr. RNEK:En yksek maan 9000000dan fazla olduu blmlerdeki personele ait ortalama maalar listele. SELECT bl_no,AVG (brt) SE bl_no, ORT(brt) FROM personel GEL personel GROUP BY bl_no GRUPLA bl_no HAVING AVG(brt)> 9000000; SAHP ORT(brt)> 9000000; HAVING(SAHP) szc SELECT(SE) konusunda GROUP BY(GRUPLA) bulunmad zaman geersizdir.HAVING(SAHP) szcn izleyen ifade iinde ,SUM(TOPLA), COUNT(*) (SAY),AVG(ORT),MAX(ST) yada MIN(ALT) fonksiyonlarndan en az biri bulunmaldr. HAVING (SAHP) szc sadece gruplanm veriler zerindeki ilemlerde geerlidir. WHERE (OLAN) szc bir tablonun tek tek satrlar zerinde ilem yapan koullar iinde geerlidir. Baz durumlarda HAVING(SAHP) ve WHERE(OLAN) szckleri ile birlikte SELECT(SE) komutu iinde kullanlabilir. RNEK:Personel tablosu iinde her blmde erkek personele ait maalar iin ortalamann 9000000dan fazla olduu blmleri listele. SELECT bl_no, AVG (brt) FROM personel WHERE cins= .T. GROUP BY bl_no HAVING AVG (brt) > 9000000; SE bl_no, ORT (brt) GEL personel OLAN cins= .D. GRUPLA bl_no SAHP ORT(brt) > 9000000;

file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

8/20

22 11 2013

SQL DERS NOTLARI

BRDEN FAZLA TABLOYU LKLENDRMEK:


JOIN LKLENDR

RNEK: Personel ve blm adl 2 tablo bulunmaktadr. alan her personel ve personelin yneticisi ile ilikili bilgiler nelerdir? SELECT * FROM personel,blm WHERE personel .bl_no=blm.blm_no ; SE * GEL personel,blm OLAN personel.bl_no = blm.blm_no;

TABLO ADI

KOLON ADI

RNEK: JOIN (LKLENDR) ileminde arzu edilen(sicil,ad,soyad,bl_no,yn_s_g_n) alanlarn listele. SELECT sicil,ad,soyad,bl_no,yn_s_g_n FROM personel,blm WHERE personel .bl_no = blm .blm_no; SELF-JOIN: SE sicil,ad,soyad,bl_no,yn_s_g_n GEL personel,blm OLAN personel .bl_no = blm .blm_no;

KENDSYLE -LKLENDR

TANIM:Bir tablonun kendisi ile birletirilmesine KENDSYLE-LKiLENDR denir. (SELF-JOIN) SELECT A. sicil , A.ad , A.soyad, B .ad , B.soyad , B.dog_tar FROM personel A , personel B WHERE A. yon_sos_g_n =B .sosy_g_no;

SE A. sicil , A.ad , A.soyad, B .ad , B.soyad , B.dog_tar GEL personel A , personel B OLAN A. yon_sos_g_n =B .sosy_g_no;

NESTED SELECTS:

TANIM: ie gemi SELECT(SE)komutlarndan oluur.teki. se komutunun bulduu sonucu d tak SE komutumuz ilevini yerine getirmesi iin kullanlr. RNEK:Para numaras 24 olan paray ,projelerde kullanan alan personeli listele. SELECT * FROM personel WHERE sosy_g_no IN(SELECT per_s_g_no
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

SE * GEL personel OLAN sosy_g_no NDE(SE per_s_g_no


9/20

22 11 2013

SQL DERS NOTLARI

FROM para,proje,alma WHERE pr_no = proj_no AND proj_no =proj_no AND par_no =24);

GEL para,proje,alma OLAN pr_no = proj_no VE proj_no = proj_no VE par_no =24);

RNEK: Fatihte oturan personelin alt projelerin adlarn ve yerlerini listele. SELECT proj_ad,yer FROM proje WHERE proj_no IN (SELECT proje_no FROM personel,alma WHERE sosy_g_no = per_s_g_no AND adres LIKE % fatih %); SE proj_ad,yer GEL proje OLAN proj_no NDE (SE proje_no GEL sosy_g_no = per_s_g_no OLAN sosy_g_no = per_s_g_no VE adres BULUNAN % fatih %);

UNION SZC:
UNION BRLEM

TANIM:ki ayr SE komutunun sonucunda elde edilen tablolarn birleimi ilemini gerekletirir.

RNEK:Ad Ahmet ve Soyad Caner olan kii yada kiileri iletmenin yrtt projelerde alan bir kii (sradan bir personel yada blm yneticisi)olarak bulunduran projelerin isimlerini ve projelerin yrtld yerleri listele.

(SELECT proj_ad,yer FROM proj,blm,personel WHERE bl_no=blm_no AND y_sos gno = sosy_g_no AND ad =AhmetAND soyad =Caner) UNION (SELECT proj_ad,yer FROM proje,alma,personel WHERE proj_no = proje_no AND Per_s_g_no = sosy_g_no AND ad =Ahmet AND soyad =Caner)
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

(SE proj_ad,yer GEL proj,blm,personel OLAN bl_no=blm_no VE y_sos gno = sosy_g_no VE ad =Ahmet VE soyad =Caner) BRLEM (SE proj_ad,yer GEL proje,alma,personel OLAN proj_no = proje_no VE Per_s_g_no = sosy_g_no VE ad =Ahmet VE soyad =Caner)
10/20

22 11 2013

SQL DERS NOTLARI

KOULLAR:
UNION (BRLEM) szc ile ,iki yada daha ok kii SELECT (SE)in sonucu olan tablolarn kme birleimi ilemine tabi tutulmas iin 2 koul gereklidir. 1)SELECT (SE) komutlar sonucunda elde edilecek tablolar ayn sayda kolon iermelidirler. 2)Sonu tablolar karlkl olarak kolonlarn ayn veri tipi ve ayn genilikte olmaldr.

ANY :
ANY HER HANG BR

RNEK:Sat blmnde alan personelin her hangi birinden daha dk maa alan ve mhendislik blmndeki kiileri listele. SELECT * FROM personel WHERE brt < ANY (SELECT brt FROM personel WHERE bl_no = 2) AND bl_no =1; E DEER FADE: SELECT * FROM personel WHERE brt < (SELECT MAX (brt ) FROM personel WHERE bl_no = 2) AND bl_no =1; SE * GEL personel OLAN brt < (SE ST (brt ) GEL personel OLAN bl_no = 2)VE bl_no =1; SE * GEL personel OLAN brt < HER HANG BR (SE brt GEL personel OLAN bl_no = 2) VE bl_no = 1;

ALL:
ALL HEPS

RNEK:Sat blmnde alan ve mhendislik blmndeki personelin hepsinden daha fazla maa alan personeli listele.Bu rnekte sat blm kodu = 2 ve mhendislik blm kodu = 1 alnmtr. YAPILI YOLU: 1)SELECT * FROM personel WHERE brt > ALL (SELECT brt FROM personel
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

SE * GEL personel OLAN brt > HERS (SE brt GEL personel
11/20

22 11 2013

SQL DERS NOTLARI

WHERE bl_no = 1) AND bl_no = 2;

OLAN bl_no =1) VE bl_no =2;

2)SELECT * FROM personel WHERE brt > (SELECT MAX (brt) FROM personel WHERE bl_no = 1) AND bl_no =2;

SE * GEL personel OLAN brt > (SE ST (brt) GEL personel OLAN bl_no = 1) VE bl_no =2;

EXISTS:
EXISTS MEVCUT

VE ,VEYA ,DEL operatrleri ile kullanlabilir. RNEK: 27 nolu paray satan satclarla ilikili tm bilgileri listele. SELECT * FROM satc WHERE EXISTS (SELECT * FROM par_sat WHERE sat_no = satc_n AND para_n =27); SE * GEL satc OLAN MEVCUT (SE * GEL par_sat OLAN sat_no = satc_n VE para_n = 27);

NOT EXISTS:
NOT EXISTS MEVCUT DEL

VE ,VEYA ,DEL operatrleri ile kullanlabilir. RNEK: 27 nolu paray satmayan satclar kimlerdir? SELECT * FROM satc WHERE NOT EXISTS (SELECT * FROM par_sat WHERE sat_no = satc_n AND para_n =27); SE * GEL satc OLAN MEVCUT DEL (SE * GEL par_sat OLAN sat_no = satc_n VE para_n = 27);

EXCEPT:
EXCEPT FARKLI
12/20

file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

22 11 2013

SQL DERS NOTLARI

Tablo-1 - Tablo-2 ilemi sonu(iki kmenin fark) elde edilecek tabloda,Tablo-1de bulunup, Tablo-2de bulunmayan veriler mevcut olacaktr. RNEK:Sat blmndeki personel adlarndan,mhendislik blmnde bulunmayanlar listele. SELECT * FROM (SELECT ad FROM personel WHERE bol_no=1 EXCEPT SELECT ad FROM personel WHERE bol_no =2); SE * GEL (SE ad GEL personel OLAN bl_no = 1 FARKLI SE ad GEL personel OLAN bl_no =2);

INTERSECT:
INTERSECT KESM

RNEK: Hem Ankarada,hem de stanbuldaki projelerde grev alan blmleri listele. SELECT * FROM (SELECT bl_no FROM proje WHERE yer LIKE %Ankara% INTERSECT SELECT bl_no FROM proje WHERE yer LIKE %stanbul%); SE * GEL (SE bl_no GEL proje OLAN yer BULUNAN %Ankara% KESM SE bl_no GEL proje OLAN yer BULUNAN %stanbul%);

SAVE TO TEMP:
SAVE TO TEMP SAKLA

RNEK: Bayan personeli,bayan adl bir tablo iinde sakla. SELECT * FROM personel WHERE cins =.F. SAVE TO TEMP bayan; SE * GEL personel OLAN cins =.Y. SAKLA bayan;

KEEP:
KEEP RNEK: SELECT * FROM personel WHERE cins = .F. SAVE TO TEMP bayan KEEP;
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

KALICI

SE * GEL personel OLAN cins =.Y. GEC SAKLA bayan KALICI;


13/20

22 11 2013

SQL DERS NOTLARI

TABLOLARDA DEKLK YAPMAK: INSERT:


INSERT INTO VALUES EKLE NE DEERLER

RNEK:Bir personel tablosuna sicil_nosu 275 olan personel ile ilikili bilgileri ekle.

INSERT INTO personel(sicil, EKLE NE personel(sicil, sosy_g_no,ad,soyad,do_tar sosy_g_no,ad,soyad,do_tar adres,cins,brt,bl_no,yn_s_g_no adres,cins,brt,bl_no,yn_s_g_no VALUES(275,27652418,Ali,Caner, DEERLER (275,27652418,Ali,Caner, {10/05/1962},Merkez caddesi 46 Fatih-stanbul, {10/05/1962},Merkez caddesi 46 Fatihstanbul, .T.,27000000,2,876215342); .D.,27000000,2,876215342);

DELETE:
DELETE SL

RNEK:2 nolu blmdeki personelin tm tablodan sil. DELETE FROM personel WHERE bl_no = 2; 5 ROWS DELETED SL GEL personel OLAN bl_no = 2; 5 SATIR SLND

RNEK:Brt maa alan bo olmayan tm personeli sil. DELETE FROM personel WHERE brt IS NOT NULL; 25 ROWS DELETED SL GEL personel OLAN brt DEERSZ; 25 SATIR SLND

UPDATE :
UPDATE GNCELLE

file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

14/20

22 11 2013

SQL DERS NOTLARI

SET

YAP

RNEK:2inci blmn yrtt projelerde kullanlan tm paralarn fiyatlarn % 7 zam yap. UPDATE para SET fiyat = fiyat *1,07 WHERE pr_no IN (SELECT proj_no FROM proje WHERE bl_no = 2; GNCELLE para YAP fiyat = fiyat *1,07 OLAN pr_no NDE (SE proj_no GEL proje OLAN bl_no =2 ;

CREATE INDEX:
CREATE INDEX ON N INDEKS YARAT

CREATE INDEX ndeks ad INDEKS YARAT ndeks ad ON tablo ad(kolon ad 1,kolon ad 2,.,.kolon ad n); N tablo ad(kolon ad 1,kolon ad 2,.,.kolon ad n);

TEK BR ALAN AGRE ARTAN SIRADA NDEKSLEME :


RNEK:letmede alan personeli brt maalarna gre artan srada listele.(Brt alana gre bir indeks oluturmalyz) CREATE INDEX pers_maas ON personel(brt); INDEX CREATED 127 ROWS INDEKS YARAT pers_maas N personel(brt); NDEKS YARATILDI 127 SATIR

127 satrlk personel tablosu ile ilikili olarak brt kolonu indeks anahtar olarak kullanan pers_maas adl indeks oluturulmutur.Bu durumda; SELECT * FROM personel; SE * GEL personel;

_eklinde listeleme komutu sonucunda personel tablosundaki tm personel, brt maalarna gre sral olarak listelenecektir.

TEK BR ALANA GRE AZALAN SIRADA NDEKSLEME :


DESC Kkten bye (K-B)

RNEK:letmede alan personeli brt maalarna gre azalan srada (yksek maatan dk maaa doru)listelemek istersek ,brt alanna gre aadaki ekilde oluturmak gerekir. CREATE INDEX
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

INDEKS YARAT
15/20

22 11 2013

SQL DERS NOTLARI

ON personel (brt DESC);

N PERSONEL(BRT K-B);

BRDEN FAZLA ALANA GRE NDEKSLEME :


RNEK:letmedeki personelin ncelikle adlarna gre,ayn adda olanlarn soyadlarna gre ,hem ad hemde soyad ayn olanlarn maalarna gre sralanm olarak listele. CREATE INDEX p_ad_soy_m ON personel (ad,soyad,brt); Bu durumda; SELECT * FROM personel; SE * GEL personel; ile tablo grntlenir. NDEKS YARAT p_ad_soy_m N personel (ad,soyad,brt);

UNQUE SZC:
UNIQUE TEK

Bir tablo,seilen bir sutna (alana) gre indekslenirken , indeksleme alan olarak seilen sutndaki verilerintekrarlanmasna msaade edilmesi istenmiyorsa,indeksleme yaplrken ,CREATE ,INDEX komutu iinde UNQUE szc kullanlmaldr.

CREATE UNQUE NDEX pers_sicil ON personel (sicil);

TEK INDEKS YARAT pers_sicil N personel (sicil);

EKLEME N:
Personel tablosuna INSERT INTO Personel VALUES(53768 ,27241685,aye, en{01/04/63},Merkez cad. 82 Kadky.F. ,27000000 ,2, 34261578); EKLE NE Personel DEERLER (53768 ,27241685,aye , en{01/04/63},Merkez cad. 82 Kadky.Y. ,27000000 ,2, 34261578);

MEVCUT BR NDEKSN SLNMES:


DROP IPTAL PTAL NDEKS pers_in;

DROP INDEX pers_in; Komutu ile INDEX DROPPED (NDEKS SLND)

TABLONUN YAPISINDA DEKLK YAPMAK:


file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm 16/20

22 11 2013

SQL DERS NOTLARI

ALTER TABLE

TABLO DETR

MEVCUT BR TABLOYA KOLON EKLEMEK:


ADD DATE EKLE TARH

ALTER TABLE (TABLO DETR) komutu iinde ADD (EKLE) ile satr ekle. RNEK:Personel tablosuna ,ie balama tarihini belirten bir kolon ekle ALTER TABLE personel ADD i_ba_tar DATE; TABLO DETR personel EKLE i_ba_tar TARH;

ADD (EKLE)i_ba_tar DATE NOT NULL (TARH DEERSZ) bu ekilde kullanlsayd bu kolon satr gene bo kalrd ; fakat bu kolon ile ilikili yeni bo deerler eklemek istendiinde buna msaade edilmeyecekti.

MEVCUT BR TABLONUN KOLONLARINDA DEKLK YAPMAK : MODIFY KOMUTU:


MODIFY ONAR

MEVCUT BR TABLODAN BR KOLON SLMEK: DROP KOMUTU :


DROP PTAL

RNEK:Personel tablosundan i_ba_tar kolonunu sil. ALTER TABLE personel DROP i_ba_tar ; TABLO DETR personel PTAL i_ba_tar;

Birden fazla kolonda silinebilir.Birden fazla kolon silmek iin virglle ayrlarak silinir. BR TABLONUN ADINI DETRMEK: RENAME KOMUTU:
file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm 17/20

22 11 2013

SQL DERS NOTLARI

RENAME

TABLO YEN AD TABLO DETR personel TABLO YEN AD elemanlar;

ALTER TABLE personel RENAME TABLE elemanlar;

MEVCUT B TABLONUN BR KOLONUNUN ADININ DETRLMES: RENAME:


RENAME YEN AD

ALTER TABLE personel RENAME brt br-maa; MEVCUT BR TABLONUN TMYLE SLNMES DROP TABLE TABLO PTAL

RNEK:Proje tablosunu sil. DROP TABLE proje; TABLO PTAL proje;

VER GVENL:
CREATE VEW GR ALANI YARAT

RNEK:Personel adl temel tablodan persview adl bir view olutur. CREATE VEW perswiew AS SELECT sicil,sos_g_no,ad,soyad,do_tar, adres,cins,bl_no,yon_s_g_no FROM personel; GR ALANI YARAT persview GB SE sicil,sos_g_no,ad,soyad,do_tar, adres,cins,bl_no,yon_s_g_no GEL personel;

VER BTNLNN SALANMASI:


WITH CHECK OPTION KONTROLL nce bir vew oluturulsun

CREATE VIEW UST_PER_ VIEW AS SELECT FROM personel WHERE brt >25000000 WITH CHECK OPTON;

GR ALANI YARAT UST_PER_VIEW GB SE GEL personel OLAN brt >25000000 KOTROLL;


file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm 18/20

22 11 2013

SQL DERS NOTLARI

Burada, maa 25000000n zerinde olan personelden oluan bir UST_PER_VIEW adl view oluturulmutur.Bu vewa brt maa 13000000 olan bir personel eklemek istedii zaman hata mesaj verecektir. CHECK opsiyonu kullanlmasayd hata mesaj alnmadan bu veri VEW iine ykleyecekti. EKLEME INSERT INTO UST_PER_VIEW VALUES (27521 ,27865427,aye, okan ,{01/05/1962}Cumh. Cad. 46 Taksim, .F.,13000000 ,1 ,27651112); EKLE NE UST_PER_VIEW DEERLER (27521 ,27865427,aye, okan ,{01/05/1962}Cumh. Cad. 46 Taksim, .F.,13000000 ,1 ,27651112);

VIEW NDE SATIR SLME:


RNEK:UST_PER_VIEW iinden,maa 2500000den az olan kiileri sil. DELETE FROM UST_PER_VIEW WHERE brt < 25000000; SL GEL UST_PER_VIEW OLAN brt < 25000000;

VIEW SATIRLARI ZERNDE GNCELLEME : RNEK: UST_PER_VIEW adl viewde sicili 27251 olan kinin maan 37000000 olarak deitir. UPDATE UST_PER_VIEW SET brt = 37000000 WHERE sicil = 27251; GNCELLE UST_PER_VIEW YAP brt = 37000000 OLAN sicil = 27251;

BR VIEWU SLMEK: DROP VIEW GR ALANI PTAL GR ALANI PTAL UST_PER_VIEW;

DROP VIEW UST_PER_VIEW;

SQLin amac bu komutlar yan yana yazdmzda bir cmlenin ortaya kmasdr. SELECT .... FROM .... WHERE ....,ORDER BY ....,GROUP BY .........HAVING....

......(DEN).....GEL.....OLAN.. ,.......SIRALA....,GRUPLA......SAHP....SE

file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

19/20

22 11 2013

SQL DERS NOTLARI

http://www.capraz.net/ serdar@capraz.net

file:///D:/ders/3.snf/1.dnem/ise 211 database/SQL DERS NOTLARI.htm

20/20

You might also like