Querysyntax
From HNS.dev
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/

