MySQL mendukung tipe data JSON asli yang mendukung validasi otomatis dan penyimpanan yang dioptimalkan serta akses dokumen JSON. Meskipun data JSON sebaiknya disimpan dalam database NoSQL seperti MongoDB, Anda mungkin masih menemukan tabel dengan data JSON dari waktu ke waktu. Di bagian pertama postingan ini, kami akan memperkenalkan cara mengekstrak data dari kolom JSON di MySQL dengan pernyataan sederhana. Dan di bagian kedua, kami akan memperkenalkan cara menggabungkan data dari tabel MySQL ke dalam array atau objek JSON yang kemudian dapat digunakan dengan nyaman di aplikasi Anda Show Sistem yang akan disiapkan mirip dengan yang diperkenalkan di artikel sebelumnya tentang cara mengeksekusi kueri SQL dengan Python. Jika Anda telah mengatur sistem sesuai dengan petunjuk di artikel itu, Anda dapat melanjutkan ke bagian berikutnya. Jika tidak, Anda dapat mengikuti petunjuk yang disederhanakan di bawah ini untuk mengatur sistem Anda. Untuk penjelasan rinci tentang perintah dan opsi, silakan merujuk ke artikel sebelumnya Pada dasarnya, kami akan memulai server MySQL lokal dalam wadah Docker Anda dapat menjalankan kueri SQL di konsol yang dimulai di atas secara langsung. Alternatifnya, jika Anda lebih suka menggunakan antarmuka grafis, Anda dapat menginstal dan menggunakan DBeaver, yang merupakan manajer basis data grafis yang bagus untuk semua jenis basis data. Sangat layak dicoba jika Anda kesulitan dengan meja kerja MySQL. Untuk detail lebih lanjut tentang cara memasang dan menyiapkan DBeaver, artikel ini memiliki ringkasan singkat namun bermanfaat Mari kita jelajahi fungsi dan operator umum MySQL yang dapat digunakan untuk mengekstrak data dari kolom JSON Ada dua jenis utama nilai JSON di MySQL
Array dan objek JSON dapat disarangkan satu sama lain, seperti yang akan kita lihat nanti Kita dapat menggunakan fungsi JSON_EXTRACT(json_doc, path) Untuk larik JSON, jalur ditentukan dengan mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); _Untuk objek JSON, jalur ditentukan dengan mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); Jika hanya ada dua argumen untuk Terutama, MySQL menangani string yang digunakan dalam konteks JSON menggunakan rangkaian karakter mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 0 dan susunan mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 1. Himpunan karakter adalah himpunan simbol dan pengkodean, dan collation adalah himpunan aturan untuk membandingkan karakter dalam himpunan karakter. Lebih baik membuat tabel dengan bidang JSON menggunakan kumpulan karakter dan susunan yang sesuaiKarena mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); _1 adalah susunan biner, kuncinya peka terhadap huruf besar-kecil dan kita perlu menentukannya dengan huruf besar-kecil yang benarSekarang kita dapat menggunakan operator Seperti yang kita lihat, Menariknya, kutipan masih ada untuk mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 6 dan mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 7. Ini bukan yang kita inginkan. Kami ingin tanda kutip dihapus, mirip dengan bidang mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 8Untuk menghapus tanda kutip dari nilai yang diekstrak, kita perlu menggunakan fungsi mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 9. Karena mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); _0 sangat umum digunakan, ada juga operator pintasan untuk kombinasi ini, yaitu mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 1. Mari kita lihat dalam praktiknyaIni membuktikan bahwa mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 1 dan mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 3 memiliki hasil yang sama. Karena mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 1 jauh lebih sedikit untuk diketik, ini lebih disukai dalam banyak kasusNamun, jika Anda ingin mengekstrak data dari array JSON bersarang atau objek JSON, Anda tidak dapat menggunakan rantai mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 1. Anda hanya dapat menggunakan -> dan mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 1 untuk tingkat atas dan perlu menggunakan JSON_EXTRACT untuk tingkat bersarang. Mari kita ekstrak skor untuk setiap siswaBersulang. Ini berfungsi seperti yang diharapkan Pengambilan kunci untuk mengekstraksi data dari bidang JSON di MySQL
Ada cukup banyak fungsi lain untuk bekerja dengan data JSON di MySQL. Namun, jika Anda perlu menggunakan fungsi ini untuk memvalidasi/mencari bidang JSON Anda atau melakukan operasi CRUD di atasnya, Anda harus mempertimbangkan dengan serius untuk menggunakan MongoDB untuk menyimpan bidang JSON. MongoDB jauh lebih profesional dan nyaman dalam menangani data (dokumen) yang tidak terstruktur Di atas kami telah memperkenalkan cara mengekstrak nilai dari bidang JSON di MySQL. Sekarang kita akan mempelajari kebalikannya dan mengeksplorasi cara memilih data JSON dari tabel MySQL. Untuk melanjutkan bagian ini, kami memerlukan beberapa data dummy untuk dimainkan. Silakan salin kueri SQL berikut dan jalankan di konsol MySQL atau DBeaver Untuk tabel ini, karakter default dan susun digunakan. Dengan dua kueri ini, kami membuat tabel yang menyimpan data yang diekstrak dari bagian pertama. Ini adalah tugas umum untuk pemipaan dan analisis data, yaitu melakukan beberapa analisis data setelah pembersihan data. Dalam praktiknya, Anda ingin menyimpan skor dalam tabel terpisah sehingga tabel lebih ternormalisasi. Namun, di sini data diletakkan dalam tabel yang sama untuk memudahkan demonstrasi Kita sekarang dapat menggabungkan data ke dalam larik JSON dengan fungsi Kita juga dapat mengagregasi data menjadi objek JSON menggunakan fungsi Data agregat kemudian dapat digunakan dalam aplikasi Anda secara langsung. Jika Anda perlu menjalankan kueri SQL biasa dari Pada artikel ini, kami telah memperkenalkan cara bekerja dengan data JSON di MySQL. Di bagian pertama, fungsi dan operator yang digunakan untuk mengekstrak data dari kolom JSON dibahas dengan contoh sederhana. Dan di bagian kedua, kami melakukan kebalikannya dan mengagregasi data yang dinormalisasi ke dalam array atau objek JSON yang kemudian dapat digunakan langsung di program Anda. Biasanya kita harus menghindari penyimpanan data (dokumen) non-terstruktur di MySQL. Namun, jika tidak bisa dihindari, pengetahuan dalam artikel ini seharusnya bisa membantu pekerjaan Anda Bagaimana cara menambahkan JSON di MySQL?Di MySQL, fungsi JSON_SET() menyisipkan atau memperbarui nilai dalam dokumen JSON dan mengembalikan hasilnya . Anda memberikan dokumen JSON sebagai argumen pertama, diikuti dengan jalur untuk disisipkan, diikuti dengan nilai untuk disisipkan. Anda dapat memberikan beberapa pasangan jalur/nilai jika Anda perlu memperbarui beberapa nilai.
Apakah menyimpan JSON dalam SQL adalah ide yang bagus?Kesimpulan. Fungsi Native JSON di SQL Server dan SQL Database memungkinkan Anda memproses dokumen JSON seperti di database NoSQL. Setiap basis data - relasional atau NoSQL - memiliki beberapa pro dan kontra untuk pemrosesan data JSON. Manfaat utama menyimpan dokumen JSON di SQL Server atau SQL Database adalah dukungan bahasa SQL penuh .
Bisakah kita menyimpan JSON di database?Lagi pula, teknologi basis data relasional hanya mendukung JSON sebagai tipe data. Ini berarti Anda dapat menambahkan satu atau lebih kolom JSON ke tabel relasional Anda
Bagaimana cara mendapatkan data JSON di MySQL?Cara mengambil data dari kolom JSON di MySQL. MySQL menyediakan dua operator ( -> dan ->> ) untuk mengekstrak data dari kolom JSON . ->> akan mendapatkan nilai string sementara -> akan mengambil nilai tanpa tanda kutip. Seperti yang Anda lihat ->> mengembalikan output sebagai string yang dikutip, sementara -> mengembalikan nilai sebagaimana adanya. |