18 Şubat 2017

Oracle PL/SQL Verileri Sınırlama ve Sıralama Genel Komutları

Oracle PL/SQL Verileri Sınırlama ve Sıralama Genel Komutları

Oracle PL/SQL'de verileri filtrelemek için kullanılan genel komutlar ve kısayollar dan bahsedeceğim. En çok kullanılan komutları burada toplamaya çalışacağım.

1) WHERE ve DISTINCT Kullanımı
Bir verinin hangi kolonda ve koşul ile gelmesini istiyorsak genelde WHERE komutunu kullanırız.

Karakter aramak için;
SELECT * FROM HR.COUNTRIES WHERE COUNTRY_NAME='Argentina'

Sayısal(Number) ifadelerde tırnak kullanmayız;
SELECT * FROM HR.COUNTRIES WHERE REGION_ID=2

Aynı veriden tekrarlıyorsa tekrarlayanları (Uniqe yapmak) almamak için DISTINCT kullanılır,
Kolondan önce yazılır ve tek kolok eklenerek yapılır;
SELECT DISTINCT REGION_ID FROM HR.COUNTRIES

2) BETWEEN-AND ve IN Kullanımı
İki değer arasını göstermek için kullanılır. Maaşı 2500 ile 3500 arasında olan personelleri listeleyelim;
SELECT FIRST_NAME,LAST_NAME, SALARY FROM HR.EMPLOYEES
WHERE SALARY BETWEEN 2500 AND 3500

Bir kolon içinde birden fazla veriyi aramak için IN kullanabilirsiniz araya virgül ekleyerek;
SELECT * FROM HR.EMPLOYEES
WHERE SALARY IN (17000,11000,8000,6500)

SELECT * FROM HR.EMPLOYEES
WHERE LAST_NAME IN ('Kochhar','Raphaely','Cambrault')

3) LIKE Kullanımı
Aradığımız karakter dizisinin hepsini bilmiyorsak veya bir kısmını biliyorsak genelde veri aramak için LIKE operatörünü kullanırız.

( % ) Yüzde işareti, sıfır yada daha fazla karakteri belirtir ve en çok kullanılandır.
( _ ) Alt çizgi sadece bir karakter belirtir.

Örnekle LAST_NAME kolonu içinde Raphaely verisini arama metotlarını yazalım;
SELECT * FROM HR.EMPLOYEES WHERE LAST_NAME LIKE 'Rap%'

SELECT * FROM HR.EMPLOYEES WHERE LAST_NAME LIKE '%phael%'

SELECT * FROM HR.EMPLOYEES WHERE LAST_NAME LIKE '%haely'

SELECT * FROM HR.EMPLOYEES WHERE LAST_NAME LIKE '_aphaely'

SELECT * FROM HR.EMPLOYEES WHERE LAST_NAME LIKE '_aphae%'

4) NULL ve NOT NULL Kullanımı
NULL(Boş) değerler veya Boş olmayan değerleri aramak için kullanılır. Genelde kolon içinde veri yoksa bunu kontrol etmek için kullanırız.

MANAGER_ID kolonu için boş olmayan değerleri getir;
SELECT * FROM HR.EMPLOYEES WHERE MANAGER_ID IS NOT NULL

MANAGER_ID kolonu için boş olan değerleri getir;
SELECT * FROM HR.EMPLOYEES WHERE MANAGER_ID IS NULL

5) AS Kullanımı
Kolon adına başka bir isim vermek için Alias AS ifadesini kullanırız. Genelde kolon JOIN yaptığımız zaman veya bir kural seti sonrası bir kolon oluşturuyorsak ona Default bırakmak yerine biz isim veririz.  Örnek kullanım genelde kolon adından sonra olur;

SELECT PHONE_NUMBER,PHONE_NUMBER AS TELEFON FROM HR.EMPLOYEES

SQL Karşılaştırma Operatörleri
Eşittir ( = )
Büyüktür ( > )
Büyük yada eşittir ( >= )
Küçüktür ( < )
Küçük yada eşittir ( <= )
Eşit değildir ( <> , != )
AND: Tüm şartlar TRUE ise TRUE döndürür.
OR: Herhangi bir şart TRUE ise TRUE döndürür.
NOT: Şart sonucu tersini döndürür.

Örnek kullanım, SALARY değeri 3000 den küçük yada eşit olanlar;
SELECT FIRST_NAME,SALARY FROM HR.EMPLOYEES WHERE SALARY <= 3000

Eşit değildir ve büyüktür operatörlerinin beraber kullanımı;
SELECT FIRST_NAME,SALARY FROM HR.EMPLOYEES
WHERE SALARY <> 24000
AND SALARY != 17000
AND SALARY > 10000

Eğer Integer olmayan eksili değer varsa ve boş(NULL) alanlarda varsa aşağıdaki gibi kullanın;
SELECT * FROM HR.DEPARTMENTS DEP
WHERE DEP.LOCATION_ID = 1700
AND (DEP.MANAGER_ID <> -1 OR DEP.MANAGER_ID IS NULL)