İleri SQL Dersleri 3 – IN Operatörü

sql IN operatörü WHERE ve AND koşulu altında kullanılır. Amacı arama yapılırken aynı tablo kolonu için birden fazla arama koşulunu verebilmektir.
SQL LIKE Syntax

1
2
3
 SELECT column_name(s)
 FROM table_name
 WHERE column_name IN (value1,value2,...);

 

Örnek Veritabanı
Aşağıda tanınmış Northwind örnek veritabanını kullanılıyor.

Aşağıdaki “Customers” tablosuna select çekelim.

ID CustomerName ContactName Address City Code Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

IN Örneği:
Aşağıdaki sorgu Customers tablosundaki city kayıtlarından Paris ve London içeren kayıtları getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City IN ('Paris','London');

Denemek İçin Tıklayınız

Benzer şekilde IN yerine NOT IN kullandığımızda arama koşulunda verdiğimiz değerlerden olmayanları getirir.

NOT IN Örneği:
Aşağıdaki sorgu Customers tablosundaki city kayıtlarından Paris ve London içmeyen kayıtları getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City NOT IN ('Paris','London');

 

İleri SQL Dersleri 2 – SELECT LIKE Operatörü

sql LIKE operatörü WHERE koşulu altında kullanılır. Amacı arama yaptığımız kısmın belli ir parçası ile arama yapmaktır.

LIKE operatörü bir sütunda belirli bir desen aramak için kullanılır.
 
 
 
SQL LIKE Syntax

1
2
3
 SELECT column_name(s)
 FROM table_name
 WHERE column_name LIKE pattern;

 

Örnek Veritabanı
Aşağıda tanınmış Northwind örnek veritabanını kullanılıyor.

Aşağıdaki “Customers” tablosuna select çekelim.

ID CustomerName ContactName Address City Code Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

 
 
SELECT LIKE Örneği:
Aşağıdaki sorgu Customers tablosundaki city kayıtların “s” ile başlayanlarını getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE 's%';

 
Denemek İçin Tıklayınız

İPUCU: “%” işareti arama yaparken koyduğumuz yerde joker karakterdir. Olmayan kısmı tanımlamak için kullanılır.

Aşağıdaki sorgu Customers tablosundaki city kayıtların “s” ile bitenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE '%s';

 
Denemek İçin Tıklayınız

Aşağıdaki sorgu Customers tablosundaki city kayıtlarında “land” içerenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE '%land%';

 
Denemek İçin Tıklayınız

LIKE operatöründen önce NOT konulması uyuşan kısmı olanların gelmemesini sağlar.

Aşağıdaki sorgu Customers tablosundaki city kayıtlarında “land” içermeyenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City NOT LIKE '%land%';

 
Denemek İçin Tıklayınız

İPUCU: “_” işareti arama yaparken koyduğumuz yerde joker karakterdir. Konulduğu yerdeki bilinmeyen yada aranan karakterin yerine geçer. Birden fazla karakter için birden fazla kullanmak gerekir.

Aşağıdaki sorgu Customers tablosundaki city kayıtlarında herhangibir krakterle başlayım ‘erlin’ ile bitenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE '_erlin';

 
Denemek İçin Tıklayınız

İleri SQL Dersleri 1 – SELECT TOP – ROWNUM Cümlesi

sql SELECT TOP Cümlesi tablodan belirli bir sayıda veri döndürmemizi sağlar.

Özellikle büyük tablolarda binlerce hatta milyonlarca veri varken istediğimize ulaşmamız konusunda oldukça kullanışlıdır. Çok fazla veri ile çalışmak performansı etkilemektedir.

Note: Her veritabanı SELECT TOP yapısını desteklememektedir. Ama benzer yapılar tüm databaselerde vardır.

SQL Server / MS Access Syntax

1
2
 SELECT TOP number|percent column_name(s)
FROM table_name;

 

SQL SELECT TOP Yapısının MySQL ve Oracle daki Benzerleri
MySQL Syntax

1
2
3
 SELECT column_name(s)
FROM table_name
LIMIT number;

 

Örnek

1
2
3
 SELECT *
FROM Persons
LIMIT 5;

 

ORACLE Syntax

1
2
3
 SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

 

Örnek

1
2
3
 SELECT *
FROM Persons
WHERE ROWNUM <=5;

 

SELECT TOP Örnekleri:
Aşağıdaki sorgu Customers tablosundaki ilk iki kayıdı getirir.

1
2
 SELECT TOP 2 *
FROM Customers;

 
Denemek İçin Tıklayınız

SELECT TOP PERCENT Örnekleri:
Aşağıdaki sorgu Customers tablosundaki kayıtların ilk %50 sini getirir.

1
2
 SELECT TOP 50 PERCENT *
FROM Customers;

 
Denemek İçin Tıklayınız