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 Sütunların Birleştirilmesi Koşula Bağlı Sorgulamalar
Tek Tablo İçinde Sorgulamalar Bu bölümde SELECT ifadesi ile ilgili farklı kullanım şekilleri verilecektir. SELECT ile birden fazla tablodan veri seçmek mümkündür. Fakat bu bölümde yalnızca tek tablo üzerinden sorgulamalar gösterilecektir.
Tek Tablo İçinde Sorgulamalar SELECT ile yapılan işlemler sonucu kayıtlar üzerinde bir değişiklik meydana gelmez. Tablolardan seçilen veriler istenilen şekilde biçimlendirilebilir.
Tek Tablo İçinde Sorgulamalar SELECT ifadesinin temel kullanım şekli: SELECT sütunlar FROM tablo_adi
1-Tekrarlı Satırları Önlemek (DISTINCT) SELECT ifadesi yalın olarak kullanıldığında tablo içerisindeki kayıtların tümü listelenir. Tablo içinde tekrar eden kayıtların sadece bir kez görüntülenmesi gerektiği durumlarda DISTINCT ifadesi kullanılır.
1-Tekrarlı Satırları Önlemek (DISTINCT) DISTINCT tüm VTYS lerde kullanılabilir. Kullanım şekli: SELECT DISTINCT * veya sütun_adi FROM tablo_adi
1-Tekrarlı Satırları Önlemek (DISTINCT) DISTINCT ifadesinden sonra * kullanılır ise bir kayıtlar içerisindeki tüm sütunları aynı olan kayıtların tekrarı önlenir. Tek bir sütun ismi yazılır ise o sütun içindeki tekrarlar önlenir, diğer sütunlar dikkate alınmaz.
1-Tekrarlı Satırları Önlemek (DISTINCT) AlisSatis Fis_no Cari_adi Islem_turu Islem_tutari Tarih 1 YILDIRIM AŞ Satış 50000 14.04.2009 2 YILDIRIM AŞ Satış 25000 14.06.2009 3 ATEŞ AŞ Alım 15000 22.06.2009 4 DENİZ AŞ Alım 40000 22.06.2009 5 YILDIRIM AŞ Satış 30000 28.06.2009 SELECT * FROM AlisSatis
1-Tekrarlı Satırları Önlemek (DISTINCT) AlisSatis Cari_adi YILDIRIM AŞ YILDIRIM AŞ ATEŞ AŞ DENİZ AŞ YILDIRIM AŞ SELECT Cari_adi FROM AlisSatis
1-Tekrarlı Satırları Önlemek (DISTINCT) AlisSatis Cari_adi YILDIRIM AŞ ATEŞ AŞ DENİZ AŞ SELECT DISTINCT Cari_adi FROM AlisSatis
2-Sorgu Sonucu Sıralama (ORDER BY) Yapılan sorguların sonucu kayıt sıralamasına göre listelenir. Yapılan sorgunun istenilen bir veya birden fazla sütuna göre sıralanması için ORDER BY ifadesi kullanılır.
2-Sorgu Sonucu Sıralama (ORDER BY) Kullanım Şekli: SELECT column_name, column_name FROM table_name ORDER BY column1 ASC DESC, column2 ASC DESC;
2-Sorgu Sonucu Sıralama (ORDER BY) ORDER BY ifadesi sorgunun sonuna yazılır. ORDER BY ifadesinden sonra sıralama yapılacak olan sütun ya da sütunların isimleri veya numaraları yazılır.
2-Sorgu Sonucu Sıralama (ORDER BY) ASC DESC ifadeleri sütunun sıralama türünü belirler. Sütun isimlerinden sonra yazılır. Fakat yazılmaları zorunlu değildir. Eğer sıralama türü belirtilmez ise varsayılan olarak artan (küçükten büyüğe) sıralama yapılır.
2-Sorgu Sonucu Sıralama (ORDER BY) ASC artan şekilde sıralamayı DESC ise azalan şekilde sıralamayı ifade eder.
2-Sorgu Sonucu Sıralama (ORDER BY) Sıralama için seçilen sütunun veri tipi sayısal ise sıralama 0 9 artan, 9 0 azalan şekilde yapılır. Veri tipi karakter kümesi ise A Z artan, Z A azalan şekilde yapılır.
2-Sorgu Sonucu Sıralama (ORDER BY) NOT: Karakter kümesi olarak belirlenen sütunda 15,16,9,86 şeklinde veri girilir ise bu verilerin sıralaması 15,16,86,9 (artan) olur. Sütun için yanlış veri tipi seçildiğinden hatalı sıralama sonucu döner.
2-Sorgu Sonucu Sıralama (ORDER BY) Birden fazla sütuna göre yapılan sıralamalarda ilk önce 1. sütuna göre artan veya azalan şekilde sıralama yapılır. Daha sonra 1. sütun içerisindeki kayıtlar da 2. sütun değerine göre artan veya azalan şekilde sıralanır.
2-Sorgu Sonucu Sıralama (ORDER BY) AlisSatis Fis_no Cari_adi Islem_turu Islem_tutari Tarih 1 YILDIRIM AŞ Satış 50000 14.04.2009 2 YILDIRIM AŞ Satış 25000 14.06.2009 3 ATEŞ AŞ Alım 15000 22.06.2009 4 DENİZ AŞ Alım 40000 22.06.2009 5 YILDIRIM AŞ Satış 30000 28.06.2009 SELECT * FROM AlisSatis
2-Sorgu Sonucu Sıralama (ORDER BY) AlisSatis Fis_no Cari_adi Islem_turu Islem_tutari Tarih 3 ATEŞ AŞ Alım 15000 22.06.2009 2 YILDIRIM AŞ Satış 25000 14.06.2009 5 YILDIRIM AŞ Satış 30000 28.06.2009 4 DENİZ AŞ Alım 40000 22.06.2009 1 YILDIRIM AŞ Satış 50000 14.04.2009 SELECT * FROM AlisSatis ORDER BY Islem_tutari
2-Sorgu Sonucu Sıralama (ORDER BY) AlisSatis Fis_no Cari_adi Islem_turu Islem_tutari Tarih 2 YILDIRIM AŞ Satış 25000 14.06.2009 5 YILDIRIM AŞ Satış 30000 28.06.2009 1 YILDIRIM AŞ Satış 50000 14.04.2009 4 DENİZ AŞ Alım 40000 22.06.2009 3 ATEŞ AŞ Alım 15000 22.06.2009 SELECT * FROM AlisSatis ORDER BY Cari_adi DESC, Islem_tutari ASC
3-Sütunlara Takma İsim Kullanma (AS) Sorgu sonucu listelenen kayıtların sütun veya tablo isimleri tabloda kullanılan sütun veya tablo isimleri ile aynıdır. Tablo veya sütun isimlerini gizlemek, uzun isimleri kısaltmak, kısa isimlerini daha açıklayıcı ifade etmek veya hesaplamalar sonucu oluşan yeni sütun veya tablolara takma isim vermek için AS ifadesi kullanılır.
3-Sütunlara Takma İsim Kullanma (AS) Sütunlara takma isim vermek için kullanımı SELECT column_name AS alias_name FROM table_name; Tablolara takma isim vermek için kullanımı SELECT column_name(s) FROM table_name AS alias_name;
3-Sütunlara Takma İsim Kullanma (AS) Sütunlara verilecek olan takma isim boşluk, noktalama işaretleri, özel karakterler içeriyorsa veya rezerve bir kelime ise tırnak içerisinde yazılmalıdır. Örneğin: SELECT name AS İsim Soyisim FROM users
3-Sütunlara Takma İsim Kullanma (AS) Tablo ve sütunlar yeniden isimlendirilirken AS ifadesi kullanılmadan boşluk karakterinden sonra da takma isim belirtilebilir. Örneğin: SELECT name İsim Soyisim FROM users kisiler
3-Sütunlara Takma İsim Kullanma (AS) AlisSatis Fis_no Cari_adi Islem_turu Islem_tutari Tarih 1 YILDIRIM AŞ Satış 50000 14.04.2009 2 YILDIRIM AŞ Satış 25000 14.06.2009 3 ATEŞ AŞ Alım 15000 22.06.2009 4 DENİZ AŞ Alım 40000 22.06.2009 5 YILDIRIM AŞ Satış 30000 28.06.2009 SELECT * FROM AlisSatis
3-Sütunlara Takma İsim Kullanma (AS) alsat Firma Adı islem YILDIRIM AŞ Satış YILDIRIM AŞ Satış ATEŞ AŞ Alım DENİZ AŞ Alım YILDIRIM AŞ Satış SELECT Cari_adi Firma Adı, Islem_turu AS islem FROM AlisSatis AS alsat
3-Sütunlara Takma İsim Kullanma (AS) NOT: Takma isim kullanmak tablo veya sütun isimlerinde bir değişiklik meydana getirmez. Takma isimler yalnızca yapılan sorguda geçerlidir.
4-Sütunlar Üzerinde Matematiksel İşlemler Matematiksel işlemler tablodan çekilen veriler üzerinde matematiksel işlemler yapmak için kullanılır. İşlem yapılacak sütunların veri tipleri sayısal türde olmalıdır. + Toplama, - Çıkarma, * Çarpma / Bölme
4-Sütunlar Üzerinde Matematiksel İşlemler Sorgu üzerinde sütunlarda yapılacak olan matematiksel işlem SELECT ifadesinden sonra belirtilen sütun isimleri kısmında uygulanır.
4-Sütunlar Üzerinde Matematiksel İşlemler AlisSatis Fis_no Cari_adi Islem_turu Islem_tutari Tarih 1 YILDIRIM AŞ Satış 50000 14.04.2009 2 YILDIRIM AŞ Satış 25000 14.06.2009 3 ATEŞ AŞ Alım 15000 22.06.2009 4 DENİZ AŞ Alım 40000 22.06.2009 5 YILDIRIM AŞ Satış 30000 28.06.2009 SELECT * FROM AlisSatis
4-Sütunlar Üzerinde Matematiksel İşlemler AlisSatis Fis_no Cari_adi Islem_turu Islem_tutari Tarih 1 YILDIRIM AŞ Satış 50000 14.04.2009 2 YILDIRIM AŞ Satış 25000 14.06.2009 3 ATEŞ AŞ Alım 15000 22.06.2009 4 DENİZ AŞ Alım 40000 22.06.2009 5 YILDIRIM AŞ Satış 30000 28.06.2009 SELECT Cari_adi, Islem_turu, Islem_tutari*0.80 FROM AlisSatis WHERE Islem_turu= Satış
4-Sütunlar Üzerinde Matematiksel İşlemler AlisSatis Cari_adi Islem_turu Islem_tutari yenitutar YILDIRIM AŞ Satış 50000 40000 YILDIRIM AŞ Satış 25000 20000 YILDIRIM AŞ Satış 30000 24000 SELECT Cari_adi, Islem_turu, Islem_tutari, Islem_tutari*0.80 AS yenitutar FROM AlisSatis WHERE Islem_turu= Satış
5-Sütunların Birleştirilmesi Sütunların içerdiği değerleri başka bir karakter veya sütunla birleştirerek aynı sütunda gösterme işlemidir. ORACLE -> karakteri ile MSSQL -> + karakteri ile MySQL -> CONCAT fonksiyonu ile birleştirme yapmaktadır.
5-Sütunların Birleştirilmesi Sorgu üzerinde sütunlarda yapılacak olan birleştirme işlemi için SELECT ifadesinden sonra birleştirilecek sütun isimleri VTYS ye uygun şekilde yazılır.
5-Sütunların Birleştirilmesi AlisSatis Fis_no Cari_adi Islem_turu Islem_tutari Tarih 1 YILDIRIM AŞ Satış 50000 14.04.2009 2 YILDIRIM AŞ Satış 25000 14.06.2009 3 ATEŞ AŞ Alım 15000 22.06.2009 4 DENİZ AŞ Alım 40000 22.06.2009 5 YILDIRIM AŞ Satış 30000 28.06.2009 SELECT * FROM AlisSatis
5-Sütunların Birleştirilmesi AlisSatis CONCAT(Cari_adi, " ", Islem_tutari, " ", Tarih) YILDIRIM AŞ 50000 14.04.2009 YILDIRIM AŞ 25000 14.06.2009 ATEŞ AŞ 15000 22.06.2009 DENİZ AŞ 40000 22.06.2009 YILDIRIM AŞ 30000 28.06.2009 SELECT CONCAT(Cari_adi, " ", Islem_tutari, " ", Tarih) FROM AlisSatis
6-Koşula Bağlı Sorgulamalar SELECT ifadesinin sonucu olarak elde edilen kayıtların tablodaki tüm kayıtlar olduğunu önceki dersimizde görmüştük. WHERE ifadesi ile de koşul oluşturmayı ve sorgu sonucunu bu koşula uyan kayıtların listelendiğini belirtilmişti.
6-Koşula Bağlı Sorgulamalar Kullanım Şekli: SELECT * FROM tablo_adi WHERE kosul_ifadesi
6-Koşula Bağlı Sorgulamalar Tarih Türündeki Sütunlar için Koşul ifadesi Birden fazla koşula göre sorgulama AND, OR IN operatörü ile veri kümesi içinde arama yapmak LIKE operatörü ile karakter kümesinde verilen joker karaktere göre arama yapmak BETWEEN AND kullanımı NULL değer sorgulama
KAYNAKÇA TURGUT ÖZSEVEN VERİ TABANI YÖNETİM SİSTEMLERİ I www.w3schools.com/sql