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 bidang 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 Apa itu Json_unquote () di MySQL?JSON_UNQUOTE() – Hapus Kutipan dari Dokumen JSON di MySQL
. Anda memberikan dokumen JSON sebagai argumen, dan fungsi akan melakukan sisanya. the JSON_UNQUOTE() function “unquotes” a JSON document and returns the result as a utf8mb4 string. You provide the JSON document as an argument, and the function will do the rest.
Bagaimana cara mengekstrak nilai dari JSON di MySQL?Di atas kami telah memperkenalkan cara mengekstrak nilai dari bidang JSON di MySQL. . Gunakan $. . Gunakan $[indeks] untuk mengekstrak nilai elemen dari larik JSON Gunakan -> sebagai jalan pintas untuk JSON_EXTRACT jika nilainya bukan string Bagaimana cara menanyakan data JSON di MySQL?Contoh data Pilih bidang JSON. Hapus tanda kutip ganda dari hasil seleksi Gunakan notasi titik di jalur pemilihan Gunakan bidang yang dipilih sebagai syarat Tamat Bagaimana cara mengubah string menjadi JSON di MySQL?Mengekspor data MySQL ke JSON menggunakan fungsi CONCAT() dan GROUP_CONCAT() . Menggunakan kombinasi fungsi CONCAT() dan GROUP_CONCAT(), data dari string SQL dapat diubah menjadi format JSON. |