MySQL

Mysql’de JSON Veri Türü Kullanımı ve Temel Fonksiyonları

MySQL’in 5.7.8 sürümü ve sonrasında eklenen yerel JSON veri türü, veritabanı yönetimine yeni bir boyut kazandırmaktadır. JSON (JavaScript Object Notation), hem insanlar tarafından anlaşılabilir hem de bilgisayarlar tarafından işlenebilir, hafif bir veri alışverişi formatıdır. Bu özellik, özellikle web geliştirmesi ve veritabanı yönetimi alanında çeşitli avantajlar sunmaktadır.

MySQL’in JSON veri türü, depolanan belgelerin geçerliliğini kontrol eder ve bu belgeleri hızlı aramalar için optimize edilmiş bir ikili formatta saklar. JSON belgelerine erişim ve işlemler için temel fonksiyonlar olan JSON_PRETTY(), JSON_KEY() ve JSON_EXTRACT() gibi özellikler, geliştiricilere esneklik ve veri manipülasyonu sağlar. Bu makalede, MySQL’in JSON veri türünün temel özelliklerini ve kullanımını anlamak için bir giriş yapacağız. Veritabanı yönetiminde bu yeni özelliklerle nasıl etkileşime geçilebileceğini keşfetmek, modern web uygulamalarının ve veri tabanı projelerinin geliştirilmesinde önemli bir adımdır.

JSON Nedir?

JSON, “JavaScript Object Notation” kısaltmasının açılımıdır. JSON, insanların okuması ve yazması kolay olan, bilgisayarların ise ayrıştırması ve oluşturması için basit olan hafif bir veri alışverişi formatıdır.

JSON, iki veri yapısı üzerine inşa edilmiştir: nesneler ve diziler.

Nesneler

Bir nesne, süslü parantezlerle {} içine alınmış sırasız bir anahtar-değer çiftlerinin koleksiyonudur. Her anahtar bir dizedir, ardından iki nokta üst üste (:), ve ardından ilişkili değer gelir.

Örneğin:

Diziler

Bir dizi, köşeli parantezlerle [] içine alınmış, sıralı bir değer listesidir. Bir dizi, nesneleri ve diğer dizileri içeren herhangi bir geçerli JSON veri türünü içerebilir.

Örneğin:

Bu örnekte, bir kişinin adını ve yaşını temsil eden iki değeri içeren bir JSON dizisine sahibiz.

JSON, şu veri tiplerini destekler:

  • String: “JSON”
  • Number: 10, 12.25
  • Boolean: true ve false.
  • Null: null

Uygulamada, JSON’u web geliştirmede şu amaçlarla kullanırsınız:

  • Yapılandırma dosyaları için
  • Bir istemci ve bir sunucu arasındaki veri alışverişi için

MySQL JSON

Veri Türüne Giriş MySQL, 5.7.8 sürümünden itibaren RFC 7159 tarafından tanımlanan yerel JSON veri türünü destekler. Yerel JSON veri türü şu avantajları sunar:

  • MySQL, JSON sütununda depolanan JSON belgelerini doğrular ve bunlar geçersizse bir hata bildirir.
  • MySQL, JSON belgelerini hızlı aramalar için optimize edilmiş ikili bir formatta depolar.
  • MySQL, JSON belgeleri için yaklaşık olarak LONGBLOG veya LONGTEXT verileri için kullandığı depolama miktarını kullanır.

Aşağıdaki örnek, bir tablo sütununu JSON veri türü ile nasıl tanımlayacağınızı gösterir:

JSON sütunu NULL değerleri depolayabilir. Ayrıca, MySQL 8.0.13 sürümünden itibaren bir JSON sütunu varsayılan bir değeri kabul edebilir.

JSON sütununu doğrudan dizine almak mümkün değildir. Bunun yerine, JSON sütunundan çıkartılan değerler üzerine bir indeks oluşturmak için bir işlevsel indeks kullanabilirsiniz.

JSON sütunundan veri sorgularken, MySQL optimizer (eniyileştirici), JSON ifadeleri ile eşleşen işlevsel indeksleri arar.

MySQL JSON Veri Türü Örneği JSON veri türünü kullanmanın bir örneğini ele alalım.

1) Bir JSON sütunu içeren bir tablo oluşturma Aşağıdaki ifade, bir JSON sütunu içeren urunler adında yeni bir tablo oluşturur:

urunler tablosu dört sütuna sahiptir:

  • id: Bu, bir ürünü benzersiz olarak tanımlayan otomatik artan bir birincil anahtar sütunudur.
  • ad: Bu sütun, ürünün adını depolar.
  • fiyat: Bu sütun, ürünün fiyatını depolar.
  • ozellikler: Bu sütun, ürünün renkleri ve boyutları gibi özelliklerini depolar.

2) Tabloya JSON Verisi Eklemek Aşağıdaki ifade, products tablosuna JSON verisi içeren yeni bir satır ekler:

Bu örnekte, bir yeni satırı urunler tablosuna ekledik. Ozellikler sütununun değeri, aşağıdaki formata sahip bir JSON belgesidir:

Bu JSON belgesi, ürünün renk ve boyut gibi özelliklerini temsil eder. Bu değer, ozellikler sütununa eklenmiştir ve veritabanında JSON formatında saklanır.

Ve JSON belgesini tek tırnak içine (”) koyarız.

İfade çalıştığında, MySQL şu adımları gerçekleştirir:

İlk olarak, JSON belgesini geçerlilik açısından doğrular. İkinci olarak, JSON dizesini ikili formata çevirir ve onu JSON sütununda saklar.

3) Tablodan JSON verisi sorgulama Aşağıdaki sorgu, urunler tablosundan veri alır:

Bu sorgu, urunler tablosundan “ad” ve “ozellikler” sütunlarını seçer. Burada “ad”, ürünün adını temsil ederken, “ozellikler” ise ürünün renk ve boyut gibi özelliklerini içeren JSON verisini temsil eder.

Çıktı:

4) JSON belgesinin anahtarlarını almak Aşağıdaki örnekte, JSON belgesinin tüm anahtarlarını listeleyen JSON_KEYS() fonksiyonu kullanılır:

Çıktı:

Bu örnekte, JSON_KEYS() fonksiyonunu kullanarak ozellikler sütununda depolanan JSON belgesinin tüm anahtarlarını alıyoruz.

Bu fonksiyon, JSON belgesinin tüm anahtarlarını içeren bir JSON dizisi döndürür.

5) JSON belgesinden veri çıkarma JSON belgesi içinde belirli bir konumu belirtmek için JSON yol ifadesini kullanırsınız. Bir yol ifadesi, belirli verilere erişmek için bir JSON belgesinin yapısı üzerinde gezinmenizi sağlar.

  • Güncel belgeyi temsil etmek için dolar işareti ($) kullanın.
  • Tam konumu belirtmek için bir anahtar veya dizi indisini kullanın.

Örneğin, ürünün ilk rengini almak için aşağıdaki yolu kullanırsınız:

Yukarıdaki yoldan JSON belgesinden ilk rengi çıkarmak için JSON_EXTRACT() fonksiyonunu kullanabilirsiniz. Örneğin:

Çıktı:

Özet

MySQL, 5.7.8 sürümünden itibaren yerel JSON veri tiplerini destekler.

MySQL, hızlı aramalar için optimize edilmiş ikili bir formatta JSON’u depolar.

JSON belgelerini biçimlendirmek için JSON_PRETTY() fonksiyonunu kullanın.

JSON belgesinin tüm anahtarlarını almak için JSON_KEY() fonksiyonunu kullanın.

JSON belgesinden veri çıkarmak için JSON_EXTRACT() fonksiyonunu kullanın.

Yorum Yap

Yorum yapmak için tıklayın