FLWOR - FLWOR

Dasturlash tili XQuery belgilaydi FLWOR ("gul" deb talaffuz qilinadi) o'zgaruvchini oraliq natijalarga takrorlash va bog'lashni qo'llab-quvvatlovchi ifoda sifatida. FLWOR bu qisqartma: UCHUN, QO'YING, Qaerga, buyurtma, qaytib kelish.[1] FLWOR shunga o'xshashdir SQL "s Qaerdan tanlang va qo'shilish kabi funktsiyalarni ta'minlash uchun ishlatilishi mumkin XML hujjatlar.

  • uchun tugunlarning ketma-ketligini yaratadi
  • ruxsat bering ketma-ketlikni o'zgaruvchiga bog'laydi
  • qayerda mantiqiy ifoda bo'yicha tugunlarni filtrlaydi
  • buyurtma tugunlarni saralaydi
  • qaytish har bir tugun uchun bir marta baholanadi

Misol

   uchun $d yilda hujjat("depts.xml")//deptno   ruxsat bering $e := hujjat("emps.xml")//xodim[deptno = $d]   qayerda hisoblash($e) >= 10   buyurtma o'rtacha($e/ish haqi) tushish   qaytish     <big-dept>{ $d,           <headcount>{hisoblash($e)}</headcount>,           <avgsal>{o'rtacha($e/ish haqi)}</avgsal>        }</big-dept>

XQuery so'rovining birinchi ustunida quyidagilar ko'rsatilgan uchun, ruxsat bering, qayerda, buyurtma va qaytish FLWOR paradigmasining kalit so'zlari. Oddiy ingliz tilida buni quyidagicha o'qish mumkin edi "O'ndan ortiq xodimga ega bo'lgan barcha bo'limlarni oling, o'rtacha ish haqini kamaytirish orqali ushbu bo'limlarga buyurtma bering va har bir katta bo'limdagi bo'lim raqamlari, bosh soni va o'rtacha ish haqi to'g'risida hisobotni qaytaring". Natija quyidagicha ko'rinishi mumkin:

<big-dept>    <deptno>17</deptno>    <headcount>25</headcount>    <avgsal>12500</avgsal></big-dept><big-dept>    <deptno>24</deptno>    <headcount>18</headcount>    <avgsal>11327</avgsal></big-dept><big-dept>    <deptno>3</deptno>    <headcount>32</headcount>    <avgsal>10725</avgsal></big-dept>

Microsoft SQL Serverdan foydalanish misoli

E'LON QILING@xmlXMLO'rnatish@xml='	<branch_element>		<item_1>42</item_1>		<item_2>27</item_2>	</branch_element>	<branch_element>		<item_1>a</item_1>		<item_2>b</item_2>	</branch_element> 'SELECT		x.y.so'rov('ichida $ s uchun :: node () return $ s // item_1 / text ()')kabimen,		x.y.so'rov('uchun $ s uchun self :: node () return $ s // item_2 / text ()')kabij	Dan@xml.tugunlar('/ root_element')ASx(y);

Adabiyotlar

  1. ^ Uolmsli, Priskilla (2007). XQuery. Sebastopol, Kaliforniya, AQSh: O'Reilly Media. p. 73. ISBN  978-0-596-00634-1.

Tashqi havolalar