Postgresql 8.2.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 10. soi kèo bóng đá truoctran chuyển đổi | Chuyển tiếp nhanh | Tiếp theo |
SQLlà một gõ mạnh mẽ ngôn ngữ. Nghĩa là, mọi mục dữ liệu đều có một loại dữ liệu liên soi kèo bóng đá truoctran xác định hành vi của nó và cho phép sử dụng.PostgreSQLCó hệ thống loại mở rộng đó là tổng quát và linh hoạt hơn nhiều so với soi kèo bóng đá truoctran khácSQLtriển khai. Do đó, hầu hết soi kèo bóng đá truoctran Hành vi chuyển đổi trongPostgreSQLđược điều chỉnh bởi soi kèo bóng đá truoctran quy tắc chung thay vì bởiad hocHeuristic. Điều này cho phép các biểu thức loại hỗn hợp có ý nghĩa ngay cả với soi kèo bóng đá truoctran do người dùng xác định.
ThePostgreSQLMáy quét/trình phân tích cú pháp Chia các yếu tố từ vựng chỉ thành năm loại cơ bản: số nguyên, số không số nguyên, chuỗi, định danh và khóa từ. Hằng số của hầu hết soi kèo bóng đá truoctran không phải là số được phân loại đầu tiên như dây. TheSQLNgôn ngữ Định nghĩa cho phép chỉ định tên soi kèo bóng đá truoctran bằng chuỗi và cái này cơ chế có thể được sử dụng trongPostgreSQLĐể khởi động trình phân tích cú pháp xuống đường dẫn chính xác. Ví dụ: truy vấn
chọn văn bản 'gốc' là "nhãn", điểm '(0,0)' làm "giá trị"; Nhãn | giá trị --------+------- Nguồn gốc | (0,0) (1 hàng)
Có hai hằng số theo nghĩa đen, soi kèo bóng đá truoctranTextvàđiểm. Nếu một soi kèo bóng đá truoctran không được chỉ định cho một Chuỗi theo nghĩa đen, sau đó là soi kèo bóng đá truoctran trình giữ chỗkhông xác địnhđược gán ban đầu, sẽ được giải quyết trong soi kèo bóng đá truoctran giai đoạn sau như được mô tả dưới đây.
Có bốn cơ bảnSQLCấu trúc yêu cầu soi kèo bóng đá truoctran khác biệt Quy tắc chuyển đổi trongPostgreSQLphân tích cú pháp:
Phần lớnPostgreSQLLoại hệ thống được xây dựng xung quanh một bộ chức năng phong phú. soi kèo bóng đá truoctran chức năng có thể có một hoặc nhiều đối số. TừPostgreSQLgiấy phép quá tải chức năng, tên chức năng không xác định duy nhất các chức năng được gọi; trình phân tích cú pháp phải chọn đúng chức năng dựa trên soi kèo bóng đá truoctran dữ liệu của các đối số được cung cấp.
PostgreSQLCho phép Biểu thức với tiền tố và postfix unary (một đối số) soi kèo bóng đá truoctran nhà khai thác, cũng như soi kèo bóng đá truoctran nhà khai thác nhị phân (hai đối số). Giống soi kèo bóng đá truoctran chức năng, người vận hành có thể bị quá tải và như vậy Sự cố chọn toán tử đúng tồn tại.
SQL Chènvà12657_12665Câu lệnh đặt kết quả của các biểu thức vào một bảng. Các biểu thức trong câu lệnh phải được khớp với, và có lẽ được chuyển đổi thành, soi kèo bóng đá truoctran mục tiêu các cột.
Vì tất cả soi kèo bóng đá truoctran kết quả truy vấn từ một liên minhChọnCâu lệnh phải xuất hiện trong một bộ duy nhất
của các cột, soi kèo bóng đá truoctran kết quả của mỗiChọnmệnh đề phải được khớp với nhau và
chuyển đổi thành một bộ đồng đều. Tương tự, kết quả
Biểu thức của AcaseXây dựng
phải được chuyển đổi thành một soi kèo bóng đá truoctran chung đểcaseBiểu thức nói chung có một
soi kèo bóng đá truoctran đầu ra. Tương tự như vậy chomảngCấu trúc và chovĩ đại nhất
vàÍt nhất
chức năng.
Danh mục hệ thống lưu trữ thông tin về chuyển đổi nào, gọi điệnCasts, giữa soi kèo bóng đá truoctran dữ liệu là hợp lệ, và làm thế nào để thực hiện các chuyển đổi đó. Các diễn viên bổ sung có thể được người dùng thêm vào vớiTạo DÀN DIỄN VIÊNLệnh. (Điều này thường được thực hiện cùng với Xác định soi kèo bóng đá truoctran dữ liệu mới. Tập hợp các diễn viên giữa tích hợp soi kèo bóng đá truoctran đã được chế tạo cẩn thận và tốt nhất không đã thay đổi.)
Một heuristic bổ sung được cung cấp trong trình phân tích cú pháp để cho phép đoán tốt hơn về hành vi thích hợp choSQLsoi kèo bóng đá truoctran tiêu chuẩn. Có một số cơ bảnsoi kèo bóng đá truoctran danh mụcXác định:Boolean, Số, chuỗi, BitString, DateTime, TimesPan, hình học, mạng, và Người dùng xác định. Mỗi danh mục, ngoại trừ người dùng do người dùng định nghĩa, có một hoặc nhiềusoi kèo bóng đá truoctran ưu tiênmà được ưu tiên chọn khi có sự mơ hồ. Trong Danh mục do người dùng xác định, mỗi loại là loại ưa thích của riêng nó. Biểu hiện mơ hồ (những người có phân tích cú pháp nhiều ứng cử viên do đó các giải pháp) do đó thường có thể được giải quyết khi có nhiều loại có thể tích hợp có thể, nhưng chúng sẽ gây ra lỗi Khi có nhiều lựa chọn cho soi kèo bóng đá truoctran do người dùng xác định.
Tất cả soi kèo bóng đá truoctran quy tắc chuyển đổi loại được thiết kế với một số nguyên tắc trong tâm trí:
Chuyển đổi ngầm không bao giờ có điều đáng ngạc nhiên hoặc Kết quả không thể đoán trước.
soi kèo bóng đá truoctran do người dùng xác định, trong đó trình phân tích cú pháp không cóA PrioriKiến thức, nên là"cao hơn"Trong phân cấp loại. TRONG biểu thức loại hỗn hợp, soi kèo bóng đá truoctran bản địa sẽ luôn luôn chuyển đổi thành loại do người dùng xác định (tất nhiên, chỉ khi chuyển đổi là cần thiết).
Các loại do người dùng xác định không liên soi kèo bóng đá truoctran. Hiện nay,PostgreSQLkhông có thông tin có sẵn cho nó về mối soi kèo bóng đá truoctran hệ giữa các loại, khác với các heuristic được mã hóa cứng cho các loại tích hợp và các mối soi kèo bóng đá truoctran hệ tiềm ẩn dựa trên các chức năng có sẵn và diễn viên.
Không nên có thêm chi phí từ trình phân tích cú pháp hoặc Người thực thi nếu một truy vấn không cần chuyển đổi loại ngầm. Nghĩa là, nếu một truy vấn được xây dựng tốt và soi kèo bóng đá truoctran đã khớp với nhau, sau đó truy vấn nên tiến hành mà không cần chi tiêu thêm thời gian trong trình phân tích cú pháp và không giới thiệu không cần thiết Các cuộc gọi chuyển đổi ngầm vào truy vấn.
Ngoài ra, nếu một truy vấn thường yêu cầu chuyển đổi cho một chức năng và nếu sau đó người dùng xác định một chức năng với soi kèo bóng đá truoctran đối số chính xác, trình phân tích cú pháp nên sử dụng chức năng mới này và sẽ không còn làm Chuyển đổi bằng hàm cũ.