cubicweb/web/wdoc/tut_rql_fr.rst
changeset 12792 e2cdb1be6bd9
parent 11057 0b59724cb3f2
equal deleted inserted replaced
12791:4564ecfc0134 12792:e2cdb1be6bd9
    59   * L'opérateur `=` est l'opérateur par défaut
    59   * L'opérateur `=` est l'opérateur par défaut
    60 
    60 
    61   * L'opérateur `LIKE` / `~=` permet d'utiliser le caractère `%` dans une chaine
    61   * L'opérateur `LIKE` / `~=` permet d'utiliser le caractère `%` dans une chaine
    62     de caractère pour indiquer que la chaîne doit commencer ou terminer par un
    62     de caractère pour indiquer que la chaîne doit commencer ou terminer par un
    63     préfix/suffixe ::
    63     préfix/suffixe ::
    64     
    64 
    65       Any X WHERE X nom ~= 'Th%'
    65       Any X WHERE X nom ~= 'Th%'
    66       Any X WHERE X nom LIKE '%lt'
    66       Any X WHERE X nom LIKE '%lt'
    67 
    67 
    68   * L'opérateur `IN` permet de donner une liste de valeurs possibles ::
    68   * L'opérateur `IN` permet de donner une liste de valeurs possibles ::
    69 
    69 
    73 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    73 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    74 ::
    74 ::
    75 
    75 
    76   [DISTINCT] <type d'entité> V1(, V2)*
    76   [DISTINCT] <type d'entité> V1(, V2)*
    77   [GROUPBY V1(, V2)*]  [ORDERBY <orderterms>]
    77   [GROUPBY V1(, V2)*]  [ORDERBY <orderterms>]
    78   [WHERE <restriction>] 
    78   [WHERE <restriction>]
    79   [LIMIT <value>] [OFFSET <value>]
    79   [LIMIT <value>] [OFFSET <value>]
    80 
    80 
    81 :type d'entité:
    81 :type d'entité:
    82   Type de la ou des variables séléctionnées. 
    82   Type de la ou des variables séléctionnées.
    83   Le type spécial `Any`, revient à ne pas spécifier de type.
    83   Le type spécial `Any`, revient à ne pas spécifier de type.
    84 :restriction:
    84 :restriction:
    85   liste des relations à parcourir sous la forme 
    85   liste des relations à parcourir sous la forme
    86     `V1 relation V2|<valeur constante>`
    86     `V1 relation V2|<valeur constante>`
    87 :orderterms:
    87 :orderterms:
    88   Définition de l'ordre de sélection : variable ou n° de colonne suivie de la
    88   Définition de l'ordre de sélection : variable ou n° de colonne suivie de la
    89   méthode de tri (`ASC`, `DESC`), ASC étant la valeur par défaut
    89   méthode de tri (`ASC`, `DESC`), ASC étant la valeur par défaut
    90 
    90 
   100 le suivant. Les différentes entités disponibles sont :
   100 le suivant. Les différentes entités disponibles sont :
   101 
   101 
   102 :Personne:
   102 :Personne:
   103   ::
   103   ::
   104 
   104 
   105 	nom    (String, obligatoire) 
   105     nom    (String, obligatoire)
   106 	datenaiss (Date)
   106     datenaiss (Date)
   107 
   107 
   108 
   108 
   109 :Societe:
   109 :Societe:
   110   ::
   110   ::
   111 
   111 
   112 	nom   (String)
   112     nom   (String)
   113 
   113 
   114 
   114 
   115 :Note:
   115 :Note:
   116   ::
   116   ::
   117 
   117 
   118 	diem (Date)
   118     diem (Date)
   119 	type (String)
   119     type (String)
   120 
   120 
   121 
   121 
   122 Et les relations entre elles : ::
   122 Et les relations entre elles : ::
   123 
   123 
   124 	Person  travaille_pour Societe
   124     Person  travaille_pour Societe
   125 	Person  evaluee_par    Note
   125     Person  evaluee_par    Note
   126 	Societe evaluee_par    Note
   126     Societe evaluee_par    Note
   127 
   127 
   128 
   128 
   129 Méta-données
   129 Méta-données
   130 ~~~~~~~~~~~~
   130 ~~~~~~~~~~~~
   131 Tous les types d'entités ont les métadonnées suivantes :
   131 Tous les types d'entités ont les métadonnées suivantes :
   134 * `creation_date (Datetime)`, date de création de l'entité
   134 * `creation_date (Datetime)`, date de création de l'entité
   135 * `modification_date (Datetime)`, date de dernière modification de l'entité
   135 * `modification_date (Datetime)`, date de dernière modification de l'entité
   136 
   136 
   137 * `created_by (CWUser)`, relation vers l'utilisateur ayant créé l'entité
   137 * `created_by (CWUser)`, relation vers l'utilisateur ayant créé l'entité
   138 
   138 
   139 * `owned_by (CWUser)`, relation vers le où les utilisateurs considérés comme 
   139 * `owned_by (CWUser)`, relation vers le où les utilisateurs considérés comme
   140   propriétaire de l'entité, par défaut le créateur de l'entité
   140   propriétaire de l'entité, par défaut le créateur de l'entité
   141 
   141 
   142 * `is (Eetype)`, relation spéciale permettant de spécifier le
   142 * `is (Eetype)`, relation spéciale permettant de spécifier le
   143   type d'une variable. 
   143   type d'une variable.
   144 
   144 
   145 Enfin, le schéma standard d'un utilisateur est le suivant :
   145 Enfin, le schéma standard d'un utilisateur est le suivant :
   146 
   146 
   147 :CWUser:
   147 :CWUser:
   148   ::
   148   ::
   149 
   149 
   150 	login  	  (String, obligatoire)
   150     login        (String, obligatoire)
   151 	password  (Password)
   151     password  (Password)
   152 	firstname (String)
   152     firstname (String)
   153 	surname   (String)
   153     surname   (String)
   154 
   154 
   155 
   155 
   156 L'essentiel
   156 L'essentiel
   157 -----------
   157 -----------
   158 0. *Toutes les personnes* ::
   158 0. *Toutes les personnes* ::
   159    
   159 
   160       Personne X
   160       Personne X
   161 
   161 
   162    ou ::
   162    ou ::
   163 
   163 
   164       Any X WHERE X is Personne
   164       Any X WHERE X is Personne
   212 
   212 
   213       Any X WHERE X evaluee_par N, N eid 43
   213       Any X WHERE X evaluee_par N, N eid 43
   214 
   214 
   215 
   215 
   216 7. *Toutes les personnes triés par date de naissance dans l'ordre antechronologique* ::
   216 7. *Toutes les personnes triés par date de naissance dans l'ordre antechronologique* ::
   217    
   217 
   218       Personne X ORDERBY D DESC WHERE X datenaiss D
   218       Personne X ORDERBY D DESC WHERE X datenaiss D
   219 
   219 
   220    On note qu'il faut définir une variable et la séléctionner pour s'en
   220    On note qu'il faut définir une variable et la séléctionner pour s'en
   221    servir pour le tri. 
   221    servir pour le tri.
   222 
   222 
   223 
   223 
   224 8. *Nombre de personne travaillant pour chaque société* ::
   224 8. *Nombre de personne travaillant pour chaque société* ::
   225    
   225 
   226       Any S, COUNT(X) GROUPBY S WHERE X travaille_pour S
   226       Any S, COUNT(X) GROUPBY S WHERE X travaille_pour S
   227 
   227 
   228    On note qu'il faut définir une variable pour s'en servir pour le
   228    On note qu'il faut définir une variable pour s'en servir pour le
   229    groupage. De plus les variables séléctionnée doivent être groupée
   229    groupage. De plus les variables séléctionnée doivent être groupée
   230    (mais les variables groupées ne doivent pas forcément être sélectionnées).
   230    (mais les variables groupées ne doivent pas forcément être sélectionnées).
   231 
   231 
   232 
   232 
   233    
   233 
   234 Exemples avancés
   234 Exemples avancés
   235 ----------------
   235 ----------------
   236 0. *Toutes les personnes dont le champ nom n'est pas spécifié (i.e NULL)* ::
   236 0. *Toutes les personnes dont le champ nom n'est pas spécifié (i.e NULL)* ::
   237 
   237 
   238       Personne P WHERE P nom NULL
   238       Personne P WHERE P nom NULL