Sorgu penceresine sorgu yazılır. Örnek olarak yazılan SELECT * FROM personel ifadesi, personel tablosundaki bütün kayıtların listelenmesini sağlar.

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Sorgu penceresine sorgu yazılır. Örnek olarak yazılan SELECT * FROM personel ifadesi, personel tablosundaki bütün kayıtların listelenmesini sağlar."

Transkript

1 SQL'DE SORGULAMA İŞLEMLERİ SQL'e Giriş SQL (Structured Query Language Yapılandırılmış Sorgulama Dili) ilişkisel veritabanı sistemlerinde veri üretmek, veri üzerinde işlem yapmak ve verileri çağırmak için geliştirilmiş bir dildir. SQL, ilişkisel veritabanlarının evrensel dili haline gelmiştir. Günümüzde hemen hemen bütün veritabanı yönetim sistemleri SQL'li desteklemektedir. SQL'in bu denli geniş bir kabul görmesinin nedeni, SQL'in farklı veritabanı yönetim sistemleri arasında taşınabilirliğini sağlamak için harcanan zaman ve çabadır. SQL, komut tabanlı bir sorgulama dilidir. Komutlarıyla sağladığı ifadeler sayesinde veritabanı üzerinde sorgulamalar yapılabilmektedir. SQL ifadeleri 4 grupta değerlendirilir. DQL (Data Query Language Veri Sorgulama Dili): Select komutu ile oluşturulan ifadeler, verilerin listelenmesi için kullanılır. DDL (Data Definiton Language Veri Tanımlama Dili): Create, Drop ve Alter komutları ile oluşturulan ifadeler; veritabanı nesneleri oluşturma, değiştirme ve silme işlemleri için kullanılır. DCL (Data Control Language Veri Kontrol Dili): Grant, Invoke ve Revoke komutları izin ve yetki atama işlemleri için kullanılırlar. DML (Data Manipulation Language-Veri İşleme Dili): Insert, Delete ve Update gibi komutlarla oluşturulan ifadeler; kayıt ekleme, silme ve güncelleme işlemleri için kullanılır. MSSQL Express 2008'de Sorgu İşlemleri MSSSQL 2008 Express Programında Sorgu Çalıştırmak MSSQL'de sorgu ifadelerini girebilmek için sorgu editörünü kullanabiliriz. Sorgu editörünü açmak ve çalıştırmak içi şu adımlar izlenebilir. Üzerinde işlem yapılacak veritabanı nesne gezgininden seçilir. Bizim örneğimizde bu veritabanı magaza veritabanıdır. Araç çubuklarında bulunan düğmesine basılarak ya da çalışılmak istenen veritabanı üzerinde farenin sağ tuşuna tıklanıp çıkan seçeneklerden New Query komutu seçilerek yeni bir sorgu penceresi açılır. Sorgu penceresine sorgu yazılır. Örnek olarak yazılan SELECT * ifadesi, personel tablosundaki bütün kayıtların listelenmesini sağlar. Araç çubuğunda bulunan düğmesine ya da klavyeden F5 tuşuna basılarak sorgu çalıştırılır. Sonuçlar sonuç ekranından takip edilebilir. Şekil 1'de yapılan işlemleri takip edebilirisiniz.

2 Şekil 1. MSSQL Express sorgu penceresi MSSQL Express'te Sorgu Sonuçlarının Gösterilmesi MSSQL Express'de yaptığınız sorguların sonuçlarını üç farklı şekilde alabilirsiniz. Grid modu, varsayılan olarak gelir ve sonuçları pencerenin altında tablo şeklinde gösterir. Text modu, sonuçların pencerenin alt kısmında metin şeklinde gözükmesini sağlar. File modu, sonuçların bir dosyaya kaydedilmesini sağlar. Bu üç görüntüleme moduna araç çubuklarındaki düğmeleri ile ulaşabilirsiniz. Şekil 1'deki sorguda sonuçlar grid modunda listelenmektedir. Şekil 2'de ise aynı sorgunun sonuçları text modunda listelenmektedir.

3 Şekil 2. Text modunda sonuçların gösterilmesi File modunda.rpt uzantılı bir dosya oluşturulur. Sorguyu çalıştırdığınızda karşınıza kayıt ekranı gelir. Bu ekran dosyayı hangi klasöre ve hangi isimle kaydedileceği bilgisini ister. Sonuçlar metin tabanlı olarak bu dosyaya kaydedilir. Bu dosyayı herhangi bir metin editörü programında açabilirsiniz. Şekil3'deki personel_listesi.rpt dosyası, personel tablosundaki bütün kayıtların listesinin aktarıldığı bir sonuç dosyasıdır. Şekil 3. File modunda sonuçların gösterilmesi

4 ! Üzerinde çalışılacak veritabanı seçilmeden sorgu çalıştırılırsa MSSQL hata mesajı verebilir. Tablo isimlerinin direk kullanılabilmesi için öncelikle o tablonun ait olduğu veritabanı seçilmelidir. Bu yapılmadan da tabloya ulaşılabilir. Bunun için veritabanının isimin de belirtilmesi gerekir. Örneğin personel tablosuna magaza.dbo.personel bilgisiyle de ulaşılabilir. magaza.dbo.personel şeklindeki kullanım tarzı MSSQL için geçerlidir. Örneğin MYSQL'de magaza.personel şeklinde aynı tablo çağrılabilirdi. MSSQL'de Sorguların Kaydedilmesi ve Tekrar Çağrılması Yazmış olduğunuz SQL ifadelerine tekrar ihtiyaç duyabilirsiniz. MSSQL'de yazdığınız SQL ifadelerini kaydedip tekrar çağırabilirsiniz. MSSQL'de SQL ifadesini kaydetmek için, Sorgu ifadesi yazıldıktan sonra File menüsünde Save ya da araç çubuklarındaki düğmesine basılır. Karşımıza gelen kayıt penceresinde, dosyanın kaydedileceği klasör ve dosyanın ismi belirlenip Save düğmesine tıklanır. MSSQL, varsayılan olarak dosyanın uzantısını.sql olarak belirler. Ama bu kullanıcı tarafından değiştirilebilir. Oluşturulan dosya metin tabanlıdır ve içerisinde SQL ifadeleri yer alır. Dolayısıyla bu dosyaya Not Defteri gibi metin editörleriyle ulaşılabilir. Şekil 4'de oluşturulan dosyayı ve dosyanın Not Defteri programında açılmış halini görebilirsiniz. Şekil 4. SQL ifadesinin kaydedilmiş hali Kaydedilmiş sorguyu tekrar yükleyip kullanmak için sorgu dosyasını MSSQL'de açmak gerekir. Bunun için;

5 Kaydedilmiş dosya üzerine çift tıklanabilir, File menüsünden Open komutu seçildikten ya da araç çubuklarındaki basılabilir. düğmesine basıldıktan sonra dosya seçilip Open düğmesine SELECT Komutu SELECT komutu, veritabanında bulunan bir tablo ya da tablolardaki kayıtların seçilip getirilmesini sağlar. SQL öğrenmeye başlayanların belki de öğreneceği ilk komuttur. Çünkü SELECT komutuyla oluşturulan ifadeler, SQL'de çok sık kullanılır. SELECT komutu ile yapılabilecek işlemler şu şekilde sıralanabilir. Bir tablodaki tüm alanlardaki kayıtlar getirilebilir. Bir tablodaki yalnızca belirtilen alanlardaki kayıtlar getirilebilir. Bir tabloda yalnızca belirli şartlara uyan kayıtlar getirilebilir. Veriler belirli bir alan ya da alanlara göre sıralanarak getirebilir. Bir tablodaki kayıtlar belirli bir alandaki verilere göre gruplandırılabilir ve bu gruplarla ilgili hesaplamalar yaptırılabilir. Tablodaki veriler, önceden oluşturulmuş bir indeksle sıralanarak çağrılabilir. Alanlardaki verilerle ilgili toplamı, ortalamayı, en büyük ve en küçük değeri bulma gibi hesaplamalar yaptırılabilir. İlişkisel tablolardaki veriler birleştirilerek tek bir tablo halinde gösterilebilir. SELECT ifadelerinin en genel kullanım şekli aşağıdaki gibidir. SELECT * FROM <tablo adı>; Buradaki ifadede, tablo adı kayıtların getirileceği tablo ismini; * ise o tablodaki bütün alanları ifade etmektedir. Bu şekilde oluşturulmuş SELECT ifadelerinde tablonun bütün alanlarındaki verilere ulaşılır. Örneğin bir önceki ünitede hazırlamış olduğumuz personel tablosunu ele alalım. Şekil 5'de personel tablosunun alan yapısını inceleyebilirsiniz. Şekil 5. Personel tablosunun alan yapısı Bu tablodaki mağaza personeline ait tüm alanlardaki verilere ulaşmak istenirse yazılacak SQL ifadesi aşağıdaki gibi olabilir.

6 SELECT * ; Bu SQL ifadesi ile çağrılan kayıtları Şekil 6'da görebilirsiniz. Şekil 6. Personel tablosundaki tüm bilgileri SELECT ifadesi ile çağrılması Eğer tablodaki belirli alanlardaki kayıtlara ulaşılmak isteniyorsa yazılacak SELECT ifadesinin kullanım şekli aşağıdaki gibidir. SELECT <alan1>,< alan2>, FROM <tablo adı>; Buradaki ifadede, tablo adı kayıtların getirileceği tablo ismini; alan1,alan2, ifadesi ise verilerin seçileceği alan isimlerini belirtmektedir. Yine personel tablosundaki mağaza personeline ait kayıtlardan tüm personele ait yalnızca adı, soyadı ve maaş bilgilerine ulaşılmak istenirse yazılacak SQL ifadesi aşağıdaki gibi olabilir. SELECT adi_soyadi, maas ; Bu SQL ifadesi ile çağrılan kayıtları Şekil 6'da görebilirsiniz. Şekil 6. Personele ait adı, soyadı ve maaş bilgileri! SQL ifadeleri birden fazla satır halinde yazılabilir. İlerleyen konularda ifadenin anlaşılırlığının artırmak için bu yönteme başvurulacaktır. İfadeleri sonlandıran karakter noktalı virgül (;) karakteridir. Fakat bu durum veritabanı yönetim sistemine göre değişmektedir. Örneğin MSSQL'de buna gerek yoktur.! Kullanım şeklinde < > ile belirtilen ifadeler, kullanıcı tarafından girilmesi gereken, değişkenlik gösterebilecek bilgilerdir. Büyük harfle belirtilenler ise ifadenin doğru çalışması için sabit olması gereken bilgilerdir. İfadelerin büyük ya da küçük yazılması, SQL ifadesinin çalışması açısından bir farklılık göstermemektedir.

7 SELECT Komutu İle Görüntülenecek Kayıtları Seçmek Bir tablodaki alanlardan hangilerinin görüntüleneceği, alanların isimleri belirtilerek seçebiliyordu. Kayıtlar üzerinde seçim işlemi yapmak için şart belirtilmesi gerekir. SQL'de şart belirtmek için WHERE ile oluşturulan ifadeler kullanılır. WHERE kullanılmadan oluşturulan ifadeler bütün kayıtlar için geçerli olurken WHERE kullanıldığında yalnızca şartı sağlayan kayıtlar getirilir. WHERE ile belirtilen şartlar, SQL'de şartlı işlem yapılmasını gerektirecek her ifade için geçerlidir. Örneğin SELECT komutu ile beraber kullanıldığında o şarta uyan kayıtlar getirilirken, DELETE komutu ile birlikte kullanıldığında o şarta uygun kayıtlar silinir. En basit anlamda SELECT ifadesinde WHERE'in kullanımı aşağıdaki gibidir. SELECT * FROM <tablo adı> WHERE <şart> ya da SELECT <alan1>,< alan2>, FROM <tablo adı> WHERE <şart> WHERE ile şart oluşturmak için kullanılan operatörler vardır. Bunlar aşağıdaki gibi gruplandırılabilir. Karşılaştırma operatörleri LIKE operatörü BETWEEN operatörü Mantıksal Operatörler Karşılaştırma Operatörleri Karşılaştırma operatörleri ile eşitlik, büyüklük ve küçüklükle ilgili şartlar oluşturulabilir. Bu operatörler sayısal ifadelerin yanında metinsel ifadeleri kontrol etmek için de kullanılır. Bunlar; = Bir değerin başka bir değere eşit olması durumunu kontrol etmek için kullanılır. < Bir değerin başka bir değerden küçük olması durumunu kontrol etmek için kullanılır. > Bir değerin başka bir değerden büyük olması durumunu kontrol etmek için kullanılır. <= Bir değerin başka bir değerden küçük ya da o değere eşit olması durumunu kontrol etmek için kullanılır. >= Bir değerin başka bir değerden büyük ya da o değere eşit olması durumunu Bir kontrol etmek için kullanılır. <> Bir değerin başka bir değere eşit olmaması durumunu kontrol etmek için kullanır.

8 SELECT * WHERE maas>2000; Yukarıdaki SELECT ifadesi, personel tablosundaki maaşı 2000 TL'den yüksek olan personelin bilgilerine ulaşmayı sağlar. Bu ifade çalıştırıldığında elde edilecek kayıtların listesini şekil 7'de inceleyebilirsiniz. Şekil 7. Maaşı 2000 TL'nin üzerinde olan personelin listesi. SELECT adi_soyadi, maas WHERE maas<=1500; Yukarıdaki SELECT ifadesi, personel tablosunda maaşı 1500 TL ya da altında olan personelin yalnızca Adı, Soyadı ve maaş bilgisine ulaşmayı sağlar. Şekil 8'de ifadenin getirdiği sonuçlar görülebilir. Şekil 8. Maaşı 1500 TL olan personelin isim bilgileri SELECT * WHERE doğum_tarihi<' '; Yukarıdaki SELECT ifadesi, doğum tarihi 'den önce olan personel kayıtlarını getirmektedir. Şekil 9'da ifadenin getirdiği sonuçlara bakılabilir. Şekil tarihinden önce doğan personelin listesi

9 ! SQL'de tarih bilgileri uluslararası zaman standardına göre kaydedilir. Bu sistemde tarih YIL-AY-GÜN şeklinde gösterilir. Örneğin 13 Aralık 2009 tarihi Türkçe bölgesel ayarlarda şeklinde gösterilirken, uluslararası sistemde şeklinde gösterilir. MSSQL'de SELECT sorgu ifadelerinde tarih bilgileri hem yerel hem de uluslararası standartta kullanılabilir. SELECT * WHERE adi_soyadi='ali Yılmaz'; Yukarıdaki SELECT ifadesi Personel tablosunda, adı soyadı "Ali Yılmaz" olan kayıtları getirir. Şekil 10'da de görüleceği üzere 'Ali Yılmaz' isimli tek bir kayıt bulunmaktadır. Şekil 10. Adı "Ali Yılmaz" olan personelin bilgisi! SQL'de sorgu ifadelerinde kullanılan metin ve tarih bilgilerinin başına ve sonuna tek tırnak (') konulmalıdır. Aksi durumda sorgu çalıştırıldığında hata mesajı ile karşılaşılır.? Metinsel alanlarda küçüktür ve büyüktür operatörleri ile sorgulama yapan SELECT ifadeleri hangi sonuçları getirir? Araştırın. LIKE Operatörü LIKE operatörü, metinsel alanlarda belirli bir şablona ya da yapıya uyan kayıtları getiren sorgulamaların yapılmasını sağlar. Örneğin, personel tablosunda aşağıdaki gibi sorgulamalar yapılmak istenebilir. Adı A harfi ile başlayan personelin listesi Soyadı k harfi ile biten personelin listesi Adresi içerisinde emek kelimesi geçen personelin listesi Adının ilk harfi B üçüncü harfi C olan personelin listesi LIKE operatörü bu tarz sorgular yapabilmek için joker karakterlerden yararlanır. Bu karakterler; Yüzde ( % ): O alanla ilgili belirtilmeyen tüm karakterlerin yerine kullanılır. "%", belirtilmeyen karakterlerin herhangi bir karakter olabileceğini belirtir. Alt çizgi ( _ ): Belirtilmeyen tek bir karakterin yerine kullanılır. Karşılaştırmalarda alt çizginin kullanıldığı konumdaki karakterin ne olduğunun önemi yoktur.

10 Aşağıdaki tabloda bu joker karakterlerin kullanımı ile ilgili örnekler bulunmaktadır. A% İlk harfi A olanları belirtir. %k Son harfi k olanları belirtir. %Emek% İçerisinde Emek kelimesi geçenleri belirtir. B_L% İlk harfi B, üçüncü harfi L olan, diğer karakterlerin önemli olmadığını belirtir. SELECT * WHERE adi_soyadi LIKE 'A%'; Yukarıdaki SELECT ifadesi personel tablosundaki adı A ile başlayan kayıtları getirir. Şekil 11'de de görüleceği gibi bu sorgu ifadesi çalıştırıldığında karşımıza gelen kayıtlar, Adı A ile başlayan personelin kayıtlarıdır. Şekil 11. Adı A ile başlayan personelin listesi SELECT * WHERE adres LIKE '%emek%'; Yukarıdaki SELECT ifadesi personel tablosundaki adres alanında emek kelimesi geçen personelin listesini getirir. Emek kelimesi adres alanının herhangi bir yerinde olabilir. Şekil 12'de görülebileceği gibi bu şarta uyan yalnızca tek personel vardır. Şekil 12. Adresi içerisinde emek kelimesi geçen personelin listesi! LIKE ile birlikte kullanılan Yüzde ( % ) ve Alt çizgi ( _ ) joker karakterleri, Windows işletim sisteminde dosya aratırken kullanılan yıldız (*) ve soru işareti (?) joker karakterleriyle aynı işleve sahiptir.

11 BETWEEN Operatörü BETWEEN operatörü, sayısal alanlarda bir değer aralığına göre sorgulama yapmak için kullanılır. Örneğin personel tablosunda maaşı 1000 TL ile 2000 TL arasında olanların listesine ulaşmak için BETWEEN operatörü kullanılabilir. SELECT * WHERE maas BETWEEN 1000 AND 2000; Yukarıdaki sorgu ifadesi maaşı 1000 TL ile 2000 TL arasında olan personelin listesini getirmektedir. Sorgu ifadesinden anlaşılacağı gibi BETWEEN, AND ile birlikte kullanılmaktadır. Sorgu ifadesinin getirdiği sonuçları şekil 13'de inceleyebilirsiniz. Şekil 13. Maaşı 1000TL ile 2000 TL arasındaki personelin listesi. Mantıksal Operatörler Mantıksal operatörler sayesinde, sorgu ifadelerinde birden fazla şartı birlikte kullanabiliriz ya da belirtilen şart ifadesinin tersinin yapılmasını sağlayabiliriz. Kullanılabilecek mantıksal operatörler şunlardır: AND: Birden fazla şartın aynı anda gerçekleşmesini sorgular. Örneğin personel tablosunda, Ankara'da oturan ve maaşı 1400 TL'den fazla olan personeli sorgulamak için AND operatörünü kullanmak gerekir. OR: Birden fazla şarttan en az bir tanesinin gerçekleşmesini sorgular. Örneğin adı Ali ya da Bülent olanları sorgulamak için OR operatörünü kullanmak gerekir. NOT: Belirtilen şart ifadesinin tersini (değilini) sorgulamak için kullanılır. Örneğin adı A ile başlayanların dışındaki personele ulaşmak için NOT kullanılabilir. SELECT * WHERE il='ankara' AND maas>1400; Yukarıdaki sorgu ifadesi Ankara'da oturan ve maaşı 1400 TL'nin üzerinde olan personelin listesinin getirir. Sorgu ifadesinin getirdiği sonuçları şekil 14'de inceleyebilirsiniz.

12 Şekil 14. Ankara'da oturan ve maaşı 1400 TL'den yüksek olan personelin listesi. SELECT * WHERE (adi_soyadi LIKE 'Ali%') OR (adi_soyadi LIKE 'Bülent%'); Yukarıdaki sorgu ifadesi Adı "Ali" ya da "Bülent" ile başlayanların listesini vermektedir. Sorgu ifadesinin getirdiği sonuçları şekil 15'de inceleyebilirsiniz. Şekil 15. Adı "Ali" ya da "Bülent" ile başlayanların listesi SELECT * WHERE NOT (adi_soyadi LIKE 'A%'); Yukarıdaki sorgu ifadesi adı "A" ile başlamayan personelin listesini getirir. Sorgu ifadesinin getirdiği sonuçları şekil 16'da inceleyebilirisiniz. Şekil 16. Adı A ile başlamayan personelin listesi! SQL ifadelerinde parantezler, öncelikleri belirlemek ya da ifadeleri gruplamak için kullanılabilir. Parantezler kullanılırken unutulmamalıdır ki; açılan parantezler mutlaka kapatılmalıdır. Aksi durumda SQL ifadesi hata verir.? Personel listesinde maaşı 2000 TL'nin altında olanlarla 3000 TL'nin üzerinde olanları görmek için yazılacak sorgu ifadesi ne olmalıdır? Oluşturduğunuz cümleyi deneyin.

13 Boş Kayıtların Sorgulanması SQL' de veri giriş yapılmayan alanlara NULL değeri atanır. Bu ifade, alana hiçbir verinin girilmediğini gösterir. Şart ifadelerinde NULL değerleri eşitlikle kontrol edilemez. IS NULL ifadesi ile kontrol edilir. SELECT * WHERE adres IS NULL; Yukarıdaki SQL ifadesi personel tablosunda adres alanı boş olan kayıtları getirir. Böylelikle adres bilgileri girilmeyen personele ulaşılabilir. Şekil 17'de sorgu ifadesinin getirdiği sonuçları inceleyebilirsiniz. Şekil 17. Adres bilgisi girilmeyen personelin listesi SELECT İle Yapılabilecek Diğer İşlemler SELECT İle Kayıtları Sıralayarak Çağırmak SELECT ifadesi ile yapılan sorgularda gelen sonuçlar sıralanabilir. İki şekilde yapmak mümkündür. SELECT ile ORDER BY ifadesini beraber kullanarak kayıtlar sıralanabilir. Önceden kayıtları sıralamak için oluşturulmuş bir indeks, SELECT ifadesinde çağrılabilir. ORDER BY ifadesi ile kayıtlar küçükten büyüğe ya da büyükten küçüğe sıralanabilir. Küçükten büyüğe doğru sıralatmak için SELECT ifadesine ORDER BY <alan1>, <alan2>, eklenmelidir. Büyükten küçüğe sıralatmak için ise SELECT ifadesine ORDER BY <alan1>, <alan2> DESC bilgisi eklenmelidir. SELECT * ORDER BY adi_soyadi; Yukarıdaki SQL sorgusu, personel tablosundaki kayıtları adı ve soyadına göre küçükten büyüğe doğru sıralayarak getirir. Şekil 18'de bu sorgunun getirdiği sonuçları inceleyebilirsiniz.

14 Şekil 18. Personel listesinin adı ve soyadına göre sıralatılmış hali. SELECT * WHERE il='ankara' ORDER BY maas DESC; Yukarıdaki SQL ifadesi, "Ankara" ilinde yaşayan personeli, maaşlarına göre büyükten küçüğe doğru sıralayarak getirir. Şekil 19'da sorgunun getirdiği sonuçları inceleyebilirsiniz. Şekil 19. Ankara'daki personelin maaşa göre büyükten küçüğe sıralatılmış hali. Sıralama birden fazla alana göre yapılabilir. Bu durumda alan isimleri virgül ile birbirinden ayrılır. * Örneğin personel tablosundaki adi_soyadi alanı yerine adi ve soyadi şeklinde iki tane alan olsaydı, sıralama yapmak için kullanılacak ifade aşağıdaki gibi olurdu. SELECT * ORDER BY adi, soyadi;! Birden fazla alana göre sıralama yapılması, sıralama yapılacak alandan önce gelen alanlardaki verilerin tekrar edilmesine bağlıdır. Eğer daha önce belirtilen alan ya da alanlarda aynı değere sahip veriler yoksa belirtilen diğer alanların sıralama işlemine bir etkisi yoktur. Örneği ele alacak olursak, eğer aynı ada sahip birden fazla kişi varsa bu kişiler kendi aralarında soyadına göre sıraya konur. Aksi durumda soyadi alanının sıralama sonuçlarına etkisi yoktur.! Küçükten büyüğe sıralamak için ORDER BY <alan1>, <alan2>, ASC şeklinde de yapılabilir. Fakat ASC bilgisine seçimliktir. İstenirse kullanılmayabilir.

15 Sıralama yaptırmak için ORDER BY ifadesini kullanıldığında her seferinde bilgiler sıralanarak getirilir. Çok fazla kayıt içeren tablolarda bu işlem yavaşlığa neden olur. Bu durumda sıralanmak istenen alana göre önceden hazırlanmış bir indeks ile çağırarak işlem daha hızlı gerçekleşebilir. Verileri indeks ile sıralayarak çağırmak için SELECT ifadesine WITH(INDEX(<İndeks ismi>) bilgisi eklenmelidir. SELECT * WITH(INDEX(adi_soyadi)); Daha önceden oluşturulmuş, personel kayıtlarını adı ve soyadına göre sıralayan adi_soyadi isimli bir indeks olduğunu düşünelim. Yukarıdaki SQL sorgusu personel tablosundaki kayıtları bu indekse göre sıralayarak çağırır. Şekil 20'de sorgunun getirdiği sonuçları inceleyebilirsiniz. Şekil 20. Personelin adi_soyadi indeksine göre sıralanmış hali Bir Alandaki Farklı Değerleri Seçmek Bir alandaki tekrar eden bilgilerden yalnızca bir tanesine yani farklı olanlara ulaşmak istenebilir. Örneğin işlemlerimizde kullandığımız personel tablosunda 6 kayıt vardır ama il alanında yalnızca 2 farklı değer mevcuttur. Personelin hangi illerde yaşadığını öğrenmek için bu yönteme başvurulabilir. Bir alandaki farklı değerlere ulaşmak için SELECT ifadesine DISTINCT <alan adı> eklenerek bu işlem gerçekleştirilir. * SELECT DISTINCT il ; Yukarıdaki SQL ifadesi personel tablosundaki il alanına girilmiş farklı değerleri getirir. Şekil 21'de de görüleceği gibi personel iki farklı ilde yaşamaktadır. Şekil 21. Personel tablosunun il alanındaki farklı değerler

16 Bir Tablodaki Baştan Belirli Sayıdaki Kaydı Seçmek Bir tablodaki kayıtların tamamı yerine n sayıdaki kayıt görüntülenmek istenebilir. Örneğin 1000'lerce kaydın olduğu bir tablodaki ilk 20 kayıt bizim için gerekli olabilir. Bu şekilde baştan belirli bir sayıdaki kaydı görüntülemek için SELECT ile beraber TOP <kayıt sayısı> ifadesi kullanılır. SELECT TOP 3 * ORDER BY maas DESC; Yukarıdaki SQL ifadesi, maas alanına göre büyükten küçüğe doğru sıralanmış kayıtlardan yalnızca ilk üçünü getirir. Böylelikle en yüksek maaş alan 3 personelin bilgisine ulaşılmış olunur. Şekil 22'de sorgunun getirdiği sonuçları inceleyebilirsiniz. Şekil 22. En yüksek maaş alan ilk 3 personel Grup (Aggregate) Fonksiyonları ve Gruplama İşlemleri SELECT İle Beraber Grup (Aggregate) Fonksiyonlarını Kullanmak SQL'de grup fonksiyonlar bazı hesaplamaları yapmak için vardır. Sorgu çalıştırıldığında yalnızca tek satırlık bir bilgi getirirler. Aşağıdaki tabloda sıkça kullanılan beş fonksiyon verilmektedir. COUNT() SUM() AVG() MAX() MIN() Kayıt sayısını bulur. Sayıların toplamını bulur. Sayıların ortalamasını bulur. En büyük değeri getirir. En küçük değeri getirir. Bu fonksiyonlar SELECT ile beraber kullanılır. Kullanım şekli aşağıdaki gibidir. SELECT <fonksiyon adı(<alan adı>)> FROM <tablo adı> WHERE <şart> SELECT COUNT (*) ; Yukarıdaki ifade personel tablosundaki tüm kayıtların sayısını verir. Şekil 23'de sorgunun getirdiği sonucu görebilirsiniz.

17 Şekil 23. Personel tablosunun kayıt sayısı Görüleceği üzere tek satırlık bir bilgi karşımıza gelmiştir. Bu bilginin üzerinde (No column name) diye bir ifade bulunmaktadır. Bu durum, gelen kayda bir isim verilmemesinden kaynaklanmaktadır. SELECT ifadesinin içersinde AS kullanılarak ya da fonksiyondan sonra bir boşluk bırakılarak getirilen sonuca takma isim verilebilir. SELECT COUNT(*) AS Kayit_Sayisi WHERE il='ankara'; Yukarıdaki ifade Ankara'da oturan personel sayısını getirmektedir. Şekil 24'te de görülebileceği gibi getirilen bilgi, Kayit_Sayisi olarak isimlendirilmiştir. Şekil 24. Ankara'da oturan personelin sayısı SELECT COUNT(adres) ; Yukarıdaki SQL ifadesi adres alanına girilen kayıtların sayısını getirir. Boş geçilen yani NULL değeri olan kayıtlar hesaplamaya katılmaz. Şekil 25'de de görüleceği üzere tabloda toplam 6 kayıt olmasına rağmen sorgu, kayıt sayısını 4 adet olarak bulmuştur. Çünkü 2 personelin adres kaydı girilmemiştir. Şekil 25. Adres alanına girilen kayıtların sayısı. SELECT SUM(maas) Toplam_Maas ; Yukarıdaki SQL ifadesi maas alanındaki sayıların toplamını yani personele ödenen toplam maaş bilgisini getirir. Şekil 26'te sorgunun sonucunu görebilirsiniz.

18 Şekil 26. Personele ödenen toplam maaş bilgisi SELECT AVG(maas) WHERE il='ankara'; Yukarıdaki SQL ifadesi Ankara'da oturan personelin maaşlarının ortalamasını getirir. Şekil 27'da sorgunun sonucunu görebilirsiniz. Şekil 27. Ankara'da oturan personelin ortalama maaşı SELECT MAX(maas) ; Yukarıdaki SQL ifadesi en yüksek maaş bilgisini getirir. Şekil 28'de bu sorgunun sonucunu görebilirsiniz. Şekil 28. En yüksek maaş bilgisi SELECT MIN(maas) ; Yukarıdaki SQL ifadesi en düşük maaş bilgisini getirir. Şekil 29'da bu sorgunun sonucunu görebilirsiniz. Şekil 29. En düşük maaş bilgisi

19 ! Hesaplama fonksiyonlarında WHERE ile şart ifadelerine başvurulabilmektedir. Örneklerde yer yer şart ifadeleri kullanılmıştır. Aynı durum şart ifadesi kullanılmayan diğer örnekler için de geçerlidir. Örnek: * SELECT COUNT(*) Kayit_Sayisi, SUM(maas) Toplam_Maas, AVG(maas) Ortalama_Maas, MAX(maas) En_Yuksek_Maas, MIN(maas) En_Dusuk_Maas ; Yukarıdaki sorgu ifadesinden de anlaşılacağı gibi birden fazla grup fonksiyonu beraber çağrılabilir. Sorgunun getirdiği sonuçları şekil 30'da inceleyebilirsiniz. Şekil 30. Personel tablosunda tüm grup fonksiyonlarının birlikte çağrılması SELECT ile Birlikte Gruplama İşlemleri SQL'de tablolardaki veriler bir alandaki değerlere göre gruplandırılabilir. Gruplandırmayla beraber grup fonksiyonları yardımıyla hesaplamalar da yaptırılabilir. Personel tablosunu ele alacak olursak şu sorulara gruplama yardımıyla daha rahat yanıt bulabiliriz. İllere göre personel sayısı nedir? İllere göre personele ödenen toplam maaş nedir? İllere göre personele ödenen ortalama maaş nedir? İllere göre ödenen en düşük maaş nedir? İllere göre personele ödenen en yüksek maaş nedir? Çalıştığımız konuya göre veritabanındaki gruplamanın işlerimizi kolaylaştıracağı pek çok durum ortaya çıkabilir. Gruplama işlemimi SELECT ifadesine GROUP BY yan cümleciği eklenerek yapılır.! Gruplama işleminin faydasını görmek için örnek olarak kullanacağımız personel tablosunun kayıt sayısının artmasında ve il alanına farklı değerler girilmesinde fayda vardır. Bu yüzden personel tablosuna bir miktar daha veri eklenmiştir. SELECT il GROUP BY il; Yukaradaki sorgu ifadesi en basit gruplama işlemidir. Personel tablosundaki kayıtlar illerine göre gruplanmıştır. Şekil 31'de de görüldüğü gibi yalnızca farklı isimlerin bilgileri sonuç olarak gelmiştir. Hatırlanacağı gibi bu işlem DISTINCT ifadesi ile de yapılabilmektedir.

20 Şekil 31. Personel tablosundaki farklı iller SELECT il, COUNT(*) Personel_Sayısı GROUP BY il; Yukarıdaki sorgu ifadesi personel sayısını illere göre gruplayarak getirir. Şekil 31'da sorgunun sonuçlarını inceleyebilirsiniz. Şekil 31. Personel sayısının göre gruplanmış hali SELECT il, SUM(maas) Toplam_Maas GROUP BY il; Yukarıdaki sorgu ifadesi illere göre personele ödenen toplam maaşı gruplayarak getirir. toplamların getirir. Şekil 32'de sorgunun sonuçlarını inceleyebilirsiniz. Şekil 32. İllere göre maaş toplamlarının gruplanmış hali! Gruplama işlemlerinde yalnızca gruplama yapılan alan ve grup fonksiyonları seçilebilir. Tablonun diğer alanları seçilemez. Gruplama işlemlerinde şart ifadesi de belirtilebilir. Şartlar, daha önce olduğu gibi WHERE ile değil HAVING ile oluşturulabilir.

21 ! Gruplamadaki şart ifadelerinde yalnızca gruplandırılan alan ve grup fonksiyonlarına yer verilebilir. Şart ifadelerinde tablonun diğer alanlarına yer verilemez. SELECT il, AVG(maas) Ortalama_Maas GROUP BY il HAVING AVG(maas)>1800; Yukarıdaki sorgu ifadesi ortalama maaşın 1800 TL'nin üzerinde olduğu illeri ve ortalama maaşlarını getirir. Sorgu sonuçlarını şekil 33'de inceleyebilirsiniz. Şekil 33. Ortalama maaşın 1800 TL'nin üzerinde olduğu iller SELECT il, MAX(maas) En_Yuksek_Maas GROUP BY il HAVING il='ankara' OR il='istanbul'; Yukarıdaki sorgu ifadesi Ankara ile İstanbul illerindeki en yüksek maaşı getirmektedir. Sorgu sonuçları şekil 34'de incelenebilir. Şekil 34. Ankara ile İstanbul'daki en yüksek maaş bilgileri! Gruplamada ORDER BY ile sıralama da yaptırılabilir. Fakat sıralama yaptırılacak bilgi ya gruplama alanı ya da grup fonksiyonu olabilir. Tabloları Normalleştirme Normalleştirme, bir veritabanındaki verileri düzene koyma işlemidir. Normalleştirmenin en önemli amacı veritabanını tekrar edilen verilerden kurtararak veri bütünlüğünü sağlamaktır. Eğer veri gereksiz yere tekrarlanıyorsa ve farklı yerlerdeki bu değerler programda göz önüne alınmamışsa bir süre sonra birbirinden farklı değerleri taşımaya başlayabilirler. Bu, doğruluk ve tutarlılık açısından önemli bir problemdir. Örneğin bir ürüne ait bilgiler hem ürünler, hem de sipariş tablosunda istenebilir. Bir ürünün adı değiştiğinde siparişlerdeki bu ürüne ait ad bilgisi de değişmeli mi? Eğer öyleyse bunu sağlayan bir mekanizma kurulmalıdır. Normalleştirme işlemi olmazsa bunu el ile fazladan kod yazarak yapmak gerekir. Bu da hatalara neden olabilir. Bu şekilde aynı veriye birden

22 fazla yerde ihtiyaç duyulan durumlar, normalleştirme süreciyle en uygun hale getirilebilir. Normalleştirme işleminin, tekrarlı verilerden kurtulmanın yanında başka yararları da vardır. Bunları şu şekilde sıralayabiliriz. Performans: Tekrarlı verileri kullanmak için ekstra kod yazılmalıdır. Yani veritabanında bazı işlemler gereksiz yere yapılacaktır. Bu da veritabanının performansını düşürür. Geliştirme Maliyeti: Normalleştirilmiş bir veritabanını tasarlamak uzun zaman alsa da böyle bir veritabanında çalışmak çok daha kolaydır. Bu da veritabanı kullanılarak geliştirilecek uygulaman maliyetini azaltır. Kullanışlılık: Alanları doğru tablolarda tanımlamak, veritabanının daha kolay anlaşılmasını sağlar. Bu da sorguların doğru bir şekilde yazılmasını kolaylaştırır. Esneklik: Normalleştirme yapılmamış veritabanları daha karmaşıktır. Bu tarz veritabanlarında düzenleme yapmak oldukça zordur. Normalleştirme İşleminin Aşamaları Şekil 35'de normalleştirme işlemine ihtiyaç duyan bir tablo bulunmaktadır. Görüldüğü üzere birçok bilgi tek bir tabloda tutulmaya çalışılmıştır. Ogrenci Tablosu Ogr_ID Adi Soyadi Adres Telefonlar Ders_Kodu Dersin_Adi Vize Final 1 Ali Yılmaz Ankara , A115 Matematik Ali Yılmaz Ankara , A116 Türkçe Mehmet Can İstanbul A116 Türkçe Mehmet Can İstanbul A117 İngilizce Şekil 35. Normalleştirilmemiş tablo Böyle bir tabloda çalışmak, bazı sorunları da beraberinde getirecektir. Bu sorunları 3 başlık altında toplayabiliriz. Kayıt Ekleme Sorunu: Bu tabloda Ali Yılmaz için başka bir derse ait yeni bir not girişi yapıldığında Ali Yılmaz'a ait önceden grilmiş bilgilerin tekrar girilmesi gerekir. Bu da gereksiz veri tekrarına neden olur. Kayıt Silme Sorunu: Bu tabloda Ali Yılmaz'ın bir dersine ait bir not silindiğinde Ali Yılmaz'a ait diğer veriler de silinecektir. Kayıt Güncelleme Sorunu: Bu tabloda Ali Yılmaz'a ait adres bilgisi değiştiğinde o öğrencinin notlarının girildiği bütün kayıtlardaki adres bilgisinin değişmesi gerekecektir. Yalnızca bir kaydı ilgilendiren bir işlem daha fazla kayda uygulanacaktır. Bu da veritabanının performansını düşüren bir durum yaratır. Veritabanının normalleştirilmesi için birkaç kural bulunmaktadır. Her kurala "normal form" adı verilir. Daha fazla normal form olmasına karşın çoğu uygulamada ilk 3 formu uygulamak, normalleştirme işleminin gerçekleştirilmesi için yeterli olur.

23 Birinci Normal Form (1NF) Bir tabloda, bir alanın aldığı değerler atomik (tek ve basit) olmalıdır. Yani belirli nitelikte verileri saklamak için tek bir alan kullanılmalıdır. Bir alan içerisinde ayraç (örneğin virgül karakteri) kullanılarak birden fazla veri saklanmamalıdır. Bunun yanında aynı nitelikteki veriler birden fazla alanda da saklanmamalıdır. Örneğin öğrencilerin çeşitli derslerden aldığı notlar için not1, not2, not3 diye alanlar tanımlanmamalıdır. Zira bu tarz bir yaklaşım, daha fazla not girilmesi gerektiği zaman eksikliğe, daha az not girilmesi gerektiği zaman ise gereksiz alan kullanımına neden olacaktır. Birinci normal formda bu tarz veriler yeni bir tabloya aktarılarak ilgili olduğu tabloyla birincil anahtar-yabancı anahtar ilişkisi kurulur. Örnek tabloda bu durum, telefonlar alanı için geçerlidir. Çünkü bu tabloda birden fazla telefon numarası tek bir alanda tutulmaya çalışılmıştır. Bu durumu düzeltmek için telefonları ayrı bir tabloda tutabiliriz. Bu tabloya, telefon numaralarının hangi öğrenciye ait olduğunu göstermek için öğrenci numaralarına gösteren bir alan eklemeliyiz. Birinci normal form uygulandığında tabloların yapısı şekil 36'daki gibi olur. Ogrenci Tablosu Ogr_ID Adi Soyadi Adres Ders_Kodu Dersin_Adi Vize Final 1 Ali Yılmaz Ankara A115 Matematik Ali Yılmaz Ankara A116 Türkçe Mehmet Can İstanbul A116 Türkçe Mehmet Can İstanbul A117 İngilizce Telefonlar Tablosu Ogr_ID Telefon_No Şekil 36. Öğrenci bilgilerine birinci normal formun uygulanması Şekilde 36'da görüldüğü gibi telefon bilgileri yeni bir tabloya taşındı ve telefonların kime ait olduğunu göstermek için öğrencilerin numaralarının girilebileceği bir alan eklendi. Böylece bu iki tablo öğrenci numarasına (Ogr_ID alanı) göre ilişkilendirilmiş oldu. Buradaki ilişkide Ogrenci tablosundaki Ogr_ID alanı birincil anahtar, Telefonlar tablosundaki Ogr_ID alana ise yabancı anahtardır. İkinci Normal Form (2NF) İkinci normal form, kısmi bağımlılığı kaldırmak için kullanılır. İkinci formu uygulamadan önce fonksiyonel bağımlılık kavramının açıklanmasında fayda vardır. Fonksiyonel bağımlılıktan kastedilen, tabloya girilen her bir kaydın, o kaydı benzersiz olarak tanımlayan birincil anahtara tam bağımlı olmasıdır. Eğer yeni bir kayıt için birincil anahtar değerinin tekrar edilmesi ve alanlardan bazılarına farklı değerler girilmesi söz konusuysa bu kısmi bağımlılık yaratır. Bu gibi durumlarda ikinci normal formun uygulanması gerekir.

24 İkinci normal formda bu tarz veriler başka bir tabloya alınarak ilgili tablo ile birincil anahtaryabancı anahtar ilişkisi kurulur. Ogrenci tablosundaki adi, soyadi, ve adres alanları fonksiyonel bağımlılık kuralına uymaktadır. Ders ve derse ait not bilgileri ise bu kuralı bozmaktadır. Öğrencileri benzersiz olarak Ogr_ID alanı, aynı öğrenciye ait her yeni not girişinde tekrarlanıyor. Bu da kısmi bağımlılık oluşturmaktadır. İkinci normal form uygulandığında ogrenci tablosundaki not bilgileri yeni bir tabloya taşınarak Ogr_ID alanına göre ilişki oluşturur. Şekil 37'de ikinci normal form uygulandıktan sonraki durum görülebilir. Ogrenci Tablosu Ogr_ID Adi Soyadi Adres 1 Ali Yılmaz Ankara 2 Mehmet Can İstanbul Notlar Tablosu Telefonlar Tablosu Ogr_ID Telefon_No Not_ID Ogr_ID Ders_Kodu Dersin_Adi Vize Final 1 1 A115 Matematik A116 Türkçe A116 Türkçe A117 İngilizce Şekil 37. Öğrenci bilgilerine ikinci normal formun uygulanması! Bir veritabanındaki tabloların ikinci normal formuna ulaştığını söyleyebilmek için; Bu tabloların birinci normal forma uygun olması, Anahtar olmayan alanların bir benzersiz tanımlayıcıya (yani birincil anahtara) bağlı olması gerekir.! Birincil anahtar tek bir alan olabileceği gibi birden fazla alan da olabilir. Üçüncü Normal Form (3NF) Üçüncü normal form, geçişli bağımlılıkları kaldırmak için kullanılır. Yani tablodaki her bir kaydı benzersiz olarak tanımlayan birincil anahtara doğrudan bağımlı olmayan alanların kaldırılmasıdır. Örnek tablo yapısında Notlar tablosundaki Dersin_Adi alanı her bir notu doğrudan tanımlayan Not_ID alanına bağımlı değildir. Çünkü dersleri ders_kodları tekil olarak tanımlamaktadır. Bu durumda yapılacak olan iş bu tarz bilgileri başka bir tabloya aktarmaktır. Üçüncü normal form uygulandıktan sonraki durum şekil 38'deki gibi olur. Şekil 38'de görüldüğü gibi ders bilgileri, dersler isimli ayrı bir tabloya aktarıldı. Notlar tablosundan vize ve final notlarının hangi derse ait olduğu ders_kodu alanı ile sağlandı. Burada notlar ve ders tabloları arasında har iki tabloda bulanan ders_kodu alanı ile ilişki sağlanmış oldu.

25 Ogrenci Tablosu Ogr_ID Adi Soyadi Adres 1 Ali Yılmaz Ankara 2 Mehmet Can İstanbul Notlar Tablosu Not_ID Ogr_ID Ders_Kodu Vize Final 1 1 A A A A Telefonlar Tablosu Ogr_ID Telefon_No Dersler Tablosu Ders_Kodu Dersin_Adi A115 Matematik A116 Türkçe A117 İngilizce Şekil 38. Öğrenci bilgilerine 3. normal formun uygulanması! Bir veritabanındaki tabloların üçüncü normal formuna ulaştığını söyleyebilmek için; Bu tabloların ikinci normal forma uygun olması, Geçişli bağımlılığının olmaması gerekir. (Yani anahtar olmayan bütün alanlar yalnızca benzersiz tanımlayıcıya bağlı olmalıdır.)! Boyce Codd Normal Form (BCNF), dördüncü normal form, beşinci normal form da vardır, ancak ilk 3 form çoğu zaman ideali yakalamada yeterli olmaktadır.? Aşağıdaki tablonun normalleştirilmeye ihtiyacı var mıdır? Eğer varsa normalleştirme formlarını gerçekleştiriniz. Şekil 39. Normalleştirme işlemi için örnek tablo Tablolar Arası İlişkiler ve Türleri Normalleştirme işlemi ile tek bir tabloyu birden fazla tablo haline getirerek veri tekrarlarından kurtulmuş olduk. Oluşturulan bu tablolar haliyle birbirleri ile ilişkilidir. Veritabanındaki tablolar 3 farklı türden ilişki oluşturabilir. Bire bir (1-1) Bire çok (1-n) Çoka çok (n-n)

26 Bire-Bir İlişki (1-1) Bu ilişki türünde bir tablodaki her bir kayıt diğer tabloda sadece bir kayıtla birleşebilir. Birinci tabloyla ikinci tabloyla yer değiştirildiğinde de yine ilişki bire birdir. Bu ilişkinin kullanılabileceği durumlara şu örnekler verilebilir. Tablonun alan sayısı izin verilenden daha büyük olabilir. Bu durumda veriler 2 tabloya bölünüp bire bir ilişki kurularak bütünlük sağlanabilir. Çok sık kullanılmayan bilgiler başka bir tabloda tutularak sorgulama performansı artırılabilir. Herkes tarafından görülmesi istenmeyen bilgiler için başka bir tablo oluşturularak bu tabloya bire bir ilişki tanımlanabilir. Şekil 40'da bir şirkette çalışan personel ve personele verilecek araçların bilgisinin tutulduğu iki tablonun alan yapısı bulunmaktadır. Her personele bir araç verilebilir. Aynı zamanda her aracın da ancak tek bir sahibi olabilir. Bu durumda iki tablo arasında tanımlanan ilişki bire birdir. Her iki tablodaki her bir kayıt diğer tablodaki yalnızca bir kayıt ile ilişkili olacaktır. Şekil 40. Çalışan ve otomobil tabloları arasındaki bire bir ilişki. Bire-Çok İlişki (1-n) Bire-çok ilişkilerde, iki tablo arasında oluşturulan ilişkide birinci tablodaki her bir kayıt, ikinci tablodaki bir ya da daha fazla kayıtla ilişkili olabilir. Diğer taraftan bakıldığında ikinci tablodaki her bir kayıt birinci tablodaki yalnızca bir kayıtla ilişkili olabilir. Bire çok ilişkilere oldukça sık başvurulur. Günlük hayattan birçok örnek verilebilir. Müşteriler ve siparişleri, öğrenciler ve çeşitli derslerden aldığı notlar bu ilişki türüne örnek verilebilir. Şekil 41'de müşteri ve müşterilerin siparişlerinin tutulduğu tabloların alan yapıları ve aralarındaki ilişki gözükmektedir. Her müşterinin birden fazla siparişi olabilir. Her sipariş de yalnızca bir müşteriye ait olabilir. Dolayısıyla aralarında bire çok türünden bir ilişki vardır.

27 Şekil 41. Musteri ve siparis tabloları arasındaki bire çok ilişki Çoka Çok İlişki (n-n) Bu ilişki türünde, iki tablodaki her bir kayıt diğer tablodaki birden fazla kayıtla ilişkili olabilir. İlk iki ilişki türünde, ilişkinin en az bir tarafında tek bir kayıt varken bu ilişki türünde ilişkinin iki tarafında da birden fazla kayıt vardır. Aşağıdaki örnekler incelendiğinde bu ilişki türü daha rahat anlaşılacaktır. Gruplar ve üyelerini düşünelim. Bir kişi birden fazla gruba üye olabilir. Aynı zamanda bir grubun birden fazla üyesi olabilir. Rehber ve düzenlenen turları düşünelim. Bir rehber birden fazla tur düzenleyebilir. Bir turu birden fazla rehber de düzenleyebilir. Sipariş ve ürünleri düşünelim. Bir siparişte birden fazla ürün olabilir. Aynı zamanda bir ürün birden fazla siparişte de olabilir. Şekil 41'deki örneğe biraz değiştirelim. Ürün bilgilerini ayrı bir tabloda tutalım. Şekil 42'deki yeni durum ortaya çıkmaktadır. Yeni durumda musteri tablosu siparis tablosu ile bire çok ilişkidedir, siparis tablosu da urun tablosu ile çoka çok ilişkidedir. Şekil 42. Musteri ile siparis arasındaki bire çok, siparis ile urun arasındaki çoka çok ilişki Tabloları Birleştirme Tabloları birleştirme, iki ya da daha fazla tablodaki satır ve sütunları birleştirerek tek bir tablo halinde gösterme işlemidir. Normalleştirme işlemleri ile verileri birden fazla tabloda düzenleyerek veri tekrarını önlemiş ve veri bütünlüğünü sağlamış olduk. İlişkisel tablolardaki

28 verilere birlikte ulaşmak, işlerimizi kolaylaştıracaktır. Yoksa ilişkisel verilere kayıt bazında tek tek ulaşmaya çalışmak pek pratik olmayacaktır. Tabloları birleştirerek verileri çağırma işlemleri yine SELECT komutu ile yapılır. Oluşturulan ifadede FROM'dan sonra JOIN ve ON kullanılarak birleştirilecek tablolar belirtilir. SQL'de üç tip birleştirme bulunmaktadır. Inner Join Outher Join Cross Join Şekil 43'te daha önce normalleştirme işlemi yapılan öğrenci bilgilerine ait tablolar bulunmaktadır. Birleştirme işlemleri için bu tablolardan yararlanılacaktır. Ogrenci Tablosu Ogr_ID Adi Soyadi Adres 1 Ali Yılmaz Ankara 2 Mehmet Can İstanbul 3 Ayşe Demir İzmir Notlar Tablosu Not_ID Ogr_ID Ders_Kodu Vize Final 1 1 A A A A A Telefonlar Tablosu Ogr_ID Telefon_No Dersler Tablosu Ders_Kodu Dersin_Adi A115 Matematik A116 Türkçe A117 İngilizce Şekil 43. Öğrenci ve not bilgilerine ait tablolar Inner Join Cross join hariç birleştirme işlemleri ilişkilendirilen alanlardaki değerlerin eşitliğine göre yapılmaktadır. Örneğin ogrenci tablosu ile notlar tablosundaki kayıtların birleşmesi ogrenci tablosundaki Ogr_ID alanı ile notlar tablosundaki Ogr_ID alanındaki değerlerinin eşitliğine göre yapılır. Yani bu alanların eşit olduğu kayıtlar, birleştirme işleminden sonra bir bütün şeklinde karşımıza gelir. INNER JOIN işleminde yalnızca bu iki alandaki eşitliğe uyan kayıtlar gösterilir, diğer kayıtlar gösterilmez. Yani öğrenci tablosunda olup da notu olmayan öğrenciler gösterilmez. Yine aynı şekilde notlar tablosunda olup da bir öğrenciye ait olmayan kayıtlar da gösterilmez. SELECT * FROM ogrenci INNER JOIN Notlar ON Ogrenci.Ogr_ID=Notlar.Ogr_ID;

29 Ogrenci ve notlar tablosunu birleştiren ifade yukarıdaki gibidir. İfadede, ogrenci tablosundaki kayıtların notlar tablosu ile her iki tabloda da bulunan ogr_id alanına göre birleştirileceği belirtilmektedir. INNER JON ifadesinden sonra birleştirilecek tablo, ON ifadesinden sonra da birleştirme şartı belirtilmiştir. * ile bütün alanların gösterilmesi sağlanmıştır. İstenirse yalnızca gösterilecek alanlar belirtilebilir. Şekil 44'de yukarıdaki sorgunun sonuçlarını görebilirsiniz. Şekil 44. Ogrenci ve Notlar tablolarındaki tüm alanların birleştirilmesi Sorgu sonuçlarında da görüldüğü gibi Ayşe Demir'e ait Notlar tablosunda herhangi bir not olmadığı için sonuç kümesinde yer almadı. Aynı şekilde Notlar tablosundaki Ogr_ID bilgisi 4 olan not bilgisi de sonuç setinde yer almadı. Çünkü her iki kayıtla diğer tabloda eşleşen başka bir kayıt yoktur.! Alan isimleri ait oldukları tablo isimleri ile birlikte çağrılabilirler. Eğer iki tabloda da aynı isimli alanlar varsa o olanlar mutlaka tablo isimleri ile birlikte belirtilmelidir. Aksi takdirde sorgu ifadesi çalıştırıldığında hata verecektir. Örneğin Ogr_ID alanı Ogrenci ve Notlar tablolarının her ikisinde de olduğu için Ogr_ID alanı, Notlar.Ogr_ID ve Ogrenci.Ogr_ID şeklinde çağrılmalıdır.! INNER JOIN yerine JOIN ifadesi de kullanılabilir. SELECT Ogrenci.*, Notlar.Ders_Kodu, Notlar.Vize, Notlar.Final FROM ogrenci JOIN Notlar ON Ogrenci.Ogr_ID=Notlar.Ogr_ID; Yukarıdaki sorgu ifadesi Ogrenci ve Notlar tablolarındaki yalnızca belirtilen alanları birleştirmektedir. Ogrenci.* ifadesi ile Ogrenci tablosundaki tüm alanların sonuç kümesinde yer alacağı belirtilmiştir. Notlar tablosundan ise Ders_Kodu, Vize ve Final bilgileri sonuç kümesinde gösterilmiştir. Şekil 45. Ogrenci ve Notlar tablolarındaki yalnızca seçilen alanların birleştirilmesi INNER JOIN işlemi, WHERE ile de yapılabilirdir. Yapılması gereken ise FROM ile birleştirilecek tabloları, WHERE ile de birleştirme şartını belirtmektir.

30 SELECT Notlar.*, Dersler.Dersin_Adi FROM Notlar, Dersler WHERE Notlar.Ders_Kodu=Dersler.Ders_Kodu; Yukarıdaki sorgu ifadesi WHERE kullanarak Notlar ve Dersler tablolarını birleştirmektedir. Şekil 46'da sorgu ifadesinin sonuçları görülebilir. Şekil 46. Notlar ve Dersler tablolarındaki yalnızca seçilen alanların birleştirilmesi Outer Join OUTER JOIN işlemi, iki tablo bileştirildiğinde eşleşen kayıtların yanı sıra eşleşmeyen kayıtları da gösterir. 3 farklı kullanım tipi vardır. Left Outher Join Right Outer Join Full Outer Join Left Outer Join LEFT OUTER JOIN ile iki tablo arasında yapılan birleştirme işleminde ilk tablodaki bütün kayıtlar, ikinci tabloda ise yalnızca ilk tabloyla eşleşen kayıtlar gösterilir. İlk tabloda ikinci tabloyla eşleşmeyen kayıtlar varsa o kayıtlar için NULL değeri atanır. LEFT OUTER JOIN yerine LEFT JOIN ifadesi de kullanılabilir. SELECT Ogrenci.*, Notlar.Ders_Kodu, Notlar.Vize, Notlar.Final FROM ogrenci LEFT OUTER JOIN Notlar ON Ogrenci.Ogr_ID=Notlar.Ogr_ID; Yukarıdaki sorgu ifadesi, Ogrenci tablosu ile Notlar tablosu arasında LEFT OUTER JOIN işlemini yapmaktadır. Sorgunun sonuçlarını şekil 47'de inceleyebilirsiniz. Bu tablolardan ilki olan Ogrenci tablosundaki bütün kayıtlar gösterilirken ikinci tablo yani notlar tablosundaki yalnızca Ogrenci tablosu ile eşleşen kayıtlar gösterilmektedir. Ogrenci tablosundaki Ayşe Demir'in herhangi bir notu olmadığı için ders bilgileri ile ilgili alanlarda NULL değeri gösterilmektedir.

31 Şekil 47. Ogrenci ve Notlar tablolarının LEFT OUTER JOIN ile birleştirilmesi Right Outer Join RIGHT OUTER JOIN ile iki tablo arasında yapılan birleştirme işleminde, LEFT OUTER JOIN ile yapılanın aksine ikinci tablodaki bütün kayıtlar gösterilir. İlk tabloda ise yalnızca ikinci tabloyla eşleşen kayıtlar gösterilir. İkinci tabloda ilk tabloyla eşleşen kayıtlar varsa o kayıtlar için NULL değeri atanır. RIGHT OUTER JOIN yerine RIGHT JOIN ifadesi de kullanılabilir. SELECT Ogrenci.*, Notlar.Ders_Kodu, Notlar.Vize, Notlar.Final FROM ogrenci RIGHT OUTER JOIN Notlar ON Ogrenci.Ogr_ID=Notlar.Ogr_ID; Yukarıdaki sorgu ifadesi Ogrenci tablosu ile Notlar tablosu arasında RIGHT OUTER JOIN işlemi yapmaktadır. Sorgunun sonuçlarını şekil 48'de inceleyebilirsiniz. Sonuçlardan da anlaşılacağı üzere ikinci tablo olan Notlar tablosundaki bütün kayıtlar gösterilirken ilk tablo olan Ogrenci tablosunda yalnızca ilk tablo ile eşleşen kayıtlar gösterilmektedir. Notlar tablosunda Ogrenci tablosu ile eşleşmeyen kayıtlar için NULL değerinin atandığını görebilirsiniz. Şekil 48. Ogrenci ve Notlar tablolarının RIGHT OUTER JOIN ile birleştirilmesi Full Outer Join FULL OUTER JOIN ile her iki tablodaki bütün kayıtlar gösterilir. Birbirleriyle eşleşmeyen kayıtların diğer tablodaki ilgili alanlarında NULL değeri gösterilir. FULL OUTER JOIN yerine FULL JOIN ifadesi de kullanılabilir. LEFT OUTER JOIN ve RIGHT OUTER JOIN ifadelerinin birlikte çalışması olarak düşünülebilir. SELECT Ogrenci.*, Notlar.Ders_Kodu, Notlar.Vize, Notlar.Final FROM Ogrenci

32 FULL OUTER JOIN Notlar ON Ogrenci.Ogr_ID=Notlar.Ogr_ID; Yukarıdaki sorgu ifadesi Ogrenci ve Notlar tablosu arasında FULL OUTER JOIN işlemi yapmaktadır. Sorgunun sonuçlarını şekil 49'da inceleyebilirsiniz. Görüleceği üzere iki tabloda eşleşen ve eşleşmeyen bütün kayıtlar bileştirilerek gösterilmektedir. Eşleşmeyen kayıtlar için diğer tabloda ilgili alanlara NULL değeri atanmıştır. Şekil 49. Ogrenci ve Notlar tablolarının FULL OUTER JOIN ile birleştirilmesi Cross Join CROSS JOIN'de iki tablo arasında herhangi bir birleştirme şartı söz konusu değildir. İki tablonun alanları birleştiğinde kayıtlar arasında olabilecek bütün kombinasyonlar listelenir. Yani birinci ve ikinci tablodaki her bir kayıt birbirleri ile eşleştirilerek gösterilir. Sonuç olarak iki tablonun kayıt sayılarının çarpımı kadar sonuç elde edilir. SELECT * FROM Ogrenci CROSS JOIN Notlar; Yukarıdaki sorgu ifadesi Ogrenci ve Notlar tablosu arasında CROSS JOIN işlemi yapmaktadır. Sorgunun sonuçlarını şekil 50'de inceleyebilirsiniz. Sonuçlarda da görüleceği üzere birinci tablodaki her bir kayıt ikinci tablodaki her kayıt ile eşleştirilmiştir.

33 Şekil 50. Ogrenci ve Notlar tablolarının CROSS JOIN ile birleştirilmesi? CROSS JOIN hangi amaçlarla kullanılabilir? Kullanıcıya sağlayacağı yararlar neler olabilir? Araştırın. Çok Sayıda Tablonun Birleştirilmesi Bu ana kadar yapılan birleştirme işlemleri, yalnızca iki tablo üzerinde yapıldı. Oysaki ikiden daha fazla tablo aralarında ilişkili olabilir ve bu tabloların birleştirilerek gösterilmesi istenebilir. Öğrenci bilgilerine ait normalleştirilen tablolarda böyle bir durum söz konusudur. Örneğin Ogrenci ve Notlar tablosu birleştirildiğinde notların hangi derse ait olduğuna ulaşılamıyordu. Yalnızca dersin kodları (Ders_Kodu alanı) birleştirilen tabloda gösterilebiliyordu. Dersin isimlerine ulaşmak için üçüncü bir tablo olarak Dersler tablosunun da birleştirme işlemine katılması gerekmektedir. İki tablo için birleştirme mantığı daha fazla tablonun birleştirilmesi için de geçerlidir. Yapılması gereken birleştirme türünü ve birleştirme şartını ifadeye eklemektir. SELECT Ogrenci.*, Dersler.*, Notlar.Vize, Notlar.Final FROM Ogrenci INNER JOIN Notlar ON Ogrenci.Ogr_ID=Notlar.Ogr_ID INNER JOIN Dersler ON Notlar.Ders_Kodu=Dersler.Ders_Kodu; Yukarıdaki sorgu ifadesi Ogrenci, Notlar ve Dersler tablolarını birleştirmektedir. INNER JOIN Notlar ON Ogrenci.Ogr_ID=Notlar.Ogr_ID ifadesi ile Ogrenci ve Notlar tabloları, INNER JOIN Dersler ON Notlar.Ders_Kodu=Dersler.Ders_Kodu ifadesi ile de Notlar ve Dersler tabloları birleştirilmektedir. Böylelikle 3 tablo birleştirilmiştir. Şekil 51'de sorgu ifadesinin sonuçlarını inceleyebilirsiniz. Birleştirme yöntemi olarak

34 INNER JOIN kullanıldığı için diğer tablodaki kayıtlarla eşleşmeyen kayıtlar sonuç setinde yer almamıştır. Şekil 51. Ogrenci, Notlar ve Dersler tablolarının birleştirilmiş hali SELECT Ogrenci.*, Telefonlar.Telefon_No, Dersler.*, Notlar.Vize, Notlar.Final FROM Ogrenci FULL OUTER JOIN Telefonlar ON ogrenci.ogr_id=telefonlar.ogr_id FULL OUTER JOIN Notlar ON Ogrenci.Ogr_ID=Notlar.Ogr_ID FULL OUTER JOIN Dersler ON Notlar.Ders_Kodu=Dersler.Ders_Kodu; Yukarıdaki sorgu ifadesi öğrenci bilgilerine ait 4 tabloyu birleştirerek getirmektedir. Sorgunun sonuçlarını şekil 52'de inceleyebilirisiniz. Birleştirme yöntemi FULL OUTER JOIN olduğu için diğer tablolarla ilişkili olmayan kayıtlar için NULL değeri atanmıştır. Böylelikle normalleştirilerek 4 farklı tabloya ayrılan bilgilere yeniden tek tablo halinde ulaşılmış oldu. Şekil 52. Öğrenci bilgilerini ait 4 tablonun birleştirilmesi. Tablonun Kendisi İle Birleşmesi (Self Join) Bazı durumlarda bir tablodaki kayıt aynı tablodaki başka bir kayıt ya da kayıtlarla ilişkili olabilir. Böyle durumlarda da tablo kendisiyle birleştirilebilir.

35 Şekil 51. Calisan tablosu Şekil 51'de Calisan tablosuna ait kayıtlar bulunmaktadır. Bu tabloda her bir çalışanın hangi yöneticiye bağlı olduğunu gösteren Yonetici_ID adında bir alan bulunmaktadır. Bu alanın işaret ettiği yöneticiler yine aynı tabloda bulunmaktadır. Yonetici_ID aynı tabloda her bir çalışanı tekil olarak Calisan_ID bilgisini depolar. Dolayısıyla çalışanlar ve bağlı oldukları yöneticileri birlikte göstermek için Calisan tablosunu kendisiyle birleştirirken bu iki alanın eşitliğine bakılmalıdır. Bu birleştirme işini yapan sorgu ifadesi aşağıdaki gibi olabilir. SELECT clsn.*, yntc.adi, yntc.soyadi, yntc.unvani FROM Calisan AS clsn INNER JOIN Calisan AS yntc ON clsn.yonetici_id=yntc.calisan_id; SQL'de tablolara takma isimler verilebilir. Calisan AS clsn ve Calisan AS yntc ifadeleri ile Calisan tablosu hem clsn hem de yntc isimli iki farklı tablo gibi gösterilmektedir. AS ifadesi ile yapılan iş, tablolara takma isim vermektir. Birleştirme işleminde birleştirilen iki tablonun ismi aynı olamaz. Bu yüzden takma isimler kullanılmalıdır. Tablolara takma isim verme işlemi AS yerine bir boşluk bırakılarak da yapılabilir. Örneğin Calisan AS yntc yerine Calisan yntc ifadesi de yazılabilirdi. Şekil 52'de Calisan tablosunun kendisiyle birleşmiş halini görebilirsiniz. Tablo kendisiyle INNER JOIN işlemi ile birleştirildiği için, tabloda toplam 5 kayıt olmasına rağmen işleminin sonucunda 4 kayıt karşımıza gelmiştir. Bülent Çelik isimli personel herhangi bir yöneticiye bağlı olmadığı için sonuç setinde gösterilmemiştir. Bir tablonun kendisiyle birleşmesi sonucu eşleşmeyen kayıtları da görmek için OUTER JOIN yöntemine de başvurulabilir. Yine CROSS JOIN yöntemi ile bir tablonun kedisiyle birleşmesiyle oluşabilecek tüm eşleşmeler elde edilebilir. Şekil 52. Calisan tablosunun kendisi ile birleştirilmiş hali! Tablolar birleştirilirken WHERE ile şart belirtilebilir, ORDER BY ile sıralama ve GROUP BY ile gruplama da yaptırılabilir.? SQL'de bileştirilebilecek tabloların sayısıyla ilgili bir sınır var mıdır? Araştırın.

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır. 18 SQL SORGU DİLİ SQL (Structured Query Language) yapısal sorgu dili, veritabanı yönetim sistemlerinin standart programlama dili olarak bilinmektedir. SQL dilinin Access içinde sorgu pencerelerinde veya

Detaylı

Veritabanı. SQL (Structured Query Language)

Veritabanı. SQL (Structured Query Language) Veritabanı SQL (Structured Query Language) SQL (Structured Query Language) SQL, ilişkisel veritabanlarındaki bilgileri sorgulamak için kullanılan dildir. SQL, bütün kullanıcıların ve uygulamaların veritabanına

Detaylı

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız. Bu Derste Öğrenecekleriniz: 1- Birden Fazla Tablodan Sorgulama 2- Tablo Birleştirme işlemleri (JOIN) a. INNER JOIN b. OUTER JOIN i. LEFT OUTER JOIN ii. RIGHT OUTER JOIN iii. FULL OUTER JOIN 3- Tablo Ekleme

Detaylı

Birden Çok Tabloda Sorgulama (Join)

Birden Çok Tabloda Sorgulama (Join) Birden Çok Tabloda Sorgulama (Join) Join(Birleştirici), iki ya da daha fazla tabloyu aynı anda sorgulayarak bir sonuç tablosu (result table) oluşturmaya yarar. Örneğin: İki tabloyu birleştirici ile birleştirerek

Detaylı

VERİTABANI Veritabanı Sorgulama

VERİTABANI Veritabanı Sorgulama VERİTABANI Veritabanı Sorgulama VERİ SORGULAMA DİLİ (DATA QUERY LANGUAGE) Veritabanı platformunda veri sorgulamak için geliştirilmiş en temel araç SQL (Structured Query Language)'dir. SQL'in veritabanı

Detaylı

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER VERİTABANI SORGULARI İÇİNDEKİLER Select İfadesi Insert İfadesi Update İfadesi Delete İfadesi Verileri Sıralamak Verileri Gruplandırmak Veriler Üzerinde Arama Yapmak NESNE TABANLI PROGRAMLAMA I Uzm. Orhan

Detaylı

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Dersin Planı İlişkisel Cebir SQL e Giriş İlişkisel Cebir (Relational

Detaylı

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Genel SQL SQL çok yüksek seviyeli bir dildir. Biraz ingilizce bilgisi gerektirir. Programlama dillerine göre öğrenilmesi çok daha kolaydır. Çünkü programlama dillerindeki

Detaylı

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili) SQL'e Giriş SQL komutları kullanılarak aşağıdaki işlemler yapılabilir: Veritabanı nesnelerinin oluşturulması ve bu nesnelerle ilgili işlemlerin yapılması Bilgilerin istenilen koşullara göre görüntülenmesi

Detaylı

Veri Tabanı Tasarım ve Yönetimi

Veri Tabanı Tasarım ve Yönetimi SAKARYA ÜNİVERSİTESİ Veri Tabanı Tasarım ve Yönetimi Hafta 5 Prof. Dr. Ümit KOCABIÇAK Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim" tekniğine uygun

Detaylı

VERİTABANI ve YÖNETİMİ

VERİTABANI ve YÖNETİMİ VERİTABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -7- VERİLERİ GRUPLAYARAK ANALİZ ETMEK 3 Genel Bakış Grup fonksiyonlarının tanımlanması, Gruplama işlemlerini, Gruplama

Detaylı

SQL Komutları (2) Uzm. Murat YAZICI

SQL Komutları (2) Uzm. Murat YAZICI SQL Komutları (2) Uzm. Murat YAZICI Sıralama Sıralama işlemi için SELECT ifadesinde ORDER BY kullanılır. Bu ifadede ASC kelimesi kullanılırsa sıralama küçükten büyüğe doğru (A-Z), DESC kullanılırsa büyükten

Detaylı

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu SQL'DE VERİ İŞLEME KOMUTLARI SQL'de verileri işlemek için kullanılan komutlara DML (Data Manipulation Language Veri İşleme Dili) denilmektedir. Bu komutlar ile oluşturulan ifadeler tablolara kayıt eklemek,

Detaylı

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler SQL'de Veri İşleme Komutları SQL'de verileri işlemek için kullanılan komutlara DML (Data Manipulation Language Veri İşleme Dili) denilmektedir. Bu komutlar ile oluşturulan ifadeler tablolara kayıt eklemek,

Detaylı

VERİTABANI. SQL (Structured Query Language)

VERİTABANI. SQL (Structured Query Language) VERİTABANI SQL (Structured Query Language) SQL'de Gruplama Bir tablonun satırları gruplara ayrılarak fonksiyonların bunlara uygulanması mümkündür. Gruplara ayırmak için SELECT deyimi içerisinde GROUP BY

Detaylı

SQL Kod ile Tablo Oluşturma

SQL Kod ile Tablo Oluşturma SQL Kod ile Tablo Oluşturma Aşağıdaki SQL kodları Veri tabanı hazırlama programında yazılıp çalıştırıldığı zaman PERSONEL adında bir tablo oluşturulur ve bu tablonun sütunları Personel_no, Adı, Soyadı

Detaylı

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız. Bu Derste Öğrenecekleriniz: 1- Sorgulama Yaparken Gruplama (GROUP BY) 2- Gruplamada Koşul Kullanımı (HAVING) 3- Sorgulama Yaparken Sıralama (ORDER BY) 4- Sorgulamalarda İşlem Yapma 5- Güncellemelerde İşlem

Detaylı

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER VERİTABANI SORGULARI İÇİNDEKİLER Select İfadesi Insert İfadesi Update İfadesi Delete İfadesi Verileri Sıralamak Verileri Gruplandırmak Veriler Üzerinde Arama Yapmak NESNE TABANLI PROGRAMLAMA I Uzm. Orhan

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ I BÖLÜM 8 8. TEMEL SQL KOMUTLARI-II 8.1. SELECT (Seç) Komutu Veri tabanındaki tablo veya tablolardan istenilen özellikteki verileri seçip listeleme için kullanılan komuttur. Genel kullanımı aşağıdaki gibidir.

Detaylı

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler SQL'e Giriş SQL komutları kullanılarak aşağıdaki işlemler yapılabilir: Veritabanı nesnelerinin oluşturulması ve bu nesnelerle ilgili işlemlerin yapılması Bilgilerin istenilen koşullara göre görüntülenmesi

Detaylı

VERİTABANI Veritabanı Yönetimi

VERİTABANI Veritabanı Yönetimi VERİTABANI Veritabanı Yönetimi YAPILANDIRILMIŞ SORGULAMA DİLİ (SQL) Veritabanı yönetimi, veritabanının yapısal özelliklerini belirtmek ve değiştirmek, veritabanına kullanıcı erişimlerini ve yetkilerini

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN VERITABANI-I SQL Tek Tablo İçinde Sorgulamalar Tekrarlı Satırların Engellenmesi Aynı değerlere sahip satırlar

Detaylı

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız. Bu Derste Öğrenecekleriniz: 1- Basit Sorgulamalar a. Tablodan tüm alanları sorgulama b. Tablodan alanları belirterek sorgulama c. Tekrarlı satırları önleme d. Belirli sayıda veya oranda sorgulama yapma

Detaylı

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1 5 SQL- Yapısal Sorgulama Dili Veritabanı 1 SQL- Yapısal Sorgulama Dili SQL ifadeleri yapısal olarak üç gruba ayrılır. Veri Tanımlama Dili (DDL - Data Definition Language) Veri İşleme Dili (DML - Data Manipulation

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ I BÖLÜM 11 11. SQL de JOIN (BİRLEŞTİRME) İŞLEMİ 11.1. JOIN (Birleştirme) İşlemi Veri tabanı kayıtları oluşturulurken bütün bilgiler bir tabloda değil de, birkaç tablo üzerinde tutulur. Bu dataların daha

Detaylı

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. Bu dersimizde biz Microsoft SQL Server veritabanı sistemini kullanmayı öğreneceğiz. SQL Nedir? SQL Structured Query Language

Detaylı

SQL Query and Table Application

SQL Query and Table Application SQL Query and Table Application Elbistan Meslek Yüksek Okulu 2012 2013 Bahar Yarıyılı Öğr. Gör. Murat KEÇECİOĞLU 24-25 Nis. 2013 Sorgulama İşlemleri SQL de sorgulama işlemleri SELECT deyimi yardımıyla

Detaylı

Bölüm 4: DDL Veri Tanımlama Dili

Bölüm 4: DDL Veri Tanımlama Dili Bölüm 4: DDL Veri Tanımlama Dili -43- Dr. Serkan DİŞLİTAŞ DDL (Data Definition Language Veri Tanımlama Dili : Bu kategorideki SQL komutları ile veritabanları, tablo, görünüm ve indekslerin yaratılması,

Detaylı

Bölüm 3: DML Veri İşleme Dili

Bölüm 3: DML Veri İşleme Dili Bölüm 3: DML Veri İşleme Dili -15- Dr. Serkan DİŞLİTAŞ DML (Data Manipulation Language Veri İşleme Dili) : Bu kategorideki SQL komutları veriler üzerinde işlemler yapmaya yönelik ifadeleri içermektedir.

Detaylı

SORGULAR. Öğr.Gör.Volkan Altıntaş

SORGULAR. Öğr.Gör.Volkan Altıntaş SORGULAR Öğr.Gör.Volkan Altıntaş SORGULAR VE ÇEŞİTLERİ Seçme Sorguları: En sık kullanılan sorgu türüdür. Seçme sorguları, bilgileri veri sayfası görünümü nde gösteren veri tabanı nesnesi türüdür. Sorgu,

Detaylı

ACCESS PLATFORMUNDA SQL

ACCESS PLATFORMUNDA SQL ACCESS PLATFORMUNDA SQL (STRUCTURED QUERY LANGUAGE) KODLAMA ÖRNEKLERİ DISTINCT : Bir alanda birbirinin aynı kayıtlar bulunabilir. Öğrenciler tablosundaki aynı isimde öğrencilerin bulunması durumunda aynı

Detaylı

SQL e Giriş. Uzm. Murat YAZICI

SQL e Giriş. Uzm. Murat YAZICI SQL e Giriş Uzm. Murat YAZICI SQL (Structured Query Language) - SQL Türkçe de Yapısal Sorgulama Dili anlamına gelmektedir ve ilişkisel veritabanlarında çok geniş bir kullanım alanına sahiptir. - SQL ile

Detaylı

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Hafta IV. Öğr. Gör. Murat KEÇECĠOĞLU

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Hafta IV. Öğr. Gör. Murat KEÇECĠOĞLU 08221 Veri Tabanı II Elbistan Meslek Yüksek Okulu 2014 2015 GÜZ Yarıyılı Hafta IV Öğr. Gör. Murat KEÇECĠOĞLU T-SQL KOMUTLARI Devamı DISTINCT: Birbirinin ayni olan satirlarin listelenmemesi için bu ifade

Detaylı

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur. TEMEL SQL SORGU ÖRNEKLERİ Sorgu İle Veritabanı Oluşturma create database veritabanı_adı Örnek : create database db_okul Yukarıdaki sorguyu çalıştırdığımızda db_okul adında bir veritabanı oluşturulur. Örnek:

Detaylı

Oracle Database 11g: Introduction to SQL

Oracle Database 11g: Introduction to SQL Oracle Database 11g: Introduction to SQL Mehmet Salih DEVECI GTECH-Kıdemli Veritabanı Yöneticisi Mehmetsalih.deveci@gtech.com.tr BÖLÜM- 1: SQL E GİRİŞ SELECT ifadesinin kabiliyetlerinin ortaya çıkarılması

Detaylı

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301) Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301) GENEL DERS BİLGİLERİ Öğretim Elemanı : Öğr. Gör. Erdal GÜVENOĞLU Ofis : MUH 313 Ofis Saatleri : Pazartesi: 10.00-12.00,

Detaylı

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Neden SQL? SQL çok yüksek seviyeli bir dildir. İngilizce bilen herkes bu dili kolayca öğrenebilir. Programlama dillerine göre öğrenilmesi çok daha kolaydır. Çünkü programlama

Detaylı

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. DAO İLE SQL KOMUTLARI Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. SQL-1 SELECT En basit SQL cümleciği oluşturmak için SELECT sözcüğü

Detaylı

Mysql Veritabanı Komutları

Mysql Veritabanı Komutları Mysql Veritabanı Komutları Mysql Veri Tabanı Komutları Hazırlayan : M. Başar ACAROĞLU Kaynaklar: http://www.hrzafer.com/sql-dersleri http://www.w3schools.com/sql/default.asp Veri Tabanı Nedir? Mysql Veritabanı

Detaylı

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler Genel Kavramlar Veri Nedir? Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar Veri Tabanı Nedir? Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler Veritabanı Yönetim Sistemi (DBMS)Nedir?

Detaylı

Veri Tabanı Yönetim Sistemleri Bölüm - 4

Veri Tabanı Yönetim Sistemleri Bölüm - 4 Veri Tabanı Yönetim Sistemleri Bölüm - 4 İçerik SQL e Giriş. SQL Yapısal Sorgulama Dili. Temel SQL Komutları: Sorgulama İşlemleri SELECT deyiminin temel yapısı Seçme İşlemi Atma İşlemi Aritmetik İfadelerin

Detaylı

Veri Tabanı Hafta Dersi

Veri Tabanı Hafta Dersi Veri Tabanı - 1 13. Hafta Dersi Dersin Hedefleri Tek Tablo İçinde Sorgulamalar Tekrarlı Satırları Önlemek Sorgu Sonucunu Sıralama Sütunlar İçin Takma İsim Kullanma Sütunlar Üzerinde Matematiksel İşlemler

Detaylı

Bilgisayar Uygulamaları. MySql

Bilgisayar Uygulamaları. MySql MySql MySql,; Oracle, Progress, MsSql, PostgreSql gibi veri tabanı programıdır. Kullanılan dil SQL (Structured Query Language) yapısal sorgulama dilidir. Lisansı GNU General Public License olarak bilinen

Detaylı

İNTERNET TABANLI PROGRAMLAMA- 12.ders

İNTERNET TABANLI PROGRAMLAMA- 12.ders İNTERNET TABANLI PROGRAMLAMA- 12.ders TEMEL SQL KULLANIMLARI Örnekleri uygulamak için aşağıdaki gibi bir altyapı hazırlayalım. using System.Data.OleDb; *************** protected void Button1_Click(object

Detaylı

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir. SQL SELECT CÜMLELERİ Oracle birçok kullanışlı ve güçlü özellikleri olan bir veritabanıdır. Bu özelliklerinin birçoğu SQL ile ilgilidir. VTYS lerinin çoğunluğunda veriler ile çalışmak için SQL kullanılmaktadır.

Detaylı

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir? 1) I. Tablo Oluşturma II. Veri Güncelleme III. Veri Silme IV. Veri Ekleme V. Tablo Silme Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir? a) I, IV ve V b) II, III ve IV

Detaylı

Çok tablolu sorgulamalar

Çok tablolu sorgulamalar Çok tablolu sorgulamalar Eğer birden fazla tabloda yer alan verilerin tek bir sorgu ile görüntülenmesi istenirse FROM kısmında ilgili tablolar araya virgül konularak yazılmalı, WHERE kısmında ise o tabloları

Detaylı

Bu sekme ile genel olarak biçimlendirme ile ilgili ayarlamaların yapıldığı sekmedir.

Bu sekme ile genel olarak biçimlendirme ile ilgili ayarlamaların yapıldığı sekmedir. 3. GİRİŞ SEKMESİ Bu sekme ile genel olarak biçimlendirme ile ilgili ayarlamaların yapıldığı sekmedir. 3.1. Excel 2010 da Kesme, Kopyalama, Yapıştırma ve Biçim Boyacısı Giriş sekmesinin ilk grubu olan Pano

Detaylı

Veri Tabanı SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299

Veri Tabanı SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299 Veri Tabanı 1 1. SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299 2. SQL Management Studio açılış ekranı: Server Type: reporting, analysis

Detaylı

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU Elbistan Meslek Yüksek Okulu 2015 2016 GÜZ Yarıyılı 28-29 Ara. 2015 Öğr. Gör. Murat KEÇECĠOĞLU Indexler İndeks, tablolardan veri çekmek için gerekli sorgular çalıştırılırken gereken süreyi azaltmak amacıyla

Detaylı

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz 13 Aralık 2007 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : Raporlar KULLANICI TANIMLI RAPORLAR Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz Kendi isteklerinize özel rapor tasarımları

Detaylı

AGSoft Çocuk Gelişim Takip Programı Kullanım Kılavuzu

AGSoft Çocuk Gelişim Takip Programı Kullanım Kılavuzu Giriş Bölümü: Program ilk açıldığında karşımıza Kullanıcı Adı ve Şifre giriş bölümü gelir. Kullanıcı Adı: Programa giriş yapacak kullanıcının kodunu ve şifresini yazdıktan sonra Tamam tuşu ile programa

Detaylı

FORMÜLLER VE FONKSİYONLAR

FORMÜLLER VE FONKSİYONLAR C FORMÜLLER VE FONKSİYONLAR Konuya Hazırlık 1. Excel de formül kullanmanın faydalarını açıklayınız. Formüller, bir sayfadaki verileri kullanarak işlem yapan denklemlerdir. Bir formülde, aynı sayfadaki

Detaylı

YAPISAL SORGULAMA DİLİ (SQL)

YAPISAL SORGULAMA DİLİ (SQL) YAPISAL SORGULAMA DİLİ (SQL) OGRENCI Tablosu 1234 Zeynep Makina K 23.06.1984 1. Cad 3.4 CREATE TABLE VERİ TANIMLAMA DİLİ (VTD) Veritabanında yeni bir tablonun oluşturulmasını sağlar. Yukarıda tanımlanan

Detaylı

TURKCELL HİZMETLERİ. Kullanım Bilgileri. LOGO Kasım 2014

TURKCELL HİZMETLERİ. Kullanım Bilgileri. LOGO Kasım 2014 TURKCELL HİZMETLERİ Kullanım Bilgileri LOGO Kasım 2014 İçindekiler TURKCELL HİZMETLERİ... 3 Online Turkcell Fatura Aktarımı... 4 Fatura Eşleştirme Tabloları... 5 Online Fatura Aktarımları... 6 Toplu Mesaj

Detaylı

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2 SUNGURLU MESLEK YÜKSEKOKULU BİLGİSAYAR TEKNOLOJİLERİ/BİLGİSAYAR PROGRAMCILIĞI 2017-2018 GÜZ DÖNEMİ VERİ TABANI YÖNETİM SİSTEMLERİ-II 5. T-SQL-2 Öğr. Gör. Saliha Kevser KAVUNCU Sql Üç Alt Grupta İncelenir:

Detaylı

MICROSOFT ACCESS 2007-2010 DERS NOTLARI

MICROSOFT ACCESS 2007-2010 DERS NOTLARI MICROSOFT ACCESS 2007-2010 DERS NOTLARI İÇİNDEKİLER 1.VERİTABANI NEDİR?... 2 2.MICROSOFT ACCESS... 2 3. TABLOLAR... 3 3.2 Tablolara Kayıt Girmek... 5 4. FORMLAR... 7 4.1 Form Sihirbazı ile form oluşturma...

Detaylı

BİL 101 - Bilişim Teknolojileri. Access 2007. http://bil.etu.edu.tr/bil101

BİL 101 - Bilişim Teknolojileri. Access 2007. http://bil.etu.edu.tr/bil101 BİL 101 - Bilişim Teknolojileri Access 2007 http://bil.etu.edu.tr/bil101 Veritabanı Sistemleri Veritabanı Sistemleri Bilgi çağında veriyi düzenli-planlı saklamak, veriye hızlı ulaşmak, değişik veriler

Detaylı

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim' Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları

Detaylı

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir. VERİ BÜTÜNLÜĞÜ VTYS lerde veri bütünlüğünü sağlamanın iki temel yolu vardır; Tanımlanabilir veri bütünlüğü ve prosedürel veri bütünlüğü. Tanımlanabilir veri bütünlüğü, tanımlanan nesnelerin kendi özellikleri

Detaylı

Veritabanı ve Yönetim Sistemleri

Veritabanı ve Yönetim Sistemleri Veritabanı ve Yönetim Sistemleri Öğr. Gör. M. Mutlu YAPICI Ankara Üniversitesi Elmadağ Meslek Yüksekokulu Öğr. Gör. M. Mutlu YAPICI Ders İzlencesi Hafta Modüller/İçerik/Konular 1. Hafta Temel Kavramlar

Detaylı

Koordinat Dönüşümleri (V )

Koordinat Dönüşümleri (V ) KOORDİNAT DÖNÜŞÜMLERİ ve FARKLI KOORDİNAT SİSTEMLERİ İLE ÇALIŞMA FieldGenius ile birden fazla koordinat sistemi arasında geçiş yaparak çalışmak mümkündür. Yaygın olarak kullanılan masaüstü harita ve CAD

Detaylı

Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak.

Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak. Amaçlarımız 2 Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak. Microsoft Excel 2010 da bilgi girişi yapabilmek. Excel de

Detaylı

Seri Takibi Yenilikleri

Seri Takibi Yenilikleri Seri Takibi Yenilikleri Ürün Grubu [X] Fusion@6 [X] Fusion@6 Standard [X] Entegre@6 Kategori Versiyon Önkoşulu [X] Yeni Fonksiyon @6 Uygulama Yardımcı Programlar/ Şirket/Şube/Parametre Tanımlamaları bölümünde

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

1. Mutabakat.zip dosyası açılır. 2. Mutabakat klasörü içindeki Mutabakat.exe dosyası çalıştırılır.

1. Mutabakat.zip dosyası açılır. 2. Mutabakat klasörü içindeki Mutabakat.exe dosyası çalıştırılır. BA&BS MUTABAKAT PROGRAMI Kurulumu 1. Mutabakat.zip dosyası açılır. 2. Mutabakat klasörü içindeki Mutabakat.exe dosyası çalıştırılır. 3. Server ayarlarının yapılacağı pencere açılır. 3.1 Server Adı\instance

Detaylı

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum: Bu Derste Öğrenecekleriniz: 1- MS SQL Server 2008 Kurulumu ve Tanıtımı 2- Komut Kullanarak Veritabanı Oluşturma ve Silme 3- SQL Yazım Kuralları Kurulum: Sistem gereksinimleri: Desteklenen işletim sistemleri:

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ-II

VERİ TABANI YÖNETİM SİSTEMLERİ-II VERİ TABANI YÖNETİM SİSTEMLERİ-II 3. MİCROSOFT SQL SERVER ARAYÜZ HİTİT ÜNİVERSİTESİ SUNGURLU MESLEK YÜKSEKOKULU BİLGİSAYAR TEKNOLOJİLERİ BÖLÜMÜ BİLGİSAYAR PROGRAMCILIĞI / 2. SINIF-GÜZ DÖNEMİ SQL Server

Detaylı

BÖLÜM13 3- EXCEL DE VERİ İŞLEMLERİ

BÖLÜM13 3- EXCEL DE VERİ İŞLEMLERİ BÖLÜM13 3- EXCEL DE VERİ İŞLEMLERİ Excel de veritabanı dosyaları oluşturmak oldukça kolay ve pratiktir. Böyle bir dosya herhangi özel bir işlem gerektirmeden, veri alanlarının direkt hücrelere girilmesi

Detaylı

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir. T-SQL KODLARİ İÇERİSİNE AÇIKLAMA EKLEME Bir veya daha fazla satırın çalıştırılmasını Önlemek için veya /*... */" ifadeleri kullanılır. -- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak

Detaylı

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

VERĐTABANI YÖNETĐM SĐSTEMLERĐ VERĐTABANI YÖNETĐM SĐSTEMLERĐ Öğr.Gör.Sedat Telçeken ANADOLU ÜNĐVERSĐTESĐ FEN FAKÜLTESĐ MATEMATĐK BÖLÜMÜ 2005 2006 Bahar Dönemi D M L Bilindiği üzere SQL tablolar üzerinde sorgulama yapar. Bu sorgular

Detaylı

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi 20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi 1) Aşağıdaki SQL Server sürümlerinden hangisi ana sürümlerden bir tanesidir? a) Parallel Data Warehouse b) Express c) Standart d) Developer

Detaylı

VERİ TABANI ve YÖNETİMİ

VERİ TABANI ve YÖNETİMİ VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -10- FONKSİYONLAR 3 Giriş Geçen haftaki derslerimizde Görünümleri (View) ve Stored Procedure (SP) leri öğrendik. Bu hafta

Detaylı

SQL DİĞER Deyimler ve Komutlar

SQL DİĞER Deyimler ve Komutlar SQL DİĞER Deyimler ve Komutlar İÇİ İÇE SELECT KULLANIMI (NESTED SELECT) JOIN KULLANIMI INNER JOIN LEFT JOIN RIGHT JOIN FULL JOIN SQL İç İçe Select (Nested Select) İç içe Select sorguları, bir başka deyişle

Detaylı

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210)

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210) Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210) GENEL DERS BİLGİLERİ Öğretim Elemanı : Öğr.Gör. Erdal GÜVENOĞLU Ofis : MUH 312 Ofis Saatleri : Pazartesi: 14:00 14:50, Salı:

Detaylı

İNTERNET PROGRAMCILIĞI 2 11. HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

İNTERNET PROGRAMCILIĞI 2 11. HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme İNTERNET PROGRAMCILIĞI 2 11. HAFTA İçindekiler Veritabanı Oluşturma, Silme MYSQL ile VERİTABANI İŞLEMLERİ - 1 Tablo Oluşturma, Silme Tabloya Bilgi Girme Veritabanı Sorgulamaları Hedefler Mysql komutları

Detaylı

Lıke Joker Karakterler, Is [not] Null, Order By, Group By, As

Lıke Joker Karakterler, Is [not] Null, Order By, Group By, As LIKE (Joker Karakterler) Joker karakterleri kullanarak bir veri sütunu veya ifadeler içinde desen arayabilirsiniz. Örneğin, soyadları "Ak" ile başlayan veya "kaya" ile biten tüm çalışanları arayabilirsiniz.

Detaylı

8 Aralık 2011 / Perşembe. Veri Tabanına Giriş

8 Aralık 2011 / Perşembe. Veri Tabanına Giriş 8 Aralık 2011 / Perşembe Veri Tabanına Giriş Veri (Data), bir veya birden fazla bilgiden oluşan bir kümedir. İsim, yaş, telefon numarası gibi bilgiler birer veridir. Veri Tabanı (Database) : Temel olarak

Detaylı

KISITLAMALAR (CONSTRAINT)

KISITLAMALAR (CONSTRAINT) KISITLAMALAR (CONSTRAINT) Tablo alanlarına veri girişini kontrol etmeyi amaçlayan düzenlemelerdir. Bir alana girilen değerleri sınırlayan bu düzenlemeler kullanıcı hataları açısından önemlidir. Verilerin

Detaylı

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız. Bu Derste Öğrenecekleriniz: Koşullu Sorgulamalar a. Karşılaştırma operatörleri b. Mantıksal operatörlerin kullanımı c. BETWEEN (Arasında) operatörü d. IS NULL Kullanımı e. Küme operatörü (IN) f. LIKE operatörü

Detaylı

ELEKTRONİK ÇİZELGE. Hücreleri Biçimlendirme. Formülleri Kullanma. Verileri Sıralama. Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME

ELEKTRONİK ÇİZELGE. Hücreleri Biçimlendirme. Formülleri Kullanma. Verileri Sıralama. Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME Hücreleri Biçimlendirme ELEKTRONİK ÇİZELGE Formülleri Kullanma Verileri Sıralama Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME Elektronik Çizelge de sayıları; bin ayracı, yüzde oranı, tarih/saat ve para

Detaylı

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı Data Programming SQL Language Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 15 Mar 2016 1 SQL deyimleri veritabanları üzerinde çeşitli işlemleri yerine getirirler. Veritabanından

Detaylı

5 Sorgulama İşlemleri. Veritabanı 1

5 Sorgulama İşlemleri. Veritabanı 1 5 Sorgulama İşlemleri Veritabanı 1 Select işlemleri SELECT sütunlar FROM tablo_adi SELECT * FROM tbl_personel SELECT adi,soyadi,gorevi FROM tbl_personel Distinct Tekrar eden satırları kaldırmak için kullanılır.

Detaylı

Turkcell Hizmetleri LOGO KASIM 2011

Turkcell Hizmetleri LOGO KASIM 2011 Turkcell Hizmetleri LOGO KASIM 2011 içindekiler Turkcell Hizmetleri...3 Toplu Mesaj Gönderimleri...4 Sicil Kartları Listesi nden SMS Gönderimleri...5 Raporlar...7 Durum Bilgisi...7 Başvurular...9 Turkcell

Detaylı

Veri Tabanı Programlamaya Giriş

Veri Tabanı Programlamaya Giriş Veri Tabanı Programlamaya Giriş Kitap özeti Veri Tabanı Programlamaya Giriş SQL insanların veritabanı sistemleri ile konuşmasını sağlayan popüler bir dildir. Bu dil sayesinde, bir veritabanından kayıtları

Detaylı

BÖLÜM12. 2- FORMÜLLER ve OTOMATİK TOPLAM. 2.1. Formüller

BÖLÜM12. 2- FORMÜLLER ve OTOMATİK TOPLAM. 2.1. Formüller BÖLÜM12 2- FORMÜLLER ve OTOMATİK TOPLAM 2.1. Formüller Formül, bir sayfadaki verilerin aritmetiksel, mantıksal, istatistiksel vb. işlemleri yapması için kullanılan denklemlerdir ve bize sonuç bildirirler.

Detaylı

Sihirbaz Kullanarak Sorgu Oluştur : Sihirbaz sorguyu hazırlayan kişiye sorular sorar ve yanıtlarına göre sorgu oluşturur.

Sihirbaz Kullanarak Sorgu Oluştur : Sihirbaz sorguyu hazırlayan kişiye sorular sorar ve yanıtlarına göre sorgu oluşturur. BÖLÜM17 3. SORGULAR Access Veritabanında sorgu; tablolara yazılan bilgilerin hepsinin veya istenilen (belirlenen) şarta uyanlarının bulunmasıdır. Örneğin Tıp Fakültesinde okuyan öğrenciler gibi. Sorguları

Detaylı

Telefon Defteri Modülü Kullanım Kılavuzu

Telefon Defteri Modülü Kullanım Kılavuzu Telefon Defteri Modülü Kullanım Kılavuzu YETKİ VE KAYIT İŞLEMİ Kayıt yapacak kullanıcıya yetki verilmesi Kayıt yapacak kullanıcı yetkilendirilirken dikkat edilmesi gereken en önemli nokta, kullanıcının

Detaylı

Kets DocPlace LOGO Entegrasyonu

Kets DocPlace LOGO Entegrasyonu Kets DocPlace LOGO Entegrasyonu Kets DocPlace Kurulumu Öncesinde Yapılması Gereken İşlemler Windows 7, Windows 8, Windows Server 2008 R2, Windows Server 2012 veya daha yeni işletim sistemlerinde Programlar

Detaylı

Kod Listeleri Genel Yapısı

Kod Listeleri Genel Yapısı Fiş listelerinden de hatırlanacağı gibi pull down menüden fiş menü tercihleri veya görsel butonlardan Yeni, Değiştir, İzle, Sil, Kopyala ile kasa tahsilat ödeme ekranı açılır. Kasa tahsilat ve ödeme fişleri

Detaylı

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language) Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language) Konular Yapısal SQL Komutları Gruplama İşlemi SQL Fonksiyonları Kaynaklar 2 SQL (Structured Query Language) SQL Carlos

Detaylı

Emrah UYSAL www.emrahuysal.com 1

Emrah UYSAL www.emrahuysal.com 1 ORACLE DERS 2 BİRDEN FAZLA TABLO ÜZERİNDE ÇALIŞMAK(JOIN İŞLEMLERİ) Şekilde görüldüğü gibi Employees tablosundan employee_id ve department_id alanı Departments tablosundan ise department_name alanı kullanılıp

Detaylı

VERİTABANI Veritabanı Normalizasyonu

VERİTABANI Veritabanı Normalizasyonu VERİTABANI Veritabanı Normalizasyonu NORMALİZASYON NEDİR? Normalizasyon kısaca veritabanında bulunan verileri düzenleme süreci olarak ifade edilebilir. Normalizasyon sürecinde veritabanlarında çok fazla

Detaylı

İmar Uygulaması. Uygulamanın Netmap Projesi Olduğunun Belirtilmesi

İmar Uygulaması. Uygulamanın Netmap Projesi Olduğunun Belirtilmesi Netmap menü altından, Yeni alt menüsü seçildikten sonra çıkan menüden Ada seçeneği seçilmesi ile imar adalarının oluşturulması gerekmektedir. İmar adaları resim üzerinden çevrildikten sonra ada kapandığında,

Detaylı

1. Excel Dönüşümü : 2. Rapor Master Tanımları :

1. Excel Dönüşümü : 2. Rapor Master Tanımları : Programın Amacı : Bu Program As/400 Sistemindeki herhangi bir veya birden fazla file ı kullanarak istenilen şekilde sorgulama yaparak elde edilen bilgileri Excel Formatında Pc deki istenilen bir yere kaydetmek.

Detaylı

VAKIFBANK SANAL POS PANELİ KULLANICI KILAVUZU

VAKIFBANK SANAL POS PANELİ KULLANICI KILAVUZU VAKIFBANK SANAL POS PANELİ KULLANICI KILAVUZU DEĞERLİ ÜYE İŞYERİMİZ! Vakıfbank Sanal POS Ekibi olarak, sizlere daha iyi hizmet verebilmek için çalışmaya devam ediyoruz. İlerleyen dönemlerde panelimizin

Detaylı

BMB202. Veritabanı Yönetimi Ders 6. SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

BMB202. Veritabanı Yönetimi Ders 6. SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü BMB202. Veritabanı Yönetimi Ders 6. SQL Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Dersin Planı SQL Fonksiyonları Çoklu Tablo İşlemleri İç içe Select ler JOIN Birleştirme

Detaylı

Mühendislikte Veri Tabanları Dersi Uygulamaları (MS-Access)

Mühendislikte Veri Tabanları Dersi Uygulamaları (MS-Access) Mühendislikte Veri Tabanları Dersi Uygulamaları (MS-Access) İstanbul Teknik Üniversitesi, İnşaat Fakültesi, Geomatik Mühendisliği Bölümü Prof. Dr. Nebiye MUSAOĞLU Doç. Dr. Elif SERTEL Y. Doç. Dr. Şinasi

Detaylı

Like Joker Karakterler, Order By, Group By

Like Joker Karakterler, Order By, Group By Like Joker Karakterler, Order, Group Like joker karakterler, order by, group by Karakter Türü Bilgi İçinde Arama Yapma (Like Sözcüğü) Personel tablosu içinde adres adlı 50 karakter uzunluğunda bir alanımız

Detaylı