MySQL'de Metin İşlemleri: Fonksiyonlar ve Kullanımları

MySQL'de Metin İşlemleri: Fonksiyonlar ve Kullanımları

MySQL veritabanında metin işlemleri yapmak için kullanabileceğiniz fonksiyonlar hakkında bilgi alacağınız bu makalede CHAR_LENGTH, UPPER, LOWER, CONCAT, CONCAT_WS ve GROUP_CONCAT fonksiyonları ele alınmaktadır CHAR_LENGTH fonksiyonu, metin içindeki karakter sayısını hesaplamak için kullanılır UPPER fonksiyonu, metin içindeki tüm harfleri büyük harflere dönüştürürken LOWER fonksiyonu, metin içindeki tüm harfleri küçük harflere dönüştürmektedir CONCAT fonksiyonu, birden fazla metni virgülle ayrılarak birleştirirken CONCAT_WS fonksiyonu, belirtilen bir ayraç kullanarak metinleri birleştirir GROUP_CONCAT fonksiyonu ise toplanan verileri birleştirerek sonuçları döndürmek için kullanılır Bu fonksiyonların kullanımları ve örnekleri makalede detaylı bir şekilde anlatılmaktadır

MySQL'de Metin İşlemleri: Fonksiyonlar ve Kullanımları

Merhaba değerli okuyucularımız, bu makalemizde MySQL veritabanında metin işlemleri yapmak için kullanabileceğiniz fonksiyonlar ve bu fonksiyonların kullanımlarını size anlatacağız.

Veritabanında metinlerle çalışmak oldukça önemli bir konudur. Özellikle web uygulamalarında veritabanından alınacak olan metinlerin düzenlenmesi sık sık kullanılır. MySQL veritabanında metin işlemleri yapmak için birçok fonksiyon bulunmaktadır.

Bu fonksiyonların kullanımlarını örneklerle açıklayarak tek tek ele alacağız. Fonksiyonların kullanımı ve örnekleriyle birlikte, metin işlemlerinde yapabileceğiniz birçok işlem hakkında fikir sahibi olacaksınız.


CHAR_LENGTH() Fonksiyonu

CHAR_LENGTH() fonksiyonu, MySQL veritabanı yönetim sistemi içerisinde metin içerisindeki karakter sayısını bulmak için kullanılır. Bu fonksiyon başka bir deyişle LENGTH() fonksiyonu olarak da bilinir. Bu fonksiyon, yazılım geliştiriciler tarafından en sık kullanılan fonksiyonlar arasında yer almaktadır.

CHAR_LENGTH() fonksiyonunun kullanımı oldukça basittir. Fonksiyon parantezler içerisine içeriği kontrol edilmek istenen metin girilir. Fonksiyon sonucunda döndürülen değer, metnin karakter sayısıdır. Örneğin, CHAR_LENGTH("Merhaba Dünya") fonksiyon çağrısı sonucunda 13 değeri döndürür, çünkü metin içerisinde toplam 13 karakter bulunmaktadır.

Metin CHAR_LENGTH()
Merhaba 7
Dünya 5
MySQL 5
CHAR_LENGTH() 13

Yukarıdaki örnekte, CHAR_LENGTH() fonksiyonu ile metin içerisindeki her kelimenin karakter sayısı ayrı ayrı hesaplanmıştır. Bu fonksiyon kullanılarak metin uzunluğunu hesaplamak ve gerektiği gibi işlemek oldukça kolaydır.


UPPER() ve LOWER() Fonksiyonları

MySQL'de metin işlemleri yapmak için kullanabileceğiniz fonksiyonlardan biri de UPPER() ve LOWER() fonksiyonlarıdır. Bu fonksiyonlar, metin içerisindeki tüm harfleri büyük veya küçük harflere dönüştürmek için kullanılır.

UPPER() fonksiyonu, metin içerisindeki tüm harfleri büyük harflere dönüştürür. Örneğin, "merhaba dünya" ifadesi UPPER() fonksiyonu ile "MERHABA DÜNYA" şekline dönüştürülebilir.

LOWER() fonksiyonu ise metin içerisindeki tüm harfleri küçük harflere dönüştürür. Örneğin, "MERHABA DÜNYA" ifadesi LOWER() fonksiyonu ile "merhaba dünya" şekline dönüştürülebilir.

UPPER() ve LOWER() fonksiyonları ayrıca, diğer fonksiyonlarla birlikte kullanılabilir. Örneğin, CONCAT() fonksiyonu ile birleştirilen metin içerisindeki harfler UPPER() veya LOWER() fonksiyonları ile dönüştürülebilir.

Örnek Kullanım Sonuç
SELECT UPPER("merhaba dünya"); MERHABA DÜNYA
SELECT LOWER("MERHABA DÜNYA"); merhaba dünya
SELECT CONCAT(UPPER("merhaba "), LOWER("DÜNYA")); MERHABA dünya

CONCAT() Fonksiyonu

MySQL'de metin işlemleri yaparken, metinleri birleştirmek için kullanışlı bir fonksiyon olan CONCAT() fonksiyonu oldukça işlevseldir. Bu fonksiyon, birden fazla metni virgülle ayrılarak parantez içerisinde belirtilen sıraya göre birleştirir. Kullanımı oldukça kolaydır ve örnekleri ile birlikte daha da anlaşılır hale gelir.

Syntax: CONCAT(string1, string2, ...)
Parametreler: string1, string2, ...: Birleştirilecek metinler
Dönen Değer: Birleştirilmiş metin

Örnekler:

  • CONCAT('Merhaba', 'Dünya') -> 'MerhabaDünya'
  • CONCAT('Bu', 'bir', 'örnektir') -> 'Bubirörnektir'
  • CONCAT('Satır', '\n', 'değiştirme') -> 'Satır
    değiştirme'

Bu örneklerde görüldüğü gibi, CONCAT() fonksiyonu parantez içerisinde belirtilen her bir metni birleştirir. Ayrıca, metinler arasına yeni satır karakteri ve HTML
etiketi ekleyerek farklı birleştirme yöntemleri de kullanabilirsiniz.


CONCAT_WS() Fonksiyonu

MySQL'de metin işlemleri yapmak için kullanabileceğiniz fonksiyonlardan biri de CONCAT_WS() fonksiyonudur. Bu fonksiyon, belirtilen bir ayraç kullanılarak metinleri birleştirmek için kullanılır. CONCAT_WS() fonksiyonu, diğer CONCAT() fonksiyonundan farklı olarak, ayracı ilk parametre olarak alır ve bu ayracı metinlerin arasına ekler.

Kullanımı oldukça basittir. İlk parametre ayracı belirlerken, diğer parametreler birleştirilecek metinleri belirler. Örneğin, CONCAT_WS('-', '12', '05', '1997') cümlesi kullanılarak "12-05-1997" şeklinde bir sonuç elde edilir.

Bu fonksiyon, metinleri birleştirirken ayracın kullanımını zorunlu kılar. Bu sayede, birleştirilen metinlerin birbirinden ayırt edilmesi sağlanır. Ayraç kullanımında alternatif bir yöntem de mümkündür. Bu yöntemde, ayracın sonuna değil başına yerleştirilmesidir. Bu durumda, fonksiyonun isminin sonuna "_ws" eklenir. Örneğin, CONCAT_WS('_', 'örnek', 'metin', 'birleştirme') cümlesi kullanılarak "örnek_metin_birleştirme" şekilde bir sonuç elde edilir.


GROUP_CONCAT() Fonksiyonu

MySQL'de veritabanında toplanan verileri birleştirmek için GROUP_CONCAT() fonksiyonu kullanılır. Veriler, SQL sorguları ile belirlenen sütun adlarına göre gruplandırılır ve sonuçlar birleştirilir. Bu fonksiyon, birden fazla sütunun tek bir sonuçta birleştirilmesi gerektiği durumlarda oldukça faydalıdır.

GROUP_CONCAT() fonksiyonunun kullanımı oldukça basittir. Aşağıdaki örnek fonksiyon kullanımını açıklamaktadır:

Örnek Kod Açıklama
SELECT GROUP_CONCAT(column_name SEPARATOR 'separator') FROM table_name; Veritabanında belirtilen sütunlardaki verileri belirtilen ayraç ile birleştirir.

Yukarıdaki örnekte SEPARATOR, verilerin birleştirilmesi için kullanılacak ayraçtır. Bu ayraç, boşluk, virgül, noktalı virgül veya başka bir karakter olabilir. Ayrıca, bu fonksiyonun kullanımında, herhangi bir sütun adı belirtilmediğinde, veritabanındaki tüm sütunlardaki veriler birleştirilir. Ancak, bu kullanım bazen performans sorunlarına yol açabilir, bu nedenle sadece gerekli sütunlar kullanılmalıdır.


SUBSTRING() Fonksiyonu

MySQL'deki SUBSTRING() fonksiyonu, bir metin içerisinde belirli karakterleri ya da kelimeleri belirleyerek almak için kullanılan bir fonksiyondur. Bu fonksiyon, metin içerisindeki belirli bir karakter dizisini, başlangıç ve bitiş parametreleri belirtilerek kırpabilirsiniz. Örneğin, "Hello World" metnindeki "World" kelimesini almak için "SUBSTRING('Hello World', 7)" kullanabilirsiniz.

Bu fonksiyonun başka bir kullanımı da, metindeki belirli bir karakterden itibaren tüm karakterlerin alınmasıdır. Örneğin, "Hello World" metnindeki "World" kelimesi yerine "World!" kelimesini almak için "SUBSTRING('Hello World!', 7, 6)" kullanabilirsiniz. Burada 7, başlangıç pozisyonunu belirtirken, 6 ise alınacak karakter sayısını belirtir.

Ayrıca, SUBSTRING_INDEX() fonksiyonu da mevcuttur ve bir karakter dizisinde belirli bir ayraca ("delimiter"), belirtilen bölümü alır. Örneğin, "Hello/World/!" karakter dizisindeki sadece "Hello" kelimesini almak için "SUBSTRING_INDEX('Hello/World/!', '/', 1)" kullanabilirsiniz. Buradaki "/" ifadesi ayraç olarak belirtilirken, 1 ise ilk bölümü almak için kullanılan parametredir.

SUBSTRING() fonksiyonu, karakter dizilerindeki belirli bölümleri alarak veri işleme sürecini kolaylaştırır. Bu fonksiyonu kullanarak bir metin kutusu içindeki işlevselliği artırabilir ve gereksiz harcama yapmaktan kaçınabilirsiniz.


REGEXP Operatörü

MySQL'de metin işlemleri yaparken kullanabileceğiniz birçok fonksiyon bulunmaktadır. Bu fonksiyonlardan birisi de REGEXP operatörüdür. REGEXP operatörü, metin içerisinde düzenli ifadeler kullanarak arama yapmanızı sağlar.

REGEXP operatörü kullanırken, arama yapmak istediğiniz kelimenin önüne ve arkasına kullanacağınız belirli karakterleri belirlemelisiniz. Örneğin, belirli bir kelimenin herhangi bir yerinde geçip geçmediğini aramak için, 'REGEXP' anahtar sözcüğünden sonra sorgulama kelimesini yazmanız gerekmektedir.

Sadece belirli bir şekilde düzenlenmiş metinleri aramak isterseniz, 'REGEXP' operatörünü kullanarak bu özellikten yararlanabilirsiniz. Örneğin, e-posta adresi aramanız gerekiyorsa, 'REGEXP' operatörü kullanarak '@' karakterini belirtebilirsiniz.

Düzenli İfade Açıklama
[[:digit:]] Rakamlar
[[:alpha:]] Harfler
[[:alnum:]] Rakamlar ve harfler

Ayrıca, 'NOT REGEXP' operatörü kullanarak belirli kelimeleri haricinde arama yapabilirsiniz. Örneğin, '@gmail.com' haricindeki e-postaları aramak için 'NOT REGEXP' operatörünü kullanabilirsiniz.

REGEXP operatörü, metin işlemlerinde oldukça yararlı bir arama yöntemidir. Ancak, düzenli ifadeleri doğru bir şekilde kullanmayı öğrenmek için zaman ayırmanız gerekebilir.


LIKE Operatörü

MySQL, metin işlemleri yapmak için pek çok farklı fonksiyon sunar. Bunlardan bir tanesi de LIKE operatörüdür. LIKE operatörü, metin içerisinde belirli kelime veya karakterlerin aranmasını sağlar. Bu operatör, WHERE ifadesi içerisinde kullanılabilir.

LIKE operatörünün kullanımı oldukça kolaydır. Aranacak kelimenin başına ve sonuna % işareti konulur. % işareti, metnin istediğimiz kısmının önünde veya arkasında olabilecek herhangi bir karakteri temsil eder. Örneğin;

Kod Açıklama
SELECT * FROM musteriler WHERE ad LIKE '%can%'; Adı içerisinde "can" geçen müşterileri getirir.
SELECT * FROM musteriler WHERE adres LIKE '%İstanbul%'; Adresinde "İstanbul" kelimesi geçen müşterileri getirir.
SELECT * FROM musteriler WHERE ad LIKE '%can%el%'; Adı içerisinde "can" ve "el" kelimeleri geçen müşterileri getirir.

Yukarıdaki örneklerde görüldüğü gibi, LIKE operatörü metin içerisinde herhangi bir yerde bulunan belirli kelime veya karakterleri aramak için kullanılır. Bu operatör, doğru şekilde kullanıldığında oldukça yararlı bir arama fonksiyonudur.


CONVERT() Fonksiyonu

MySQL, bir veritabanında metin işlemi yapmak için çeşitli fonksiyonlar sunar. Bunlardan biri de CONVERT() fonksiyonudur. Bu fonksiyon, metin içerisindeki karakter seti dönüşümleri için kullanılır. Özellikle farklı dillerdeki karakterlerle çalışırken sıkça ihtiyaç duyulan bir fonksiyondur.

CONVERT() fonksiyonu, üç parametre alır: dönüştürülecek metin, hedef karakter seti ve kaynak karakter seti. Örneğin, utf8 karakter setindeki bir metni latin1 karakter setine çevirmek için şu kod kullanılabilir:

Örnek kod: SELECT CONVERT('Merhaba Dünya', CHAR(latin1), CHAR(utf8))
Sonuç: Merhaba Dünya

Bu örnekte, CONVERT() fonksiyonu 'Merhaba Dünya' metnini utf8 karakter setinden latin1 karakter setine çevirir. Fonksiyonda kullanılan CHAR() fonksiyonu ise ilgili karakter setlerinin kodlarını döndürür.

CONVERT() fonksiyonu ayrıca, COLLATE deyimi gibi diğer metin işlemi fonksiyonları ile birlikte kullanılarak daha gelişmiş işlemler yapmak için de kullanılabilir. Örneğin, bir veritabanındaki tüm metinleri belirli bir karakter setine dönüştürmek için aşağıdaki kod kullanılabilir:

  • ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Bu kod, 'my_table' adlı tablodaki tüm metinleri utf8mb4 karakter setinde ve utf8mb4_general_ci sıralama düzeninde yeniden kodlar.

CONVERT() fonksiyonu, metin işlemlerinde sık sık kullanılan bir fonksiyondur ve birçok farklı senaryoda kullanılabilir. Bu nedenle, MySQL'de metin işlemleri yaparken bu fonksiyonun kullanımını öğrenmek faydalı olacaktır.


COLLATE Deyimi

MySQL'de metin işlemlerini yaparken, bazı durumlarda metinlerin sıralama düzeni veya karakter seti belirlenmesi gerekebilir. Bu noktada COLLATE deyimi kullanılmaktadır. COLLATE, metin işlemleri sırasında karakter seti ve sıralama düzenini belirlemek için kullanılan bir deyimdir.

Örneğin, Türkçe karakterler içeren bir sorguda, UTF8 karakter seti kullanılırken, sıralama düzeni BELGELERDE tanımlandığı şekilde ayarlanmalıdır. COLLATE deyimi ile, metinlerin sıralama düzeni belirtilebilir ve arama sonuçlarının doğru şekilde elde edilmesi sağlanabilir.

COLLATE deyimi, sorgu içinde kullanılan belirli bir sütunun karakter seti ve sıralama düzenini belirlemek için de kullanılabilir. Örneğin, bir tabloda farklı dil ve karakter setlerinde veriler tutuluyorsa, verilerin doğru şekilde sıralanması COLLATE deyimi ile sağlanabilir.

COLLATE Değerleri Açıklaması
utf8_general_ci UTF8 karakter seti için genel olarak kullanılan sıralama düzenidir. Büyük/küçük harf duyarlı değildir.
utf8_unicode_ci UTF8 karakter seti için daha doğru bir sıralama düzenidir. Büyük/küçük harf duyarlı değildir.

Yukarıdaki tabloda, genel olarak kullanılan utf8_general_ci ve daha doğru bir sıralama düzeni sağlayan utf8_unicode_ci değerleri yer almaktadır. COLLATE deyimi kullanımı örneklerine göre değişiklik gösterebilir.