Bu yazı SQL’in daha karmaşık bölümlerine geçmeden önceki son yazı. Bundan önceki 10 (aslında 11) yazıda SQL için temel sayılabilecek konuları ele aldık. Bu yazıda ise karmaşık SQL sorgularında çok işimize yarayacak olan “takma isimler” (alias) konusunu işleyeceğiz. Takma isimler önceki konular göz önünde bulundurulduğunda çok da gerekli gibi görünmeyebilir ancak bundan sonraki konularda ne kadar gerekli hatta bazı durumlarda zorunlu olduğunu göreceğiz.
Not: Bu arada diğer SQL derslerine buradan ulaşabilirsiniz
Not: Alias kelimesi için sözlükte bir çok karşılık var. Bana “takma isim” uygun gibi geldi, ama daha iyi bir önerisi olan varsa yazıyı güncelleyebilirim.
Örnekler için aşağıdaki uyeler tablosunu kullanacağız.
uye_adi | isim | soyisim | e-posta | cinsiyet |
---|---|---|---|---|
hrzafer | Harun Reşit | Zafer | [email protected] | E |
derya.z | Derya | Zaimoğlu | [email protected] | K |
meryem1990 | Meryem | Arkadaş | [email protected] | K |
eaydin | Emir | Aydın | [email protected] | E |
denizeri | Levent | Denizeri | [email protected] | E |
Gerek tablolara gerekse alanlara takma isim verebiliriz. Alanlar ile başlayalım:
Sorgu: Kullanıcıların isim ve soyisimleri
SELECT isim AS 'ad', soyisim AS 'soyad' FROM uyeler
ad | soyad |
---|---|
Harun Reşit | Zafer |
Derya | Zaimoğlu |
Meryem | Arkadaş |
Emir | Aydın |
Levent | Denizeri |
Gördüğünüz gibi sonuç kümesinde ilgili alanlar takma isimleri ile geldiler. Daha önceki yazılarda da sonuç kümesinin de aslında bir tablo olduğunu belirtmiştim. Bunu zihnimizin bir köşesine yazalım. Burada AS (ez diye okunur) sözcüğü “olarak” anlamında kullanılmış, isim AS ‘ad’ dediğimizde “isim alanını ‘ad’ olarak getir” demiş oluyoruz kısacası.
Şimdi de uyeler tablomuza takma isim verelim.
Sorgu: İsmi Derya olan bayanlar (Derya isminin her iki cinsiyet için de kullanılabildiğini hatırlatalım 🙂 )
SELECT u.isim , u.soyisim FROM uyeler u WHERE u.cinsiyet='K' AND u.isim='Derya'
isim | soyisim |
---|---|
Derya | Zaimoğlu |
Burada altını çizmek istediğim 2 husus var:
1-) Tablolara takma isim verirken AS sözcüğünü kullanmak zorunda değiliz. Sorguyu aşağıdaki gibi de yazabilirdik ama genelde bu teâmül uygulanır ve AS yalnızca alanlar için kullanılır.
SELECT u.isim , u.soyisim FROM uyeler AS u WHERE u.cinsiyet='K' AND u.isim='Derya'
2-) Dikkat ederseniz tablolara verdiğimiz takma adlar sonuç kümesinde bir değişikliğe yol açmıyor. Yalnızca SQL sorgumuzda bu kısaltmaları (takma isimleri) kullanıyoruz. Şu ana kadar sorgularda yalnızca bir tablo kullandığımız için çok da anlamlı gelmemiş olabilir bu örnekler. İlerleyen yazılarda takma isimlerin (alias) sebeb-i hikmeti daha iyi anlaşılacaktır.
Herkese Kolay Gelsin
04 Haziran 2012 at 09:55
hocam iyi günler öncelikle sql notlarınızdan çok faydalandım teşekkür ederim. bnm bir sorum olacaktı.
örneğin maas tablosunda minumum ve maximum maaslarının ortalamasını bulan sql kodunu nasıl yapabilirz? yardmcı olursanız sevinirim..
16 Temmuz 2013 at 03:12
Allah razı olsun hocam 🙂
28 Mart 2015 at 13:04
iyi günler
SQL 11: AS Sözcüğü ve Takma İsimler (Alias) konusunda yazmış olduğunuz
SELECT isim AS ‘ad’, soyisim AS ‘soyad’ FROM üyeler
sorgu satırı tamam da
SELECT u.isim , u.soyisim FROM uyeler u WHERE u.cinsiyet=’K’ AND u.isim=’Derya’
satırındaki U takısını anlayamadım. Biraz açar mısınız?
Teşekkürler…
15 Mayıs 2015 at 03:51
Burada uyeler tablosunun ismini u kısaltıyoruz. Bu özellikle aynı alan adlarına sahip 2 tabloyu JOIN ederken işe yarıyor. Buradaki örnek pek anlamlı gelmemiş olabilir. Derslerin devamındaki JOIN yazılarını okumanızı tavsiye ederim.
07 Mayıs 2015 at 13:43
Galiba bu ALIAS
MS Access’teki ‘Resim Yazısı’..
14 Ekim 2017 at 08:35
hocam, anlatımınızdan ziyade Türkçe kullanımınız hoşuma gitti. Lütfen devam edin.