D.3. Giới hạn 윈 토토 và phù hợp với SQL/윈 토토

Các sửa đổi quan trọng đối với các thông số kỹ thuật liên quan đến 윈 토토 trong ISO/IEC 9075-14 (SQL/윈 토토) đã được giới thiệu với SQL: 2006.POSTGRESQLS Thực hiện kiểu dữ liệu 윈 토토 và các chức năng liên quan phần lớn theo phiên bản 2003 trước đó, với một số mượn từ các phiên bản sau. Đặc biệt:

  • Trong đó tiêu chuẩn hiện tại cung cấp một họ các loại dữ liệu 윈 토토 để giữHồitài liệuxônghoặcHồiNội dungHồi9245_9300윈 토토 (chuỗi)Để giữ các phần nội dung 윈 토토 tùy ý,PostgreSQLCung cấp đơn윈 토토Loại, có thể giữDocumentxônghoặcHồiNội dung. Không có tương đương với tiêu chuẩnchuỗiHồiloại.

  • PostgreSQLcung cấp hai hàm được giới thiệu trong SQL: 2006, nhưng trong các biến thể sử dụng ngôn ngữ XPath 1.0, thay vì truy vấn 윈 토토 như được chỉ định cho chúng trong tiêu chuẩn.

Phần này trình bày một số khác biệt kết quả mà bạn có thể gặp phải.

D.3.1. Truy vấn được giới hạn ở XPath 1.0

ThePostgreSQL-Specific Chức năngxpath ()xpath_exists ()Tài liệu truy vấn 윈 토토 bằng ngôn ngữ XPath.PostgreSQLCũng cung cấp các biến thể chỉ dành cho XPath của các hàm tiêu chuẩn윈 토토exist윈 토토table, chính thức sử dụng ngôn ngữ XQuery. Đối với tất cả các chức năng này,PostgreSQLdựa vàolib윈 토토2Thư viện chỉ cung cấp XPath 1.0.

Có một kết nối mạnh mẽ giữa ngôn ngữ XQuery và các phiên bản XPath 2.0 trở lên: Bất kỳ biểu thức nào có giá trị về mặt cú pháp và thực hiện thành công trong cả hai tạo ra kết quả tương tự (với một ngoại lệ nhỏ cho các biểu thức chứa các tham chiếu ký tự hoặc thực thể được xác định trước. Nhưng không có kết nối như vậy giữa các ngôn ngữ này và XPath 1.0; Đó là một ngôn ngữ sớm hơn và khác nhau ở nhiều khía cạnh.

11490_11708PostgreSQL-Specific Chức năng.

D.3.1.1. Hạn chế XQuery thành XPath

Các tính năng của XQuery ngoài các tính năng của XPath bao gồm:

  • Các biểu thức XQuery có thể xây dựng và trả về các nút 윈 토토 mới, ngoài tất cả các giá trị XPath có thể. XPath có thể tạo và trả về các giá trị của các loại nguyên tử (số, chuỗi, v.v.) nhưng chỉ có thể trả về các nút 윈 토토 đã có trong các tài liệu được cung cấp làm đầu vào cho biểu thức.

  • XQuery có các cấu trúc điều khiển để lặp, sắp xếp và nhóm.

  • XQuery cho phép khai báo và sử dụng các chức năng cục bộ.

Các phiên bản XPath gần đây bắt đầu cung cấp các khả năng chồng chéo với các phiên bản này (chẳng hạn như kiểu chức năngfor-avaSắp xếp, Chức năng ẩn danh vàparse-윈 토토Để tạo một nút từ chuỗi), nhưng các tính năng như vậy không có sẵn trước XPath 3.0.

D.3.1.2. Hạn chế XPath là 1.0

Đối với các nhà phát triển quen thuộc với XQuery và XPath 2.0 trở lên, XPath 1.0 trình bày một số khác biệt để tranh cãi với:

  • Loại cơ bản của biểu thức XQuery/XPath,chuỗi, có thể chứa các nút 윈 토토, giá trị nguyên tử hoặc cả hai, không tồn tại trong XPath 1.0. Biểu thức 1.0 chỉ có thể tạo ra một bộ nút (chứa các nút 윈 토토 hoặc nhiều hơn) hoặc một giá trị nguyên tử duy nhất.

  • Không giống như trình tự XQuery/XPath, có thể chứa bất kỳ mục mong muốn nào theo bất kỳ thứ tự mong muốn nào, SPATH 1.0-SET không có thứ tự được đảm bảo và, giống như bất kỳ bộ nào, không cho phép nhiều lần xuất hiện cùng một mục.

    Lưu ý

    Thelib윈 토토2Thư viện dường như luôn trả lại các bộ nút thànhPostgreSQLVới các thành viên của họ theo cùng một thứ tự tương đối họ có trong tài liệu đầu vào. Tài liệu của nó không cam kết với hành vi này và biểu thức XPath 1.0 không thể kiểm soát nó.

  • Trong khi XQuery/XPath cung cấp tất cả các loại được xác định trong lược đồ 윈 토토 và nhiều toán tử và chức năng trên các loại đó, XPath 1.0 chỉ có bộ nút và ba loại nguyên tửBoolean, Doublechuỗi.

  • XPath 1.0 không có toán tử có điều kiện. Biểu thức xquery/xpath nhưif (mũ) thì mũ/@kích thước khác "Không mũ"không có XPath 1.0 tương đương.

  • XPath 1.0 không có toán tử so sánh đặt hàng cho chuỗi. Cả hai"Cat" <"Dog""Cat" "Dog"là sai, bởi vì mỗi cái là một so sánh số của haiNANs. Ngược lại,=! =Làm so sánh các chuỗi là chuỗi.

  • XPath 1.0 làm mờ sự khác biệt giữaso sánh giá trịSo sánh chungnhư xquery/xpath xác định chúng. Cả haiSALE/@HATSIZE = 7SALE/@client = "Alice"là các so sánh được định lượng tồn tại, đúng nếu cóSALEVới giá trị đã cho cho thuộc tính, nhưngSALE/@Taxable = false ()là so sánh giá trị vớiGiá trị Boolean hiệu quảcủa toàn bộ bộ nút. Nó chỉ đúng nếu khôngSALEcó Achịu thuếthuộc tính ở tất cả.

  • Trong mô hình dữ liệu XQuery/XPath, ANút tài liệucó thể có biểu mẫu tài liệu (nghĩa là, chính xác là một yếu tố cấp cao nhất, chỉ có nhận xét và hướng dẫn xử lý bên ngoài nó) hoặc biểu mẫu nội dung (với các ràng buộc đó được nới lỏng). Nó tương đương trong XPath 1.0,Nút gốc, chỉ có thể ở dạng tài liệu. Đây là một phần lý do윈 토토Giá trị được truyền dưới dạng mục ngữ cảnh cho bất kỳPostgreSQLHàm dựa trên XPath phải ở dạng tài liệu.

Sự khác biệt được tô sáng ở đây không phải là tất cả. Trong XQuery và các phiên bản 2.0 trở lên của XPath, có chế độ tương thích XPath 1.0 và danh sách W3C củaThay đổi thư viện chức năngThay đổi ngôn ngữÁp dụng trong chế độ đó cung cấp một tài khoản đầy đủ hơn (nhưng vẫn không đầy đủ) về sự khác biệt. Chế độ tương thích không thể làm cho các ngôn ngữ sau này tương đương với XPath 1.0.

D.3.1.3. Ánh xạ giữa các loại dữ liệu SQL và 윈 토토 và giá trị

Trong SQL: 2006 trở lên, cả hai hướng chuyển đổi giữa các loại dữ liệu SQL tiêu chuẩn và các loại lược đồ 윈 토토 được chỉ định chính xác. Tuy nhiên, các quy tắc được thể hiện bằng cách sử dụng các loại và ngữ nghĩa của XQuery/XPath và không có ứng dụng trực tiếp vào mô hình dữ liệu khác nhau của XPath 1.0.

khiPostgreSQLBản đồ giá trị dữ liệu SQL thành 윈 토토 (như trong윈 토토element) hoặc 윈 토토 thành SQL (như trong các cột đầu ra của윈 토토table), ngoại trừ một vài trường hợp được xử lý đặc biệt,PostgreSQLChỉ cần giả sử rằng biểu mẫu chuỗi XPath 1.0 của loại dữ liệu 윈 토토 sẽ hợp lệ như dạng đầu vào văn bản của kiểu dữ liệu SQL và ngược lại. Quy tắc này có đức tính đơn giản trong khi sản xuất, đối với nhiều loại dữ liệu, kết quả tương tự như các ánh xạ được chỉ định trong tiêu chuẩn.

Trường hợp khả năng tương tác với các hệ thống khác là một mối quan tâm, đối với một số loại dữ liệu, có thể cần phải sử dụng các chức năng định dạng kiểu dữ liệu (chẳng hạn như trongPostgreSQL : 문서 : 13 : 9.8. 데이터 유형 토토 사이트 추천 토토 사이트 추천 기능) rõ ràng để tạo ra các ánh xạ tiêu chuẩn.

D.3.2. Giới hạn ngẫu nhiên của việc thực hiện

Phần này liên quan đến các giới hạn không vốn có tronglib윈 토토2Thư viện, nhưng áp dụng cho việc triển khai hiện tại trongPostgreSQL.

D.3.2.1. Chỉ mộttheo giá trịCơ chế vượt qua được hỗ trợ

Tiêu chuẩn SQL xác định haiCác cơ chế vượt quaÁp dụng khi chuyển đối số 윈 토토 từ SQL sang hàm 윈 토토 hoặc nhận kết quả:bởi ref, trong đó một giá trị 윈 토토 cụ thể giữ lại danh tính nút của nó vàtheo giá trị, trong đó nội dung của 윈 토토 được truyền nhưng nhận dạng nút không được bảo tồn. Một cơ chế có thể được chỉ định trước danh sách các tham số, là cơ chế mặc định cho tất cả chúng hoặc sau bất kỳ tham số nào, để ghi đè mặc định.

Để minh họa sự khác biệt, nếuXlà giá trị 윈 토토, hai truy vấn này trong môi trường SQL: 2006 sẽ tạo ra đúng và sai, tương ứng:

Chọn 윈 토토Query ('$ a là $ b' đi qua refXnhư a,xnhư b null trên trống);
Chọn 윈 토토Query ('$ a là $ b' đi qua giá trịxnhư A,Xnhư b null trên trống);

PostgreSQLsẽ chấp nhậntheo giá trịhoặcbởi reftrong một윈 토토existhoặc윈 토토tableXây dựng, nhưng nó bỏ qua chúng. The윈 토토21345_21486theo giá trị.

D.3.2.2. Không thể chuyển các tham số được đặt tên cho các truy vấn

Hỗ trợ các hàm dựa trên XPath Truyền một tham số để đóng vai trò là mục ngữ cảnh của biểu thức XPath, nhưng không hỗ trợ truyền các giá trị bổ sung có sẵn cho biểu thức như các tham số được đặt tên.

D.3.2.3. KHÔNG윈 토토 (trình tự)loại

ThePostgreSQL 윈 토토Kiểu dữ liệu chỉ có thể giữ một giá trị trongDocumenthoặcNội dungMẫu. Mục ngữ cảnh biểu thức XQuery/XPath phải là một nút 윈 토토 hoặc giá trị nguyên tử, nhưng XPath 1.0 giới hạn nó chỉ là một nút 윈 토토 và không có loại nút cho phépNội dung. Kết quả là mộtDocumentlà dạng duy nhất của giá trị 윈 토토 màPostgreSQLCó thể cung cấp dưới dạng mục ngữ cảnh XPath.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.