Rozšíření SQL

  • většina high-end databází obsahuje nějakou podporu XML

  • proprietární rozšíření SQL

    SELECT firstname, lastname, employeeid FROM Employess 
    WHERE employeeid = 1 FOR XML RAW
    
    <row firstname="Nancy" lastname="Davolio" employeeid="1"/>
  • SQL/XML – rozšíření standardu SQL o mapování mezi SQL a XML typy a názvy identifikátorů, funkce pro generování XML z výsledku SQL dotazu, načítání/ukládání XML, …

    select xmlelement("emp",
                     'Employee ' ,
                     xmlelement( "name", e.ename),
                     ' was hired on ',
                     xmlelement("hiredate", e.hiredate)) as result
    from employess e;
    
    <emp>
      Employee <name>John</name> was hired 
      on <hiredate>2002-12-07</hiredate>
    </emp>
  • většina databází dnes nabízí integraci XPath a XQuery do SQL

    SELECT Resume.query('
       declare namespace RES="urn:x-test:cv";
       for $EMP in /RES:Resume/RES:Employment
       order by $EMP/RES:Emp.StartDate
       return
         <Employment>
          { $EMP/RES:Emp.StartDate }
          { $EMP/RES:Emp.EndDate }
          { $EMP/RES:Emp.OrgName }
          { $EMP/RES:Emp.JobTitle }
         </Employment>
    ') as Result
    FROM [HumanResources].[JobCandidate]
    WHERE JobCandidateID = 3