XQuery
- SQL-hez hasonlító lekérdezőnyelv
- XPath kifejezéseket használ
- Ugyanúgy tételek listája adatmotellt használ
- XQuery egy funkcionális nyelv
- Bárhol, ahol kifejezés szerepel, ott XQuery kifejezés is lehet helyette
- Ugye SQL esetén nem mindenhol voltak az alkérdések használhatók (for a reason tho)
- Előfordulhatnak listák listája
- Ezeket a rendszer flat-eli
FLWR kifejezés (flower)
- Egy vagy több
forés/vagyletzáradék - Opcionálisan utána egy
wherezáradék -
Végül egy
returnzáradék -
Minden FLWR
foregy ciklust generál- A let a cikluson belüli hozzárendelést adja meg
- Ha van
where, azt a ciklus minden iterációján ki kell értékelni - Amikre a
where-ben megadott feltétel telejsül, azokat areturna végeredményhez fűzi
For
for <változó> in <kifejezés>- Változót
$karakterrel kezdünk - A változó minden iterációban az aktív sorral egyenlő
- Minden megadott tételen egyszer iterál
- A nem nyers szövegek (értékek)
{}zárójeleken belül kell megadni - Tagek vagy idézőjelek nélküli stringet nem adhat vissza a rendszer
- for whatever reason ig
Let
Itt az eredmény egyetlen
<sörNév>tag lesz benne az összes sörnévvel...
Order By
returnelé opcionálisan- opcionálisan
ascendingvagydescendingmegadható
- opcionálisan
Feltételek
- Létezés megkövetelése egyszerűen extra feltétel nélkül
- pl.:
kocsmák/kocsma[@név]- Olyan kocsmák lesznek, amiknek van nevük
- pl.:
- Szigorú összehasonlítások 2 karakteresek
eq,ne,le,ge,ge,gt
- Ha az elem hozzátartozó értéke atomi, az egy másik értékkel összehasonlítható
Logikai műveletek
- \(E_1 and E_2\), \(E_1 or E_2\), \(not(E)\) minden kifejezésre használható
- Remember, everything can be xquery, so it has to work
not(3 eq 5 or 0)=TRUE
true()ésfalse()paraméter nélküli függvények (😳), aTRUEésFALSEértéket adják vissazif (A) then B else Cléteziksome $x in R satisfies Bésevery $x in R satisfies B- régi jó ALL és ANY módjára
- dokumentum sorrend ellenőrizhető
>>és<<-el$d/kocsmák/sör[@név="Bud"] << $d/kocsmák/sör[@név="Miller"]- Akkor igaz, ha a Bud előbb szerepelt, mint a Miller (why would you ever?...)
- Aggregátorok is vannak
count(),max(),min(),avg()
Összekapcsolások
Azt hitted, mi??! Lehet, ha te magad összekapcsolod feltételként lmao. such a useless thing