let $d:=doc("/Users/raj/company.xml") return $d//companyDB/employees/employee[2] (2*3)-(8*7) concat("Hello"," World") matches("Monday","^.*da.*$") current-time() let $list:=(1,5,10,12,15) return count($list) let $d:=doc("/Users/raj/company.xml") return $d//companyDB/employees/employee[2] Nut22.50 let $d:=doc("/Users/raj/company.xml")//employee[@worksFor=6] return {$d/salary} FLWOR Queriesions ----------------- Query 1: Get all projects. let $d:=doc("/Users/raj/company.xml") for $p in $d/companyDB/projects/project return $p Query 2: Get distinct project numbers of projects in which employees work. { let $d:=doc("/Users/raj/company.xml") for $p in distinct-values( $d/companyDB/employees/employee/projects/worksOn/@pno) return {$p} } using order by clause --------------------- { let $d:=doc("/Users/raj/company.xml") for $p in distinct-values( $d/companyDB/employees/employee/projects/worksOn/@pno) order by number($p) return {$p} } Query 3: Get social security numbers of employees whose last name starts with "S". let $d:=doc("/Users/raj/company.xml") for $e in $d/companyDB/employees/employee where starts-with($e/lname,"S") return {$e/@ssn} Query 4: Get last names and first names of employees in the "Research" department. let $d:=doc("/Users/raj/company.xml") let $r:=$d/companyDB/departments/department[dname="Research"] for $e in $d/companyDB/employees/employee where $e/@worksFor=$r/@dno return {$e/lname}{$e/fname} Query 5: Get employees who work more than 40 hours. let $d:=doc("/Users/raj/company.xml") for $e in $d/companyDB/employees/employee where sum($e/projects/worksOn/@hours)>40.0 return {$e/lname} {$e/fname}{sum($e/projects/worksOn/@hours)} Query 6: Get department names and the total number of employees working in the department. let $d:=doc("/Users/raj/company.xml") for $r in $d/companyDB/departments/department return {$r/dname} {count(tokenize($r/employees/@essns,"\s+"))} Query 7: Get last names of employees who work for a project located in “Houston”. { distinct-values( let $d:=doc("/Users/raj/company.xml") for $r in $d/companyDB/projects/project[plocation="Houston"] return for $e in $d/companyDB/employees/employee where exists(index-of($r/workers/worker/@essn,$e/@ssn)) return $e/lname ) } Query 8: Get last names of employees with dependents. let $d:=doc("/Users/raj/company.xml") for $e in $d/companyDB/employees/employee[dependents] return $e/lname Query 9: Get last names of employees without dependents. let $d:=doc("/Users/raj/company.xml") let $empsWithDeps := $d/companyDB/employees/employee[dependents] for $e in $d/companyDB/employees/employee where empty(index-of($empsWithDeps,$e)) return $e/lname Query 10: get last names of employees from Milwaukee along with their income group: “Low Income Group” (earning < 40000), “Middle Income Group” (earning between 40000 and 60000), and “High Income Group” (earning more than 80000). { let $d:=doc("E:/company.xml") for $e in $d/companyDB/employees/employee[contains(address,"Milwaukee")] return {$e/lname} {if ($e/salary >= 80000) then "High Income" else if ($e/salary >=60000) then "Middle Income" else "Low Income" } } Query 11: Get employee names of employees who work on all projects located in “Houston”. let $d:=doc("/Users/raj/company.xml") let $houstonProjs := $d/companyDB/projects/project[plocation="Houston"] for $e in $d/companyDB/employees/employee where every $p in $houstonProjs satisfies (some $q in $e/projects/worksOn satisfies $p/@pnumber = $q/@pno) return concat($e/fname,", ",$e/lname)