🧚 Listen! Beekeeper Studio is a fast, modern, and open source database GUI Download
January 25, 2023 By Matthew Rathbone

JSON, ή JavaScript Object Notation, είναι ένας μορφότυπος για την αποθήκευση και ανταλλαγή δεδομένων. Είναι ένας ελαφρύς, βασισμένος σε κείμενο και αναγνώσιμος από τον άνθρωπο μορφότυπος που είναι εύκολος για τις μηχανές να αναλύσουν και να παράγουν. Στο SQLite, το JSON μπορεί να αποθηκευτεί και να αναζητηθεί με μερικούς διαφορετικούς τρόπους.

Χρήση της Επέκτασης JSON1

Ένας τρόπος για να αποθηκεύσετε JSON στο SQLite είναι να χρησιμοποιήσετε την επέκταση JSON1, η οποία παρέχει συναρτήσεις για κωδικοποίηση και αποκωδικοποίηση JSON. Για να χρησιμοποιήσετε την επέκταση JSON1, πρέπει πρώτα να την ενεργοποιήσετε εκτελώντας την ακόλουθη εντολή:

SELECT load_extension('/path/to/json1/extension');

Μόλις η επέκταση ενεργοποιηθεί, μπορείτε να δημιουργήσετε έναν πίνακα που έχει μια στήλη τύπου JSON χρησιμοποιώντας την ακόλουθη δήλωση SQL:

CREATE TABLE users (
  id INTEGER PRIMARY KEY,
  data JSON
);

Εισαγωγή Δεδομένων JSON

Για να εισαγάγετε μια τιμή JSON σε αυτόν τον πίνακα, μπορείτε να χρησιμοποιήσετε τη συνάρτηση json_encode που παρέχεται από την επέκταση JSON1, όπως αυτό:

INSERT INTO users (id, data) VALUES (1, json_encode({
  "name": "Alice",
  "age": 25,
  "email": "alice@example.com"
}));

Αναζήτηση Δεδομένων JSON

Για να αναζητήσετε αυτόν τον πίνακα, μπορείτε να χρησιμοποιήσετε τη συνάρτηση json_extract, η οποία σας επιτρέπει να εξαγάγετε τιμές από τη στήλη JSON καθορίζοντας μια διαδρομή JSON. Για παράδειγμα, για να πάρετε τη διεύθυνση email του χρήστη με id 1, μπορείτε να χρησιμοποιήσετε το ακόλουθο ερώτημα:

SELECT json_extract(data, '$.email') AS email
FROM users
WHERE id = 1;

Αποθήκευση JSON σε BLOB

Ένας άλλος τρόπος για να αποθηκεύσετε και να αναζητήσετε JSON στο SQLite είναι να χρησιμοποιήσετε τον τύπο BLOB. Σε αυτή την περίπτωση, μπορείτε να δημιουργήσετε έναν πίνακα με μια στήλη BLOB όπως αυτό:

CREATE TABLE users (
  id INTEGER PRIMARY KEY,
  data BLOB
);

Εισαγωγή JSON σε μια Στήλη BLOB

Για να εισαγάγετε μια τιμή JSON σε αυτόν τον πίνακα, μπορείτε να χρησιμοποιήσετε τη συνάρτηση json_encode για να κωδικοποιήσετε την τιμή ως συμβολοσειρά, και στη συνέχεια να χρησιμοποιήσετε τη συνάρτηση hex για να την μετατρέψετε σε BLOB, όπως αυτό:

INSERT INTO users (id, data) VALUES (1, hex(json_encode({
  "name": "Alice",
  "age": 25,
  "email": "alice@example.com"
})));

Αναζήτηση JSON σε μια Στήλη BLOB

Για να αναζητήσετε αυτόν τον πίνακα, μπορείτε να χρησιμοποιήσετε τη συνάρτηση JSON_EXTRACT που παρέχεται από την επέκταση JSON1, αλλά πρέπει να μετατρέψετε την τιμή BLOB πίσω σε συμβολοσειρά χρησιμοποιώντας τη συνάρτηση unhex, όπως αυτό:

SELECT json_extract(unhex(data), '$.email') AS email
FROM users
WHERE id = 1;

Περίληψη

Συμπερασματικά, το SQLite παρέχει δύο τρόπους για να αποθηκεύσετε και να αναζητήσετε τιμές JSON: χρησιμοποιώντας την επέκταση JSON1 και χρησιμοποιώντας τον τύπο BLOB. Και οι δύο προσεγγίσεις έχουν τα δικά τους πλεονεκτήματα και μειονεκτήματα, και ποιον θα επιλέξετε θα εξαρτηθεί από τις συγκεκριμένες ανάγκες σας.

Αν χρειάζεστε να μετατρέψετε δεδομένα JSON σε δηλώσεις SQL INSERT, δείτε το δωρεάν εργαλείο μας Μετατροπέας JSON σε SQL.

Beekeeper Studio Is A Free & Open Source Database GUI

Best SQL query & editor tool I have ever used. It provides everything I need to manage my database. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio is fast, intuitive, and easy to use. Beekeeper supports loads of databases, and works great on Windows, Mac and Linux.

Beekeeper's Linux version is 100% full-featured, no cut corners, no feature compromises.

What Users Say About Beekeeper Studio

★★★★★
"Beekeeper Studio completely replaced my old SQL workflow. It's fast, intuitive, and makes database work enjoyable again."
— Alex K., Database Developer
★★★★★
"I've tried many database GUIs, but Beekeeper strikes the perfect balance between features and simplicity. It just works."
— Sarah M., Full Stack Engineer

Ready to Improve Your SQL Workflow?

download Download Free