Querysyntax

From HNS.dev

Jump to: navigation, search

Alle expressies en waarden in queries kunnen op twee manieren geformuleerd worden: de platte syntax of de gestructureerde syntax.

Platte syntax

In de platte syntax wordt de expressie of de conditie van een query-element als één string geschreven, die door de API geparseerd wordt. Bijvoorbeeld:

<query>
  <select alias="name">usualname||' '||lastname</select>
  <select>count(author_of)</select>
  <from>person</from>
  <where>usualname = 'Wouter' and lastname != 'Bos'</where>
  <order dir="asc">lastname</order>
</query>

In deze syntax wordt normaal de normale prioriteit van operaties aangehouden. De expressie 5 + 3 * 4 wordt bijvoorbeeld geëvalueerd als 5 + (3 * 4), niet als (5 + 3) * 4. Deze volgorde kan aangepast worden door expliciet haakjes toe te voegen. Strings worden als kolomnamen gezien; om letterlijke strings te gebruiken dienen deze tussen apostrofs gezet te worden. Let op: in update-queries worden velden standaard als letterlijke strings gezien, om expressies te gebruiken moeten deze in een e-tag gezet worden, en om kolomnamen te gebruiken moeten deze in een p-tag gezet worden, zoals bij de gestructureerde syntax.

Gestructureerde syntax

In de gestructureerde syntax wordt de expressie of de conditie in een XML-boomstructuur beschreven. Bijvoorbeeld:

<query>
  <select alias="name">
    <concat join=" ">
      <p>usualname</p>
      <p>lastname</p>
    </concat>
  </select>
  <select>
    <count>author_of</count>
  </select>
  <from>person</from>
  <where>
    <and>
      <eq><p>usualname</p><v>Wouter</v></eq>
      <ne><p>lastname</p><v>Bos</v></ne>
    </and>
  </where>
  <order dir="asc">lastname</order>
</query>

De parameters van operatoren en functies worden in speciale tags gezet, te weten:

  • <p>. Deze tag wordt voor kolomnamen (properties) gebruikt.
  • <v>. Deze tag wordt voor letterlijke waarden (values) gebruikt.
  • <l>. Deze tag wordt voor lijsten gebruikt (zie de in-operator). De elementen van de lijst worden zelf weer in één van deze tags gezet.
  • <e>. Deze tag wordt voor expressies gebruikt.

In unaire operaties, zoals bijvoorbeeld not mag deze tag weggelaten worden; in dat geval wordt impliciet aangenomen dat het een expressie betreft. Elk van de onderdelen van de syntaxboom mag weer in de platte syntax geschreven worden.

Kolomnamen

Kolomnamen worden in de gestructureerde syntax aangegeven met de p-tag. Normaal hebben kolomnamen één component, echter als een relatie gerefereerd wordt worden velden van de relatie met een punt van de relatienaam gescheiden. Bijvoorbeeld, om de naam van een auteur te selecteren wordt de kolomnaam authors.lastname gebruikt. De kolomnaam authors zelf beschrijft alleen de relatie; dit wordt alleen in een count-expressie gebruikt. yl84aL <a href="http://dwwewxehfrsc.com/">dwwewxehfrsc</a>, [url=http://ushzaqjtxivt.com/]ushzaqjtxivt[/url], [link=http://bdgbceqerfsu.com/]bdgbceqerfsu[/link], http://djcpnhlohcsl.com/

contact us | terms and conditions Creative Commons License
© 2009 - Stichting Het Nieuwe Stemmen
THE DEVELOPMENT OF HNS.DEV WAS MADE POSSIBLE BY A CONTRIBUTION OF KNOWLEDGELAND THROUGH THE DIGITAL PIONEERS EPARTICIPATION ROUND REGULATION (WHICH WAS INITIATED BY THE MINISTRY OF THE INTERIOR AND KINGDOM RELATIONS). DIGITAL PIONIEERS GIVES FINANCIAL AND ORGANISATORIAL SUPPORT TO INNOVATIVE INTERNET INITIATIVES.