49 lines
1.2 KiB
Markdown
49 lines
1.2 KiB
Markdown
|
|
# Graph Query Language
|
|||
|
|
|
|||
|
|
GQL (Graph Query Language) est un langage déclaratif standardisé par l’ISO/IEC 39075:2024 conçu spécifiquement pour interroger, manipuler et gérer des bases de données graphe fondées sur le modèle Property Graph.
|
|||
|
|
|
|||
|
|
Il permet d’exprimer des requêtes basées sur les relations entre données ainsi que sur les propriétés attachées aux nœuds et aux arêtes.
|
|||
|
|
|
|||
|
|
GQL offre des capacités :
|
|||
|
|
|
|||
|
|
- de lecture : recherche de motifs de graphes, exploration de chemins
|
|||
|
|
- d’écriture : insertion, mise à jour et suppression de nœuds et relations
|
|||
|
|
- de définition du schéma : labels, contraintes, types de propriétés
|
|||
|
|
- de requêtes avancées sur les chemins (traversées, contraintes de longueur, etc.)
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Création
|
|||
|
|
|
|||
|
|
```gql
|
|||
|
|
INSERT (p:Person {name: "John", age: 28});
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```gql
|
|||
|
|
MATCH (a:Person {name: "Alice"}), (b:Person {name: "Bob"})
|
|||
|
|
INSERT (a)-[:KNOWS]->(b);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Sélection
|
|||
|
|
|
|||
|
|
Retourne le nom et l'âge des personnes.
|
|||
|
|
|
|||
|
|
```gql
|
|||
|
|
MATCH (p:Person)
|
|||
|
|
RETURN p.name, p.age;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Avec un filtre sur l'âge
|
|||
|
|
|
|||
|
|
```gql
|
|||
|
|
MATCH (p:Person)
|
|||
|
|
WHERE p.age > 30
|
|||
|
|
RETURN p.name;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Retourne les relations
|
|||
|
|
|
|||
|
|
```gql
|
|||
|
|
MATCH (a:Person)-[:KNOWS]->(b:Person)
|
|||
|
|
RETURN a.name, b.name;
|
|||
|
|
```
|