SQL Notları: String İşlemleri

MySQL, metin verileri üzerinde çeşitli işlemler yapmak için birçok fonksiyon sunar. Bu bölümde, MySQL’deki temel string işlemlerini ve bu işlemlerin nasıl kullanıldığını inceleyeceğiz.

### 1. **String Uzunluğu: `LENGTH()` ve `CHAR_LENGTH()`**

– **`LENGTH(str)`:** Stringin byte cinsinden uzunluğunu döner. UTF-8 gibi çok byte’lı karakter setlerinde, karakter sayısından farklı olabilir.
 
 **Örnek Kullanım:**
 “`sql
 SELECT LENGTH(‘föbbar’); — 8
 “`

– **`CHAR_LENGTH(str)`:** Stringin karakter sayısını döner. UTF-8 gibi çok byte’lı karakter setlerinde bile doğru karakter sayısını verir.
 
 **Örnek Kullanım:**
 “`sql
 SELECT CHAR_LENGTH(‘föbbar’); — 6
 “`

### 2. **Alt String Çıkarma: `SUBSTRING()`**

– **`SUBSTRING(str, start_position, length)`:** Belirtilen pozisyondan başlayarak belirli bir uzunlukta alt string döner.
 
 **Örnek Kullanım:**
 “`sql
 SELECT SUBSTRING(‘foobarbaz’, 4, 3); — ‘bar’
 “`

 Negatif indeksleme de kullanılabilir:
 “`sql
 SELECT SUBSTRING(‘foobarbaz’, -6, 3); — ‘bar’
 “`

### 3. **Büyük/Küçük Harf Dönüşümü: `UPPER()` ve `LOWER()`**

– **`UPPER(str)`:** Stringi büyük harfe çevirir.
 
 **Örnek Kullanım:**
 “`sql
 SELECT UPPER(‘fooBar’); — ‘FOOBAR’
 “`

– **`LOWER(str)`:** Stringi küçük harfe çevirir.
 
 **Örnek Kullanım:**
 “`sql
 SELECT LOWER(‘fooBar’); — ‘foobar’
 “`

### 4. **String Değiştirme: `REPLACE()`**

– **`REPLACE(str, from_str, to_str)`:** String içindeki belirli bir alt stringi başka bir string ile değiştirir.
 
 **Örnek Kullanım:**
 “`sql
 SELECT REPLACE(‘foobarbaz’, ‘bar’, ‘BAR’); — ‘fooBARbaz’
 “`

### 5. **String Birleştirme: `CONCAT()` ve `CONCAT_WS()`**

– **`CONCAT(str1, str2, …)`:** Birden fazla stringi birleştirir.
 
 **Örnek Kullanım:**
 “`sql
 SELECT CONCAT(‘foo’, ‘bar’, ‘baz’); — ‘foobarbaz’
 “`

– **`CONCAT_WS(separator, str1, str2, …)`:** Birden fazla stringi belirtilen bir ayraç ile birleştirir.
 
 **Örnek Kullanım:**
 “`sql
 SELECT CONCAT_WS(‘-‘, ‘foo’, ‘bar’, ‘baz’); — ‘foo-bar-baz’
 “`

### 6. **String Arama: `FIND_IN_SET()`**

– **`FIND_IN_SET(str, strlist)`:** Bir stringin, virgülle ayrılmış bir string listesindeki pozisyonunu döner. Bulunamazsa 0 döner.
 
 **Örnek Kullanım:**
 “`sql
 SELECT FIND_IN_SET(‘b’, ‘a,b,c’); — 2
 SELECT FIND_IN_SET(‘d’, ‘a,b,c’); — 0
 “`

### 7. **String Ters Çevirme: `REVERSE()`**

– **`REVERSE(str)`:** Stringi ters çevirir.
 
 **Örnek Kullanım:**
 “`sql
 SELECT REVERSE(‘foobar’); — ‘raboof’
 “`

### 8. **String Trimleme: `TRIM()`, `LTRIM()`, `RTRIM()`**

– **`TRIM(str)`:** Stringin başındaki ve sonundaki boşlukları kaldırır.
 
 **Örnek Kullanım:**
 “`sql
 SELECT TRIM(‘  foobar  ‘); — ‘foobar’
 “`

– **`LTRIM(str)`:** Stringin başındaki boşlukları kaldırır.
 
 **Örnek Kullanım:**
 “`sql
 SELECT LTRIM(‘  foobar’); — ‘foobar’
 “`

– **`RTRIM(str)`:** Stringin sonundaki boşlukları kaldırır.
 
 **Örnek Kullanım:**
 “`sql
 SELECT RTRIM(‘foobar  ‘); — ‘foobar’
 “`

### 9. **String Formatlama: `FORMAT()`**

– **`FORMAT(number, decimal_places)`:** Bir sayıyı belirtilen ondalık basamak sayısına göre formatlar.
 
 **Örnek Kullanım:**
 “`sql
 SELECT FORMAT(123456.789, 2); — ‘123,456.79’
 “`

### 10. **String Padleme: `LPAD()` ve `RPAD()`**

– **`LPAD(str, length, pad_str)`:** Stringi belirtilen uzunluğa kadar sol tarafa belirtilen string ile doldurur.
 
 **Örnek Kullanım:**
 “`sql
 SELECT LPAD(‘foobar’, 10, ‘x’); — ‘xxxxfoobar’
 “`

– **`RPAD(str, length, pad_str)`:** Stringi belirtilen uzunluğa kadar sağ tarafa belirtilen string ile doldurur.
 
 **Örnek Kullanım:**
 “`sql
 SELECT RPAD(‘foobar’, 10, ‘x’); — ‘foobarxxxx’
 “`

Bu bilgilerle, MySQL’de string işlemlerini nasıl gerçekleştireceğinizi daha iyi anlayabilirsiniz. Bir sonraki yazıda, tarih ve saat işlemleri gibi daha gelişmiş SQL konularına değineceğiz.