Học XQuery trong 10 phút – cách sử dụng xquery

Hướng dẫn XQuery về Tìm hiểu XQuery trong 10 phút

Bạn đang xem: cách sử dụng xquery

Giới thiệu

Bởi: Dr. Michael Kay

Hướng dẫn XQuery này dành cho tất cả những người thực sự muốn biết XQuery là gì, nhưng không có thời gian để tìm hiểu. Tất cả chúng ta đều biết vấn đề: quá nhiều công nghệ mới thú vị, quá ít thời gian để nghiên cứu chúng. Thành thật mà nói, tôi hy vọng rằng bạn sẽ dành hơn mười phút cho hướng dẫn XQuery này – nhưng nếu bạn thực sự phải rời khỏi đó sớm, tôi hy vọng bạn sẽ học được điều gì đó hữu ích.


Trở lại đầu trang

XQuery For là gì?

XQuery được phát minh chủ yếu như một ngôn ngữ truy vấn cho dữ liệu được lưu trữ ở dạng XML. Vì vậy, vai trò chính của nó là lấy thông tin ra khỏi cơ sở dữ liệu XML – điều này bao gồm cơ sở dữ liệu quan hệ lưu trữ dữ liệu XML hoặc hiển thị chế độ xem XML về dữ liệu mà chúng nắm giữ.

Một số người cũng đang sử dụng XQuery để thao tác các tài liệu XML độc lập, chẳng hạn như để chuyển đổi các thông báo truyền giữa các ứng dụng. Trong vai trò đó, XQuery cạnh tranh trực tiếp với XSLT và ngôn ngữ bạn chọn phần lớn là do sở thích cá nhân.

Trên thực tế, một số người thích XQuery đến nỗi họ thậm chí đang sử dụng nó để kết xuất XML thành HTML để trình bày. Đó thực sự không phải là công việc mà XQuery được thiết kế cho và tôi sẽ không khuyên mọi người làm điều đó, nhưng khi bạn biết một công cụ, bạn có xu hướng tìm những cách mới để sử dụng nó.


Trở lại đầu trang

Chơi với XQuery

Cách tốt nhất để tìm hiểu về bất kỳ điều gì là tự mình thử. Hai cách bạn có thể thử các ví dụ XQuery trong bài viết này là:

  • Cài đặt Stylus Studio – Sau đó, truy cập Tệp & gt; Mới & gt; Tệp XQuery … và bạn có thể bắt đầu tạo truy vấn trong ngăn trình chỉnh sửa. (Trong Stylus Studio, bạn cũng có thể sử dụng Trình ánh xạ XQuery trực quan để tạo các truy vấn của mình bằng đồ thị. Nếu bạn thích cách tiếp cận đó, hãy tiếp tục. Nhưng tôi sẽ tập trung ở đây về cú pháp ngôn ngữ thực tế.)
  • Tải xuống DataDirect XQuery – một thành phần xử lý XQuery dựa trên Java để truy vấn dữ liệu quan hệ, tệp XML và dữ liệu không phải XML bằng XQuery.

(Giữa bạn và tôi, nếu bạn chỉ có mười phút, bạn sẽ không có thời gian để cài đặt bất kỳ phần mềm mới nào, vì vậy hãy tiếp tục đọc …)


Trở lại đầu trang

XQuery đầu tiên của bạn

Nếu bạn muốn biết cách thực hiện Hello World! trong XQuery, đây là:

"Hello World!"

và đây là kết quả:

Hello World!

Đây là cách nó hoạt động trong Stylus Studio:

  • Chọn Tệp & gt; Mới & gt; Tệp XQuery
  • Nhập truy vấn (như ở trên) vào ngăn chỉnh sửa
  • Chọn Tệp & gt; Lưu dưới dạng … và chọn tên tệp
  • Nhấp vào nút Xem trước kết quả

Trò chơi vì điều gì đó thú vị hơn? Hãy thử:

2 + 2

và ngạc nhiên trước câu trả lời:

4

Cuối cùng, chỉ để kiểm tra xem mọi thứ có hoạt động bình thường không, hãy nhập:

current-time ()

và bạn sẽ thấy mình còn bao nhiêu thời gian để đọc phần còn lại của bài viết này:

17: 22: 04-05: 00

Tất nhiên, đối với điều đó, số dặm có thể thay đổi. Độ chính xác của giá trị thời gian (phần nhỏ của giây) phụ thuộc vào bộ xử lý XQuery bạn đang sử dụng và múi giờ (trong trường hợp này là 5 giờ trước GMT) tùy thuộc vào cách hệ thống của bạn được định cấu hình.

Tất nhiên, không có câu nào trong số này là một truy vấn rất hữu ích và những gì họ chứng minh không chính xác là khoa học tên lửa . Nhưng trong một ngôn ngữ truy vấn, bạn cần có thể thực hiện các phép tính nhỏ và XQuery đã đề cập đến vấn đề này. Hơn nữa, XQuery được thiết kế để các biểu thức hoàn toàn có thể lồng vào nhau – bất kỳ biểu thức nào cũng có thể được sử dụng trong bất kỳ biểu thức nào khác, miễn là nó mang lại giá trị đúng loại – và điều này có nghĩa là các biểu thức chủ yếu nhằm mục đích chọn dữ liệu trong trong đó Mệnh đề cũng có thể được sử dụng như các truy vấn độc lập theo đúng nghĩa của chúng.


Trở lại đầu trang

Truy cập Tài liệu XML bằng XQuery

Mặc dù có khả năng xử lý các tác vụ thông thường như những tác vụ được mô tả trong phần trước, XQuery được thiết kế để truy cập dữ liệu XML. Vì vậy, hãy xem xét một số truy vấn đơn giản yêu cầu tài liệu XML làm đầu vào của chúng.

Tài liệu nguồn mà chúng tôi sẽ sử dụng có tên là videos.xml . Nó được phân phối dưới dạng tệp ví dụ với Stylus Studio và bạn sẽ tìm thấy nó ở đâu đó giống như c: \ Program Files \ Stylus Studio 2008 XML Enterprise Suite \amples \ VideoCenter \ videos.xml

Ngoài ra còn có một bản sao của tệp mẫu này trên Web.

XQuery cho phép bạn truy cập tệp trực tiếp từ một trong hai vị trí này, sử dụng URL phù hợp làm đối số cho hàm doc () của nó. Đây là một XQuery chỉ đơn giản là truy xuất và hiển thị toàn bộ tài liệu:

doc (' file: /// c : / Program% 20Files / Stylus% 20Studio% 206% 20XML% 20Professional% 20Edition /amples / VideoCenter / videos.xml') < / code>

Có thể sử dụng cùng một chức năng để lấy bản sao từ Web:

doc (' http://www.stylusstudio.com/examples/videos.xml ')

(Điều này sẽ chỉ hoạt động nếu tất nhiên, bạn đang trực tuyến; và nếu bạn đứng sau tường lửa của công ty, bạn có thể phải thực hiện một số điều chỉnh cấu hình Java của mình để cấu hình Java hoạt động.)

Những URL đó hơi khó sử dụng, nhưng bạn có thể sử dụng các phím tắt:

  • Nếu bạn đang làm việc trong Stylus Studio, hãy nhấp vào XQuery / Thuộc tính kịch bản và trong Đầu vào chính (tùy chọn) , duyệt đến tập tin đầu vào và chọn nó. Bây giờ bạn có thể tham chiếu đến tài liệu này trong truy vấn của mình chỉ đơn giản là "." (dấu chấm).
  • Nếu bạn đang làm việc trực tiếp với DataDirect XQuery, tôi khuyên bạn nên sao chép tệp vào một nơi nào đó cục bộ, giả sử c: \ query \ videos.xml và làm việc với tệp từ vị trí đó. Sử dụng tùy chọn dòng lệnh -s c: \ query \ videos.xml và bạn sẽ lại có thể tham chiếu đến tài liệu trong truy vấn của mình là "." (dấu chấm).

Tệp chứa một số phần. Một trong số chúng là phần tử & lt; Actor & gt; , chúng ta có thể chọn như sau:

.//actors

Điều này tạo ra kết quả:

& lt; diễn viên & gt;

& lt; Actor id = "00000015" < mã> & gt; Anderson, Jeff & lt; / diễn viên & gt;

& lt; Actor id = "00000030" < mã> & gt; Bishop, Kevin & lt; / diễn viên & gt;

& lt; Actor id = "0000000f" < mã> & gt; Bonet, Lisa & lt; / diễn viên & gt;

& lt; Actor id = "00000024" < mã> & gt; Bowz, Eddie & lt; / diễn viên & gt;

& lt; Actor id = "0000002d" < mã> & gt; Curry, Tim & lt; / diễn viên & gt;

& lt; Actor id = "00000033" < mã> & gt; Dullea, Keir & lt; / diễn viên & gt;

& lt; Actor id = "00000042" < mã> & gt; Fisher, Carrie & lt; / diễn viên & gt;

& lt; Actor id = "00000006" < mã> & gt; Ford, Harrison & lt; / diễn viên & gt;

& lt; Actor id = "00000045" < mã> & gt; Foster, Jodie & lt; / diễn viên & gt;

... vv ...

& lt; / diễn viên & gt;

Đó là truy vấn “thực” đầu tiên của chúng tôi. Nếu bạn đã quen thuộc với XPath, bạn có thể nhận ra rằng tất cả các truy vấn cho đến nay đều là biểu thức XPath hợp lệ. Chúng tôi đã sử dụng một số hàm – current-time () doc () – có thể không quen thuộc vì chúng mới trong XPath 2.0, vẫn chỉ là một dự thảo; nhưng cú pháp của tất cả các truy vấn cho đến nay là cú pháp XPath thuần túy. Trên thực tế, ngôn ngữ XQuery được thiết kế để mọi biểu thức XPath hợp lệ cũng là một truy vấn XQuery hợp lệ.

Điều này có nghĩa là chúng ta cũng có thể viết các biểu thức XPath phức tạp hơn như biểu thức này:

.// Actor / Actor [end-by (., 'Lisa')]

đưa ra kết quả:

& lt; Actor id = "0000000f" < mã> & gt; Bonet, Lisa & lt; / diễn viên & gt;

& lt; Actor id = "0000001b" & gt ; Spoonhauer, Lisa & lt; / diễn viên & gt;

Các hệ thống khác nhau có thể hiển thị đầu ra này theo những cách khác nhau. Về mặt kỹ thuật, kết quả của truy vấn này là một chuỗi hai nút phần tử trong biểu diễn dạng cây của tài liệu XML nguồn và có nhiều cách mà hệ thống có thể chọn để hiển thị một chuỗi như vậy trên màn hình. Stylus Studio cung cấp cho bạn sự lựa chọn giữa chế độ xem văn bản và chế độ xem dạng cây: bạn sử dụng các nút bên cạnh cửa sổ Xem trước để chuyển từ chế độ này sang chế độ xem khác.

Ví dụ này sử dụng một hàm khác – end-with () – mới trong XPath 2.0. Chúng tôi đang gọi nó bên trong một vị từ (biểu thức giữa các dấu ngoặc vuông), xác định điều kiện mà các nút phải đáp ứng để được chọn. Biểu thức XPath này có hai phần: một đường dẫn .//actors/actor cho biết chúng ta quan tâm đến phần tử nào và một vị từ [end-with (., 'Lisa')] < / code> chỉ ra một thử nghiệm mà các nút phải đáp ứng. Vị từ được đánh giá một lần cho mỗi phần tử được chọn; trong vị từ, biểu thức "." (dot) đề cập đến nút mà vị từ đang kiểm tra, tức là tác nhân đã chọn.

"/" trong đường dẫn có nghĩa là "đi xuống một cấp", trong khi "//" có nghĩa là "đi xuống bất kỳ số cấp nào". Nếu đường dẫn bắt đầu bằng "./" hoặc ".//" , bạn có thể bỏ đi "." (điều này giả định rằng vùng chọn bắt đầu từ ngọn cây, điều này luôn luôn đúng trong các ví dụ của chúng tôi). Bạn cũng có thể sử dụng các cấu trúc như "/ .." để tăng một cấp và "/ @ id" để chọn một thuộc tính. Một lần nữa, tất cả điều này sẽ trở nên quen thuộc nếu bạn đã biết XPath.

XPath có khả năng thực hiện một số lựa chọn khá mạnh mẽ và trước khi chúng ta chuyển sang XQuery thích hợp, hãy xem xét một ví dụ phức tạp hơn. Giả sử chúng ta muốn tìm tiêu đề của tất cả các video có một diễn viên tên là Lisa. Mỗi video trong tệp được đại diện bởi một phần tử video như sau:

& lt; video id = "647599251" < mã> & gt;

& lt; studio & gt; & lt; / studio & gt;

& lt; giám đốc & gt; Francesco Rosi & lt; / giám đốc & gt; < / code>

& lt; ActorRef & gt; 916503211 & lt; / ActorRef & gt;

& lt; ActorRef & gt; 916503212 & lt; / ActorRef & gt;

& lt; title & gt; Carmen & lt; / title & gt;

& lt; dvd & gt; 18 & lt; / dvd & gt;

& lt; laserdisk & gt; & lt; / laserdisk & gt;

& lt; laserdisk_stock & gt; & lt; / laserdisk_stock & gt;

& lt; thể loại & gt; musical & lt; / thể loại & gt;

& lt; xếp hạng & gt; PG & lt; / xếp hạng & gt;

& lt; thời gian chạy & gt; 125 & lt; / thời gian chạy & gt;

& lt; user_rating & gt; 4 & lt; / user_rating & gt;

& lt; tóm tắt & gt; Một bản chuyển thể tuyệt vời của Bizet's

opera phổ biến. & lt; / tóm tắt & gt;

& lt; chi tiết & gt; Placido Domingo lại làm được điều đó, lần này

trong vở opera nổi tiếng của Bizet. & lt; / chi tiết & gt;

& lt; vhs & gt; 15 & lt; / vhs & gt;

& lt; beta_stock & gt; & lt; / beta_stock & gt;

& lt; year & gt; 1984 & lt; / year & gt;

& lt; vhs_stock & gt; 88 & lt; / vhs_stock & gt;

& lt; dvd_stock & gt; 22 & lt; / dvd_stock & gt;

& lt; beta & gt; & lt; / beta & gt;

& lt; / video & gt;

Chúng tôi có thể viết truy vấn bắt buộc như sau:

// video [ActorRef = // Actor / Actor [end-with (., 'Lisa')] / @ id] / title

Một lần nữa, đây là XPath thuần túy (và do đó là XQuery hợp lệ). Bạn có thể đọc nó từ trái sang phải như sau:

  • Bắt đầu từ tài liệu được chọn hoàn toàn ( videos.xml )
  • Chọn tất cả các phần tử & lt; video & gt; ở bất kỳ cấp nào
  • Chọn những phần tử có phần tử ActorRef có giá trị bằng một trong các giá trị sau:
    • Chọn tất cả các phần tử & lt; Actor & gt; ở bất kỳ cấp nào
    • Chọn tất cả các phần tử con & lt; Actor & gt; của chúng
    • Chỉ chọn phần tử nếu giá trị của nó kết thúc bằng 'Lisa'
    • Chọn giá trị của thuộc tính id
  • Chọn phần tử con & lt; title & gt; trong số các phần tử & lt; video & gt; đã chọn này

Kết quả là:

& lt; title & gt; Kẻ thù của Bang & lt; / title & gt ;

& lt; title & gt; Clerks & lt; / title & gt;

Nhiều người nhận thấy rằng ở mức độ phức tạp này, cú pháp XPath khá khó hiểu. Trên thực tế, ví dụ này chỉ là về việc kéo dài XPath đến giới hạn của nó. Đối với loại truy vấn này và đối với bất kỳ thứ gì phức tạp hơn, cú pháp XQuery trở thành của riêng nó. Nhưng cần nhớ rằng có nhiều điều đơn giản bạn có thể làm với XPath một mình và mọi biểu thức XPath hợp lệ cũng hợp lệ trong XQuery. Lưu ý rằng Stylus Studio cũng cung cấp một XPath analyzer tích hợp sẵn để chỉnh sửa và kiểm tra các biểu thức XPath phức tạp một cách trực quan và nó hỗ trợ cả phiên bản 1.0 và 2.0.


Trở lại đầu trang

Biểu thức XQuery FLWOR

Nếu bạn đã sử dụng SQL, thì bạn sẽ nhận ra ví dụ cuối cùng là phép nối giữa hai bảng, bảng video và bảng diễn viên. Nó không hoàn toàn giống trong XML, vì dữ liệu được phân cấp hơn là dạng bảng, nhưng XQuery cho phép bạn viết các truy vấn nối theo cách tương tự như cách tiếp cận SQL quen thuộc. Tương đương với biểu thức SELECT trong SQL của nó được gọi là biểu thức FLWOR, được đặt tên theo năm mệnh đề của nó: for, let, where, order by, return. Đây là ví dụ cuối cùng, được viết lại lần này dưới dạng biểu thức FLWOR:

let $ doc: =.

cho $ v trong $ doc // video,

$ a trong $ doc // Actor / Actor

nơi kết thúc- bằng ($ a, 'Lisa' )

$ v / ActorRef = $ a / @ id

return $ v / title

Và tất nhiên, chúng tôi nhận được kết quả tương tự.

Hãy tách biểu thức FLWOR này ra:

  • Mệnh đề let chỉ khai báo một biến. Tôi đã bao gồm điều này ở đây bởi vì khi tôi triển khai truy vấn, tôi có thể muốn đặt biến này theo cách khác; ví dụ: tôi có thể muốn khởi tạo nó thành doc ('videos.xml') hoặc kết quả của một số truy vấn phức tạp định vị tài liệu trong cơ sở dữ liệu.
  • Mệnh đề for xác định hai biến phạm vi: một biến xử lý lần lượt tất cả các video, một biến xử lý tất cả các tác nhân lần lượt. Tổng hợp lại, biểu thức FLWOR đang xử lý tất cả các cặp video và diễn viên có thể có.
  • Sau đó, mệnh đề where sẽ chọn những cặp mà chúng tôi thực sự quan tâm. Chúng tôi chỉ quan tâm nếu diễn viên xuất hiện trong video đó và chúng tôi chỉ quan tâm nếu tên của diễn viên kết thúc bằng ' Lisa '.
  • Cuối cùng, mệnh đề return cho hệ thống biết thông tin chúng tôi muốn lấy lại. Trong trường hợp này, chúng tôi muốn có tiêu đề của video.

Nếu bạn đã theo dõi rất kỹ, bạn có thể nhận thấy một thủ thuật XPath nhỏ mà chúng tôi đã giữ lại trong truy vấn này. Hầu hết các video sẽ có nhiều hơn một tác nhân (mặc dù cơ sở dữ liệu cụ thể này không cố gắng phân loại các trình phát phần bit). Do đó, biểu thức $ v / ActorRef sẽ chọn một số phần tử. Các quy tắc cho toán tử = trong XPath (và do đó cũng trong XQuery) là nó so sánh mọi thứ ở bên trái với mọi thứ ở bên phải và trả về true nếu có ít nhất một kết quả khớp. Trên thực tế, nó đang thực hiện một phép nối ngầm. Nếu bạn muốn tránh khai thác tính năng này và để viết truy vấn của mình ở dạng quan hệ cổ điển hơn, bạn có thể diễn đạt nó dưới dạng:

let $ doc: =.

cho $ v trong $ doc // video,

$ va trong $ v / ActorRef,

$ a trong $ doc // Actor / Actor

nơi kết thúc- bằng ($ a, 'Lisa' )

$ va eq $ a / @ id

return $ v / title

Lần này, tôi đã sử dụng một toán tử bình đẳng khác, eq , tuân theo nhiều quy tắc thông thường hơn so với = : nó so sánh chặt chẽ một giá trị ở bên trái với một giá trị Phía bên phải. (Nhưng giống như so sánh trong SQL, nó có các quy tắc đặc biệt để xử lý trường hợp một trong các giá trị vắng mặt.)

Còn chữ "O" trong FLWOR? Đó là ở đó để bạn có thể nhận được kết quả theo thứ tự được sắp xếp. Giả sử bạn muốn các video theo thứ tự ngày phát hành của chúng. Đây là truy vấn đã sửa đổi:

let $ doc: =.

cho $ v trong $ doc // video,

$ a trong $ doc // Actor / Actor

nơi kết thúc- bằng ($ a, 'Lisa' )

$ v / ActorRef = $ a / @ id

đặt hàng theo $ v / năm

return $ v / title

Và nếu bạn đang thắc mắc tại sao nó không phải là biểu thức LFWOR: mệnh đề for let có thể xuất hiện theo bất kỳ thứ tự nào và bạn có thể có bất kỳ số mỗi. Điều đó, và LFWOR không chính xác rơi ra khỏi lưỡi, bây giờ thì có ?. Còn nhiều hơn thế nữa về biểu thức FLOWR, sau đó là những gì được đề cập trong hướng dẫn XQuery ngắn gọn này - để biết thêm thông tin, hãy xem hướng dẫn XQuery FLWOR .


Trở lại đầu trang

Tạo đầu ra XML bằng XQuery

Cho đến nay, tất cả các truy vấn chúng tôi đã viết đều có các nút được chọn trong tài liệu nguồn. Tôi đã hiển thị kết quả như thể hệ thống sao chép các nút để tạo một số loại tài liệu kết quả và nếu bạn chạy DataDirect XQuery từ dòng lệnh của trong Stylus Studio thì đó chính xác là những gì sẽ xảy ra; nhưng đó chỉ đơn giản là một chế độ thực thi mặc định. Trong một ứng dụng thực, bạn muốn kiểm soát hình thức của tài liệu đầu ra, đây cũng có thể là đầu vào cho một ứng dụng khác - có thể là đầu vào cho một phép chuyển đổi XSLT hoặc thậm chí là một truy vấn khác.

XQuery cho phép cấu trúc của tài liệu kết quả được xác định bằng cách sử dụng ký hiệu giống XML. Đây là một ví dụ bổ sung cho truy vấn trước đây của chúng tôi với một số đánh dấu XML:

khai báo biến $ firstName là xs: string external;

& lt; video = "{$ firstName}" & gt;

{

let $ doc: =.

cho $ v trong $ doc // video,

$ a trong $ doc // Actor / Actor

trong đó kết thúc bằng ($ a, $ firstName)

và $ v / ActorRef = $ a / @ id

đặt hàng trước $ v / năm

trả về

& lt; video year = "{$ v / year}" & gt;

{$ v / title}

& lt; / video & gt;

}

& lt; / video & gt;

Tôi cũng đã thay đổi truy vấn để tên của diễn viên bây giờ là một tham số. Điều này làm cho truy vấn có thể được sử dụng lại. Cách các tham số được cung cấp thay đổi từ bộ xử lý XQuery này sang bộ xử lý XQuery khác. Trong Stylus Studio, chọn XQuery & gt; Thuộc tính kịch bản ; nhấp vào tab Giá trị tham số và bạn sẽ thấy khoảng trống để nhập giá trị tham số. Nhập "Lisa", trong dấu ngoặc kép (Stylus Studio yêu cầu một biểu thức, vì vậy nếu bạn bỏ qua dấu ngoặc kép, giá trị này sẽ được coi là tham chiếu đến phần tử có tên & lt; Lisa & gt; ).

Thay vào đó, nếu bạn đang chạy DataDirect XQuery từ dòng lệnh, đây là giao diện đầu ra bây giờ:

& lt; video = "Lisa" < mã> & gt;

& lt; video year = "1999" < mã> & gt;

& lt; title & gt; Kẻ thù của Bang & lt; / title & gt ;

& lt; / video & gt;

& lt; video year = "1999" < mã> & gt;

& lt; title & gt; Clerks & lt; / title & gt;

& lt; / video & gt;

& lt; / video & gt;

(Không phải là một truy vấn được thiết kế tốt, vì hai video đều có các nữ diễn viên khác nhau tên là Lisa; nhưng nếu chưa hết mười phút, có lẽ bạn có thể tự cải thiện.)


Trở lại đầu trang

Cho tôi xem cơ sở dữ liệu!

Tôi bắt đầu bằng cách nói rằng mục đích chính của XQuery là trích xuất dữ liệu từ cơ sở dữ liệu XML, nhưng tất cả các ví dụ của tôi đều sử dụng một tài liệu XML duy nhất làm đầu vào.

Đôi khi, người ta ép một tập dữ liệu lớn (ví dụ: danh bạ điện thoại của công ty) vào một tài liệu XML duy nhất và xử lý nó dưới dạng tệp mà không cần đến bất kỳ hệ thống cơ sở dữ liệu nào. Đó không phải là thứ mà tôi đặc biệt khuyên dùng, nhưng nếu khối lượng dữ liệu không vượt quá vài megabyte và tốc độ giao dịch thấp, thì điều đó hoàn toàn khả thi. Vì vậy, các ví dụ trong phần giới thiệu này không hoàn toàn viển vông.

Tuy nhiên, nếu bạn có một cơ sở dữ liệu thực, hình thức của các truy vấn sẽ không cần phải thay đổi nhiều so với những ví dụ này. Thay vì sử dụng hàm doc () (hoặc đơn giản là "." ) để chọn tài liệu, bạn có thể gọi collection () chức năng mở cơ sở dữ liệu hoặc một bộ sưu tập tài liệu cụ thể trong cơ sở dữ liệu. Cách đặt tên bộ sưu tập thực tế có thể thay đổi từ hệ thống cơ sở dữ liệu này sang hệ thống cơ sở dữ liệu khác. Kết quả của hàm XQuery collection () là một tập hợp các tài liệu (nghiêm ngặt hơn là một chuỗi các tài liệu, nhưng thứ tự không có vẻ quan trọng) và bạn có thể xử lý điều này bằng cách sử dụng biểu thức đường dẫn hoặc biểu thức FLWOR giống như cách bạn xử lý một tài liệu.

Tất nhiên, có nhiều thứ đối với cơ sở dữ liệu hơn là thực hiện các truy vấn. Mỗi sản phẩm có những cách riêng để thiết lập cơ sở dữ liệu, xác định lược đồ, tải tài liệu và thực hiện các hoạt động bảo trì như sao lưu và phục hồi. XQuery hiện chỉ xử lý một phần nhỏ của công việc. Trong tương lai, nhiều khả năng nó cũng sẽ có bản cập nhật XQuery, nhưng trong thời gian chờ đợi, mỗi nhà cung cấp đang xác định bản cập nhật của riêng mình.

Một tính năng đặc biệt thú vị của XQuery là nó có khả năng kết hợp dữ liệu từ nhiều cơ sở dữ liệu (và các tài liệu XML tự do). Nếu đó là điều bạn quan tâm, DataDirect XQuery ™ , hỗ trợ quyền truy cập vào Oracle , DB2 < / span>, SQL Server , Sybase , MySQL và nhiều Cơ sở dữ liệu quan hệ khác.


Trở lại đầu trang

Hết giờ!

Chúc mừng bạn đã hoàn thành hướng dẫn XQuery này. Như bạn có thể đã nghi ngờ, có nhiều điều về XQuery hơn chúng tôi đã có thời gian trình bày trong phần sơ lược về XQuery ngắn gọn này. Để đọc thêm, hãy xem nhiều hướng dẫn XQuery khác có sẵn miễn phí trên trang web này.

Nếu bạn muốn làm sạch bàn tay của mình ngay lập tức, Stylus Studio cung cấp rất nhiều công cụ XQuery , bao gồm XQuery editor , XQuery Debugger với hỗ trợ tích hợp cho DataDirect XQuery, một XQuery Mapper để phát triển các dự án XQuery một cách trực quan và XQuery Profiler để đo điểm chuẩn và tối ưu hóa các biểu thức XQuery. Hơn hết, Stylus Studio cung cấp một số video trình diễn trực tuyến để bạn làm quen với những công cụ này và các công cụ khác, đồng thời bạn có thể dùng thử miễn phí Stylus Studio.

Cuối cùng, nếu bạn thiên về học thuật hơn, bạn có thể tìm thấy bản đặc tả XQuery tại http://www.w3.org/TR/XQuery . Khi các tài liệu tiêu chuẩn đi, nó thực sự khá dễ đọc và nó có rất nhiều ví dụ. Đặc tả là một phần của vô số tài liệu trên XQuery, tất cả đều được liệt kê trong phần Tài liệu tham khảo của nó, nhưng tài liệu mà bạn có thể thấy đặc biệt hữu ích là đặc tả Hàm và toán tử tại http: //www.w3. org / TR / xpath-functions . Tài liệu này liệt kê tất cả các chức năng trong thư viện XQuery, nhưng một lời cảnh báo - chỉ những chức năng có tiền tố fn: mới có sẵn trực tiếp cho người dùng cuối. (Bạn sẽ thường thấy người dùng XQuery viết tiền tố fn: , nhưng nó không bao giờ cần thiết.)


Trở lại đầu trang


Xem thêm những thông tin liên quan đến chủ đề cách sử dụng xquery

SQL Server 2012 - Using XQuery to Query XML Data

  • Tác giả: askadba
  • Ngày đăng: 2012-08-25
  • Đánh giá: 4 ⭐ ( 8333 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: This video demonstrates how to use XQuery to query XML data in SQL Server.

    The SQL code used in the video is available at:
    http://askadba.blogspot.com/2012/08/using-xquery-to-query-xml-data.html

Sử dụng Jquery Ajax

  • Tác giả: levunguyen.com
  • Đánh giá: 3 ⭐ ( 8370 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Sử dụng Jquery ajax để thao tác các thành phần trên website như lấy nội dung, chỉnh sửa nội dung các phần tử trên website

TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO XQuery và ứng dụng XML trong cơ sở dữ liệu

  • Tác giả: text.123docz.net
  • Đánh giá: 4 ⭐ ( 5305 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: . tìm hiểu và nghiên cứu, chúng tôi đã quyết định chọn hướng ứng dụng của cơ sở dữ liệu XML. Trong bài tiểu luận này chúng tôi đề cập cơ bản về XML, cơ sở dữ liệu XML và cách truy xuất dữ liệu trên. cận cơ sở dữ liệu XML …………………… 5 1.2.2 Tại sao cần sử dụng

jQuery là gì - Hướng dẫn sử dụng jQuery đơn giản nhất

  • Tác giả: web4s.vn
  • Đánh giá: 4 ⭐ ( 5811 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tìm hiểu jQuery là gì, cách download jQuery, hướng dẫn sử dụng jQuery đơn giản nhất... tất cả sẽ được giải đáp chi tiết trong bài viết của Web4s, bạn cùng đón đọc

Apache VXQuery là gì và nó hoạt động như thế nào?

  • Tác giả: helpex.vn
  • Đánh giá: 3 ⭐ ( 5988 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: XQuery là XML với SQL là gì đối với cơ sở dữ liệu. XQuery là ngôn ngữ để truy vấn dữ liệu XML và nó được xây dựng trên các biểu thức XPath. XQuery được hỗ trợ bởi tất cả các cơ sở dữ liệu…

Jquery Ajax là gì và cách sử dụng Ajax tối ưu

  • Tác giả: freelancervietnam.vn
  • Đánh giá: 4 ⭐ ( 2956 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

jQuery là gì? Ứng dụng jQuery và ưu điểm nổi bật

  • Tác giả: topdev.vn
  • Đánh giá: 4 ⭐ ( 7541 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: jQuery là một thuật ngữ được dùng rất nhiều trong thời đại công nghệ hiện nay. Kể từ khi phát triển 2.0, cụm từ này đã được dùng khá phổ biến.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Thanh điều hướng - tiêu đề thanh điều hướng lớp div