SQL Notları: Tarih ve Saat İşlemleri
MySQL'de tarih ve saat işlemlerini nasıl gerçekleştireceğinizi daha iyi anl...
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.