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.