Dans le développement d'applications modernes, la gestion des données semi-structurées est un défi courant. La prise en charge de JSON par MySQL, introduite dans la version 5.7, fournit un moyen puissant de stocker, interroger et manipuler ces données dans une base de données relationnelle. Cet article explore les fonctions JSON essentielles proposées par MySQL avec des exemples pratiques pour vous aider à démarrer.
Le stockage des données JSON dans des bases de données relationnelles peut simplifier la gestion des données semi-structurées ou hiérarchiques. Il permet :
Vous pouvez construire des objets ou des tableaux JSON à l'aide des fonctions JSON_OBJECT() et JSON_ARRAY().
Exemple :
SELECT JSON_OBJECT('id', 1, 'name', 'Alice', 'roles', JSON_ARRAY('admin', 'editor')) AS json_data;
Sortie :
{"id": 1, "name": "Alice", "roles": ["admin", "editor"]}
Pour stocker des données JSON, utilisez le type de données JSON pour les colonnes.
Exemple :
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, details JSON NOT NULL ); INSERT INTO users (details) VALUES ('{"name": "Bob", "age": 30, "roles": ["viewer", "editor"]}');
MySQL propose plusieurs fonctions pour extraire des données de documents JSON :
Exemple :
SELECT JSON_EXTRACT(details, '$.name') AS name, details->'$.age' AS age FROM users;
Sortie :
Vous pouvez mettre à jour ou ajouter des éléments aux données JSON avec :
Exemple :
UPDATE users SET details = JSON_SET(details, '$.city', 'New York') WHERE id = 1; SELECT details FROM users;
Sortie :
{"name": "Bob", "age": 30, "roles": ["viewer", "editor"], "city": "New York"}
Utilisez JSON_REMOVE() pour supprimer des éléments d'un document JSON.
Exemple :
UPDATE users SET details = JSON_REMOVE(details, '$.roles') WHERE id = 1; SELECT details FROM users;
Sortie :
{"name": "Bob", "age": 30, "city": "New York"}
La fonction JSON_CONTAINS() vérifie si un document JSON contient une valeur spécifique.
Exemple :
SELECT JSON_CONTAINS(details, '"New York"', '$.city') AS has_city FROM users;
Sortie :
Les fonctions JSON_ARRAYAGG() et JSON_OBJECTAGG() permettent d'agréger les résultats des requêtes dans des structures JSON.
Exemple :
SELECT JSON_ARRAYAGG(name) AS names FROM ( SELECT JSON_EXTRACT(details, '$.name') AS name FROM users ) AS subquery;
Sortie :
SELECT JSON_OBJECT('id', 1, 'name', 'Alice', 'roles', JSON_ARRAY('admin', 'editor')) AS json_data;
La fonction JSON_VALID() vérifie si une chaîne est un JSON valide.
Exemple :
{"id": 1, "name": "Alice", "roles": ["admin", "editor"]}
Sortie :
Utilisez JSON_PRETTY() pour un formatage JSON lisible par l'homme.
Exemple :
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, details JSON NOT NULL ); INSERT INTO users (details) VALUES ('{"name": "Bob", "age": 30, "roles": ["viewer", "editor"]}');
Sortie :
SELECT JSON_EXTRACT(details, '$.name') AS name, details->'$.age' AS age FROM users;
MySQL propose une large gamme de fonctions JSON au-delà de celles couvertes en détail. Vous trouverez ci-dessous d'autres fonctions JSON :
Les fonctions JSON de MySQL fournissent des outils puissants pour gérer les données semi-structurées dans des bases de données relationnelles. Ils facilitent le stockage, l'interrogation et la manipulation de JSON directement dans SQL. Comprendre ces fonctions peut aider à simplifier les flux de travail et à ouvrir de nouvelles approches en matière de conception de bases de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!