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.
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.