# SELECT İLE LİSTELEME İŞLEMLERİ

Kaynak: https://webodasi.com/select-ile-listeleme-islemleri/
Yazar: Mehtap Gülten
Yayın: 2020-07-08
Güncelleme: 2020-08-28

Merhaba arkadaşlar, bir önceki dersimizde [SQL CREATE, ALTER VE DROP KOMUTU](https://webodasi.com/sql-create-alter-ve-drop-komutu/) konularını işlemiştik. Bugünkü dersimizde  **SELECT İLE LİSTELEME İŞLEMLERİ** konusunu işleyeceğiz.

 

### **From**  Kullanımı

 

**From bir yer bildiricidir. İşlem yapılacak olan tabloyu belirtmek için kullanılırız.**

 

**1-)** Öğrenci tablosundaki tüm verileri listelemek için;

 

```
SELECT * FROM ogrenci
```

 

**2-)**  Öğrenci tablosundan sadece ad, soyad ve sınıfını listelemek için;

 

```
SELECT ogrenciAdi,Soyadi,sinifi FROM ogrenci
```

 

### Where Kullanımı

 

**Özellikle belirli hücrelerden alınacak verileri belirtmek için kullanılır.**

 

**1-)** Öğrenci tablosundaki 9/A veya 9/C sınıfındaki öğrencilerin ad, soyad ve sınıfını listelemek için;

 

```
SELECT ogrenciAdi,Soyadi,sinifi FROM ogrenci WHERE sinifi='9A' or sinifi='9C'
```

 

**2-)**  Öğrenci tablosundaki cinsiyeti "K" olan kayıtları listelemek için;

 

```
SELECT * FROM ogrenci WHERE cinsiyet='K'
```

 

**3-)** Muğla şehrinde yaşayan öğrencileri öğrenciler tablosundan listelemek için;

 

```
SELECT * FROM ogrenci WHERE sehir='Muğla'
```

 

### Between Kullanımı

 

**İki veri arasındaki kısmı listelemek için kullanıyoruz.**

 

**1-)**  Kitap tablosundaki sayfa sayısı 100 ile 250 arasında olan kitapların adını ve sayfa sayısını listelemek için;

 

```
SELECT * FROM kitap WHERE sayfaSayisi BETWEEN 50 AND 200
```

 

**2-)**  Öğrenci tablosunda doğum yılı 1997 olan öğrencileri listelemek için,

 

```
SELECT * FROM ogrenci WHERE tarih between '01/01/1997′ AND '12/31/1997′
```

 

### And, Or Kullanımı

 

**1-)** Örnek olarak Öğrenci tablosunda cinsiyeti ‘K’ olan ve Şehri “Muğla” yada “Adana” olanları listelemek için;

 

```
SELECT * FROM ogrenci WHERE cinsiyet='K'AND (City='Muğla' OR City='Adana')
```

 

### Top Kullanımı

 

**Tablodaki verilerin sırasıyla belli bir kısmını listelemek istersek kullanıyoruz.**

 

**1-)** Öğrenciler tablosundaki ilk 5 kaydı listelemek için;

 

```
 SELECT TOP 5 * FROM ogrenciler
```

 

### Distict Kullanımı

 

**Tekrar eden verilerin sadece birer tanesini alıp listelemek için kullanıyoruz.**

 

**1-)** Öğrenciler tablosundaki sınıfların adını her sınıf adı bir defa gösterilecek şekilde listelemek için;

 

```
SELECT distinct sinif FROM ogrenci
```

 

### As Kullanımı

 

**SQL As komutu tabloya veya tablodaki sütuna geçici bir ad vermek için kullanılır. Bu komut genellikle sütun adlarını daha okunabilir hale getirmek için kullanılır.**   **Örneğin; ad ve soyad ayrı kolonlarda bulunuyor siz listeleme esnasında bu ikisini sanki farklı kolonlarda değillermiş gibi yan yana gösterebiliyorsunuz.**

 

**1-)** Öğrenci tablosundaki öğrencinin adını ve soyadını birleştirip, adsoyad olarak listelemek için;

 

```
SELECT ogenciAdi+soyadi AS 'ogrenciAdi Soyadi' FROM ogrenci
```

 

### İn Kullanımı

 

**1-)**  Öğrenci tablosunda adı Mehtap, Gülten ve Adem olan öğrencileri listelemek için,

 

```
 SELECT * FROM ogrenci WHERE ogrenciAdi İN ('Mehtap','Gülten','Adem')
```

 

### Not Like, (<>) Kullanımı

 

**1-)**  Öğrenci tablosundaki adı İlayda olmayan kayıtları listelemek için;

 

```
SELECT * FROM ogrenci WHERE ogrenciAdi <> "İlayda"
```

 

**2-)** Bölüm alanında "işletme" yazmayan bölümleri listelemek için;

 

```
SELECT * FROM ogrenci WHERE bolum NOT LIKE '%İşletme%'
```

 

### Like Kullanımı

 

**1-)** Öğrenci tablosundaki soyadı 4 karakterli olup ilk üç karakteri GÜL olan kayıtları listelemek için;

 

```
SELECT * FROM ogrenci WHERE Soyadi LİKE "GÜL_"
```

 

**2-)** Öğrenci tablosundaki soyadı “G” ile başlayan müşterileri listelemek için;

 

```
SELECT * FROM ogrenci WHERE Soyadi LİKE "G%"
```

 

**3-)** Öğrenci tablosundaki Öğrenci Adı içinde “ta” geçen kayıtları listelemek için;

 

```
 SELECT * FROM ogrenci WHERE ogrenciAdi LİKE "%ta%"
```

 

**4-)**  Öğrenci tablosundaki adı C ile F arasında olan tüm öğrencileri listelemek için;

 

```
 SELECT * FROM öğrenci WHERE ogrenciAdi LİKE "[C-F]%"
```

 

**5-)** Öğrenci tablosundaki soyadı DURA ile başlayıp N yada K ile biten sorguları getirin. (DURAN, DURAK olanlar) *SQL Server, Ms Access*

 

```
SELECT * FROM ogrenci WHERE Soyadi LİKE "DURA[KN]"
```

 

**6-)**  Öğrenci tablosundaki adı M ile G arasında olan tüm öğrencileri getirin
 *(SQL Server, Ms Access)*

 

```
 SELECT * FROM ogrenci WHERE ogrenciAdi LİKE "[M-G]%"
```

 

### Regexp Kullanımı

 

**1-)**  Öğrenci tablosundaki soyadı DURA ile başlayıp N yada K ile biten sorguları listelemek için; (DURAN, DURAK olanlar)

 

```
SELECT * FROM `ogrenci` WHERE ogrenciAdi REGEXP "DURA[KN]$"
```

 

**2-)** Öğrenci tablosundaki adı M ile G arasında olan tüm öğrencileri getirin ( *MySQL)*

 

```
 SELECT * FROM 'ogrenci' WHERE ogrenciAdi REGEXP "^[M-G]"
```

 

### Order By, Asc, Desc Kullanımı

 

**İlgilendiğimiz verileri belirterek küçükten büyüğe doğru listele işleminde kullanılır.**

 

**1-)**  Öğrenci tablosundaki kayıtları ad sütununa göre artan olarak listelemek için;

 

```
SELECT * FROM ogrenci WHERE ogrenciAdi="Fatma" ORDER BY ogrenciAdi ASC
```

 

**2-)**  Öğrenci tablosundaki kayıtları öğrenci adı sütununa göre azalan olarak listelemek için;

 

```
SELECT * FROM ogrenci WHERE ogrenciAdi="Fatma" ORDER BY ogrenciAdi DESC
```

 

## Is Null, Is Not Null Kullanımı

 

**Belirtilen alanın boş olduğu kayıtları seçmek için is null, boş olmayanları seçmek içinse is not null şeklinde kullanabiliriz.**

 

Öğrenci tablosunda diploma notu alanı boş olan kayıtların tüm alanlarını listelemek için;

 

```
SELECT * FROM ogrenci WHERE diplomanotu Is Null
```

 

Öğrenci tablosunda diploma notu alanı boş olmayan kayıtların tüm alanlarını listeler.

 

```
SELECT * FROM ogrenci WHERE diplomanotu Is Not Null
```

 

Evet arkadaşlar bugünkü yazımızda "[Sql Select](https://www.youtube.com/watch?v=N3FSfTFzyXU)" komutunu ele aldık. Diğer komutlar için takipte kalmayı unutmayınız. Dilerseniz [Insert komutunu](https://webodasi.com/sql-insert-ile-veri-ekleme-islemi/) linke tıklayarak hemen inceleyebilirsiniz. Dilerseniz diğer yazılarımıza [linki](http://webodasi.com/) tıklayarak göz gezdirebilirsiniz :)
