İçindekiler

    Yazıyı Dinle

    Hazır
    Tarayıcınızın yerleşik ses sentezi özelliğini kullanır.

    Yazı Boyutu

    Küçük Aa
    Normal Aa
    Büyük Aa
    Çok Büyük Aa

    Kaydet

    📑

    Bu makaleyi daha sonra okumak için kaydedin

    SQL Notları: JSON Veri Türü ve İşlemleri

    Yazıyı dinlemek için oynat butonuna tıklayın

    MySQL 5.7.8 ve sonraki sürümler, JSON (JavaScript Object Notation) veri türünü destekler. Bu özellik, JSON formatındaki verileri veritabanında saklamayı ve bu veriler üzerinde çeşitli işlemler yapmayı kolaylaştırır. Bu yazıda, MySQL'de JSON veri türünün nasıl kullanılacağını, JSON verilerinin nasıl ekleneceğini, güncelleneceğini ve nasıl çıkarılacağını ele alacağız.

    #### 1. JSON Veri Türü ile Tablo Oluşturma

    JSON veri türü, bir tabloda JSON formatında veri saklamak için kullanılır. Aşağıdaki örnekte, birincil anahtar ve JSON sütunu içeren bir tablo oluşturulmuştur:

    ```sql
    CREATE TABLE table_name (
       id INT NOT NULL AUTO_INCREMENT,
       json_col JSON,
       PRIMARY KEY(id)
    );
    ```

    #### 2. JSON Verisi Ekleme

    JSON verisi, bir tabloya eklenirken JSON formatında bir dize olarak belirtilir. JSON anahtarları çift tırnak içinde olmalıdır.

    ##### Örnek: Basit JSON Verisi Ekleme

    ```sql
    INSERT INTO table_name (json_col)
    VALUES ('{"city": "Galle", "Description": "Best damn city in the world"}');
    ```

    Bu örnekte, `json_col` sütununa bir JSON nesnesi eklenmiştir.

    #### 3. JSON Verisini Güncelleme

    JSON verisini güncellemek için `JSON_ARRAY_APPEND`, `JSON_SET` gibi JSON fonksiyonları kullanılır.

    ##### Örnek: JSON Dizisine Eleman Ekleme

    Aşağıdaki örnekte, `variations` dizisine yeni bir eleman eklenmiştir:

    ```sql
    UPDATE myjson
    SET dict = JSON_ARRAY_APPEND(dict, '$.variations', 'scheveningen')
    WHERE id = 2;
    ```

    **Sonuç:**
    ```
    +---+---+
    | id | dict    |
    +---+---+
    | 2 | {"opening": "Sicilian", "variations": } |
    +---+---+
    ```

    #### 4. JSON Verisini CAST ile Dönüştürme

    JSON formatındaki bir dizeyi JSON veri türüne dönüştürmek için `CAST` fonksiyonu kullanılır.

    ##### Örnek: JSON Dizesini JSON Türüne Dönüştürme

    ```sql
    SELECT CAST('' AS JSON);
    SELECT CAST('{"opening":"Sicilian","variations":}' AS JSON);
    ```

    #### 5. JSON Nesnesi ve Dizisi Oluşturma

    `JSON_OBJECT` ve `JSON_ARRAY` fonksiyonları ile JSON nesneleri ve dizileri oluşturulabilir.

    ##### Örnek: JSON Nesnesi ve Dizisi Oluşturma

    ```sql
    SELECT JSON_OBJECT('key1', col1, 'key2', col2, 'key3', 'col3') AS myobj;
    SELECT JSON_ARRAY(col1, col2, 'col3') AS myarray;
    ```

    Karışık JSON verisi oluşturmak için:

    ```sql
    SELECT JSON_OBJECT("opening", "Sicilian", "variations", JSON_ARRAY("pelikan", "dragon", "najdorf")) AS mymixed;
    ```

    #### 6. JSON Verisinden Değer Çıkarma

    JSON verisinden belirli değerleri çıkarmak için `JSON_EXTRACT` fonksiyonu veya `->`, `->>` operatörleri kullanılır.

    ##### Örnek: JSON Dizisinden Değer Çıkarma

    ```sql
    SET @myjson = CAST('' AS JSON);

    SELECT
       JSON_EXTRACT(@myjson, '$'),
       JSON_EXTRACT(@myjson, '$.label'),
       JSON_EXTRACT(@myjson, '$.*'),
       JSON_EXTRACT(@myjson, '$.*');
    ```

    **Sonuç:**
    ```
    +---+---+
    | JSON_EXTRACT(@myjson, '$') | JSON_EXTRACT(@myjson, '$.label') | JSON_EXTRACT(@myjson, '$.*') | JSON_EXTRACT(@myjson, '$.*') |
    +---+---+
    | {"id": 1, "label": "C"}       |                              |                        | NULL                            |
    +---+---+
    ```

    ##### Örnek: JSON Operatörleri ile Değer Çıkarma

    ```sql
    SELECT
       myjson_col->>'$',
       myjson_col->'$',
       myjson_col->>'$.label',
       myjson_col->>'$.*',
       myjson_col->>'$.*'
    FROM tablename;
    ```

    **Sonuç:**
    ```
    +---+---+
    | myjson_col->>'$' | myjson_col->'$' | myjson_col->>'$.label' | myjson_col->>'$.*' | myjson_col->>'$.*' |
    +---+---+
    | {"id": 1, "label": "C"} | {"id": 1, "label": "C"} | | | NULL |
    +---+---+
    ```

    #### Sonuç

    MySQL'de JSON veri türü, esnek ve güçlü bir şekilde JSON formatındaki verileri saklamayı ve işlemeyi sağlar. JSON verilerini eklemek, güncellemek ve çıkarmak için çeşitli fonksiyonlar ve operatörler kullanılabilir. Bu özellikleri kullanarak, modern uygulamaların ihtiyaç duyduğu esnek veri yapılarını kolayca yönetebilirsiniz. Bir sonraki yazıda görüşmek üzere!

    Önceki Yazı
    SQL Notları: Yönetim ve Performans Ayarları

    MySQL veritabanı yönetimi, performans ayarları ve güvenlik konuları, özell...

    Sonraki Yazı
    SQL Notları: İndeksler ve Tam Metin Arama

    MySQL'de indeksler, tam metin arama ve hazır ifadeler, veritabanı sorguların�...