MYSQL adalah sistem manajemen basis data relasional sumber terbuka dan dalam artikel ini, kita akan melihat cara kerjanya dengan Tipe Data JSON. Kita akan melihat cara memasukkan tipe data JSON ke dalam tabel MYSQL dan kita juga akan melihat berbagai fungsi yang tersedia di MYSQL untuk lebih lanjut memilih dan menanyakan dokumen atau objek JSON. Dari versi 5. 7. 8 kita bahkan dapat menyimpan data JSON secara asli dan MYSQL memiliki banyak tipe data dan fungsi untuk mengelolanya
Memulai dengan JSON
JSON atau JavaScript Object Notation adalah format untuk pertukaran data yang biasanya terdiri dari objek, array, string, angka, dan Boolean. Format ini juga bebas bahasa, jadi tidak masalah jika Anda menggunakan java, SQL, kotlin, ruby, atau bahasa lain yang kompatibel dengannya. Untuk mengetahui informasi lebih lanjut tentang format JSON Anda dapat merujuk ke https. // www. json. org/json-en. html. Pada artikel ini, kita akan melihat bagaimana MYSQL berinteraksi dengan JSON dan fungsi apa saja yang tersedia. Berikut adalah tabel yang kami gunakan untuk tujuan demonstrasi untuk menunjukkan penggunaan MSQL untuk JSON
Mulai Kursus Ilmu Data Gratis Anda
Hadoop, Ilmu Data, Statistik & lainnya
Kemudian kita akan menambahkan kolom dengan tipe JSON untuk menyimpan data native JSON. Basis data disiapkan di phpMyAdmin dan untuk kemudahan akses Datagrip dari Jetbrains digunakan untuk menanyakan dan mengubah basis data
Paket Ilmu Data Semua dalam Satu(360+ Kursus, 50+ proyek)
Harga
Lihat Kursus
360+ Kursus Daring. 50+ proyek. 1500+ Jam. Sertifikat yang Dapat Diverifikasi. Akses Seumur Hidup
4. 7 (85.802 peringkat)
Pertama, kita akan menambahkan kolom person_data bertipe JSON menggunakan query berikut
alter table people
add column person_data JSON
Kemudian kita akan menggunakan pernyataan insert berikut. Sebelum menggunakannya pastikan person_id adalah primary key dan juga autoincrement
insert into people(first_name, last_name, person_data)
values ('Clark', 'Kent', '{"identity": "Superman"}'),
('Bruce', 'Wayne', '{"identity": "Batman"}'),
('Bruce', 'Banner', '{"identity": "Hulk"}')_
Dalam kueri ini kami menambahkan nama depan, nama belakang, dan person_data yang merupakan objek JSON dan kami menambahkan representasi string darinya yang biasanya dalam bentuk pasangan kunci dan nilai. Nilai dapat terdiri dari nol, benar atau salah tetapi semua harus dalam huruf kecil dan sensitif huruf sedangkan mysql tidak peka huruf besar kecil seperti Pilih NULL, Null, null ini semua akan berfungsi dengan baik
Seperti yang bisa kita lihat, data kita ditambahkan dalam bentuk JSON
Pertanyaan selanjutnya adalah bagaimana kita dapat memilih data yang diperlukan dari seluruh data json, untuk ini ada banyak metode pembantu di MYSQL yang pertama adalah JSON_EXTRACT
Sintaksis.
JSON_EXTRACT(json_doc, path[, path] ...)
JSON_UNQUOTE(json_val)
Kode
select person_data,
JSON_EXTRACT(person_data, '$.identity') as secret_id,
JSON_UNQUOTE(JSON_EXTRACT(person_data, '$.identity')) as super_secret_id
from people
where JSON_UNQUOTE(JSON_EXTRACT(person_data, '$.identity')) = "Superman";
Keluaran
Pada query ini kita memilih person_data yang berformat json kemudian kita menggunakan metode JSON_EXTRACT untuk mendapatkan nilai dari properti yang teridentifikasi menggunakan simbol dollar. Dibutuhkan 2 parameter nama kolom atau ekspresi dan posisi atau properti. Perhatikan bahwa hasilnya dalam tanda kutip. Jadi, kita dapat menggunakan JSON_UNQUOTE dan memberikan nilai yang diekstraksi untuk mendapatkan nilai yang tidak dikutip. Kita bahkan dapat menggunakannya dalam klausa where untuk membandingkan nilai hasil
Buat Array dan Objek Menggunakan MYSQL
Sintaksis
JSON_ARRAY([val[, val] ...])
JSON_OBJECT([key, val[, key, val] ...])
JSON_TYPE(json_val)_
Kode
select json_array(1, true, "name", "2009-09-12") as array,
json_object("a", 1, "b", "Steve", "c", true, "d", "null") as object,
json_type(person_data) as type
from people;
Keluaran
Dalam kueri ini kami telah menggunakan 3 fungsi, JSON_ARRAY akan mengambil semua tipe json yang valid dan membuat array seperti yang Anda lihat dengan tanda kurung siku di hasilnya. JSON_OBJECT akan mengambil pasangan kunci dan nilai yang dipisahkan koma dan memastikan bahwa kunci tersebut selalu dalam tanda kutip. Kemudian JSON_TYPE akan memberikan tipe data yang disimpan dan dalam hal ini kita telah menyimpan seluruh objek json
Menggabungkan Fungsi di MYSQL untuk JSON
Menggabungkan fungsi di mysql untuk json dijelaskan di bawah ini
1. Gabungkan Tambalan
Sintaksis
JSON_MERGE_PATCH(json_doc, json_doc[, json_doc] ...)_
Kode
select json_merge_patch('{"name":"Steve"}', '{"name":"Steve"}');
Keluaran
Kode
select json_merge_patch('{"name":"Steve"}', '{"name":"Dave"}');_
Keluaran
Dalam 2 kueri ini kami telah menggunakan fungsi JSON_MERGE_PATCH yang akan menggabungkan nilai yang ada dengan nilai baru dengan menambal atau menggantinya. Seperti yang dapat kita lihat pada kueri pertama nilainya sama dan pada kueri kedua nilai baru diganti
2. Gabungkan Pertahankan
Sintaksis
JSON_MERGE_PRESERVE(json_doc, json_doc[, json_doc] ...)_
Kode
insert into people(first_name, last_name, person_data)
values ('Clark', 'Kent', '{"identity": "Superman"}'),
('Bruce', 'Wayne', '{"identity": "Batman"}'),
('Bruce', 'Banner', '{"identity": "Hulk"}')_0
Keluaran
Kode
insert into people(first_name, last_name, person_data)
values ('Clark', 'Kent', '{"identity": "Superman"}'),
('Bruce', 'Wayne', '{"identity": "Batman"}'),
('Bruce', 'Banner', '{"identity": "Hulk"}')_1
Keluaran
Dalam 2 kueri ini, kami mempertahankan nilai lama bersama dengan nilai baru seperti yang dapat kita lihat di kueri pertama, nilainya digandakan dan di kueri kedua nilai baru ditambahkan
Cari Nilai JSON
Sintaksis
insert into people(first_name, last_name, person_data)
values ('Clark', 'Kent', '{"identity": "Superman"}'),
('Bruce', 'Wayne', '{"identity": "Batman"}'),
('Bruce', 'Banner', '{"identity": "Hulk"}')_2
Kode
insert into people(first_name, last_name, person_data)
values ('Clark', 'Kent', '{"identity": "Superman"}'),
('Bruce', 'Wayne', '{"identity": "Batman"}'),
('Bruce', 'Banner', '{"identity": "Hulk"}')_3
Keluaran
Dalam kueri ini, kami telah membuat satu string uji yang mewakili objek JSON dan variabel lain yang ingin kami cari di objek tersebut. Kemudian kita telah menggunakan fungsi JSON_CONTAINS yang mengambil 3 parameter, yang pertama adalah target pencarian, kemudian nilai pencarian, dan kemudian properti. Nilai pengembalian adalah 1 jika ditemukan atau 0 jika tidak ditemukan. Nilai null dikembalikan jika ada argumen yang null atau jika jalurnya tidak valid
Sintaksis
insert into people(first_name, last_name, person_data)
values ('Clark', 'Kent', '{"identity": "Superman"}'),
('Bruce', 'Wayne', '{"identity": "Batman"}'),
('Bruce', 'Banner', '{"identity": "Hulk"}')_4
Kode
insert into people(first_name, last_name, person_data)
values ('Clark', 'Kent', '{"identity": "Superman"}'),
('Bruce', 'Wayne', '{"identity": "Batman"}'),
('Bruce', 'Banner', '{"identity": "Hulk"}')_5
Keluaran
Kode
insert into people(first_name, last_name, person_data)
values ('Clark', 'Kent', '{"identity": "Superman"}'),
('Bruce', 'Wayne', '{"identity": "Batman"}'),
('Bruce', 'Banner', '{"identity": "Hulk"}')_6
Keluaran
Dalam kueri ini kami menggunakan JSON_CONTAINS_PATH yang mengambil input json dan bergantung pada satu atau semua argumen, ini akan menentukan apakah semua jalur ada atau salah satu jalur ada dan mengembalikan 1 atau 0. Pada kueri pertama, kami telah menggunakan semua parameter dan hanya satu yang ada sehingga mengembalikan 0 dan pada kueri kedua, kami menggunakan satu parameter dan satu jalur yang ada sehingga mengembalikan 1
Kesimpulan – Tipe Data MySQL JSON
Mudah-mudahan, sekarang Anda tahu cara menggunakan data JSON dengan database MYSQL, kami telah belajar cara memasukkan nilai JSON dalam tabel MYSQL bersama dengan itu kami telah mempelajari berbagai metode pembantu yang memudahkan untuk memanipulasi nilai JSON yang disimpan
Artikel yang Direkomendasikan
Ini adalah panduan untuk Tipe Data MYSQL JSON. Disini kita juga membahas pengenalan dan membuat array dan objek menggunakan mysql beserta penjelasannya. Anda juga dapat melihat artikel berikut untuk mempelajari lebih lanjut –