Postgresql 7.4.30 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | tỷ lệ kèo bóng đá tiếp nhanh | Tiếp theo |
SQLCâu lệnh có thể, cố ý hay không, yêu cầu trộn lẫn các tỷ lệ kèo bóng đá dữ liệu khác nhau trong cùng một biểu thức.PostgreSQLCó các cơ sở rộng lớn để đánh giá tỷ lệ kèo bóng đá hỗn hợp biểu thức.
Trong nhiều trường hợp, người dùng sẽ không cần hiểu chi tiết của cơ chế chuyển đổi tỷ lệ kèo bóng đá. Tuy nhiên, ẩn Chuyển đổi được thực hiện bởiPostgreSQLcó thể ảnh hưởng đến kết quả của một truy vấn. Khi cần thiết, những kết quả này có thể được điều chỉnh bởi người dùng hoặc lập trình viên bằng cách sử dụngrõ ràngChuyển đổi tỷ lệ kèo bóng đá.
Chương này giới thiệuPostgreSQLtỷ lệ kèo bóng đá cơ chế chuyển đổi và quy ước. Tham khảo các phần có liên quan trongChương 8vàChương 9Để biết thêm thông tin về cụ thể Kiểu dữ liệu và các chức năng và toán tử cho phép.
SQLlà một gõ mạnh mẽ ngôn ngữ. Nghĩa là, mọi mục dữ liệu đều có một tỷ lệ kèo bóng đá dữ liệu liên quan xác định hành vi của nó và cho phép sử dụng.PostgreSQLcó hệ thống tỷ lệ kèo bóng đá mở rộng đó là tổng quát và linh hoạt hơn nhiều so với các khácSQLtriển khai. Kể từ đây, Hầu hết các hành vi chuyển đổi tỷ lệ kèo bóng đá trongPostgreSQLnên được chi phối bởi chung Quy tắc chứ không phải bởiad hocHeuristic, để cho phép các biểu thức tỷ lệ kèo bóng đá hỗn hợp có ý nghĩa Ngay cả với các tỷ lệ kèo bóng đá do người dùng xác định.
ThePostgreSQLMáy quét/phân tích cú pháp giải mã các yếu tố từ vựng thành năm Các tỷ lệ kèo bóng đá cơ bản: số nguyên, số điểm nổi, Chuỗi, tên và từ khóa. Hằng số của hầu hết không phải là số Các tỷ lệ kèo bóng đá được phân tỷ lệ kèo bóng đá đầu tiên là chuỗi. TheSQLĐịnh nghĩa ngôn ngữ cho phép chỉ định Nhập tên với chuỗi và cơ chế này 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, tỷ lệ kèo bóng đáTextvàđiểm. Nếu một tỷ lệ kèo bóng đá là không được chỉ định cho một chuỗi theo nghĩa đen, sau đó tỷ lệ kèo bóng đá trình giữ chỗkhông xác địnhđược gán ban đầu, là được giải quyết trong các giai đoạn sau như mô tả bên dưới.
Có bốn cơ bảnSQLCấu trúc yêu cầu tỷ lệ kèo bóng đá khác biệt Quy tắc chuyển đổi trongPostgreSQLphân tích cú pháp:
PostgreSQLCho phép Biểu thức với tiền tố và postfix unary (một đối số) Người vận hành, cũng như nhị phân (hai đối số) người vận hành.
Phần lớnPostgreSQLHệ thống tỷ lệ kèo bóng đá được xây dựng xung quanh một bộ chức năng phong phú. Các cuộc gọi chức năng có thể có một hoặc nhiều lập luận. TừPostgreSQLchức năng cho phép quá tải, tên chức năng một mình không duy nhất xác định 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 các tỷ lệ kèo bóng đá dữ liệu của đối số được cung cấp.
SQL ChènvàCập nhậtCâ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, các tỷ lệ kèo bóng đá mục tiêu các cột.
Vì tất cả các 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 tập hợp các cột, các tỷ lệ kèo bóng đá kết quả của mỗiChọnĐiều khoản phải được kết hợp và tỷ lệ kèo bóng đá thành một bộ đồng đều. Tương tự, chi nhánh Biểu thức của AcaseXây dựng phải được chuyển đổi thành một tỷ lệ kèo bóng đá chung đểcaseBiểu thức nói chung có một tỷ lệ kèo bóng đá đầu ra. Tương tự như vậy chomảngCấu trúc.
Danh mục hệ thống lưu trữ thông tin về cái nào tỷ lệ kèo bóng đá, được gọi làCasts, giữa Các tỷ lệ kèo bóng đá dữ liệu là hợp lệ và cách thực hiện các chuyển đổi đó. Các diễn viên bổ sung có thể được thêm bởi người dùng vớiTạo CastLệnh. (Điều này thường được thực hiện trong Kết hợp với việc xác định các tỷ lệ kèo bóng đá dữ liệu mới. Tập hợp các diễn viên giữa các tỷ lệ kèo bóng đá tích hợp đã được chế tạo cẩn thận và là tốt nhất không bị 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 choSQLCác tỷ lệ kèo bóng đá tiêu chuẩn. Có một số cơ bảntỷ lệ kèo bóng đá danh mụcXác định:Boolean, Số, chuỗi, BitString, DateTime, TimesPan, hình học, mạng,, và người dùng định nghĩa. Mỗi tỷ lệ kèo bóng đá, ngoại trừ do người dùng xác định, có một hoặc nhiềuƯu tiên tỷ lệ kèo bóng đáđược lựa chọn tốt hơn khi có sự mơ hồ. Trong danh mục do người dùng xác định, mỗi tỷ lệ kèo bóng đá là của riêng nó tỷ lệ kèo bóng đá ưa thích. Biểu hiện mơ hồ (những người có nhiều do đó các giải pháp phân tích ứng viên) do đó thường có thể được giải quyết Khi có nhiều tỷ lệ kèo bóng đá tích hợp có thể, nhưng chúng sẽ Tăng lỗi khi có nhiều lựa chọn cho người dùng do người dùng xác định các tỷ lệ kèo bóng đá.
Tất cả các quy tắc chuyển đổi tỷ lệ kèo bóng đá được thiết kế với một số Nguyên tắc trong tâm trí:
tỷ lệ kèo bóng đá 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.
Các tỷ lệ kèo bóng đá 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 được"cao hơn"Trong phân cấp tỷ lệ kèo bóng đá. Trong các biểu thức tỷ lệ kèo bóng đá hỗn hợp, các tỷ lệ kèo bóng đá bản địa sẽ luôn luôn chuyển đổi thành tỷ lệ kèo bóng đá do người dùng xác định (tất nhiên, chỉ khi chuyển đổi là cần thiết).
Các tỷ lệ kèo bóng đá do người dùng xác định không liên quan. Hiện nay,PostgreSQLkhông có thông tin có sẵn cho nó về mối quan hệ giữa các tỷ lệ kèo bóng đá, khác với các heuristic được mã hóa cứng cho các tỷ lệ kèo bóng đá tích hợp và các mối quan 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 tỷ lệ kèo bóng đá ngầm. Nghĩa là, nếu một truy vấn được xây dựng tốt và các tỷ lệ kèo bóng đá đã khớp với nhau, sau đó truy vấn nên tiến hành mà không cần Dành thêm thời gian cho trình phân tích cú pháp và không giới thiệu Các cuộc gọi chuyển đổi ngầm không cần thiết 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 hàm và nếu sau đó người dùng xác định chức năng mới với các tỷ lệ kèo bóng đá đố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 ngầm bằng cách sử dụng hàm cũ.