| | #1 (mesaj-linki) |
SQL ASP ve diğerleri hakkında bilgiler DERS I ![]() 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 ![]() 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 MMx 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 MMx 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=’MMx’ ---> Dogru SELECT * FROM ipList WHERE kullaniciAdi=MMx ---> 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%’ Son Düzenleyen ThinkerBeLL; 21-10-2005 @ 13:25. | |
|
| | #2 (mesaj-linki) |
SQL hakkında bilgiler....(DERS 2) DERS 2 ![]() 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 ORDER BY ifadesi bu ifade ile sonucları sıralamak mumkundur. Satırları sıralamak için ifade şu şekilde kurulur; SELECT kolonAd(lar)i FROM tabloAdi ORDER BY referansKolonu örnek veri tabanımızda "bilgi" tablomuz olsun ad soyad il yas ----- ------- ---- ----- ali özgür ankara 15 veli sözcü trabzon 20 necmi yakan sivas 19 SELECT ad,soyad FROM bilgi ORDER BY ad dediğimizde sonuc ad soyad ----- ------- ali özgür necmi yakan veli sözcü eger sıralamayı tersine cevirmek istersek ifadenin sonuna DESC sözdizimini, sayıları kucukten buyuye sıralamak içinde ASC sözdizimini ekliyoruz. SELECT ad,soyad FROM bilgi ORDER BY ad DESC dediğimizde sonuc ad soyad ----- ------- veli sözcü necmi yakan ali özgür AND ve OR operatorlerinin kullanılısı AND ve OR operatorleri WHERE ifadesiyle birlikte, birden cok durumu birleştirmek için kullanılır. AND operatoru eger TÜM durumlar dogru ise ilgili satırı gosterir. OR operatoru ise durumlardan bir tanesi bile dogru olsa bile ilgili satırı gosterir. örnekleri "bilgi" adlı tablomuza gore vericek olursak ad soyad il yas ----- ------- ---- ----- ali özgür ankara 15 veli sözcü trabzon 20 necmi yakan sivas 19 osman yakan van 33 alp özgür ankara 12 SELECT * FROM bilgi WHERE ad=’ali’ AND soyad=’özgür’ dediğimizde sonuc ad soyad il yas ----- ------- ---- ----- ali özgür ankara 15 SELECT * FROM bilgi WHERE ad=’alp’ OR soyad=’özgür’ dediğimizde sonuc ad soyad il yas ----- ------- ---- ----- ali özgür ankara 15 alp özgür ankara 12 heriki operatorude birleştirecek olursak SELECT * FROM bilgi WHERE (ad=’alp’ OR ad=’ali’) AND LastName=’özgür’ dediğimizde sonuc ad soyad il yas ----- ------- ---- ----- ali özgür ankara 15 alp özgür ankara 12 IN operatorunun kullanılısı Bu operator, bir degeri tam biliyorsak ve bunu goruntulemek istiyorsak kullanabiliriz. ifadenin kurulusu; SELECT kolonAdi FROM tabloAdi WHERE colonAdi IN (degerBir,degerIki,...) örnek veritabanımızda "bilgi" tablomuz olsun ad soyad il yas ----- ------- ---- ----- ali özgür ankara 15 veli sözcü trabzon 20 necmi yakan sivas 19 osman yakan van 33 alp özgür ankara 12 SELECT * FROM bilgi WHERE il IN (’van’,’trabzon’) dedigimzde sonuc ad soyad il yas ----- ------- ---- ----- veli sözcü trabzon 20 osman yakan van 33 BETWEEN operatorunun kullanılısı Bu operator yardımı ile iki deger arasındaki veriyi secebiliriz, bu degerler numara,yazı yada tarih olabilir. ifadenin kurulusu; SELECT kolonAdi FROM tabloAdi WHERE colonAdi BETWEEN degerBir AND degerIki örnek veritabanımızda "bilgi" tablomuz olsun ad soyad il yas ----- ------- ---- ----- ali özgür ankara 15 veli sözcü trabzon 20 necmi yakan sivas 19 osman yakan van 33 alp özgür ankara 12 SELECT * FROM bilgi WHERE il BETWEEN ’trabzon’ AND ’van’ dediğimizde sonuc ad soyad il yas ----- ------- ---- ----- veli sözcü trabzon 20 necmi yakan sivas 19 Yanlız BETWEEN operatoru veritabanı cinsine gore degişik sonuclar verebilir. Yukarda oldugu gibi sonraki degeri sonuca dahil etmeyebilir, ilk degeri dahil etmeyebilir, iki degerden hiçbirini dahil etmeden sonuc verebilir yada iki degeride dahil edip sonucu verebilir. Bu yuzden etkili biçimde kullanmadan once bu operatorun tam olarak nasıl davrandıgını veritabanınızda denemeniz önerilir. Birde bu aralıkta olmayanlarıda listeleyebiliriz; ad soyad il yas ----- ------- ---- ----- ali özgür ankara 15 veli sözcü trabzon 20 necmi yakan sivas 19 osman yakan van 33 alp özgür ankara 12 SELECT * FROM bilgi WHERE il NOT BETWEEN ’trabzon’ AND ’van’ dediğimizde sonuc ad soyad il yas ----- ------- ---- ----- ali özgür ankara 15 osman yakan van 33 alp özgür ankara 12 ALIAS operatorunun kullanılısı Bu operator ile bir kolonun yada tablonun adı bir baska şeymiş gibi kullanılabilir. ifadelerin kurulusu; SELECT kolon AS kolonAliasi FROM tablo SELECT kolon FROM tablo AS tabloAliasi örnek veritabanımızda "bilgi" tablomuz olsun ad soyad il yas ----- ------- ---- ----- ali özgür ankara 15 veli sözcü trabzon 20 necmi yakan sivas 19 osman yakan van 33 alp özgür ankara 12 SELECT soyad AS aile, il AS yerleske FROM bilgi dediğimizde sonuc aile yerleske ----- -------- özgür ankara sözcü trabzon yakan sivas yakan van özgür ankara yada alias ı tablo için kullanabiliriz.. SELECT ad, soyad FROM bilgi AS nufusBilgileri ad soyad ----- ------- ali özgür veli sözcü necmi yakan osman yakan alp özgür SQL Join methodunun kullanılısı Bazen iki yada daha fazla tablodan veri cekmemiz gerekebilir, bu gibi durumlarda bu methodu kullanırız. Veritabanındaki tablolar, birbirleriyle bazı key lerle ilişkilendirilmiştir. İlk ve oncelikli (primary) key, satırlarda bulunan kolonla birlikte tek ve benzeri olmayan degerdir. İki verinin birbiriyle ilişkilendirilmesinin amacı tabloları aşıp, tablo isimlerini tekrarlamadan veriyi almaktır. veritabanımızda iki adet tablomuz olsun ilk tablo adımız "kisi" kisiID tamAdi ------ -------- 01 ali,özgür 02 veli,sözcü 03 necmi,yakan 04 osman,yakan 05 alp,özgür ikinci tablo adımız "detay" kimlikNo il kisiID -------- ---- ------ 4893 ankara 01 6889 trabzon 02 3684 sivas 03 5285 van 04 4234 ankara 05 "kisi" tablosundaki "kisiID" kolonu bir ilk ve oncelikli (primary) keydir. Bunun anlamı baska herhangi bir satır aynı degere sahip olamaz. Bu sayede diger kolonlarda aynı degeri bulunan veriler olsa bile bu key onları birbirinden ayırmakta kullanılabilir. "detay" tablosunun il ve oncelikli (primary) keyi "kimlikNo" dur. Ve "kisiID" kolonu "bilgi" tablosunu "detay" tablosuyla baska herhangi bir veri girmeden ilişkilendirmiştir. veritabanımıza birkac SQL tarzı soru soralım bakalım nasıl soruyoruz ve nasıl cevaplar alıyoruz ![]() İnsansı soru: kim nerde oturuyor? SQL tarzı soru(sorgu): SELECT kisi.tamAd, detay.il FROM kisi, detay WHERE kisi.kisiID=detay.kisiID Cevap: tamAdi il -------- ---- ali,özgür ankara veli,sözcü trabzon necmi,yakan sivas osman,yakan van alp,özgür ankara İnsansı soru: kim trabzonda oturuyor? SQL tarzı soru(sorgu): SELECT kisi.tamAdi FROM kisi, detay WHERE kisi.kisiID=detay.kisiID AND detay.il=’trabzon’ Cevap: tamAdi -------- veli,sözcü Bu işi birde JOIN sozdizimi kullanarak yapabiliriz. INNER JOIN operatorunun kullanılısı ifadelerin kurulusu; SELECT bolgiBir, bolgiIki, bolgiUc FROM ilkTablo INNER JOIN ikinciTablo ON ilkTablo.keyBolgesi = ikinciTablo.yabanciKeyBolgesi veritabanımızda iki adet tablomuz olsun ilk tablo adımız "kisi" kisiID tamAdi ------ -------- 01 ali,özgür 02 veli,sözcü 03 necmi,yakan 04 osman,yakan 05 alp,özgür 06 zeki,civi 07 alp,öztürk ikinci tablo adımız "detay" kimlikNo il kisiID -------- ---- ------ 4893 ankara 01 6889 trabzon 02 3684 sivas 03 5285 van 04 4234 ankara 05 ve sorularımıza INNER JOIN kullarak devam edelim.. İnsansı soru: kim nerde oturuyor? SQL tarzı soru(sorgu): SELECT kisi.tamAdi, detay.il FROM kisi INNER JOIN detay ON kisi.kisiID = detay.kisiID cevap: tamAdi il -------- ---- ali,özgür ankara veli,sözcü trabzon necmi,yakan sivas osman,yakan van alp,özgür ankara Bu method tablolardaki eşleşmiş her veriyi cıkartıcaktır, eger eşlenmemiş bir veri varsa onu cıkarmıyacaktır. LEFT JOIN operatorunun kullanılısı ifadelerin kurulusu; SELECT bolgiBir, bolgiIki, bolgiUc FROM ilkTablo LEFT JOIN ikinciTablo ON ilkTablo.keyBolgesi = ikinciTablo.yabanciKeyBolgesi veritabanımızda iki adet tablomuz olsun ilk tablo adımız "kisi" kisiID tamAdi ------ -------- 01 ali,özgür 02 veli,sözcü 03 necmi,yakan 04 osman,yakan 05 alp,özgür 06 zeki,civi 07 alp,öztürk ikinci tablo adımız "detay" kimlikNo il kisiID -------- ---- ------ 4893 ankara 01 6889 trabzon 02 3684 sivas 03 5285 van 04 4234 ankara 05 ve sorularımıza INNER JOIN kullarak devam edelim.. İnsansı soru: kim nerde oturuyor? SQL tarzı soru(sorgu): SELECT kisi.tamAdi, detay.il FROM kisi LEFT JOIN detay ON kisi.kisiID = detay.kisiID cevap: tamAdi il -------- ---- ali,özgür ankara veli,sözcü trabzon necmi,yakan sivas osman,yakan van alp,özgür ankara zeki,civi alp,öztürk Gördünüz gibi bu sefer LEFT JOIN operatorunu kullandık ve veritabanımızda il bilgsi bulunmayan kayıtlarımızı cevap listesine ekledi.. Bu demek oluyorki LEFT JOIN ilk tabloda(SQL sorgusunda ismi gecen ilk tablo) girdisi olmasına karsın ikinci tabloda eşlendiği bir degeri yoksabile o girdiği sonuca ekleniyor. Bunun tam tersini yapmak için yani ikinci tabloda girdisi oldugu halde ilk tabloda karşılıgı olmayan verileride sonuca eklemek istersek, kurmamız gereken SQL ifadesi: SELECT bolgiBir, bolgiIki, bolgiUc FROM ilkTablo RIGHT JOIN ikinciTablo ON ilkTablo.keyBolgesi = ikinciTablo.yabanciKeyBolgesi SQL UNION ve UNION ALL methodlarının kullanılısı Bu method verdiği sonuc itibari ile JOIN methoduna benzesede, bu methodun JOIN den farkı secilecek kolonların veri tiplerinin aynı olma sartıdır. UNION methodu, eger secilmiş olan verilerde çiftler varsa onları sonuca yansıtmaz .. UNION ALL dersek düz mantıkla, secilmiş tum verileri (aynısından olsa bile) sonuc olarak veririr... ifadelerin kurulusları; ilk SQL sorgusu UNION ikici SQL sorgusu ilk SQL sorgusu UNION ALL ikici SQL sorgusu veritabanımızın ilk tablosu, "donerSevenler" kisiID ad ------ ---- 01 mert 02 can 03 aslı ikinci tablosu, "pideSevenler" kisiID ad ------ ---- 01 veli 02 ali 03 aslı 04 ersin SELECT ad FROM onerSevenler UNION SELECT ad FROM pideSevenle dediğimizde sonuc ad --- mert can aslı veli ali ersin eger SELECT ad FROM onerSevenler UNION ALL SELECT ad FROM pideSevenle dersek sonuc ad --- mert can aslı veli ali aslı ersin olur... SELECT ifadesi Veritabanı yaratmak için kullanılan ifade; CREATE DATABASE veriTabaniAdi Veritabanına tablo eklemek için kullanılan ifade; CREATE TABLE tabloAdi ( kolonAdi veriTipi, kolonAdi veriTipi, ................., ) örneğin: CREATE TABLE kisi ( ad varchar, soyad varchar, il varchar, yas int ) Buna ek olarak bir kolona girilecek max. girdi uzunlugunu belirleyebilirsizin. örneğin: CREATE TABLE kisi ( ad varchar(10), soyad varchar(30), il varchar, yas int(2) ) Şimdi sorucaksınız baska hangi veri tipleri vardır, yada yukardaki ornektekiler nedemekdir diye ... Veri tipleri integer(uzunluk), int(uzunluk) ,smallint(uzunluk) ,tinyint(uzunluk); Sadece tamsayıları tutar, eger parantez içinde bir sayı yazarsanız o uzunluk degerini gecmeden veri tutar.. decimal(uzunluk,hassasiyet), numeric(uzunluk,hassasiyet); Ondalıklı sayıları tutar, parantez içinde uzunluk olarak en fazla kac karakterli sayı tutmasını ve hassasiyet olarakta virgulden sonra kac rakam tutmasını istediğinizi yazabilirsiniz. char(uzunluk); Belli bir degerdeki diziyi tutar. Bu dizi harf, sayı yada ozel karakterlere sahip olabilir. Bellirliyecegimiz dizi uzunlugu parantez içine yazılmalıdır. varchar(uzunluk); Max. uzunlugu verilen bir diziyi tutar. Bu dizi harf, sayı yada ozel karakterlere sahip olabilir. date(YYYYAAGG); Tarih degerini tutar, Yıl Ay ve Gun olarak.. INDEX ifadesi index (arama anahtarı) olusturur, bu sayede sorgulamaya hız getir. Yanlız guncelleme esnasında indexli kolonlar daha fazla zaman alır bu yuzden indexlerin sadece arama tarzında kullanılması onerilir.. Unique index Tabloya unique index olusturur, fakat bu index tarzında iki satır aynı index degerine sahip olamaz. ifadenin kurulusu; CREATE UNIQUE INDEX indexAdi ON tabloAdi (kolonAdi) Basit index Bu indexde ise, unique dan farklı olarak iki tane index degeri aynı olabilir. ifadenin kurulusu; CREATE INDEX indexAdi ON tabloAdi (kolonAdi) eger index degerlerini azalan bir biçimde sıralamak isterseniz o zamanda ifadeyi soyle kurarız; CREATE INDEX indexAdi ON tabloAdi (kolonAdi DESC) eger index degerini birden fazla kolona vermek istiyorsanız ise ifadeyi soyle kurarız; CREATE INDEX indexAdi ON tabloAdi (kolonAdi,digerKolonAdi) DROP ifadesi DROP genel olarak silme işlemi gercekleştirir... indexleri silmek için kurulacak ifade; DROP INDEX tabloAdi.indexAdi tablo silmek için kurulacak ifade; DROP TABLE tabloAdi veritabanını silmek için kurulacak ifade; DROP DATABASE veritabaniAdi Eger sadece bir tablo içindeki verilerin hepsinden kurtulmak istersek, kullanıcagımız ifade; TRUNCATE TABLE tabloAdi ALTER TABLE ifadesi Bu ifade varolan bir tabloya kolon eklemek yada silmek için kullanılır. ifadelerin kullanılışı; ALTER TABLE tabloAdi ADD kolonAdi veriTipi ALTER TABLE tabloAdi DROP COLUMN kolonAdi Yanlız bazı veritabanları kolonu silme işlemini bu şekilde izin vermiyor, o zaman sizde DROP COLUMN kolonAdi sorgusunu kullanınız. örnek veritabanımızda "bilgi" tablomuz olsun ad soyad il -- ------ -- ali saygın tekirdag ALTER TABLE bilgi ADD yas varchar(2) dediğimizde sonuc ad soyad il yas -- ------ -- --- ali saygın tekirdag ALTER TABLE bilgi DROP COLUMN il dedimizde sonuc ad soyad yas -- ------ --- ali saygın SQL Fonkisyonları SQL kendi içinde bir cok fonksiyonu barındırır, bunlar sayım ve hesaplama için kullanılabilir. Fonksiyon sözdizimi kuruluşu; SELECT fonksiyon(kolon) FROM tablo Fonksiyon tipleri; SQL fonksiyonları birkaç temel tip ve kategoriye sahiptir. Temel fonksiyon tipleri: ++ Aggregate (birleşik degerli) fonksiyonlar ++ Scalar (tekil degerli) fonksiyonlar Aggregate (birleşik degerli) fonksiyonlar Bu tip fonksiyonlar birçok deger ile çalışır ama sonucu tek bir degerdir. Bu fonksiyonların MS Access e uygun olanları: AVG(kolon): girilen kolondaki sayıların aritmetik ortalama degerini geri yollar COUNT(kolon): Boş degerler haric, girilen kolondaki satır sayısını yollar COUNT(*): Verilen tablodaki satır sayısını yollar FIRST(kolon): girilen kolondaki ilk degeri yollar LAST(kolon): girilen kolondaki son degeri yollar MAX(kolon): girilen kolondaki en yuksek degeri yollar MIN(kolon): girilen kolondaki en dusuk degeri yollar STDEV(kolon): girilen kolondaki basit istatiksel standard sapma degerini yollar STDEVP(kolon): girilen kolondaki nüfus istatiksel standard sapma degerini yollar SUM(kolon): girilen kolondaki sayıların toplamını yollar Bu fonksiyonların SQL Server a uygun olanları: AVG(kolon): girilen kolondaki sayıların aritmetik ortalama degerini geri yollar BINARY_CHECKSUM: tablonun verilen satırındaki ikilik tabandaki checksum degerini yollar CHECKSUM: tablonun verilen satırındaki checksum degerini yollar CHECKSUM_AGG: boş degerler haricindeki verilerin checksum degerini yollar COUNT(kolon): Boş degerler haric, girilen kolondaki satır sayısını yollar COUNT(*): Verilen tablodaki satır sayısını yollar COUNT(DISTINCT kolon): Verilen tablodaki satır sayısını yollar, fakat cift veri bulunan satırları bir defa sayar FIRST(kolon): girilen kolondaki ilk degeri yollar LAST(kolon): girilen kolondaki son degeri yollar MAX(kolon): girilen kolondaki en yuksek degeri yollar MIN(kolon): girilen kolondaki en dusuk degeri yollar STDEV(kolon): girilen kolondaki basit istatiksel standard sapma degerini yollar STDEVP(kolon): girilen kolondaki nüfus istatiksel standard sapma degerini yollar SUM(kolon): girilen kolondaki sayıların toplamını yollar Scalar (tekil degerli) fonksiyonlar Girilen degere gore bir deger ile calısır ve sonuc olarak bir deger yollar. Bu fonksiyonların MS Access e uygun olanları: UCASE(c): bolgedeki karakterlerin hepsini buyuk yapar LCASE(c): bolgedeki karakterlerin hepsini kucuk yapar MID(c,start[,end]): yazı alanından karakterleri calıstırır INSTR(c): yazı alanından karakterleri gosterir LEFT(c,karakterNumarasi): text alanının girilen sayıya kadar olan kısmını yollar (soldan sayar) RIGHT(c,number_of_char): text alanının girilen sayıya kadar olan kısmını yollar (sagdan sayar) ROUND(c,hassasiyet): sayı alanını verilen hassasiyete gore yuvarlar MOD(x,y): bolme işleminde kalanı gosterir (mod işlemi yapar) NOW(): o anki sistem zamanını gosterir FORMAT(c,format): alanın gosterim biçimini degiştirir DATEDIFF(d,birinciTarih,ikinciTarih): tarih hesaplarını yapmak için kullanılır SQL GROUP BY VE HAVING methodlarının kullanılısı Aggregate (birleşik degerli) fonksiyonları ( SUM gibi ) genellikle GROUP BY fonsiyonuna gerek duyar. GROUP BY ek fonksiyonu Bu ek fonksiyonun kullanımı, SUM fonksiyonu ile kolon içinde istenilen bir belli bir bolumun toplamını sonuca verememesinden kaynaklanmaktadır. Bu ek fonksiyon yardımıyla toplamı istenen veriler gruplanıp daha detaylı sorgulanır. ifadenin kuruluşu; SELECT kolon,SUM(kolon) FROM tabloAdi GROUP BY kolon veritabanımızda "satis" tablosu olsun firma miktar ------ -------- CyberHost 15 internetSahibi 19 CyberHost 23 digerHost 12 internetSahibi 18 SELECT firma, SUM(miktar) FROM satis dedigimizde sonuc firma miktar ------ -------- CyberHost 87 internetSahibi 87 CyberHost 87 digerHost 87 internetSahibi 87 SELECT firma,SUM(miktar) FROM satis GROUP BY firma dedigimizde sonuc firma miktar ------ -------- CyberHost 38 internetSahibi 37 digerHost 12 HAVING ek fonksiyonu Bu fonksiyonun eklenmesinin nedeni WHERE ifadesi ile Aggregate (birleşik degerli) fonksiyonlarının kullanılamaması ve sonucların bazı ayıklama ve testten gecirilme ihtiyacıdır. ifadenin kurulusu; SELECT kolon,SUM(kolon) FROM tabloAdi GROUP BY kolon HAVING SUM(kolon) durumYadaFonsiyon deger veritabanımızda "satis" tablosu olsun firma miktar ------ -------- CyberHost 15 internetSahibi 19 CyberHost 23 digerHost 12 internetSahibi 18 SELECT firma,SUM(miktar) FROM satis GROUP BY firma HAVING SUM(miktar)>35 dediğimizde sonuc firma miktar ------ -------- CyberHost 38 internetSahibi 37 SELECT INTO ifadesi Bu ifade genel olarak tablo yedekleri almakta ve kayıtları arşivlemeyi sağlamakta kullanılır. ifadenin kurulusu; SELECT kolonAd(lar)i INTO yeniTabloAdi [IN farklıBirVeriTabaniAdi] FROM anaKaynak örnek ifadeler; SELECT * INTO bilgiYedek FROM bilgi bilgi tablosunu aynı veritabanında bilgiYedek adlı yeni bir tabloya kopyalar. IN sözdizimini kullanarak tamamen yeni bir vertabanı olusturup onun içine yedekleme yapabiliriz. SELECT bilgi.* INTO bilgi IN ’yedekVeritabaniAdi.mdb’ FROM bilgi Yedeklemek istediğiniz tum tablo degilde belli satırları yada belli kolonları yedekleyebilirsiniz. SELECT ad,soyad INTO bilgiYedegi FROM bilgi yada SELECT ad,soyad INTO bilgiYedegi FROM bilgi WHERE il=’Ankara’ dediğimizde sadece il kolonu Ankara olan kişilerin adlarını yedekliyecektir.. eger birden cok tabloyu yedeklemek istersek, asagıdaki gibi bir SQL sorgusu yazabiliriz.. SELECT kisi.tamAdi,detay.il INTO ikiTablonunYedegi FROM kisi INNER JOIN detay ON kisi.kisiID=detay.kisiID CREATE VIEW ifadesi View (görüntü) nedir? VIEW ifadesi sanal bir tablodur ve SELECT ifadesinin sonuc kumesini barındırır. Bir view ile satır ve kolonları aynı gercek tabloda oldugu gibi gorebiliriz. SQL fonksiyonlarını, WHERE ve JOIN ifadelerini kullanarak tek bir tablo olarak goruntuleyebiliriz. NOT: Veritabanı tasarımı ve yapıları view ifadesi ile bozulmamaktadır. ifadenin kurulusu; CREATE VIEW goruntuAdi AS SELECT kolonAd(lar)i FROM tabloAdi WHERE durum NOT: View ifades(ler)i veritabanında barındırılmaz. Her sorguda yeniden oluşturur. View (görüntü) kullanımı Sorgulamada, işlem kayıtlarında, fonksiyon, baglantı gibi methodları kullanarak verileri kullanıcılara etkili biçimde gosterebilirisizin. bazı View yaratma örnegi; CREATE VIEW [kisi bilgi listesi] AS SELECT kisiID,tamAdi FROM bilgi bunu goruntulemek için; SELECT * FROM [kisi bilgi listesi] Son Düzenleyen ThinkerBeLL; 21-10-2005 @ 13:26. | |
|
| | #3 (mesaj-linki) |
ASP nedir? Nasıl çalı$ır?..... ![]() ASP nedir? ASP (Active server pages) bir web programcılığı ve elektronik ticaret teknolojisidir. Günümüz deki pek çok profosyonel anlamda yayımlanan bir çok web sitesi ASP teknolojisi üzerine kurulmuştur Web programcılığı anlamında kendini geliştirmek isteyen herkes mutlaka bu dili öğrenmelidir. Ancak gerek bu konuda gerekse diğer diller konusunda yeterli kaynak yok ben de bu eksiği doldurak için böyle bir web sitesi yapmaya karar verdim. Web sitesimdeki örnekleri ve yazıları anlayabilmeniz için az da olsa html dillinden bilginiz olması gerekli. Ayrıca ASP uzantılı dosyalarınızı bilgisayarınızda görüntülemek için bilgisayarınız da PWS (Personel web server) kurulu olması lazım aksi taktirde .asp uzantılı dosyalarınız bilgisayarda görüntülenmez. Bana her tülü sorularınızı gönderebilirsiniz yardımcı omlaya çalışırım .... ASP ile ilk scriptimiz Şimdi ASP ile ilk scriptimizi yapıyoruz <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>ASP ile ilk scriptimiz</title> </head> <% @ LANGUAGE=VBScript CODEPAGE=1254 %> <% response.write "Nihayet ASP ile ilk Scriptimizi yapıyoruz bu yazı asp nin yazdırma komutu olan respone.write ile yazdırılmıştır." %> </html> Bu kodları Frontpagede yada isterseniz not defterinde bile yazabilirsiniz ama profosyonel olması için Frontpagede yapıp ilk.asp ismiyle kaydediniz. Yukarıdaki <% - %> kodları arasında yazılan ifadeler asp kodlarımızdır bu kodlar önce sunucu tarafından yorumlanır ve sonuçları sayfaya html formatında yazdırılır. Daha açık konuşmak gerekirse bu yaptığımız örneği browserde gösterirken kaynağı görüntüle dediğimizde karşımıza aşağıdaki gibi kodlar gelecektir. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>ASP ile ilk scriptimiz</title> </head> Nihayet ASP ile ilk Scriptimizi yapıyoruz bu yazı asp nin yazdırma komutu olanrespone.write ile yazdırılmıştır. </html> Bakın ve farkı kendiniz görün bizim yazdıklarımız la hiçbir ilgisi yok Çünkü ASP bu bizim yazdığımız kodları aldı kendi içinde derledi ve normal html kodu olarak bize geri gönderdi İşte ASP nin temel mantığı budur ASP yi öğrenmek için ASP’nin temel mantığını çok iyi bilmek gerekir. Birden çok sayfalı sayfa Bir ASP sayfası içerisinde birden fazla farklı dosya ve sayfaları barındırabilir. Bu özellik ASP’nin en çok kullanılan ve en önemli özelliklerinden birisidir Örneğin pek çok sayfadan oluşan bir web sitemiz olsun ve bu sayfaların en üstünde bir sayfanın sürekli olarak görünmesini istiyorsunuz bunu nasıl yaparsınız 1. Bütün sayfalara üst kısımın html kodunu kopyalarım olur biter dediğinizi duyar gibiyim Fakat bu oldukça amatör olur çünkü üst sayfamız da bir değişiklik yapmak istediğimizde bütün sayfalara girip tek tek değişikliği yapıp kaydetmek olduk ça amatör aynı zamanda dosyaların kapladıkları yerlerde ona göre artacaktır yani dosyalarda fazladan (gereksiz yere) yer kaplayacaklar. böyle olmaz tabi. 2. Sayfaların üst kısmını bir frame kullanırım. bu yöntemte tıpkı asp gibi biraz avantajlı gibi görünsede (en azından ilk maddeden kat kat daha avantajlı) bu yöntemdede görsellik bakımından bir dezavantaj var Yani sayfaları framelere bölmek basit gibi görünen fakat web sitesinin görünümünü bozan bir yöntemdir. 3. Tabiki anlayacağınız gibi ASP tekolojisini kullanmak Nasıl İŞTE BÖYLE; Öncelikle her sayfada görünmesini istediğimiz üst sayfayı oluşturuyoruz Daha sonra bu dosyanın ismini kullanarak yanlızca yazacağımız bir satırlık komut ile o sayfayı o bölüme çağırabiliriz. <!--#include virtual="../iissamples/ust.htm"--> Response ve Requset Nesneleri Response Nesnesi Response.write Response.Redirect Response.Flush Response.Clear Response.End Request Nesnesi Request.Querystring Request.Querystring de form kullanımı Request.ServerVeriables Response.write nesnesi Response komutu sayesinde ASP ziyaretçiye sunucudan yazılar gönderir. Bu nesnenin en çok kullanılan metodu write dir. <% %> tagları arasında yazacağımız Response.write ifadesi ile sayfada asp kodları içerisinde istediğimiz bir yazı yada bir değişkeni gönderebiliriz. Hemen bir örnek yapalım : <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>ASP ile ilk scriptimiz</title> </head> <% @ LANGUAGE=VBScript CODEPAGE=1254 %> <% degisken="Web" response.write "bu komutu ilk scriptimiz bölümünde de görmüştük hatırladınızmı? " response.write "WEBdershanesi.NET" response.write (degisken) %> </html> Dikkat etmemiz gereken eğer bir yazıyı görüntüleyeceksek bu yazıları " örneğin bu " tırnak içinde yazmalıyız eğer yazacağımız bir değişken ise bunları da parantez içinde yazmalıyız Ayrıca Response.write ASP’de en çok kullanılan komutlardan biri olduğu için daha pratik bir yazılış biçimi vardır <%="WEBdershanesi.NET " buradaki = response.write anlamına gelmektedir. Response.Redirect Deyimi Response.redirect deyimi ASP’de kullanılan (bu da bayağı sık kullanılıyor) ve bir sayfadayken başka bir sayfaya yönlendirme yapmak için kullanılır. Yani sunucunun karşısına böyle bir ifade geldiğinde ne olursa olsun çalışılan sayfayı durdurup Response.redirect içerisindeki sayfaya yönlenir. Hemen bir örnek yapalım öncelikle birinci sayfaya aşaıdaki gibi bir textbox ve bir buton koyalım [_______] - [_____] buradaki text box’ın namesi (ismi) sifre olsun butonun ise actionuna responseredirect2.asp yazalım bu örneğimizde birinci sayfadaki text box’a bir sifre girmemiz isteniyor ve butona basarak ikinci sayfaya yönlendirme yapıyor ikinsayfamızdada bu text box taki bilgi bir deyim sayesinde sifre isimli bir değişkene aktarılıyor ve bu değişkenin içeriği kontrol edilerek sifrenin dogru olup olmadığı karşılaştırılıyor eğer doğruysa sayfaya girmeyi başarıyoruz eğer yanlış ise response.redirect deyimi sayesinde tekrar birinci sayfaya yönlendirilme yapılıyor gördüğünüz gibi asp’nin çalışma mantığı hakkında biraz daha bilgi sahibi olmuşsunuzdur umarım. İkinci sayfanın kodlarıda aşağıda yazmakta Ayrıca bu örnekleri buradan bilgisayarınıza indirebilirsiniz <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>Response redirect</title> </head> <bOdy> <% sifre=Request.Form("sifre") if sifre="neolsun" then %> Sayfaya girmeyi başardınız <% else response.redirect("responseredirect1.asp") end if %> </bOdy> </html> Response.Flush Sunucu eğer çalışma zamanın da bu deyime rastlarsa o zamana kadar tampon bellekteki sakladığı degerleri browsere gönderir <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>Response flush</title> </head> <% @ LANGUAGE=VBScript CODEPAGE=1254 %> <% Response.buffer=true %> Bu satır sunucunun hafızasında saklanan ilk satır <% response.flush %> bu satır ise flush metodundan sonra gösterilmiştir. </html> Response.clear Sunucu eğer çalışma zamanın da bu deyime rastlarsa o zamana kadar tampon bellekteki saklanan bütün bilgiler silinir. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>response clear</title> </head> <% @ LANGUAGE=VBScript CODEPAGE=1254 %> <% Response.buffer=true %> Bu satır sunucunun hafızasında saklanan ilk satır <% response.clear %> bu satır ise tampon hafızadaki bilgiler silindikten sonra gönderildi </html> Response.End Response.flush metodunun tam tersidir sunucu bu satırı gördüğünde sunucu işlemlerini durdurup o zamana kadar olan tampon hafıza değerlerini browser’a gönderir ve Çalışmasını durdurur. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>Response end</title> </head> <% @ LANGUAGE=VBScript CODEPAGE=1254 %> <% Response.buffer=true %> Bu yazıdan sonraki yazılar gözükmeyecek çünkü sunucu bu satırdan sonraki response.end stırında çalışmasını durduracak <% response.end %> İşte bu yazı hiçbir zaman Gözükmeyecek. </html> Request.Querystring ASP teknolojisinde çok kullanılan ifadelerden bir diğeri de Request.Querystring dir. Bu deyim bir sayfadan başka bir sayfaya değişken yada değişkenler taşınmasını sağlar. <a href > tagı arasında yazılan ve Response.redirect ile yönlendirilen diğer sayfaya değişkenler taşımayı sağlar. equset.Querystring ile bir sayfadan diğer sayfaya değişken aktarmanın genel kullanımı şu şekildedir. <a href= "yonlendirilecek_sayfa.asp?ad=erhan&yas=20"> bu linke basıldığında yonlendirilecek sayfa açılacak ve ad,yas isminde iki değişken sayfaya geçirilecek işte bu değişkenler Request.Querystring deyimi sayesinde başka bir değişkenin içerisine aktararak kullanılır. Hemen bir örnek Yapalım <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>Requestquerystring</title> </head> <bOdy> <A href= "requestquerystring2.asp?ad=erhan&yas=20">bu linke basıldığında diğer sayfa değişkenler aktarılacak </a> </bOdy> </html> Şimde ikinci sayfamızı yapalım <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO 8859-9"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <title>Request querystring</title> </head> <% ad=request.querystring("ad") yas=request.querystring("yas") %> Bir önceki sayfadan gönderilen değerler <br> AD=<%=ad%> <br> YAS=<%=yas%> </html> Request.querystring de Form kullanımı Bunun diğer request.querystring ile hiçbir farkı yok sadece bunda değişkenler form elemanlarını kullanarak göndeririz. bir örnekle açıklayalım <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO 8859-9"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <title>Request querystring</title> </head> <form method="get" action="Requestquerystring4.asp"> İsminiz : <input type="text" name="isim" size="20"> <input type="submit" value="Gir"> </form> </html> Burada dikkat etmemiz gereken değişkeni taşıyacağımız textboxun simiÇünkü bir diğer sayfamız da değişkeni kullanabilmek için texboxun namesini bilmemiz gerekir. Şimdi ikinci örneği yapalım <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO 8859-9"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <title>Request querystring</title> </head> <% Response.write("Merhaba : <b>" & Request.querystring("isim") & "</b>") %> </html> Request.Serververiables Kullanıcıya sunucu ve browser hakkında bilgiler gönderir. Örnek : <html> <head> <title>requestserververiabbles</title> </head> <bOdy> Kullandığınız tarayıcı <b> <% Response.write(Request.serververiables("http_user_agent")) %> </b><br> IP adresiniz : <b> <% Response.write(Request.serververiables("remote_addr")) %> </b><br> DNS: <b> <% Response.write(Request.serververiables("remote_host")) %> </b><br> Kullanılan metod <b> <% Response.write(Request.serververiables("request_metod")) %> </b><br> Sunucunun Domain ismi <b> <% Response.write(Request.serververiables("server_name")) %> </b><br> Sunucunun port numarası <b> <% Response.write(Request.serververiables("server_port")) %> </b><br> Sunucunun kullandığı yazılım <b> <% Response.write(Request.serververiables("server_software")) %> </b><br> </bOdy> </html> | |
|
| | #4 (mesaj-linki) |
Proxy nedir?Nasıl çalı$ır?... ![]() Proxy Nedir? Proxy; kelime anlamı olarak "Vekil" ya da " elçi" anlamına gelmektedir. Bizim kullandığımız anlamda Proxy; internet erişimi sağlanırken, çıkışın bir proxy servisi üzerinden sağlanmasıdır. Peki Proxy Servisi nedir? Proxy Servisi nedir? Proxy servisi; internet üzerindeki yerel bir ağ (ya da internete bağlı bir bilgisayar) ile, dış dünya arasındaki ilişkiyi sağlayan bir yardımcı geçiş (gateway) sistemidir. İki amaç için kullanılabilirler: 1. Bu kullanımda, bir proxy servisi (sunucusu), sizin adınıza sizden aldığı bilgi alma isteklerini yürütür ve sonucu yine size iletir. Ancak, aynı anda, bu bilgilerin bir kopyası da (cache),bu proxy sunucusu üzerinde tutulur ve bir dahaki erişimde kullanıcının istediği bilgiler doğrudan ilgili siteden değil de, proxy servisinden gelir; dolayısıyla, iletişim daha hızlı olur. Internete erişim için mutlaka bir proxy servisine ihtiyaç yoktur, ancak, size en yakın bir servis noktasındaki proxy servisini kullanmanız, internet erişiminizi bir hayli hızlandıracaktır. 2. Firewall-güvenlik sistemlerinin kullanıldığı yerlerde, kullanıcıları çıkışları tek bir makine üzerinden olabilir. Bu durumda proxy servis makinesi sadece bir aracı olarak çalışır. Proxy servisi kullanmanın avantajı çoktur. Herhangi bir siteden istediğiniz bir bilgi (web sayfası, ftp dokumanı vb) eğer kullandığınız proxy servisinde henüz depolanmamışsa, bu bilginin olduğu siteden alınır ve size iletilir. Ancak, daha sonra başka bir kullanıcı (ya da siz) aynı dokümanı/bilgiyi istediğinizde, ilgili döküman/bilgi proxy servisinde depolandığı (cache) için, doğrudan oradan size iletilir ve erişiminiz de çok daha hızlı olur. Proxy servisleri, uluslararası internet bağlantılarındaki yoğunluğu azaltmak, erişimleri hızlandırmak ve ağı daha etkin kullanmak için çok yararlı araçlardır da aynı zamanda. Şöyle ki; bir şirkette kurulmuş bulunan network ağı düşünün ve şirket çalışanlarına internet bağlantısı da sağlanıyor. Bu kullanıcıların hepsi için, ayrı hatların internet bağlanması gereksiz ve maliyetli bir durum oluşturacaktır. Ancak, ana sunucu üzerinden sağlanacak internet çıkışı, proxy sunucusu vasıtası ile tüm kullanıcılar tarafından kullanılabilecektir. Bu, internet üzerindeki yoğunluğu azaltacağı gibi, hızı da arttıracak ve aynı zamanda kullanıcıların proxy sunucunun depolama (cache) özelliğinden faydalanmasını da sağlayacaktır. Şimdi, proxylerin, bizlerin kullandığı alanda nasıl kullanıldığına bakalım; Güvenlik Amacı ile Proxy Kullanımı Proxyler, proxy sunucusunun ayarları ile ilgili olarak, kendilerine bağlandıktan sonra üzerilerinden internet çıkışı sağlayan makinelerin IP numaralarını gizleme ya da gizlememe durumlarına göre seviyelere ayrılırlar. Anonymous tabir edilen proxyler de, genelde gizlenme başarılı sonuçlar. Ancak, unutulmamalıdır ki, gizlenilmesi gereken durumun sonucunda hakkınızda yasal bir işlem yapılacaksa, proxy sunucusu da log tutmaya ayarlı olabilir ve size 2 günde ulaşacaklarsa, proxy kullanmanız bu sürenin 4 güne çıkmasını sağlamaktan başka bir işe yaramaz. Güncel Proxyler Bulmak Benim, şahsen genelde kullandığım adresler aşağıda mevcut; http://www.samair.ru/proxy/fresh-proxy-list.htm http://www.atomintersoft.com/products/alive-proxy/proxy-list/ Bu adreslerde, günlük, hatta belirli saatlik periyodlar halinde proxyler yayınlanmaktadır. Genelde %75 oranında proxyler çalışmaktadır ancak, yine de bulunan proxylerin test edilmesi yarı yolda kalmanızı engelleyecektir. Proxy test etmek için en kullanışlı program (benim görüşüm) Multi Proxy programdır. Çok kullanışlı olmasının yanı sıra, ayrıca 127.0.0.1 proxy ayarı üzerinden web tabanlı çıkış yapabilmenizi de sağlamak gibi bir özelliğe sahiptir. Multi Proxy programını arama mortolarından kolaylıkla bulabilirsiniz. Multi Proxy programı, her ne kadar test edilip sağlamlığı belirlenen ve seçilen proxyyi, internet explorerınızın proxy settings kısmına kendisi set-up yapsa da, bunu anlatmakta da fayda var. Bulduğumuz sağlam bir proxy’i nasıl kullanacağız? Internet Explorer simgesi üzerinde sağ click ve "özellikler" üzerinden ya da internet explorer açtıktan sonra "araçlar" kısmına giriş yapılır. Bundan sonra "Internet Seçenekleri/Bağlantılar menusune giriş yapılır ve çıkan ekranda sağ altta bulunan "yerel ağ ayarları" tuşu tıklanır. Yerel Ağ Ayarları (LAN Settings) kısmında, ekranın alt tarafı Proxy Ayarları kısmında " Yerel Ağınız İçin Birt Proxy Sunucusu Kullanın" yazısının solundaki kutucuk işaretlendiğinde, proxynin yazılacağı kutu kullanıma açılacaktır. Buraya Proxy’i ve port numarasını yazdıktan sonra, "tamam" denilerek ayarlardan çıkılır. Proxy Ayarları ekranında, en alt solda " Yerel Adresler İçin Proxy Sunucusunu Atla" seçeneği işaretlendiğinde, adından da anlaşılacağı üzere Türkiye içinde bağlantı talep edilen internet adreslerine bağlanırken proxy sunucusu devreye girmeyecek, sadece yabancı adresler için devreye girecektir. Proxy’yi doğru ayarlayıp ayarlamadığınız test etmek isterseniz, kısaca hala korkularınız varsa, http://www.whatismyip.com/ adresinden bunu kontrol edebilirsiniz. NOTLAR: - Dial-up bağlantılarda, modem simgesi üstüne tıklanarak, modemin proxy kullanımına açık olup olmadığı kontrol edilmelidir. ADSL, Kablo gibi diğer bağlantılarda direkt olarak explorer üstünden ayar ile proxy kullanılabilir. - Bir LAN içindeyseniz, proxy kullanmak gibi bir lüksünüz olması biraz zor. - Proxy kullanmak, çoğu yerde çözümdür. Ancak bağlandığınız yere bağlı olarak takip yolu ile loglardan sizi bulmaları ihtimali mevcut. | |
|
![]() |
| En popüler 15 etiket
Bu Sayfanın Etiketleri
|
| access sql sorguları, asp hakkında bilgi, asp hakkında genel bilgi, asp union, bilgiler, sql de sum fonksiyonu, sql de union kullanımı, sql fonksiyonları kullanma, sql having sum, sql join, sql sum fonksiyonunun kullanımı, sql sum kullanımı, sql temel bilgileri, sql union, union kullanımı asp, |
| Konu Araçları | |
SQL ASP ve diğerleri hakkında bilgiler Konusuna Benzer Konular | ||||
| Konu | Konuyu Başlatan | Forum | Cevap | Son Mesaj |
| Microsoft SQL Server 2005 | ThinkerBeLL | PC/Internet Teknik Destek | 4 | 11-06-2008 15:19 |
| Asp Nedir? Asp ile ilgili Temel Dersler | Sorrow | Internet/Bilgisayar Dünyası | 12 | 04-01-2008 15:06 |
| Temel Tüketici Hakları | ThinkerBeLL | Ekonomi | 2 | 27-05-2007 12:42 |
| Türkler ve İslamiyet | taz_maniac | Müslümanlık/İslamiyet | 15 | 05-08-2006 19:33 |
| |||||
| vBulletin®, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. ~ SEO by vBSEO ©2008, Crawlability, Inc. Başka adreslerde içeriğimizi paylaştığınızda lütfen kaynak belirtmeyi unutmayınız, duyarlılığınız için teşekkürler. Sayfalarımızda bulunan içeriklerin telif haklarıyla ilgili bir şikayetiniz / sorunuz varsa bize ulaşmak için tıklayınız. If you OWN the copyrights to any content we publish or offer for download & you want them to be REMOVED from our web site, please contact us with some proof of ownership of copyright and they will be removed immediately. | |||||