Change Password

Please enter the password.
Please enter the password. Between 8-64 characters. Not identical to your email address. Contain at least 3 of: uppercase, lowercase, numbers, and special characters.
Please enter the password.
Submit

Change Nickname

Current Nickname:
Submit

Apply New License

License Detail

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

The MAC address of the server you want to deploy.

Please complete this required field.

Please complete this required field.

Cancel
Apply
ID
Product
Status
Cores
Applied Validity Period(days)
Effective Date
Excpired Date
Mac Address
Apply Comment
Review Comment
Close
Profile
  • Full Name:
  • Phone:
  • Company:
  • Company Email:
  • Country:
  • Language:
Change Password
Apply

You have no license application record.

Apply
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

Product Created On ID Amount (USD) Invoice
Product Created On ID Amount (USD) Invoice

No Invoice

v4.5
Search
    Français
    v4.5

      Requête Composite

      Vue d’ensemble

      Instruction de Requête Linéaire

      En GQL, une instruction de requête linéaire fait référence à une requête exécutée séquentiellement, où chaque instruction est traitée successivement sans aucune ramification ni logique conditionnelle. Le résultat est renvoyé dans une progression directe et linéaire.

      Par exemple, c'est une requête linéaire où les instructions MATCH, FILTER et RETURN sont traitées dans un ordre linéaire :

      MATCH (:User {_id: "U01"})-[:Follows]->(u:User)
      FILTER u.city = "New York"
      RETURN u
      

      <linear query statement> ::=  
        [ <simple linear query statement> ] <result statement>
      
      <simple linear query statement> ::= <simple query statement>...
      
      <simple query statement> ::=  
          <match statement>
        | <filter statement>
        | <let statement>
        | <for statement>
        | <order by statement>
        | <limit statement>
        | <skip statement>
        | <call statement>
      
      <result statement> ::=  
        <return statement> [ <order by statement> ] [ <skip statement> ] [ <limit statement> ]
      

      Détails

      • Une instruction de requête linéaire se termine par une instruction de résultat et peut inclure une composition linéaire d'instructions de requête simples avant cela.

      Instruction de Requête Composite

      Une instruction de requête composite combine une liste d'instructions de requête linéaires avec des conjonctions de requêtes.

      <composite query statement> ::=  
        <linear query statement> <query conjunction> <linear query statement>
        [ { <query conjunction> <linear query statement> }... ]
      
      <query conjunction> ::= <set operator> | "OTHERWISE"
      
      <set operator> ::= "UNION" [ <set quantifier> ]
                       | "EXCEPT" [ <set quantifier> ]
                       | "INTERSECT" [ <set quantifier> ]
      
      <set quantifier> ::= "DISTINCT" | "ALL"
      

      Détails

      • Le nombre, l'ordre et les noms des colonnes doivent être identiques dans les instructions RETURN de toutes les requêtes linéaires.
      • Les tables de liaison produites par les instructions de requête linéaires sont composées ensemble.
      • Si l'opérateur d'ensemble est spécifié tandis que le quantificateur d'ensemble ne l'est pas, alors DISTINCT est implicite. La déduplication est effectuée sur les enregistrements de la table de liaison.
      • Vous pouvez utiliser différentes conjonctions de requête dans une instruction de requête composite.

      Exemple de Graph

      Les exemples suivants s'exécutent sur ce graph :

      Pour créer ce graph, exécutez la requête suivante sur un graph vide :

      INSERT (rowlock:User {_id:'U01', name:'rowlock'}),
             (brainy:User {_id:'U02', name:'Brainy'}),
             (purplechalk:User {_id:'U03', name:'purplechalk'}),
             (mochaeach:User {_id:'U04', name:'mochaeach'}),
             (lionbower:User {_id:'U05', name:'lionbower'}),
             (c01:Club {_id:'C01'}),
             (c02:Club {_id:'C02'}),
             (rowlock)-[:Follows]->(brainy),
             (brainy)-[:Follows]->(rowlock),
             (mochaeach)-[:Follows]->(brainy),
             (brainy)-[:Follows]->(purplechalk),
             (purplechalk)-[:Follows]->(brainy),
             (brainy)-[:Joins]->(c01),
             (lionbower)-[:Joins]->(c01),
             (mochaeach)-[:Joins]->(c02)
      

      UNION

      UNION combine les résultats de deux ou plusieurs requêtes linéaires en un ensemble de résultats unique incluant les lignes distinctes présentes dans l'une des requêtes.

      MATCH (n:Club) RETURN n
      UNION
      MATCH (n) RETURN n
      

      Résultat : n

      _id _uuid schema
      valeurs
      C02 Sys-gen Club
      C01 Sys-gen Club
      U05 Sys-gen User {name: "lionbower"}
      U04 Sys-gen User {name: "mochaeach"}
      U03 Sys-gen User {name: "purplechalk"}
      U02 Sys-gen User {name: "Brainy"}
      U01 Sys-gen User {name: "rowlock"}

      UNION ALL

      UNION ALL combine les résultats de deux ou plusieurs requêtes linéaires en un ensemble de résultats unique incluant toutes les lignes de chaque requête sans supprimer les doublons.

      MATCH (n:Club) RETURN n
      UNION ALL
      MATCH (n) RETURN n
      

      Résultat : n

      _id _uuid schema
      valeurs
      C02 Sys-gen Club
      C01 Sys-gen Club
      U05 Sys-gen User {name: "lionbower"}
      U04 Sys-gen User {name: "mochaeach"}
      U03 Sys-gen User {name: "purplechalk"}
      U02 Sys-gen User {name: "Brainy"}
      U01 Sys-gen User {name: "rowlock"}
      C02 Sys-gen Club
      C01 Sys-gen Club

      EXCEPT

      EXCEPT renvoie un ensemble de résultats incluant les lignes distinctes de la première requête qui ne sont pas présentes dans les requêtes suivantes.

      MATCH ({_id: "U02"})-(n) RETURN n
      EXCEPT
      MATCH ({_id: "U05"})-(n) RETURN n
      

      Résultat : n

      _id _uuid schema
      valeurs
      U04 Sys-gen User {name: "mochaeach"}
      U03 Sys-gen User {name: "purplechalk"}
      U01 Sys-gen User {name: "rowlock"}

      EXCEPT ALL

      EXCEPT ALL renvoie un ensemble de résultats incluant les lignes de la première requête qui ne sont pas présentes dans les requêtes suivantes sans supprimer les doublons.

      MATCH ({_id: "U02"})-(n) RETURN n
      EXCEPT ALL
      MATCH ({_id: "U05"})-(n) RETURN n
      

      Résultat : n

      _id _uuid schema
      valeurs
      U01 Sys-gen User {name: "rowlock"}
      U03 Sys-gen User {name: "purplechalk"}
      U04 Sys-gen User {name: "mochaeach"}
      U03 Sys-gen User {name: "purplechalk"}
      U01 Sys-gen User {name: "rowlock"}

      INTERSECT

      INTERSECT renvoie un ensemble de résultats incluant uniquement les lignes distinctes communes à toutes les requêtes linéaires, en filtrant les lignes qui n'apparaissent pas dans chaque requête.

      MATCH ({_id: "U01"})-(u:User) RETURN u
      INTERSECT
      MATCH ({_id: "U03"})-(u:User) RETURN u
      

      Résultat : u

      _id _uuid schema
      valeurs
      U02 Sys-gen User {name: "Brainy"}

      INTERSECT ALL

      INTERSECT ALL renvoie un ensemble de résultats incluant uniquement les lignes communes à toutes les requêtes linéaires sans supprimer les doublons, en filtrant les lignes qui n'apparaissent pas dans chaque requête.

      MATCH ({_id: "U01"})-(u:User) RETURN u
      INTERSECT ALL
      MATCH ({_id: "U03"})-(u:User) RETURN u
      

      Résultat : u

      _id _uuid schema
      valeurs
      U02 Sys-gen User {name: "Brainy"}
      U02 Sys-gen User {name: "Brainy"}

      OTHERWISE

      OTHERWISE renvoie l'ensemble de résultats de la première requête si elle produit des résultats. Si la première requête ne donne aucun résultat, elle retourne l'ensemble de résultats de la deuxième requête, et ainsi de suite, jusqu'à ce qu'une requête avec un ensemble de résultats non vide soit trouvée.

      MATCH ({_id: "U04"})<-[]-(u:User) RETURN u
      OTHERWISE
      MATCH ({_id: "U02"})<-[]-(u:User) RETURN u
      

      Résultat : u

      _id _uuid schema
      valeurs
      U01 Sys-gen User {name: "rowlock"}
      U03 Sys-gen User {name: "purplechalk"}
      U04 Sys-gen User {name: "mochaeach"}

      Cet ensemble de résultats de la première requête linéaire contient une valeur null, ce n'est pas vide en raison de l'utilisation de OPTIONAL :

      OTHERWISE renvoie l'ensemble de résultats de la première requête linéaire si elle contient des lignes, y compris une ligne avec la valeur null :

      OPTIONAL MATCH ({_id: "U04"})<-[]-(u:User) RETURN u
      OTHERWISE
      MATCH ({_id: "U02"})<-[]-(u:User) RETURN u
      

      Résultat :

      u
      null

      Renommage des Colonnes

      Vous pouvez utiliser le mot-clé AS pour renommer les colonnes pour garantir que les tables de liaison des requêtes linéaires peuvent être composées.

      MATCH ({_id: "C01"})<-(u) RETURN u.name, 1 AS Club
      UNION
      MATCH ({_id: "C02"})<-(u) RETURN u.name, 2 AS Club
      

      Résultat :

      u.name Club
      Brainy 1
      lionbower 1
      mochaeach 2

      Utilisation de Différentes Conjonctions de Requête

      MATCH (n:Club) RETURN n._id
      OTHERWISE
      MATCH (n) RETURN n._id
      UNION ALL
      MATCH (n)-[]->(:Club) RETURN n._id
      

      Résultat :

      n._id
      C02
      C02
      U05
      U04
      U02
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写