SQL - Fungsi JSON: Panduan untuk Pemula

Hai teman-teman, para ahli basis data masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia SQL dan fungsi JSON. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan yang ramah, dan kita akan berjalan langkah demi langkah. Pada akhir panduan ini, Anda akan bisa bermain dengan data JSON seperti seorang ahli!

SQL - JSON Functions

Apa Itu JSON?

Sebelum kita masuk ke fungsi SQL, mari bicarakan tentang JSON. JSON adalah singkatan dari JavaScript Object Notation, dan ini adalah cara populer untuk menyimpan dan pertukaran data. Pihakkan ini sebagai cara untuk mengatur informasi dalam format yang mudah dibaca oleh manusia dan komputer.

Misalnya, ini adalah data JSON tentang sebuah buku:

{
"title": "The SQL Adventure",
"author": "Jane Coder",
"year": 2023,
"genres": ["Technology", "Education"]
}

Lihat betapa rapi dan teratur itu tampak! Itu keindahan JSON!

Mengapa Menggunakan JSON dalam SQL?

Sekarang, Anda mungkin bertanya-tanya, "Mengapa kita memerlukan JSON dalam basis data kita?" Well, bayangkan Anda menjalankan sebuah toko buku online. Beberapa buku mungkin memiliki beberapa penulis, sementara yang lain hanya memiliki satu. Beberapa mungkin memiliki banyak genre, yang lain hanya beberapa. JSON memungkinkan kita menyimpan informasi yang beragam secara fleksibel tanpa menciptakan banyak tabel terpisah.

Fungsi JSON SQL: Teman Baru Anda

Ayo kenal teman utama dalam permainan SQL-JSON kita. Fungsi-fungsi ini membantu kita bekerja dengan data JSON dalam basis data SQL kita.

1. JSON_VALUE()

Fungsi ini seperti seorang pencari harta karun. Dia memasuki data JSON Anda dan mengeluarkan nilai tertentu.

SELECT JSON_VALUE('{"name": "Alice", "age": 30}', '$.name') AS FirstName;

Ini akan mengembalikan:

FirstName
--------
Alice

Di sini, kita meminta SQL untuk melihat dalam data JSON kita dan menemukan nilai yang terkait dengan kunci "name".

2. JSON_QUERY()

Sementara JSON_VALUE mengambil nilai tunggal, JSON_QUERY dapat mengambil objek atau array penuh.

SELECT JSON_QUERY('{"books": ["SQL 101", "JSON Mastery"]}', '$.books') AS BookList;

Hasil:

BookList
--------
["SQL 101", "JSON Mastery"]

Fungsi ini sempurna ketika Anda perlu mengekstrak struktur JSON bersarang.

3. JSON_MODIFY()

Fungsi ini seperti editor JSON pribadi Anda. Itu memungkinkan Anda mengubah nilai dalam data JSON Anda.

DECLARE @json NVARCHAR(100) = '{"name": "Bob", "age": 35}';
SELECT JSON_MODIFY(@json, '$.age', 36) AS UpdatedJSON;

Hasil:

UpdatedJSON
-----------
{"name": "Bob", "age": 36}

Kita baru saja memberi Bob ulang tahun! Kita mengubah usia dari 35 menjadi 36.

4. ISJSON()

Fungsi ini adalah detektif JSON kita. Itu memeriksa apakah string adalah JSON yang valid.

SELECT ISJSON('{"name": "Charlie", "age": 40}') AS IsValidJSON;

Hasil:

IsValidJSON
-----------
1

Nilai kembalian 1 berarti "Ya, ini JSON yang valid", sedangkan 0 berarti "Tidak, bukan JSON yang valid".

5. JSON_OBJECT()

Fungsi ini seperti pabrik JSON. Itu menciptakan objek JSON dari data SQL Anda.

SELECT JSON_OBJECT('name': 'Dana', 'age': 28) AS PersonJSON;

Hasil:

PersonJSON
----------
{"name":"Dana","age":28}

Ini adalah cara bagus untuk mengkonversi data SQL biasa Anda ke format JSON.

Menggabungkan Semua

Sekarang kita telah kenal fungsi JSON kita, mari lihat bagaimana kita bisa menggunakan mereka dalam sebuah konteks dunia nyata. Bayangkan kita menjalankan toko buku online yang kita bicarakan sebelumnya.

-- Buat tabel untuk menyimpan informasi buku
CREATE TABLE Books (
BookID INT PRIMARY KEY,
BookInfo NVARCHAR(MAX)
);

-- Masukkan beberapa data contoh
INSERT INTO Books (BookID, BookInfo)
VALUES
(1, '{"title": "SQL Basics", "author": "John Doe", "year": 2020, "genres": ["Technology", "Education"]}'),
(2, '{"title": "JSON and You", "author": "Jane Smith", "year": 2021, "genres": ["Technology"]}');

-- Query untuk mendapatkan judul buku
SELECT
BookID,
JSON_VALUE(BookInfo, '$.title') AS Title
FROM Books;

-- Query untuk mendapatkan semua genre
SELECT
BookID,
JSON_QUERY(BookInfo, '$.genres') AS Genres
FROM Books;

-- Update tahun buku
UPDATE Books
SET BookInfo = JSON_MODIFY(BookInfo, '$.year', 2023)
WHERE BookID = 1;

-- Tambahkan genre baru ke buku
UPDATE Books
SET BookInfo = JSON_MODIFY(
BookInfo,
'$.genres',
JSON_QUERY(
CONCAT(
'[',
SUBSTRING(JSON_QUERY(BookInfo, '$.genres'), 2, LEN(JSON_QUERY(BookInfo, '$.genres')) - 2),
',"Programming"]'
)
)
)
WHERE BookID = 2;

-- Periksa apakah BookInfo adalah JSON yang valid
SELECT
BookID,
ISJSON(BookInfo) AS IsValidJSON
FROM Books;

Dan begitu saja! Kita telah membuat tabel, memasukkan data JSON, mengambil nilai tertentu, mengupdate JSON, dan bahkan menambah informasi baru ke array JSON.

Kesimpulan

Selamat! Anda telah mengambil langkah pertama ke dunia fungsi JSON SQL. Fungsi ini memungkinkan kita bekerja dengan struktur data bersarang dan fleksibel langsung dalam basis data SQL kita. Sepanjang perjalanan Anda, Anda akan menemukan banyak cara untuk memanfaatkan fungsi ini untuk menciptakan solusi basis data yang kuat dan fleksibel.

Ingat, kunci untuk menguasai konsep ini adalah latihan. Jadi jangan khawatir untuk mencoba eksperimen dengan data JSON dan query SQL Anda sendiri. Selamat coding, dan may your databases always be normalized!

Fungsi Deskripsi Contoh
JSON_VALUE() Mengambil nilai skalar dari string JSON JSON_VALUE('{"name": "Alice", "age": 30}', '$.name')
JSON_QUERY() Mengambil objek atau array dari string JSON JSON_QUERY('{"books": ["SQL 101", "JSON Mastery"]}', '$.books')
JSON_MODIFY() Mengubah nilai dalam string JSON JSON_MODIFY('{"name": "Bob", "age": 35}', '$.age', 36)
ISJSON() Memeriksa apakah string adalah JSON yang valid ISJSON('{"name": "Charlie", "age": 40}')
JSON_OBJECT() Menciptakan objek JSON JSON_OBJECT('name': 'Dana', 'age': 28)

Credits: Image by storyset