IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 18 Mart 2015, 14:28   #1
Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Sql ' e başlangıç(Farklı Yöntem)




Kod:   Kodu kopyalamak için üzerine çift tıklayın!
SQL (Structured Query Language) veri tabanlarındaki verileri işlemek için kullanılan yapısal sorgulama dilidir. Bu dil yardımıyla veritabanlarındaki tüm işlemler yapılabilir. Backup almadan tutunda bir tabloya veri girmeye varıncaya kadar herşey. SQL'i şu anda piyasada bulunan hemen hemen her veritabanında kullanabilirsiniz. SQL'de her veritabanında kullanılan ortak ifadeler olmasına karşın, veritabanlarının kendine özgü ifadeleri de vardır. Mesela Oracle'da SQL ile yapabildiğiniz bazı şeyleri başka veritabanlarında yapamayabilirsiniz. SQL temel olarak şu ifadelerle kullanılır. SELECT, FROM, WHERE, ORDER BY, GROUP BY, HAVING, UPDATE, DELETE, INSERT. Burada kullandığımız SQL cümleleri ISCI adlı bir tablo üzerine yazılmıştır. Alanlar ISCI_NO, ISCI_ADI, YAS, GIRIS_TARIHI, MAAS. SELECT: Tablodan seçmek istediğimiz alanları belirtmek için kullanılır. Eğer tablodan tüm alanları seçmek istiyorsak o zaman alan isimleri yerine * işareti konur. FROM: Üzerinde işlem yapılacak tablo/tabloları belirtmek için kullanılır. WHERE: Tablodan eğer tüm kayıtları değilde istediğimiz bazı kayıtları elde etmek istiyorsak, örnekte maaşı 250 milyondan fazla olan işçilerin numarası ve adi gibi, o zaman buraya istediğimiz kriteri yazarız. SELECT ISCI_NO, ISCI_ADI FROM ISCI WHERE MAAS>250000000 DISTINCT: Birbirinin aynı olan satırların listelenmemesi için bu ifade kullanılır. Mesela ISCI tablosunda bulunan birbirinin aynı olmayan isimleri listelemek istersek SELECT DISTINCT ISCI_ADI FROM ISCI şeklinde bir SQL ifadesi yazarız. IN: Koşul belirtirken kullanırız. Mesela ismi AHMET, ALİ veya MUSTAFA olan işçilerin bilgilerini listelemek için SELECT * FROM ISCI WHERE ISCI_ADI='AHMET' OR ISCI_ADI='ALİ' OR ISCI_ADI='MUSTAFA' şeklinde bir ifade kullanırız Bunun yerine SELECT * FROM ISCI WHERE ISCI_ADI IN ('AHMET' ,'ALİ' ,'MUSTAFA') ifadesini de kullanabiliriz. Yani listenin içindeki herhangi bir değerin bulunması kayıtın seçilmesi için yeterlidir. LIKE: Eğer aradığımız kayıtın bulunması için tam bir karşılaştırma yapamıyorsak o zaman kullanırız. Mesela isminin baş harfi A ile başlayan isimleri bulmak için SELECT * FROM ISCI WHERE ISCI_ADI LIKE 'A%' ifadesi kullanılır. % işareti uzunluğu önemsiz olmak üzere yazıldığı yere her türlü ifade gelebilir anlamındadır. ? işareti ise bir karakter olmak üzere her türlü değeri alabilir anlamındadır. Mesela isminin sondan üçüncü harfi A, ve son harfi Z olan kayıtları listelemek istersek sondan ikinci harfin ne olduğu önemli değildir. O zaman o harf yerine aşağıda görüldüğü üzere ? işaretini kullanırız. SELECT * FROM ISCI WHERE ISCI_ADI LIKE '%A?Z' ifadesi kullanılır. BETWEEN: Koşul belirtirken iki değer arasını belirtmek için kullanılır. Örnek: Yaşı 30 ile 40 arasındaki işçilerin kayıtlarını listelemek için SELECT * FROM ISCI WHERE YAS BETWEEN 30 AND 40 ifadesi kullanılır. Bunu aynı zamanda aşağıdaki ifade ile de yapabilirsiniz. BETWEEN yazım kolaylığı sağlar. SELECT * FROM ISCI WHERE YAS>=30 AND YAS<=40 SUM: Seçilen değerlerin toplamını bulur. İşçilerin aldığı toplam ücreti görmek için SELECT SUM(UCRET) FROM ISCI ifadesi kullanılır. MAX, MIN, AVG: Verilen değerin en büyüğünü, en küçüğünü ve ortalamasını bulur. 1999 yılında giren işçilerin en yüksek ücretinin, en düşük ücretinin ve ortalamasının ne kadar olduğunu öğrenmek istersek aşağıdaki ifadeyi kullanırız. SELECT MAX(UCRET), MIN(UCRET), AVG(UCRET) FROM ISCI WHERE GIRIS_TARIHI>'01.01.1999' MAX en büyük değeri, MIN en küçük değeri, AVG ise seçilen değerlerin ortalmasını bulur. ORDER BY: Tablodan seçtiğimiz kayıtları sıralamak için kullanılır. Yukardaki örnekte isimleri alfabetik sıra ile görmek istersek SELECT DISTINCT ISCI_ADI FROM ISCI ORDER BY ISCI_ADI yazarız Eğer sıralamayı tersine çevirmek istersek SELECT DISTINCT ISCI_ADI FROM ISCI ORDER BY ISCI_ADI DESC yazarız GROUP BY: Genelde istatistik amaçlar için kullanılır. Mesela hangi tarihte kaç işçinin işe alındığını bulmak için SELECT GIRIS_TARIHI,COUNT(*) FROM ISCI GROUP BY GIRIS_TARIHI yazmanız yeterli olacaktır. Bu ifade size gün bazında kaç işçinin işe alındığını gösterecektir. Eğer belli bir tarihten önce ya da sonrasını isterseniz veya sadece sayının 10'dan büyük olduğu günleri görmek isterseniz o zaman ifadeyi şu şekilde yazmak gerekir SELECT GIRIS_TARIHI,COUNT(*) FROM ISCI WHERE GIRIS_TARIHI>'01.01.1999' GROUP BY GIRIS_TARIHI HAVING COUNT(*)>10 HAVING, grup fonksiyonlarının kriterleri için kullanılır SUM, COUNT vb. gibi. UPDATE: Tabloda bulunan bir istediğiniz bir veya daha fazla alanın güncellenmesi amacıyla kullanılır. Mesela işçilerin maaşlarına % 20 zam yapıldığını düşünürsek aşağıdaki ifade ile bunu tabloda gerçekleştirebiliriz. UPDATE ISCI SET MAAS=MAAS*1.2 Eğer maaşlarla birlikte aldıkları primleri de %20 oranında artırmak isterseniz UPDATE ISCI SET MAAS=MAAS*1.2 , PRIM=PRIM*1.2 şeklinde bir ifade kullanılır. Aynı zamanda WHERE ifadesini kullanarak sadece belli kayıtlar üzerinde güncelleme yapabilirsiniz. DELETE: Tabloda bulunan kayıtları silmek için kullanılır Eğer DELETE FROM ISCI derseniz tüm kayıtları gönderirsiniz. DELETE ifadesini kullanırken dikkatli olun. Buradada yine WHERE ifadesini kullanarak sadece belli kritere uyan kayıtların silinmesini sağlayabilirsiniz. Kötü bir örnek ama olsun, patron 45 yaşından büyük işçileri işten attı (burası Türkiye, olmaz demeyin) ve kayıtlarının silinmesi isteniyor. O zaman DELETE FROM ISCI WHERE YAS>45 ifadesi kullanılır. INSERT: Tablolara veri girişi yapmak amacıyla kullanılır. INSERT INTO ISCI (ISCI_NO,ADI,SOYADI) VALUES (1000,'AHMET','SAVAş'); Eğer giriş yaparken tablonun bütün alanları kullanılacaksa alan isimlerini vermeye gerek yoktur. Not: UPDATE, DELETE ve INSERT ifadelerini kullanırken dikkatli olmalısınız. Eğer SQL tabanlı bir veri tabanı kullanıyorsanız bu ifadeleri veritabanlarının kendi tool'ları üzerinde kullanın. Çünkü Delphi ile gelen SQL Explorer'da işaretine basmayı unutursanız yaptığınız işlemin geri dönüşü olmayabilir. Yani en son yaptığınız işlemi Rollback yapamazsınız ve eğer gerçek veritabanı üzerinde yaptıysanız işlemi başınız bayağı ağrıyabilir veya o iş yerinde yazdığınız son SQL ifadesi olabilir. :-)) İKİ TABLODAN BİRDEN KAYIT SEÇMEK İşçilerin kimlik bilgilerinin ISCI_KIMLIK tablosunda tutulduğunu kabul ederek bizden ÇORUM doğumlu olanların listesinin istendiğini varsayalım. Tablolar birbirine ISCI_NO alanı üzerinden ilişkili olsun. SELECT A.ISCI_NO, A.ISCI_ADI, B.DOGUM_YERI FROM ISCI A, ISCI_KIMLIK B WHERE B.DOGUM_YERI='ÇORUM' AND A.ISCI_NO=B.ISCI_NO şeklinde bir ifade yazarak listemizi elde edebiliriz. Burada WHERE koşuluna yazdığınız sıranın pek bir önemi yoktur. Her şartta aynı sonuçları elde ederseniz. Fakat performans açısından biraz farkeder. Yukardaki ifade SELECT A.ISCI_NO, A.ISCI_ADI, B.DOGUM_YERI FROM ISCI A, ISCI_KIMLIK B WHERE A.ISCI_NO=B.ISCI_NO B.DOGUM_YERI='ÇORUM' ifadesinden daha hızlı çalışır. Çünkü ilk ifadede önce doğum yeri ÇORUM olan kayıtlar seçilir daha bu kayıtlara işçi tablosu birleştirilir Sonraki ifadede ise önce tüm kayıtlar birleştirilir, bunların arasından doğum yeri ÇORUM olanlar seçilir. Örnek 1 Örneğin sorgulama yapmak istediğin kayıdın kodu 1 olsun. Ve form üzeriindeki data nesnesinin adı data1, dbgrid nesnesinin adı dbgrid1 diyelim. (Database değişkenin ismini dbUye olarak alırsak) SQLUye="SELECT * FROM UyeTbl WHERE Uye_Kodu=1" set rsUye=dbUye.openrecordset(SQLUye) set data1.recordset=rsUye data1.******* rsUye.close Örnek 2data1.recordset.index= "Arama_Yapacağın_Sütun_Adı" data1.recordset.seek "=",Textboxdiğer yol ise data1.recordsource="select * [Arama Yapacağın Tablo Adı]where [Arama Yapacağın Sütun]='& Textbox &'"


__________________
SusKun ve Sessiz Mürekkep...


Kullanıcı imzalarındaki bağlantı ve resimleri görebilmek için en az 20 mesaja sahip olmanız gerekir ya da üye girişi yapmanız gerekir.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
başlangıçfarklı, sql, yöntem


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

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

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


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Excel'den Paradox'a aktarım (farklı bir yöntem ile) Kaf_Dağı Delphi 0 11 Mart 2015 11:00
“Deep Freeze”: Bilgisayar Güvenliğinde Farklı bir Yazılım, Farklı Bir Yöntem PyrO Güvenlik ve Güvenlik Açıkları 0 15 Temmuz 2013 19:30
dosyadan okutmada farklı yöntem istiyorum nihattt mIRC Scripting Sorunları 12 29 Ağustos 2008 20:43