SQLfX® (SQL for XML) is the first and only transparent total integration of native XML by ANSI SQL. It requires no use of XML centric syntax or functions, XML training, or knowledge of the hierarchical structures being processed in order to use. Its navigationless operation along with its dynamic hierarchical processing and XMLstructured output allows data value enhancing multipath queries to be easily specified even by nontechnical users using global SQL hierarchical views without any additional overhead.
SQLfX® Prototype Instructions
The SQLfX® Prototype is invoked easily through your browser. It is a Java Applet so Java must be installed and Java must be enabled in your browser. Any version of Java should work. The prototype has a sample database to test with allowing coverage of all of SQLfX® ‘s powerful hierarchical processing features and capabilities that can be utilized in real-time. SQL queries are composed using standard SELECT, FROM, WHERE, Left Outer Join and ON operations for hierarchical data modeling.
The queries can be composed directly or copied from other SQLfX® sources that use the same views already stored in the online database.
An available SQLfX® paper is available below for reference and its SQL examples are available below for cutting and pasting into the prototype which can be invoked below.
Once the SQLfX® Prototype is invoked, the query input window is displayed. Connected should appear on the upper left of the window. If there is a connection failure, try restarting or changing your browser. If the problem persists, please contact us at: firstname.lastname@example.org.
Click on the Query button top left on window buttons across the top of the window to enter the first or next SQL query. Copy a query from another SQLfX® document made available below or enter your own query. To execute the displayed query, click the Exec bottom at the top right of the window. [At this point, the SQL query will be hierarchically executed in real time and the dynamically formatted XML result will be displayed. Only the SELECTed data fields data will be returned and automatically collected concisely and meaningfully.]
Repeat the above Query process for the next query. But note that the Query button will automatically display the previous query statement for easy repetitive modification. This query can be cleared with the New button upper left, manually blanked out, or just loaded over by a stored query.
Optionally: The New button clears the current query displayed in query mode. The Result button will display the previous XML result, and the Help button can be used to display SQLfX®'s syntax and instruction set for the prototype. The Cut, Copy and Past buttons at upper center can be used to help edit your query composing.
Click Prototype to start the prototype. Resize the prototype input window and position to see your SQLfX® input document. If you have no SQLfX® document loaded, see below. To transfer SQL examples into the SQLfX® query input window for processing, see Prototype Instructions above.
SELECT EmpID, DpndID, EaddrID, CustID, InvID, AddrID FROMEmpView LEFT JOIN CustView ON EaddrID=AddrID
Figure 19: Linking below lower level root with node promotion
SELECT EmpID, DpndID, InvID, AddrID FROMEmpView LEFT JOIN CustView ON EaddrID=AddrID
Figure 20: WHERE clause LCA semantics
SELECT EmpID, CustID FROM EmpCust WHERE InvID='Inv01' AND AddrID='Addr01'
Figure 21: SELECT clause LCA semantics
SELECT InvID, DpndID FROM EmpCust WHERE AddrID='Addr01'
Figure 22: WHERE and SELECT clause LCA semantics combined
SELECT DpndID FROM EmpCust WHERE InvID='Inv01' AND AddrID='Addr01'
Figure 22-2: WHERE clause OR condition operation SELECT InvID, AddrId FROM EmpCust WHERE InvID='Inv01' OR AddrID='Addr01' Figure 23: Variable structure example looking back
SELECT EmpID, DpndID, CustID, InvID, AddrID, EmpStatus FROMEmpView LEFT JOIN CustView ON EmpCustID=CustID AND EmpStatus='F'
Figure 23-2: Variable structure example looking ahead
SELECT EmpID, DpndID, CustID, InvID, AddrID, InvStatus FROMEmpView LEFT JOIN CustView ON EmpCustID=CustID AND InvStatus='P'
Figure 24: Restructured EmpCust structure
SELECT X.EmpID, X.DpndID, Y.InvID, X.AddrID FROM EmpCust Y LEFT JOIN EmpCust X ON Y.InvCustID=X.EmpCustID
Figure 25: Simple reshaping nonlinear to linear structure
SELECT X.DpndID, Y.EmpID, Y.EaddrID FROM EmpView X LEFT JOIN EmpView Y ON X.DpndID=Y.DpndID
Figure 26: Complex reshaping nonlinear to linear structure
SELECT X.DpndID, Y.EaddrID, Z.EmpID FROM EmpView X LEFT JOIN EmpView Y ON X.DpndID=Y.DpndID LEFT JOIN EmpView Z ON Y.EaddrID=Z.EaddrID
Figure 29: Global Query with no modifications applied
SELECT * FROM EmpCust
Figure 30: Global Query with data filtering applied
SELECT * FROM EmpCust WHERE InvStatus='O'
Figure 31: Nonlinear ORDER BY
SELECT CustID, InvID, AddrID FROM CustView ORDER BY AddrID DESC, InvID DESC, CustID DESC
Figure 32: Renaming nodes and their fields
SELECT EmpID EmpName, DpndID AS DpndName, Addr1.EaddrID AS AddrName, Addr2.Eaddrstate AS AddrState FROM Emp AS Employee LEFT JOIN Dpnd AS Dependent ON EmpID=DpndEmpID and DpndCode='D' LEFT JOIN EAddr AS Addr1 ON EmpCustID=Addr1.EAddrCustID LEFT JOIN EAddr AS Addr2 ON Addr1.EaddrCustID=Addr2.EAddrCustID