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;
|
||
```
|