16 Ocak 2017 Pazartesi
WHILE Döngüsü
Döngüler bir işlemde tekrar gerektiren durumlarda kullanılmaktadır. Döngüler belirlenen şart sağlanıncaya kadar işlemin yapılmasını sağlamaktadır. Diğer dillerde olduğu gibi T-SQL içerisinde de tekrarlı işlemler için bir döngü mevcuttur.
Bu döngünün genel yapısı aşağıdaki gibidir.
WHILE Şart
BEGIN
Tekrar gerektiren kodlar
………
END
Örnek1: Basit bir döngü yazarak 10’a kadar sayı saydıralım.
Yazılım Sektörü İçin Özelleştirilmiş İş Arama Platformu
Yazılım, donanım, ağ ve internet teknolojilerindeki son gelişmeler, Türkiye ve Avrupa’da bilişim alanında binlerce yeni firmanın doğmasına neden olmuştur. ABD İşgücü İstatistik Dairesi’ne göre 2012 ile 2022 arasında bu alanlarda yüzde 22,8’lik bir büyüme olması beklemektedir. Bu büyüme ile Türkiye’de ve Avrupa’da istihdam açıkları oluşacaktır. Buna paralel olarak üniversitelerdeki bilgisayar bilimleri, bilgisayar /yazılım mühendisliği ve bilgisayar programcılığı gibi programların hem sayıları artacak hem de müfredatları yeni ihtiyaçlara göre revize edilecektir. Türkiye’de her ne kadar Bologna Süreci kapsamında eğitimde standardizasyona gidilmeye çalışılsa da her üniversitede verilen eğitim farklılık gösterebilmekte ve mezun olan öğrenciler farklı bilgi ve beceri edinmektedirler.
Öğrenciler eksik olan ya da yeterli olmayan durumlarda kolay, hızlı ve istediği an eğitim alabilecek kurslara ihtiyaç duymaktadır. Özellikle büyük şehirlerde veya şehir merkezinde yaşamayan öğrencilerin ihtiyaç duydukları eğitime ulaşma imkânları son derece zor ve maliyetlidir. Teknolojinin hızla geliştiği çağımızda ve yaşam boyu Öğrenme kavramı kapsamında oluşturulacak bu platform sayesinde, gerekli bilgiler çevrimiçi ortamda paylaşılacak ve böylece daha fazla bireye ulaşma imkânı elde edilecektir.
Projenin amacı temel olarak üniversitelerin bilişim bölümünden mezun ve mezun adayları ile işverenleri bir araya getirmektir. İşverenlerin ilan verebileceği, iş arayan yazılımcıların kendine özgü yeteneklerini temel alarak iş arayabilecekleri, işverenlerin talep ettiği niteliklere uygun olmayan adayların kendini geliştirebileceği ve uzaktan eğitim alarak sınava girebileceği ve sertifika edinebileceği, özgün aday eşleştirme algoritmalarına sahip bir platform oluşturmaktır.
Hazırlayanlar: Yalçın ŞAHİN, Furkan KOLCU
Görme Engelliler için Sesli Haber Okuma Sistemi
Görme engelli insanların, günlük
hayatlarında çalışma imkânlarından ve sosyal haklardan yararlanabilmesi için
haber sitelerine kolay bir şekilde erişmeye ihtiyaçları vardır. Şu anki durumda
ülkemizde yaşayan görme engellilerin kullanabileceği yurt dışında geliştirilmiş
farklı özelliklere sahip çeşitli yazılımlar bulunmaktadır. Yeni gelişen mobil
teknolojinin imkanları sayesinde geliştirilen yazılım ile görme engelli insanların ulusal haber web
sitelerine kolay ve hızlı bir arayüz ile girip istedikleri metin haberlerini
rahat ve kolayca dinleyebilecekleri metni ses çeviren sesli oku isimli bir
yazılım geliştirilmiştir. Böyle bir uygulama ile görme engelli insanların;
sesli okumalar yardımıyla haber sitelerindeki bilgilere rahatca erişebilmeleri
sağlanmıştır. Bu çalışmada ayrıca bilişim teknolojilerinin görme engelli
insanlar için kullanılabilirliği sorgulanmıştır. Alan taraması yapılarak bu
konudaki ulusal ve uluslararası çalışmalar incelenip geliştirilen yazılım ile birlikte
anlatılarak önerilerde bulunulmuştur.
Proje Başarısı: BAP (Bilimsel Araştırma Projeleri) başvursu, 1 adet uluslararası bildiri kabülü.
Hazırlayanlar: Selçuk AKŞAR, Abdulmelik KALKAN
AKBS (Acil Konum Bildiri Sistemi)
Global Positioning System; Dünya
üzerinde engelsiz bir görüş hattında, dört veya daha fazla uydusu ile her türlü
hava koşulunda küresel olarak yer ve zaman bilgileri sağlayan uzay tabanlı bir
navigasyon sistemidir. Düzenli olarak kodlanmış bilgi yollayan bir uydu ağıdır.
GPS sistemini kullanan kişinin dünya üzerindeki yeri, uydularla arasındaki
mesafe ölçülerek kesin olarak tespit edilebilmektedir. Geliştirilen Acil Konum
Bildirim Sistemi, GPS teknolojisini mobil telefonlarda kullanarak, kişilerin
acil çağrı numaralarını aradıklarında yaşadıkları sorunları azaltmayı hedeflemektedir. Günümüzde mevcut acil çağrı sistemlerine, on binlerce
asılsız ya da yanlış çağrılar yapılmaktadır. Gereksiz ya da hatalı çağrılar
telefon hatlarında yoğunluğa ve acil servis numaralarına ulaşmakta dakikalarca
beklemeye yol açmaktadır. Bu sistemlerde ayrıca,
kullanıcıların adresi doğru tarif edememesi, tarif ederken zaman kaybı yaşaması
ve zaman kaybından dolayı ölümlerin ve maddi kayıpların gerçekleşmesi gibi
büyük sıkıntılar da bulunmaktadır. Bu ve bu gibi sıkıntıların giderilmesi
ve ayrıca acil durum yaşanan konuma intikal eden araçların olay yeri adresini
bulamaması gibi sorunların da ortadan kalkması için Acil Konum Bildirim Sistemi
geliştirilmiştir.Proje Başarısı: 2016 yılı Tübitak Lisans Bitirme Yarışması Finalistti , 1 Adet Uluşlararası Bildiri Başvuru Kabülü.
Hazırlayanlar: Oğuzhan YILMAZ, Serhat ÖZKAHYA, Emrah ÖZBAYSAR
Otopark Bul
Otopark Bul uygulaması, geçmişten günümüze hiç azalmayan, artarak devam eden trafik ve park yeri sorununa çözüm olması adına düşünülmüş, tasarlanmış ve geliştirilmeye başlanmış mobil tabanlı bir uygulamadır. Otopark Bul uygulaması öncelikli olarak park sorunu yaşanması muhtemel bölgelere çözüm bulmayı ve insanların daha önce hiç gitmediği bölgelerde araçlarını güvenle park edebilmesini amaçlamıştır. Böylece ilk adımda trafik sorununa çözüm ortağı olunması sağlanmış ikinci adımda ise zamanın çok değerli olduğu günümüz yaşam standartında insanların park yeri için herhangi bir zaman kaybı yaşamamasını sağlamıştır.
Otopark Bul uygulaması ile araç sahipleri çevrelerindeki otoparkların konumlarını, boş – dolu oranını , fiyatlandırmalarını, seyir edecekleri yoldaki trafik durumlarını, otoparklar ile ilgili diğer kullanıcıların yorumlarını görebilecek, daha şeffaf bilgiler ile park yeri seçebilme imkanı bulabileceklerdir.. Otopark Bul uygulama tasarımı , kullanıcıların seyahat halinde iken rahat kullanımını gözeterek ‘Tek El ile Kullanım’ trendine ayak uydurmuştur. Uygulama kompleks bir yapıdan ayrılmıştır , temel seviye erişimleri ile kullanılabilirlik esaslarına dayandırılmıştır. Otopark Bul uygulaması, ana amacı dışında trafik sorununa çözüm üretebilmeyi hedefleyen ve bu konuda başarı sağlamayı öngören bir uygulama olma yolunda ilerlemektedir.
Peki böyle bir uygulamaya otoparklar nasıl ekleniyor? Otopark Bul uygulaması web sitesi üzerinden yalnızca otopark sahipleri ile sisteme otopark eklenebilir. Böylece dünyanın her bölgesinde aktif olarak gelişebilen bir uygulama olabilmesi hedeflenmiştir. Ayrıca otoparkların spesifik özellikleri doğru bir şekilde kullanıcılara lanse edilir.
Otopark Bul uygulaması, ilerleyen süreçte yalnızca otomobiller için değil; bisiklet parkları, motosiklet parkları, oto yıkamalar, araç servisleri gibi geniş bir yelpazede kullanıcı memnuniyeti gözetilerek geliştirilecektir.
OTOPARK BUL UYGULAMA GÖRÜNTÜLERİ ( UYGULAMA DA KULLANILAN VERİLER TEST VERİLERİNDEN OLUŞMAKTADIR. HERHANGİ BİR GERÇEK VERİ BARINDIRILMAMAKTADIR. )
Hazırlayanlar: Kubilay Tural, Görkem İşler
ANDROİD TABANLI SAĞLIK UYGULAMASI
Egzersiz yapmakta zorlanan, spor salonuna gidemeyen ya da ne yapacağı konusunda fikir sahibi olmayan kişiler için spor yapmanın en kolay yolu yürümektir. Düzenli bir şekilde yürüyüş yapmanın kalp rahatsızlığı, damar tıkanıklığı gibi hastalıklara iyi geldiği bilinmektedir. Ayrıca günlük yapılan yürüyüşler kilo kaybı ve daha zinde bir vücut da sağlayabilir. Uzmanlar düzenli, tempolu yürüyüşün hastalıklardan koruduğu, günde ortalama 10 bin ile 15 bin adım atmanın insan sağlığına faydalı olduğu görüşündeler. Bu düşüncelerden yola çıkılarak android tabanlı sağlık uygulaması olan Fitness Club geliştirildi. Fitness Club, kullanıcıların, android işletim sistemine sahip akıllı telefonlarından rahatça girebilecekleri, kullanımı kolay bir sağlık uygulamasıdır. Fitness Club’da kullanıcılar GPS teknolojisi ile konumlarını bulabilir, yürüdükleri mesafeleri görebilir, boy ve kilo değerlerini girerek vücut kitle indeksini, ideal kilosunu, toplam vücut suyunu, vücut yüzey alanını, yağsız vücut ağırlığını, vücut kitle indeks sınıfını ve varsa fazla kilo miktarını, buna bağlı olarak da harcamaları gereken kalori değerlerini hesaplayabilmektedir. Ayrıca akıllı telefonlarda yer alan hareket sensörü yardımıyla kişilerin attığı adımlar sayılır, adım sayısına göre yakmış oldukları kalori miktarı hesaplanır ve hedef kaloriye ulaşılıp ulaşılmadığı hakkında bilgi verilir. Kullanıcıların gün boyu yapmış oldukları aktiviteler kayıt altına alınır, istendiğinde haftalık ve aylık raporlar görsel bir şekilde kullanıcıya sunulur. Fitness Club sayesinde sporun daha eğlenceli bir hale getirilmesi ve aktivitelerin disipline edilmesi amaçlanmıştır.Projeyi Hazırlayanlar: Sema BAYRİ, Tuğba ÇIRDAKLI
DELETE
Kayıt Silme
Bir tabloda bulunan bir yada daha fazla satır silinebilmektedir. Silme işlemi için DELETE deyimi kullanılmaktadır. Bu deyimin genel yapısı şu şekildedir.
DELETE FROM tablo_adı
WHERE koşul
Bir tabloda bütün kayıtlar silinebileceği gibi belli bir şartı sağlayan herhangi bir kayıtta silinebilmektedir. Örneğin daha önce oluşturduğumuz «secilenmüsteri» tablosunun tüm kayıtlarını silmek için şöyle bir SQL ifadesi yazılacaktır.
DELETE FROM secilenMüsteri
Herhangi bir koşul olmadığı için bütün kayıtlar silinecektir.
Şimdi de belli bir şarta sahip kayıtları silmek için bir örnek verelim. Müşteriler tablosunda “Ali Arslan” isimli müşteri ile artık çalışmadığımızı düşünerek bu müşteriyi tamamen silelim. SQL ifademiz şöyle olacaktır.
DELETE FROM musteriler
WHERE (adi='Ali' AND soyadi='Arslan')
Aynı şekilde bir tabloda istenilen şartı sağlayan birden fazla kayıtta silinebilmektedir. Örneğin Müşteriler tablosunda Ankara ‘da oturan bütün müşterileri silmek istersek SQL ifademiz aşağıdaki gibi olacaktır.
DELETE FROM musteriler
WHERE il ='Ankara'
DELETE komutunda da tıpkı INSERT INTO ve UPDATE komutlarında olduğu gibi alt sorgular kullanılarak da kayıtlar silinebilmektedir. Bu noktada yine SELECT ifadesinden yararlanılmaktadır.
Örneğin; personel tablosunda İMALAT bölümüne ait bütün kayıtları silmek istiyoruz. Bu işlemi gerçekleştiren SQL ifadesi şöyle olacaktır:
DELETE FROM personel
WHERE bolumID = (SELECT bolumID
FROM bolum
WHERE bolumAdi = 'İMALAT')
Bir tabloda bulunan bir yada daha fazla satır silinebilmektedir. Silme işlemi için DELETE deyimi kullanılmaktadır. Bu deyimin genel yapısı şu şekildedir.
DELETE FROM tablo_adı
WHERE koşul
Bir tabloda bütün kayıtlar silinebileceği gibi belli bir şartı sağlayan herhangi bir kayıtta silinebilmektedir. Örneğin daha önce oluşturduğumuz «secilenmüsteri» tablosunun tüm kayıtlarını silmek için şöyle bir SQL ifadesi yazılacaktır.
DELETE FROM secilenMüsteri
Herhangi bir koşul olmadığı için bütün kayıtlar silinecektir.
Şimdi de belli bir şarta sahip kayıtları silmek için bir örnek verelim. Müşteriler tablosunda “Ali Arslan” isimli müşteri ile artık çalışmadığımızı düşünerek bu müşteriyi tamamen silelim. SQL ifademiz şöyle olacaktır.
DELETE FROM musteriler
WHERE (adi='Ali' AND soyadi='Arslan')
Aynı şekilde bir tabloda istenilen şartı sağlayan birden fazla kayıtta silinebilmektedir. Örneğin Müşteriler tablosunda Ankara ‘da oturan bütün müşterileri silmek istersek SQL ifademiz aşağıdaki gibi olacaktır.
DELETE FROM musteriler
WHERE il ='Ankara'
DELETE komutunda da tıpkı INSERT INTO ve UPDATE komutlarında olduğu gibi alt sorgular kullanılarak da kayıtlar silinebilmektedir. Bu noktada yine SELECT ifadesinden yararlanılmaktadır.
Örneğin; personel tablosunda İMALAT bölümüne ait bütün kayıtları silmek istiyoruz. Bu işlemi gerçekleştiren SQL ifadesi şöyle olacaktır:
DELETE FROM personel
WHERE bolumID = (SELECT bolumID
FROM bolum
WHERE bolumAdi = 'İMALAT')
UPDATE
Kayıt Güncelleme
Bir tabloya eklenen bilgiler gerektiğinde değiştirilebilmelidir. Bu amaçla UPDATE komutu kullanılmaktadır. UPDATE komutunun genel kullanıl biçimi şöyledir.
UPDATE tablo_adı
SET sütun1=değer1, sütun2=değer2, …
[WHERE koşul]
Bu tanımda kullanılan WHERE deyimi değişikliğin hangi kayıt üzerinde yapılacağının bulunmasına yardımcı olmaktadır. Bu tanım yapılmadığında söz konusu tablonun tüm satırlarında değişiklikler meydana gelecektir.
Bahçe işleri veritabanında müşteriler tablosunda isim bilgisi “Ali Arslan” olan kişinin Ankara’dan İstanbul Üsküdar’a iş yerini taşıdığını düşünerek gerekli değişiklikleri yapmak için aşağıdaki SQL sorgusunu yazmak gerekir.
UPDATE musteriler
SET il='İstanbul', ilce = 'Üsküdar'
WHERE (adi='Ali' AND soyadi='Arslan')
UPDATE komutu ile matematiksel işlemler de gerçekleştirilebilmektedir. Tüm personelin ücretine %20 zam yapılacağını düşünerek tablo üzerinde değişiklikleri gerçekleştiren SQL ifadesi aşağıdaki gibi olacaktır.
UPDATE personel SET ucret = ucret*1.20
Bu komut çalıştırıldığında bütün kayıtlar bu değişiklikten etkilenecektir. Çünkü herhangi bir koşula bağlı bir işlem gerçekleştirilmemiştir.
UPDATE işlemi tıpkı INSERT INTO deyiminde olduğu gibi alt sorgularla da çalışabilmektedir. Yani bilgi güncelleştirme işlemi bir tablodan okunan bilgilerin güncellenerek başka bir tabloya eklenmesi ile de gerçekleşebilmektedir.
Yine burada alt sorgular yazılırken SELECT deyiminden faydalanılmaktadır.
UPDATE komutunda alt sorgulara şöyle bir örnek verebiliriz. BolumID’si 200 olan personel ile aynı göreve sahip tüm personelin bolumID’sini 100 olarak değiştirmek istersek şöyle bir SQL ifadesi yazabiliriz.
UPDATE personel SET bolumID = 100
WHERE gorevi = (SELECT gorevi
FROM personel
WHERE bolumID=200)
UPDATE personel SET bolumID = 100
WHERE gorevi = (SELECT gorevi
FROM personel
WHERE bolumID=200)
Bu sorguda öncelikle alt sorguda bolumID’si 200 olan personelin görevinin ne olduğu tespit edilmektedir. Daha sonra tespit edilen bu görevle aynı görevi icra eden personel kayıtlarında bolumID’leri 100 olarak değiştirilmektedir.
INSERT INTO
Tabloya Kayıt Ekleme
Bir tabloya kayıt eklemek için INSERT INTO deyimi kullanılmaktadır. Bazı durumlarda SQL ifadeleri kullanarak bir tabloya kayıt eklemek durumunda kalabilirsiniz. Bu gibi durumlarda bu deyimi kullanmak yerinde olacaktır. Bu deyimin genel kullanım biçimi şöyledir.
INSERT INTO tablo_adı (sütunlar) VALUES (değerler)
Burada, tablo_adı; verilerin kaydedileceği tablonun adıdır.
Sütunlar, tablo içinde verilerin kaydedileceği alanlardır.
Değerler ise tabloya kaydedilecek olan verileri göstermektedir.
Bu SQL deyimi her çalıştırıldığında tabloya yeni bir kayıt eklenecektir.
Örnek için yine bahçe işleri veritabanında "kategoriler" tablosuna çeşitli kayıtlar ekleyelim. Bunun için SQL ifademiz şöyle olacaktır:
INSERT INTO kategoriler (kategoriID, kategoriAdi)
VALUES (5, 'Bahçe Çiçekleri')
INSERT INTO kategoriler (kategoriID, kategoriAdi)
VALUES (5, 'Bahçe Çiçekleri')
Sorgusunda eğer tablodaki bütün alanlara kayıt yapılacaksa sütun adlarını kullanmadan da kayıt ekleme işlemi yapılabilmektedir.
INSERT INTO kategoriler
VALUES (5, 'Bahçe Çiçekleri')
INSERT INTO deyimi ile çeşitli fonksiyonları da kullanmak mümkündür. Bir tarih bilgisi eklenmek istenildiğinde bunu doğrudan elle değil de bir fonksiyon aracılığı ile gerçekleştirebilirsiniz.
Örneğin, “siparisler” tablosunu göz önüne alalım. Bir sipariş verildiğinde bu siparişin verilme tarihini sistemden alarak tabloya kaydedelim.
INSERT INTO siparisler (siparisID, müsteriID, calısanID, siparisTarihi) VALUES (16, 7, 4, GETDATE())
Dikkat edilecek olursa sipariş tarihi bilgisi eklenmek istenildiğinde bu tarih bilgisi GETDATE ( ) fonksiyonu kullanılarak sistemden otomatik olarak alınmaktadır.
Alınan bu sistem bilgisi, siparisTarihi niteliğinin giriş değeri olmaktadır. Sorgu çalıştırıldığında ilgili kaydın eklendiği görülür.
INSERT INTO deyimi ile bir tabloya başka bir tablodan belirlenen bir satır bilgi eklenebilmektedir. Yani INSERT INTO deyimi ile birlikte alt sorgularda kullanılabilmektedir.
Alt sorgulama işlemleri için SELECT ifadesi kullanılmaktadır. Böyle bir alt sorgulama kullanılacağı zaman VALUES sözcüğü kullanılmaz.
Soru: Müşteriler tablosunda ilçesi ‘Çankaya’ olan müşterilerin musteriID, adi ve soyadi bilgilerini «secilenMüsteri» tablosuna kaydeden SQL ifadesi nedir?
Soruya dikkat edilirse soru iki bölümden oluşmaktadır. İlçesi Çankaya olanlar bulunacak ve ikinci olarak «secilenMusteri» tablosuna kayıt edilecek. Bu işlemler için SQL ifademiz şöyle olacaktır:
INSERT INTO secilenMusteri (musteriID, adi, soyadi)
SELECT musteriID, adi, soyadi
FROM musteriler
WHERE ilce ='Çankaya'
Bir tabloya kayıt eklemek için INSERT INTO deyimi kullanılmaktadır. Bazı durumlarda SQL ifadeleri kullanarak bir tabloya kayıt eklemek durumunda kalabilirsiniz. Bu gibi durumlarda bu deyimi kullanmak yerinde olacaktır. Bu deyimin genel kullanım biçimi şöyledir.
INSERT INTO tablo_adı (sütunlar) VALUES (değerler)
Burada, tablo_adı; verilerin kaydedileceği tablonun adıdır.
Sütunlar, tablo içinde verilerin kaydedileceği alanlardır.
Değerler ise tabloya kaydedilecek olan verileri göstermektedir.
Bu SQL deyimi her çalıştırıldığında tabloya yeni bir kayıt eklenecektir.
Örnek için yine bahçe işleri veritabanında "kategoriler" tablosuna çeşitli kayıtlar ekleyelim. Bunun için SQL ifademiz şöyle olacaktır:
INSERT INTO kategoriler (kategoriID, kategoriAdi)
VALUES (5, 'Bahçe Çiçekleri')
INSERT INTO kategoriler (kategoriID, kategoriAdi)
VALUES (5, 'Bahçe Çiçekleri')
Sorgusunda eğer tablodaki bütün alanlara kayıt yapılacaksa sütun adlarını kullanmadan da kayıt ekleme işlemi yapılabilmektedir.
INSERT INTO kategoriler
VALUES (5, 'Bahçe Çiçekleri')
INSERT INTO deyimi ile çeşitli fonksiyonları da kullanmak mümkündür. Bir tarih bilgisi eklenmek istenildiğinde bunu doğrudan elle değil de bir fonksiyon aracılığı ile gerçekleştirebilirsiniz.
Örneğin, “siparisler” tablosunu göz önüne alalım. Bir sipariş verildiğinde bu siparişin verilme tarihini sistemden alarak tabloya kaydedelim.
INSERT INTO siparisler (siparisID, müsteriID, calısanID, siparisTarihi) VALUES (16, 7, 4, GETDATE())
Dikkat edilecek olursa sipariş tarihi bilgisi eklenmek istenildiğinde bu tarih bilgisi GETDATE ( ) fonksiyonu kullanılarak sistemden otomatik olarak alınmaktadır.
Alınan bu sistem bilgisi, siparisTarihi niteliğinin giriş değeri olmaktadır. Sorgu çalıştırıldığında ilgili kaydın eklendiği görülür.
INSERT INTO deyimi ile bir tabloya başka bir tablodan belirlenen bir satır bilgi eklenebilmektedir. Yani INSERT INTO deyimi ile birlikte alt sorgularda kullanılabilmektedir.
Alt sorgulama işlemleri için SELECT ifadesi kullanılmaktadır. Böyle bir alt sorgulama kullanılacağı zaman VALUES sözcüğü kullanılmaz.
Soru: Müşteriler tablosunda ilçesi ‘Çankaya’ olan müşterilerin musteriID, adi ve soyadi bilgilerini «secilenMüsteri» tablosuna kaydeden SQL ifadesi nedir?
Soruya dikkat edilirse soru iki bölümden oluşmaktadır. İlçesi Çankaya olanlar bulunacak ve ikinci olarak «secilenMusteri» tablosuna kayıt edilecek. Bu işlemler için SQL ifademiz şöyle olacaktır:
INSERT INTO secilenMusteri (musteriID, adi, soyadi)
SELECT musteriID, adi, soyadi
FROM musteriler
WHERE ilce ='Çankaya'
Kaydol:
Yorumlar (Atom)


