 Müdavim Girişi
Online Müdavimler (0 Kişi)
|
|
ünal ün
|
|
ÜMRANİYE AND TL EML LİSESİNDE BİLİŞİM TEKNOLOJİLERİ / WEB PROGRAMCILIĞI BÖLÜMÜNDE SON SINIF OKUYORUM..
İLGİLENDİĞİ PRORAMLAR
ASP.NET,
SQL SERVER,
AJAX,
FİREWORKS,
FLASH,
PHOTOSHOP,
SERTİFİKALAR
BİLGE ADAM HAKAN ULAGAN GRAFİK
WORLD ENGLİSH SERTİFİKASI
HOBİLER
PAYLAŞIM SİTELERİ GEZMEK
MÜZİK DİNLEMEK
ARKADAŞLARLA BERABER OLMAK
|
|
|
|
|
|
TEK TABLODAN SORGULAMALAR:
SELECT SEÇ
FROM GELIS
ÖRNEK: 1) Bütün bilgileri personel tablosundan kosulsuz olarak listele.
SELECT * SEÇ *
FROM personel GELIS personel
ÖRNEK:2) Personel tablosundan SEÇ komutuyla istenen sütun adlarini belirt.
SELECT sicil,sosy_g_no,ad,soyad,dog_tar, SEÇ sicil,sosy_g_no,ad,soyad,dog_tar, adres,cins,brüt,böl_no,yön_s_g_n adres,cins,brüt,böl_no,yön_s_g_n
FROM personel; GELIS personel;
ÖRNEK:3)Personel tablosundan istenen sütün basliklarini listele.
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel; GELIS personel;
DISTINCT TEKRARSIZ
TANIM:SQL’de tablo içinde birbirinin ayni datalar bulunabilir.Ayni satirlarin listeleme esnasinda bir kez yazilmasi
ÖRNEK: 1)Par _sat dosyasindan sat_no’lari tekrarsiz olarak listelenecektir.
SELECT DISTINCT sat_no SEÇ TEKRARSIZ sat_no
FROM par_sat; GELIS par_sat;
i)TABLO BILGILERININ SIRALANMIS OLARAK LISTELENMESI:
ORDER BY SIRALA
TANIM:Tablodaki sütunlardan ,belirli bir sütuna göre listelemek için SEÇ komutuna ,SIRALA eklenir.
ÖRNEK: 1)Personel dosyasindan,sicil,ad,soyad,brüt sütunlarini seç ve brüt(maasa)göre büyükten küçüge sirala.
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel GELIS personel
ORDER BY brüt ASC; SIRALA brüt B-K;
DESC Küçükten büyüge sirala ASC Büyükten küçüge sirala
II)BIRDEN ÇOK ALANA GÖRE SIRALAMA:
TANIM:Bir tablo içinde ,birden fazla sütundan ayni anda siralamak için kullanilir.
ÖRNEK 1)Personel dosyasindan seçilen sütunlarini ayni anda hem ad,hem de otomatik olarak siralar.
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel GELIS personel
ORDER BY ad,brüt; SIRALA ad,brüt;
ÖRNEK 2)Personel tablosundan seçili sütunlari öncelik adda olmak üzere (B-K) adi bozmadan soyadi (K- sirali listeler.
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel GELIS personel
ORDER BY ad ASC,soyad DESC, SIRALA ad B-K,soyad K-B,
brüt ASC; brüt B-K;
veya;
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel GELIS personel
ORDER BY ad,soyad DESC,brüt; SIRALA ad,soyad K-B,brüt;
DESC’li durumda yanina yazip belirtilir,yazilmazsa ASC direct kabul edilir.
KOSULA BAGLI OLARAK LISTELEME:
WHERE OLAN
TANIM:Verilen kosulu saglayanlar listelenir.Iki veri birbiriyle karsilastirilmaktadir. Karsilastirilan verilerin türü ayni olmalidir.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE brüt > 5000000; OLAN brüt > 5000000;
KARSILASTIRMA OPERATÖRLERI:
OPERATÖR ANLAMI
< ...den daha küçük
> ...den daha büyük
= Esit
<= Küçük veya esit
>= Büyük veya esit
<> Esit degil
!= Esit degil
!< ...den küçük degil
!> ...den büyük degil
ÇESITLI VERI TIPLERI IÇIN BASIT SORGULAMALAR:
i)NÜMERIK VERI TIPLERI:
ÖRNEK: Maasi 8000000TL’den fazla olmayan personeli listele.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE brüt <= 8000000; OLAN brüt <= 8000000;
ii)KARAKTER VERI TIPLERI (CHAR):
Karakter çift veya tek tirnak ile gösterilir.
ÖRNEK: Adi Ali olmayan personele ait kayitlari listele.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE ad <> “Ali”; OLAN ad <> “Ali”;
III)TARIH VERI TIPI:
Tarih veri tipleri { } sembolleri içinde yazilir.
ÖRNEK: Hangi personelin dogum tarihi 1960 yilindan daha öncedir?
SELECT * SEÇ *
FROM personel GELIS personel
WHERE dog_tar <={12/31/59}; OLAN dog_tar <={12/31/59};
MANTIKSAL (LOJIK) VERI TIPI:
Mantiksal veriler için mümkün olabilen sadece iki deger sözkonusudur.DOGRU D(TRUE T) , YANLIS Y (FALSE F) ile simgelenir.
ÖRNEK: Personel tablosunda personelin cinsiyetini belirten cins adli alan mantiksal(logical) olarak tanimlanmistir.Cinsiyeti erkek olanlari D,kadin olanlari y ile tanimlarsak erkek olanlari listele.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE cins = .T.; OLAN cins =.D.;
BIRDEN ÇOK KOSULA DAYALI SORGULAMALAR: (NOT,AND,OR)
TANIM:Mantiksal operatörlerin yardimi ile birden çok kosulun gerçeklestirmesine bagli olarak ifade edilebilecek (karmasik yada birlesik kosullu listelemeleri gerçeklestirilmektedir.)
AND VE
ÖRNEK:Maasi 5000000’dan fazla olan ve cinsiyeti erkek olan personelin listelenmesi istenir yani iki kosul verilmektedir ve ikisininde olmasi istenir.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE brüt >5000000 AND cins =.T.; OLAN brüt > 5000000 AND cins =.D.
NOT DEGIL
OR VEYA
ÖRNEKLER:
i)Dogum tarihi 1960’dan önce olan maasi 6000000 – 10000000 arasindaki bayan personelin listele.
SELECT * SEÇ *
FROM dog_tar < {01/01/60} AND GELIS dog_tar < {01/01/60} VE
brüt > = 6000000 AND brüt < =10000000 brüt > = 6000000 VE brüt < =10000000
AND cins = .F.; VE cins =.Y.;
II)Satis bölümüyle muhasebe bölümündekiler kimlerdir?
(Satis bölümünün böl_no’sunun 1 ve muhasebe bölümünün böl_no’sunun 2 oldugu varsayilmaktadir.)
SELECT * SEÇ *
FROM personel GELIS personel
WHERE bol_no =1 OR bol_no = 2; OLAN bol_no = 1 VEYA bol_no =2;
III)Bölümü Satis yada Muhasebe olamayan 1960’dan sonra dogmus bayan personeli listele.
1.YAZILIM:
SELECT * SEÇ *
FROM personel GELIS personel
WHERE NOT (böl_no =1 OR OLAN DEGIL (böl_no =1 VEYA
böl_no =2) AND dog_tar > ={01/01/60} böl_no =2)VE dog_tar >={01/01/60}
AND cins =.F.; VE cins=.Y.;
2.YAZILIM:
SELECT * SEÇ *
FROM personel FROM personel
WHERE böl_no <> 1 AND OLAN böl_no <> 1 VE
böl_no <> 2 AND dog_tar > ={01/01/60} böl_no <> 2 AND dog_tar > = {01/01/60}
AND cins =.F.; VE cins =.Y.;
BIR VERI KÜMESINDE ARAMA –IN OPERATÖRÜ
IN IÇINDE
“IN” operatörü DEGIL(NOT) ile kullanililabilir.
ÖRNEK:i) Bölümü 1,2,3 olmayan personel kimlerden olusmaktadir?
SELECT * SEÇ *
FROM personel GELIS personel
WHERE bol_no NOT IN (1,2,3); OLAN böl_no DEGIL IÇINDE (1,2,3);
ÖRNEK:ii) Böl_no’su 1,2 yada 3 olan personeli listele.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE böl_no = 1 OR böl_no= 2 OR OLAN böl_no =1 VEYA böl_no =2 VEYA
böl_no = 3; böl_no = 3;
Bu örnegin IN ile yapilmis sekli daha kisadir.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE NOT böl_no IN (1,2,3); OLAN DEGIL böl_no IÇINDE (1,2,3);
ARALIK SORGULAMA SÖZCÜGÜ:
BETWEEN ARASINDA
ÖRNEK:Maasi 5- 10 milyon arasinda olan personel kimlerdir?
SELECT * SEÇ *
FROM personel GELIS personel
WHERE brüt > =5000000 AND OLAN brüt > =5000000 VE
brüt < = 10000000; brüt < = 10000000;
BETWEEN (ARASINDA) komutu ile daha kisa olacaktir.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE brüt BETWEEN 5000000 OLAN brüt ARASINDA 5000000
AND 10000000; VE 10000000;
KARAKTER TÜRÜ BILGI IÇINDE ARAMA YAPMA –LIKE SÖZCÜGÜ:
TANIM ÖRNEGI: Adres sutunu içerisinde semt bölümüne ait ayrica bir sutun olmadigini varsayarak semt adi adres sutunu içerisinde yer alir ve buradan da LIKE (BULUNAN) komutuyla adres sutunu içerisinde Taksim semtinde oturan personeli listele.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE adres LIKE ‘% TAKSIM %’ ; OLAN adres LIKE ‘% TAKSIM%’ ;
Adres LIKE ‘%TAKSIM%’ ifadesi adres içinde her hangi bir yerde TAKSIM yazan yerde oturan personeli listeleyecektir.
LIKE sözcügünü ,alt çizgi (-) sembolü ile birlikte kullanmakta mümkündür.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE ad LIKE ‘Mehmet -----‘; OLAN ad BULUNAN ‘Mehmet ----‘;
Sekildeki komut ile ad alani “Mehmet “ ile baslayan ve ad alani uzunlugu 10 karakter olan isimlere sahip personeli listeleyecektir.”Mehmet Ali”,”Mehmet Can”- “Mehmetcik” gibi isimler
listeleyecektir.Anlasilacagi gibi - sembolü , tek karakterlik bir bilgiyi temsil etmektedir.
SQL’DE ARITMETIKSEL IFADELER VE FNKSIYONLAR :
KÜME FONKSIYONLARI:
SUM FONKSIYONU:
SUM TOPLA
Fonksiyonun argümani olarak belirtilen sütun ile iliskili olana toplama islemini gerçeklestirir.
ÖRNEK:Isletmedeki personelin brüt maaslar toplami ne kadardir?
SELECT SUM (brüt) SEÇ TOPLA(brüt)
FROM personel; GELIS personel;
AVG FONKSIYONU:
AVG ORT
Aritmetiksel ortalama (average) hesaplamak için kullanilir.
SELECT AVG(brüt) SEÇ ORT (brüt)
FROM personel; GELIS personel;
MAX FONKSIYONU:
MAX ÜST
Tablo içinde ,belirtilen sutun (alan)içindeki en büyük degeri bulur.
ÖRNEK:Isletme içindeki en yüksek maas ne kadardir?
SELECT MAX (brüt) SEÇ ÜST (brüt)
FROM personel; GELIS personel;
MIN FONKSIYONU:
MIN ALT
Tablo içinde,belirlenen sutun alan içindeki en küçük degeri bulur.
ÖRNEK:Isletme içinde 4 Mayis 1970’den önce doganlar için,asgari ücret nedir?
SELECT MIN(brüt) SEÇ ALT(brüt)
FROM personel GELIS personel
WHERE dog_tar < {05/04/70}; OLAN dog_tar < {05/04/70};
COUNT FONKSIYONU:
COUNT SAY
Tablo içinde ,her hangi bir sayma islemi gerçeklestirmek için kullanilir.
ÖRNEK:Ücreti 6000000’dan olan personel sayisi nedir?
SELECT COUNT (*) SEÇ SAY(*)
FROM personel GELIS personel
WHERE brüt > 6000000; OLAN brüt > 6000000;
COUNT (SAY) fonksiyonu DISTINCT (TEKRARSIZ)sözcügü ile de kullanilir.
ÖRNEK:Personel tablosunda mevcut personelin isletme içinde kaç tane farkli bölümde çalistigini bul.
SELECT COUNT(DISTINCT böl_no) SEÇ SAY (TEKRARSIZ böl_no)
FROM personel; GELIS personel;
COUNT (böl_no) SAY (böl_no)
GRUPLANDIRARAK ISLEM YAPMA:
GROUP BY GRUPLA
ÖRNEK: Her bölümdeki ortalama maas nedir?
SELECT böl_no,AVG (brüt) SEÇ böl_no
FROM personel GELIS personel
GOUP BY böl_no; GRUPLA böl_no;
HAVING:
HAVING SAHIP
Gruplandirarak kümeleme fonksiyonunu uygularken kosulda verilebilir.Bu durumda grup üzerindeki hesaplamalarla ilgili kosul belirtilirken HAVING (SAHIP) sözcügü kullanilir.
ÖRNEK:En yüksek maasin 9000000’dan fazla oldugu bölümlerdeki personele ait ortalama maaslari listele.
SELECT böl_no,AVG (brüt) SEÇ böl_no, ORT(brüt)
FROM personel GELIS personel
GROUP BY böl_no GRUPLA böl_no
HAVING AVG(brüt)> 9000000; SAHIP ORT(brüt)> 9000000;
HAVING(SAHIP) sözcügü SELECT(SEÇ) konusunda GROUP BY(GRUPLA) bulunmadigi zaman geçersizdir.HAVING(SAHIP) sözcügünü izleyen ifade içinde ,SUM(TOPLA), COUNT(*)(SAY),AVG(ORT),MAX(ÜST) yada MIN(ALT) fonksiyonlarindan en az biri bulunmalidir.
HAVING (SAHIP) sözcügü sadece gruplanmis veriler üzerindeki islemlerde geçerlidir.
WHERE (OLAN) sözcügü bir tablonun tek tek satirlari üzerinde islem yapan kosullar içinde geçerlidir.
Bazi durumlarda HAVING(SAHIP) ve WHERE(OLAN) sözcükleri ile birlikte SELECT(SEÇ) komutu içinde kullanilabilir.
ÖRNEK:Personel tablosu içinde her bölümde erkek personele ait maaslar için ortalamanin 9000000’dan fazla oldugu bölümleri listele.
SELECT böl_no, AVG (brüt) SEÇ böl_no, ORT (brüt)
FROM personel GELIS personel
WHERE cins= .T. OLAN cins= .D.
GROUP BY böl_no GRUPLA böl_no
HAVING AVG (brüt) > 9000000; SAHIP ORT(brüt) > 9000000;
BIRDEN FAZLA TABLOYU ILISKILENDIRMEK:
JOIN ILISKILENDIR
ÖRNEK: Personel ve bölüm adli 2 tablo bulunmaktadir.
Çalisan her personel ve personelin yöneticisi ile iliskili bilgiler nelerdir?
SELECT * SEÇ *
FROM personel,bölüm GELIS personel,bölüm
WHERE personel .böl_no=bölüm.bölüm_no ; OLAN personel.böl_no = bölüm.bölüm_no;
TABLO ADI KOLON ADI
ÖRNEK: JOIN (ILISKILENDIR) isleminde arzu edilen(sicil,ad,soyad,böl_no,yön_s_g_n) alanlarin listele.
SELECT sicil,ad,soyad,böl_no,yön_s_g_n SEÇ sicil,ad,soyad,böl_no,yön_s_g_n
FROM personel,bölüm GELIS personel,bölüm
WHERE personel .böl_no = bölüm .bölüm_no; OLAN personel .böl_no = bölüm .bölüm_no;
SELF-JOIN: KENDISIYLE -ILISKILENDIR
TANIM:Bir tablonun kendisi ile birlestirilmesine “KENDISIYLE-ILISKiLENDIR” denir.(SELF-JOIN)
SELECT A. sicil , A.ad , A.soyad,
B .ad , B.soyad , B.dog_tar SEÇ A. sicil , A.ad , A.soyad,
FROM personel A , personel B B .ad , B.soyad , B.dog_tar
WHERE A. yon_sos_g_n =B .sosy_g_no; GELIS personel A , personel B
OLAN A. yon_sos_g_n =B .sosy_g_no;
NESTED SELECTS:
IÇIÇE
TANIM:Iç içe geçmis SELECT(SEÇ)komutlarindan olusur.Içteki. seç komutunun buldugu sonucu dis taki SEÇ komutumuz islevini yerine getirmesi için kullanilir.
ÖRNEK:Parça numarasi 24 olan parçayi ,projelerde kullanan çalisan personeli listele.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE sosy_g_no OLAN sosy_g_no
IN(SELECT per_s_g_no IÇINDE(SEÇ per_s_g_no
FROM parça,proje,çalisma GELIS parça,proje,çalisma
WHERE pr_no = proj_no AND OLAN pr_no = proj_no VE
proj_no =proj_no AND proj_no = proj_no VE
par_no =24); par_no =24);
ÖRNEK: Fatih’te oturan personelin çalistigi projelerin adlarini ve yerlerini listele.
SELECT proj_ad,yer SEÇ proj_ad,yer
FROM proje GELIS proje
WHERE proj_no IN OLAN proj_no IÇINDE
(SELECT proje_no (SEÇ proje_no
FROM personel,çalisma GELIS sosy_g_no = per_s_g_no
WHERE sosy_g_no = per_s_g_no OLAN sosy_g_no = per_s_g_no
AND adres LIKE “% fatih %”); VE adres BULUNAN “% fatih %);
UNION SÖZCÜGÜ:
UNION BIRLESIM
TANIM:Iki ayri SEÇ komutunun sonucunda elde edilen tablolarin birlesimi islemini gerçeklestirir.
ÖRNEK:Adi Ahmet ve Soyadi Caner olan kisi yada kisileri isletmenin yürüttügü projelerde çalisan bir kisi (siradan bir personel yada bölüm yöneticisi)olarak bulunduran projelerin isimlerini ve projelerin yürütüldügü yerleri listele.
(SELECT proj_ad,yer (SEÇ proj_ad,yer
FROM proj,bölüm,personel GELIS proj,bölüm,personel
WHERE bl_no=bölüm_no AND OLAN bl_no=bölüm_no VE
y_sos gno = sosy_g_no y_sos gno = sosy_g_no
AND ad =”Ahmet”AND soyad =”Caner”) VE ad =”Ahmet” VE soyad =”Caner”)
UNION (SELECT proj_ad,yer BIRLESIM (SEÇ proj_ad,yer
FROM proje,çalisma,personel GELIS proje,çalisma,personel
WHERE proj_no = proje_no AND OLAN proj_no = proje_no VE
Per_s_g_no = sosy_g_no AND ad =”Ahmet” Per_s_g_no = sosy_g_no VE ad =”Ahmet”
AND soyad =”Caner”) VE soyad =”Caner”)
KOSULLAR:
UNION (BIRLESIM) sözcügü ile ,iki yada daha çok kisi SELECT (SEÇ)’in sonucu olan tablolarin küme birlesimi islemine tabi tutulmasi için 2 kosul gereklidir.
1)SELECT (SEÇ) komutlari sonucunda elde edilecek tablolar ayni sayida kolon içermelidirler.
2)Sonuç tablolari karsilikli olarak kolonlarin ayni veri tipi ve ayni genislikte olmalidir.
ANY :
ANY HER HANGI BIRI
ÖRNEK:Satis bölümünde çalisan personelin her hangi birinden daha düsük maas alan ve mühendislik bölümündeki kisileri listele.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE brüt < ANY OLAN brüt < HER HANGI BIRI
(SELECT brüt (SEÇ brüt
FROM personel GELIS personel
WHERE böl_no = 2) AND OLAN böl_no = 2) VE
böl_no =1; böl_no = 1;
ES DEGERI IFADE:
SELECT * SEÇ *
FROM personel GELIS personel
WHERE brüt < (SELECT MAX (brüt ) OLAN brüt < (SEÇ ÜST (brüt )
FROM personel GELIS personel
WHERE böl_no = 2) AND böl_no =1; OLAN böl_no = 2)VE böl_no =1;
ALL:
ALL HEPSI
ÖRNEK:Satis bölümünde çalisan ve mühendislik bölümündeki personelin hepsinden daha fazla maas alan personeli listele.Bu örnekte satis bölümü kodu = 2 ve mühendislik bölümü kodu = 1 alinmistir.
YAPILIS YOLU:
1)SELECT * SEÇ *
FROM personel GELIS personel
WHERE brüt > OLAN brüt >
ALL (SELECT brüt HERSI (SEÇ brüt
FROM personel GELIS personel
WHERE böl_no = 1) OLAN böl_no =1)
AND böl_no = 2; VE böl_no =2;
2)SELECT * SEÇ *
FROM personel GELIS personel
WHERE brüt > OLAN brüt >
(SELECT MAX (brüt) (SEÇ ÜST (brüt)
FROM personel GELIS personel
WHERE böl_no = 1) OLAN böl_no = 1)
AND böl_no =2; VE böl_no =2;
EXISTS:
EXISTS MEVCUT
VE ,VEYA ,DEGIL operatörleri ile kullanilabilir.
ÖRNEK: 27 no’lu parçayi satan saticilarla iliskili tüm bilgileri listele.
SELECT * SEÇ *
FROM satici GELIS satici
WHERE EXISTS OLAN MEVCUT
(SELECT * (SEÇ *
FROM par_sat GELIS par_sat
WHERE sat_no = satici_n OLAN sat_no = satici_n
AND parça_n =27); VE parça_n = 27);
NOT EXISTS:
NOT EXISTS MEVCUT DEGIL
VE ,VEYA ,DEGIL operatörleri ile kullanilabilir.
ÖRNEK: 27 no’lu parçayi satmayan saticilar kimlerdir?
SELECT * SEÇ *
FROM satici GELIS satici
WHERE NOT EXISTS OLAN MEVCUT DEGIL
(SELECT * (SEÇ *
FROM par_sat GELIS par_sat
WHERE sat_no = satici_n OLAN sat_no = satici_n
AND parça_n =27); VE parça_n = 27);
EXCEPT:
EXCEPT FARKLI
Tablo-1 - Tablo-2 islemi sonuç(iki kümenin farki) elde edilecek tabloda,Tablo-1’de bulunup, Tablo-2’de bulunmayan veriler mevcut olacaktir.
ÖRNEK:Satis bölümündeki personel adlarindan,mühendislik bölümünde bulunmayanlari listele.
SELECT * FROM SEÇ * GELIS
(SELECT ad FROM personel (SEÇ ad GELIS personel
WHERE bol_no=1 OLAN böl_no = 1
EXCEPT FARKLI
SELECT ad FROM personel SEÇ ad GELIS personel
WHERE bol_no =2); OLAN böl_no =2);
INTERSECT:
INTERSECT KESISIM
ÖRNEK: Hem Ankara’da,hem de Istanbul’daki projelerde görev alan bölümleri listele.
SELECT * FROM SEÇ * GELIS
(SELECT bl_no FROM proje (SEÇ bl_no GELIS proje
WHERE yer LIKE “%Ankara%” OLAN yer BULUNAN “%Ankara%”
INTERSECT KESISIM
SELECT bl_no FROM proje SEÇ bl_no GELIS proje
WHERE yer LIKE “%Istanbul%”); OLAN yer BULUNAN “%Istanbul%”);
SAVE TO TEMP:
SAVE TO TEMP SAKLA
ÖRNEK: Bayan personeli,bayan adli bir tablo içinde sakla.
SELECT * SEÇ *
FROM personel GELIS personel
WHERE cins =.F. SAVE TO TEMP bayan; OLAN cins =.Y. SAKLA bayan;
KEEP:
KEEP KALICI
ÖRNEK:
SELECT * SEÇ *
FROM personel GELIS personel
WHERE cins = .F. OLAN cins =.Y.
SAVE TO TEMP bayan KEEP; GEÇICI SAKLA bayan KALICI;
TABLOLARDA DEGISIKLIK YAPMAK:
INSERT:
INSERT EKLE
INTO IÇINE
VALUES DEGERLER
ÖRNEK:Bir personel tablosuna sicil_no’su 275 olan personel ile iliskili bilgileri ekle.
INSERT INTO personel(sicil, EKLE IÇINE personel(sicil,
sosy_g_no,ad,soyad,dog_tar sosy_g_no,ad,soyad,dog_tar
adres,cins,brüt,böl_no,yön_s_g_no adres,cins,brüt,böl_no,yön_s_g_no
VALUES(‘275’,’27652418’,’Ali’,’Caner’, DEGERLER (‘275’,’27652418’,’Ali’,’Caner’,
{10/05/1962},’Merkez caddesi 46 –Fatih-Istanbul’, {10/05/1962},’Merkez caddesi 46 –Fatih-Istanbul’,
.T.,27000000,2,’876215342’); .D.,27000000,2,’876215342’);
DELETE:
DELETE SIL
ÖRNEK:2 no’lu bölümdeki personelin tümü tablodan sil.
DELETE FROM personel SIL GELIS personel
WHERE böl_no = 2; OLAN böl_no = 2;
5 ROWS DELETED 5 SATIR SILINDI
ÖRNEK:Brüt maas alani bos olmayan tüm personeli sil.
DELETE FROM personel SIL GELIS personel
WHERE brüt IS NOT NULL; OLAN brüt DEGERSIZ;
25 ROWS DELETED 25 SATIR SILINDI
UPDATE :
UPDATE GÜNCELLE
SET YAP
ÖRNEK:2’inci bölümün yürüttügü projelerde kullanilan tüm parçalarin fiyatlarini % 7
zam yap.
UPDATE parça GÜNCELLE parça
SET fiyat = fiyat *1,07 YAP fiyat = fiyat *1,07
WHERE pr_no IN OLAN pr_no IÇINDE
(SELECT proj_no (SEÇ proj_no
FROM proje GELIS proje
WHERE bl_no = 2; OLAN bl_no =2 ;
CREATE INDEX:
CREATE INDEX INDEKS YARAT
ON IÇIN
CREATE INDEX indeks adi INDEKS YARAT indeks adi
ON tablo adi(kolon adi 1,kolon adi 2,.,.kolon adi n); IÇIN tablo adi(kolon adi 1,kolon adi 2,.,.kolon adi n);
TEK BIR ALAN AGÖRE ARTAN SIRADA INDEKSLEME :
ÖRNEK:Isletmede çalisan personeli brüt maaslarina göre artan sirada listele.(Brüt alana göre bir indeks olusturmaliyiz)
CREATE INDEX pers_maas INDEKS YARAT pers_maas
ON personel(brüt); IÇIN personel(brüt);
INDEX CREATED 127 ROWS INDEKS YARATILDI 127 SATIR
127 satirlik personel tablosu ile iliskili olarak brüt kolonu indeks anahtari olarak kullanan pers_maas adli indeks olusturulmustur.Bu durumda;
SELECT * SEÇ *
FROM personel; GELIS personel;
_Seklinde listeleme komutu sonucunda personel tablosundaki tüm personel, brüt maaslarina göre sirali olarak listelenecektir.
TEK BIR ALANA GÖRE AZALAN SIRADA INDEKSLEME :
DESC Küçükten büyüge (K-
ÖRNEK:Isletmede çalisan personeli brüt maaslarina göre azalan sirada (yüksek maastan düsük maasa dogru)listelemek istersek ,brüt alanina göre asagidaki sekilde olusturmak gerekir.
CREATE INDEX INDEKS YARAT
ON personel (brüt DESC); IÇIN PERSONEL(BRÜT K- ;
BIRDEN FAZLA ALANA GÖRE INDEKSLEME :
ÖRNEK:Isletmedeki personelin öncelikle adlarina göre,ayni adda olanlarin soyadlarina göre ,hem adi hemde soyadi ayni olanlarin maaslarina göre siralanmis olarak listele.
CREATE INDEX p_ad_soy_m INDEKS YARAT p_ad_soy_m
ON personel (ad,soyad,brüt); IÇIN personel (ad,soyad,brüt);
Bu durumda;
SELECT * SEÇ *
FROM personel; GELIS personel; ile tablo görüntülenir.
UNIQUE SÖZCÜGÜ:
UNIQUE TEK
Bir tablo,seçilen bir sutüna (alana) göre indekslenirken , indeksleme alani olarak seçilen sütundaki verilerin tekrarlanmasina müsaade edilmesi istenmiyorsa,indeksleme yapilirken ,CREATE ,INDEX komutu iinde UNIQUE sözcügü kullanilmalidir.
CREATE UNIQUE INDEX pers_sicil TEK INDEKS YARAT pers_sicil
ON personel (sicil); IÇIN personel (sicil);
EKLEME IÇIN:
Personel tablosuna
INSERT INTO Personel EKLE IÇINE Personel
VALUES(53768 ,’27241685’,’ayse’, DEGERLER (53768 ,’27241685’,’ayse’ ,
‘sen’{01/04/63},’Merkez cad. 82 – ‘sen’{01/04/63},’Merkez cad. 82 –
Kadiköy’.F. ,27000000 ,2, ‘34261578’); Kadiköy’.Y. ,27000000 ,2, ‘34261578’);
MEVCUT BIR INDEKSIN SILINMESI:
DROP IPTAL
DROP INDEX pers_in; IPTAL INDEKS pers_in;
Komutu ile
INDEX DROPPED (INDEKS SILINDI)
TABLONUN YAPISINDA DEGISIKLIK YAPMAK:
ALTER TABLE TABLO DEGISTIR
MEVCUT BIR TABLOYA KOLON EKLEMEK:
ADD EKLE
DATE TARIH
ALTER TABLE (TABLO DEGISTIR) komutu içinde ADD (EKLE) ile satir ekle.
ÖRNEK:Personel tablosuna ,ise baslama tarihini belirten bir kolon ekle
ALTER TABLE personel TABLO DEGISTIR personel
ADD is_bas_tar DATE; EKLE is_bas_tar TARIH;
ADD (EKLE)is_bas_tar DATE NOT NULL (TARIH DEGERSIZ) bu sekilde kullanilsaydi bu kolon satiri gene bos kalirdi ; fakat bu kolon ile iliskili yeni bos degerler eklemek istendiginde buna müsaade edilmeyecekti.
MEVCUT BIR TABLONUN KOLONLARINDA DEGISIKLIK YAPMAK :
MODIFY KOMUTU:
MODIFY ONAR
MEVCUT BIR TABLODAN BIR KOLON SILMEK:
DROP KOMUTU :
DROP IPTAL
ÖRNEK:Personel tablosundan is_bas_tar kolonunu sil.
ALTER TABLE personel TABLO DEGISTIR personel
DROP is_bas_tar ; IPTAL is_bas_tar;
Birden fazla kolonda silinebilir.Birden fazla kolon silmek için virgülle ayrilarak silinir.
BIR TABLONUN ADINI DEGISTIRMEK:
RENAME KOMUTU:
RENAME TABLO YENI AD
ALTER TABLE personel TABLO DEGISTIR personel
RENAME TABLE elemanlar; TABLO YENI AD elemanlar;
MEVCUT BI TABLONUN BIR KOLONUNUN ADININ DEGISTIRILMESI:
RENAME:
RENAME YENI AD
ALTER TABLE personel
RENAME brüt br-maas;
MEVCUT BIR TABLONUN TÜMÜYLE SILINMESI
DROP TABLE TABLO IPTAL
ÖRNEK:Proje tablosunu sil.
DROP TABLE proje; TABLO IPTAL proje;
VERI GÜVENLIGI:
CREATE VIEW GÖRÜS ALANI YARAT
ÖRNEK:Personel adli temel tablodan persview adli bir view olustur.
CREATE VIEW perswiew GÖRÜS ALANI YARAT persview
AS SELECT sicil,sos_g_no,ad,soyad,dog_tar, GIBI SEÇ sicil,sos_g_no,ad,soyad,dog_tar,
adres,cins,böl_no,yon_s_g_no adres,cins,böl_no,yon_s_g_no
FROM personel; GELIS personel;
VERI BÜTÜNLÜGÜNÜN SAGLANMASI:
WITH CHECK OPTION KONTROLLÜ
CREATE VIEW UST_PER_ VIEW Önce bir view olusturulsun
AS SELECT FROM personel
WHERE brüt >25000000
WITH CHECK OPTION;
GÖRÜS ALANI YARAT UST_PER_VIEW
GIBI SEÇ GELIS personel
OLAN brüt >25000000
KOTROLLÜ;
Burada, maasi 25000000’ün üzerinde olan personelden olusan bir UST_PER_VIEW adli view olusturulmustur.Bu view’a brüt maasi 13000000 olan bir personel eklemek istedigi zaman hata mesaji verecektir.
CHECK opsiyonu kullanilmasaydi hata mesaji alinmadan bu veri VIEW içine yükleyecekti.
EKLEME
INSERT INTO UST_PER_VIEW EKLE IÇINE UST_PER_VIEW
VALUES (27521 ,’27865427’,’ayse’, DEGERLER (27521 ,’27865427’,’ayse’,
‘okan’ ,{01/05/1962}’Cumh. Cad. 46 – Taksim’, ‘okan’ ,{01/05/1962}’Cumh. Cad. 46 – Taksim’,
.F.,13000000 ,1 ,’27651112’); .F.,13000000 ,1 ,’27651112’);
VIEW IÇINDE SATIR SILME:
ÖRNEK:UST_PER_VIEW içinden,maasi 2500000’den az olan kisileri sil.
DELETE FROM UST_PER_VIEW SIL GELIS UST_PER_VIEW
WHERE brüt < 25000000; OLAN brüt < 25000000;
VIEW SATIRLARI ÜZERINDE GÜNCELLEME :
ÖRNEK: UST_PER_VIEW adli view’de sicili 27251 olan kisnin maasini 37000000 olarak degistir.
UPDATE UST_PER_VIEW GÜNCELLE UST_PER_VIEW
SET brüt = 37000000 YAP brüt = 37000000
WHERE sicil = 27251; OLAN sicil = 27251;
BIR VIEW’U SILMEK:
DROP VIEW GÖRÜS ALANI IPTALI
DROP VIEW UST_PER_VIEW; GÖRÜS ALANI IPTALI UST_PER_VIEW;
SQL’in amaci bu komutlari yan yana yazdigimizda bir cümlenin ortaya çikmasidir.
SELECT .... FROM .... WHERE ....,ORDER BY ....,GROUP BY .........HAVING....
......(DEN).....GELIS.....OLAN.. ,.......SIRALA....,GRUPLA......SAHIP....SEÇ
|
|
Kategori :
SQL Server
|
14.01.2011 10:55:00
|
861 defa okundu
|
|
|
|
|
Ara
 Anket
|