Sql Komutları Sql komutlarından DISTINCT, IN, NOT IN, IN(SELECT...), ANY, ALL, EXISTS, NOT EXISTS, UNION, EXCEPT, BETWEEN kullanımı DISTINCT Veritabanımızda oluşturduğumuz tablonun içinde birbirinin aynı veriler bulunabilir. Bu verilerden aynı olanların listeleme esnasında bir kez yazılması için Distinct sözcüğü kullanılır Örnek: 12 ATB sınıfında adı Burak olan öğrencilerden sıralamada ilk gelen gösterilir. SELECT DISTINCT ad FROM 12atb; komutunu kullanınca aşağıdaki ekran gelir. IN IN İngilizce'de de olduğu gibi içinde anlamına gelmektedir. Veri tabanımızda sahip olduğumuz verilerden sadece istediklerimize IN sözcüğüyle ulaşabiliriz. www.dijitalders.com Sql Komutları 1
12 ATB sınıfında numarası 13,20,24 olan öğrenciler kimdir? FROM 12atb WHERE no IN (13, 20, 24); NOT IN NOT IN, IN deyiminin tam tersidir. Veri tabanımızda sahip olduğumuz verilerden istemediklerimizi NOT IN sözcüğüyle belirtiriz. 12 ATB sınıfında numarası 13,20,24 olmayan öğrenciler kimdir? FROM 12atb WHERE no NOT IN (13, 20, 24); BETWEEN İngilizde'de de olduğu gibi arasında anlamına gelir Veri tabanımızda belirttiğimiz aralıklarla ilişki kurulmasını sağlar. www.dijitalders.com Sql Komutları 2
12ATB sınıfında numarası 10 ile 25 arasında olan öğrencilerin soyadları? FROM 12atb WHERE no BETWEEN 10 AND 25; IN(SELECT...) IN SELECT komutunda içteki Select komutunun bulduğu sonuca IN komutunu uygulamamız için kullanılır. Kadıköyde te oturan öğrencinin çalıştığı projelerin adlarını ve yerlerini listeleme. SELECT proj_ad,yer FROM proje WHERE proj_no IN (SELECT proje_no FROM ogrenci,çalışma WHERE sosy_g_no = per_s_g_no AND adres LIKE '%kadiköy%'); ANY İngilizce'de de herhangi biri anlamına gelen any komutu sql komutumuzda da herhangi biri anlamını taşır. Makine bölümünde çalışan ogrencinin her hangi birinden daha düşük not alan ve elektronik bölümündeki bulunan ogrencileri listele. www.dijitalders.com Sql Komutları 3
Bu örnekte; makine bölümü kodu = 2 ve elektronik bölümü kodu = 1 alınmıştır. FROM ogrenci WHERE NOT < ANY (SELECT NOT FROM ogrenci WHERE böl_no = 2) AND böl_no =1; ALL İngilizce'de de hepsi anlamına gelen ALL komutu sql komutumuzda da hepsi anlamını taşır. Elektronik bölümünde çalışan ve makine bölümündeki ogrencilerin hepsinden daha fazla not alan ogrencileri listele. Bu örnekte Makine bölümü kodu = 2 ve Elektronik bölümü kodu = 1 alınmıştır. FROM ogrenci WHERE NOT > ALL (SELECT NOT FROM ogrenci WHERE bolum_no = 1) AND bolum_no = 2; EXISTS Mevcut anlamına gelir. AND,OR,NOT operatörleri ile kullanılabilir. Mandalina satan pazarcılarla ilişkili tüm bilgileri listele. www.dijitalders.com Sql Komutları 4
FROM pazarci WHERE EXISTS ( FROM mey_sat WHERE sat_no = pazarci_n AND meyve =mandalina); NOT EXISTS Mevcut değil anlamına gelir. AND,OR,NOT operatörleri ile kullanılabilir. Mandalina satmayan pazarcılarla ilişkili tüm bilgileri listele. FROM pazarci WHERE NOT EXISTS ( FROM mey_sat WHERE sat_no = pazarci_n AND meyve =mandalina); UNION İki ayrı SELECT komutunun sonucunda elde edilen tabloların birleşimi işlemini gerçekleştirir. Adı Sadullah ve Soyadı Abdurrahman olan kişi yada kişileri işletmenin yürüttüğü projelerde çalışan bir kişi (sıradan bir personel yada bölüm yöneticisi)olarak bulunduran projelerin isimlerini ve projelerin yürütüldüğü yerleri listele. (SELECT proj_ad,yer FROM proj,bölüm,personel WHERE bl_no=bölüm_no AND y_sos gno = sosy_g_no AND ad ='Sadullah' AND soyad ='Abdurrahman') UNION (SELECT proj_ad,yer FROM proje,çalışma,personel WHERE proj_no = proje_no AND Per_s_g_no = sosy_g_no AND ad ='Sadullah' AND soyad ='Abdurrahman') www.dijitalders.com Sql Komutları 5
KOŞULLAR: UNION ile birden fazla SELECT in sonucu olan tabloların küme birleşimi işlemine tabi tutulması için 2 koşul gereklidir. 1) SELECT komutları sonucunda elde edilecek tablolar aynı sayıda kolon içermelidirler. 2)Sonuç tabloları karşılıklı olarak kolonların aynı veri tipi ve aynı genişlikte olmalıdır. EXCEPT Birden fazla tabloda birinde olup diğerinde olmayan şeklindeki bağıntıları kurmamız için kullandığımız komuttur.. Metal bölümündeki ogrenci adlarından,tesviye bölümünde bulunmayanları listele. FROM (SELECT ad FROM ogrenci WHERE bol_no=1 EXCEPT SELECT ad FROM ogrenci WHERE bol_no =2); Burak TAŞ Kaynak : http://www.sorucevap.com/bilisimteknolojisi/veritabanlari/sqlserver/ornekuygulama.asp?405793 www.dijitalders.com Sql Komutları 6