Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản kèo bóng đá euro được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
Tài liệu này dành cho phiên bản kèo bóng đá euro được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng kèo bóng đá euro trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá euro phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

4.1. Cấu trúc từ vựng

Đầu vào SQL bao gồm kèo bóng đá euro chuỗilệnh. kèo bóng đá euro lệnh bao gồm kèo bóng đá euro chuỗimã thông báo, bị chấm dứt bởi dấu chấm phẩy (;Hồi). Phần cuối của luồng đầu vào cũng chấm dứt kèo bóng đá euro lệnh. Mã thông báo nào hợp lệ phụ thuộc vào cú pháp của lệnh cụ thể.

mã thông báo có thể làTừ khóa, anĐịnh danh, AĐịnh danh được trích dẫn, Anghĩa đen(hoặc hằng số) hoặc ký hiệu ký tự đặc biệt. kèo bóng đá euro mã thông báo thường được phân tách bằng khoảng trắng (không gian, tab, newline), nhưng không cần phải có nếu không có sự mơ hồ (thường chỉ là trường hợp nếu một ký tự đặc biệt liền kề với một loại mã thông báo khác).

Ví dụ: sau đây là đầu vào SQL hợp lệ (về mặt cú pháp):

11643_11740

11748_11922

Ngoài ra,bình luậnCó thể xảy ra trong đầu vào SQL. Chúng kèo bóng đá euro phải là mã thông báo, chúng có hiệu quả tương đương với khoảng trắng.

Cú pháp SQL không nhất quán về những gì mã thông báo xác định kèo bóng đá euro lệnh và là toán tử hoặc tham số. Một vài mã thông báo đầu tiên nói chung là tên lệnh, vì vậy trong ví dụ trên, chúng ta thường sẽ nói vềMạnhChọn, anCập nhậtKhănvà kèo bóng đá euroChènlệnh. Nhưng ví dụCập nhậtLệnh luôn yêu cầusetMã thông báo xuất hiện ở kèo bóng đá euro vị trí nhất định và biến thể cụ thể này củaChèncũng yêu cầuGiá trịĐể hoàn thành. kèo bóng đá euro quy tắc cú pháp chính xác cho mỗi lệnh được mô tả trongPhần VI.

4.1.1. Định danh và từ khóa

mã thông báo nhưChọn, Cập nhậthoặcGiá trị​​Trong ví dụ trên là kèo bóng đá euro ví dụ củatừ khóa, nghĩa là kèo bóng đá euro từ có ý nghĩa cố định trong ngôn ngữ SQL. Mã thông báomy_table13662_13665là ví dụ củaĐịnh danh. Họ xác định tên của kèo bóng đá euro bảng, cột hoặc kèo bóng đá euro đối tượng cơ sở dữ liệu khác, tùy thuộc vào lệnh mà chúng được sử dụng. Do đó, đôi khi chúng được gọi đơn giản làTênHồi. kèo bóng đá euro từ khóa và định danh có cùng cấu trúc từ vựng, có nghĩa là người ta không thể biết liệu mã thông báo là một định danh hay từ khóa mà không biết ngôn ngữ. Một danh sách đầy đủ kèo bóng đá euro từ khóa có thể được tìm thấy trongPhụ lục C.

Định danh SQL và kèo bóng đá euro từ khóa phải bắt đầu bằng một chữ cái (A-Z, nhưng cũng có kèo bóng đá euro chữ cái có dấu hiệu và chữ cái không phải là latin) hoặc dấu gạch dưới (_). kèo bóng đá euro ký tự tiếp theo trong một định danh hoặc từ khóa có thể là kèo bóng đá euro chữ cái, dấu gạch dưới, chữ số (0-9) hoặc dấu hiệu đô la ($). Lưu ý rằng kèo bóng đá euro dấu hiệu đô la không được phép trong kèo bóng đá euro định danh theo chữ cái của tiêu chuẩn SQL, vì vậy việc sử dụng chúng có thể khiến kèo bóng đá euro ứng dụng trở nên kém di động hơn. Tiêu chuẩn SQL sẽ không xác định một từ khóa chứa kèo bóng đá euro chữ số hoặc bắt đầu hoặc kết thúc bằng dấu gạch dưới, do đó kèo bóng đá euro định danh của biểu mẫu này là an toàn trước xung đột có thể với kèo bóng đá euro phần mở rộng trong tương lai của tiêu chuẩn.

Hệ thống sử dụng kèo bóng đá euro quáĐược đặt tên-1 byte của một định danh; Tên dài hơn có thể được viết bằng kèo bóng đá euro lệnh, nhưng chúng sẽ bị cắt ngắn. Theo mặc định,Được đặt tênlà 64 vì vậy độ dài định danh tối đa là 63 byte. Nếu giới hạn này có vấn đề, nó có thể được nâng lên bằng cách thay đổiĐược đặt tênhằng số trongsrc/bao gồm/pg_config_manual.h.

kèo bóng đá euro từ khóa và số nhận dạng chưa được trích xuất là trường hợp không nhạy cảm. Vì thế:

Cập nhật my_table set a = 5;

có thể được viết tương đương là:

Cập nhật My_Table Set A = 5;

Một quy ước thường được sử dụng là viết kèo bóng đá euro từ khóa trong trường hợp trên và tên trong chữ thường, ví dụ:

Cập nhật My_Table Set A = 5;

Có kèo bóng đá euro loại định danh thứ hai:Định danh phân địnhhoặcĐịnh danh được trích dẫn. Nó được hình thành bằng cách kèm theo một chuỗi kèo bóng đá euro ký tự tùy ý trong kèo bóng đá euro trích dẫn kép ("). kèo bóng đá euro định danh được phân định luôn là kèo bóng đá euro định danh, không bao giờ là kèo bóng đá euro từ khóa. Vì thế"Chọn"có thể được sử dụng để tham khảo kèo bóng đá euro cột hoặc bảng có tênChọn, trong khi kèo bóng đá euro được trích xuấtChọnsẽ được lấy làm từ khóa và do đó sẽ gây ra lỗi phân tích khi sử dụng khi dự kiến ​​một bảng hoặc tên cột. Ví dụ có thể được viết bằng kèo bóng đá euro định danh được trích dẫn như thế này:

Cập nhật "my_table" set "a" = 5;

16925_17231

Một biến thể của kèo bóng đá euro định danh được trích dẫn cho phép bao gồm kèo bóng đá euro ký tự unicode đã thoát được xác định bởi kèo bóng đá euro điểm mã của chúng. Biến thể này bắt đầu bằngU &(CASE UPu & "foo". (Lưu ý rằng điều này tạo ra sự mơ hồ với toán tử&. Sử dụng kèo bóng đá euro không gian xung quanh toán tử để tránh vấn đề này.) Bên trong kèo bóng đá euro trích dẫn, kèo bóng đá euro ký tự Unicode có thể được chỉ định ở dạng thoát ra bằng cách viết một dấu gạch chéo ngược, theo sau là số điểm mã hexadecimal gồm bốn chữ số hoặc thay vào đó là một dấu gạch chéo ngược theo dấu hiệu cộng với số lượng mã số thập lục số sáu chữ số. Ví dụ: định danh"Dữ liệu"có thể được viết là

U & "D \ 0061T \ +000061"

Ví dụ ít tầm thường sau đây viết từ tiếng NgaHồiSlon(voi) bằng chữ Cyrillic:

U & "\ 0441 \ 043b \ 043e \ 043d"

Nếu kèo bóng đá euro ký tự lối thoát khác với mong muốn của Backslash, nó có thể được chỉ định bằngUescapemệnh đề sau chuỗi, ví dụ:

U & "D! 0061T! +000061" UESCAPE '!'

Nhân vật thoát có thể là bất kỳ ký tự nào khác ngoài chữ số thập lục phân, dấu cộng, một trích dẫn duy nhất, trích dẫn kép hoặc ký tự khoảng trắng. Lưu ý rằng ký tự thoát được viết bằng kèo bóng đá euro trích dẫn đơn, không phải dấu ngoặc kép.

Để bao gồm ký tự thoát trong định danh theo nghĩa đen, viết nó hai lần.

Cú pháp thoát Unicode chỉ hoạt động khi mã hóa máy chủ làUTF8. Khi kèo bóng đá euro mã hóa máy chủ khác được sử dụng, chỉ có kèo bóng đá euro điểm mã trong phạm vi ASCII (lên đến\ 007F) có thể được chỉ định. Cả hình thức 4 chữ số và 6 chữ số đều có thể được sử dụng để chỉ định kèo bóng đá euro cặp thay thế UTF-16 để soạn kèo bóng đá euro ký tự có điểm mã lớn hơn U+FFFF, mặc dù tính khả dụng của dạng 6 chữ số về mặt kỹ thuật làm cho điều này không cần thiết. (kèo bóng đá euro cặp thay thế không được lưu trữ trực tiếp, nhưng kết hợp thành một điểm mã sau đó được mã hóa trong UTF-8.)

Trích dẫn một định danh cũng làm cho nó nhạy cảm trường hợp, trong khi kèo bóng đá euro tên chưa được trình cấp luôn được gấp lại thành chữ thường. Ví dụ: kèo bóng đá euro định danhfoo, foo"foo"được coi là giống nhau bởiPostgreSQL, nhưng"foo""foo"khác với ba người này và nhau. (Việc gấp kèo bóng đá euro tên chưa được trích dẫn thành chữ thường trongPostgreSQLkhông tương thích với tiêu chuẩn SQL, trong đó nói rằng kèo bóng đá euro tên chưa được trích xuất nên được gấp lại thành trường hợp trên. Do đó,foonên tương đương với"foo"kèo bóng đá euro"foo"Theo tiêu chuẩn. Nếu bạn muốn viết kèo bóng đá euro ứng dụng di động, bạn nên luôn luôn trích dẫn một tên cụ thể hoặc không bao giờ trích dẫn nó.)

4.1.2. Hằng số

Có ba loạiHằng số được gõ ngầminPostgreSQL: chuỗi, chuỗi bit và số. kèo bóng đá euro hằng số cũng có thể được chỉ định với kèo bóng đá euro loại rõ ràng, có thể cho phép biểu diễn chính xác hơn và xử lý hiệu quả hơn bởi hệ thống. Những lựa chọn thay thế này được thảo luận trong kèo bóng đá euro tiểu mục sau.

21258_21290

Hằng số chuỗi trong SQL là một chuỗi kèo bóng đá euro ký tự tùy ý bị giới hạn bởi kèo bóng đá euro trích dẫn đơn ('), ví dụ'Đây là kèo bóng đá euro chuỗi'. Để bao gồm kèo bóng đá euro ký tự đơn lẻ trong kèo bóng đá euro hằng số chuỗi, hãy viết hai trích dẫn đơn liền kề, ví dụ:'Dianne''s Horse'. Lưu ý rằng đây làkèo bóng đá eurogiống như ký tự đôi (").

Hai hằng số chuỗi chỉ được phân tách bằng khoảng trắngVới ít nhất kèo bóng đá euro dòng mớiđược kết hợp và xử lý hiệu quả như thể chuỗi đã được viết là kèo bóng đá euro hằng số. Ví dụ:

Chọn 'Foo'
'thanh';

là tương đương với:

chọn 'foobar';

nhưng:

Chọn 'foo' 'Bar';

kèo bóng đá euro phải là cú pháp hợp lệ. (Hành vi hơi kỳ quái này được chỉ định bởiSQL;PostgreSQLđang tuân theo tiêu chuẩn.)

4.1.2.2. Chuỗi hằng số có lối thoát theo kiểu c

PostgreSQLCũng chấp nhậnEscapeHằng số chuỗi, là kèo bóng đá euro phần mở rộng cho tiêu chuẩn SQL. kèo bóng đá euro hằng số chuỗi thoát được chỉ định bằng cách viết chữ cáiE(chữ hoa hoặc chữ thường) ngay trước khi trích dẫn đơn, ví dụ:23259_23267. (Khi tiếp tục một chuỗi thoát hằng số trên kèo bóng đá euro dòng, hãy viếtEChỉ trước khi trích dẫn mở đầu tiên.) Trong kèo bóng đá euro chuỗi thoát, kèo bóng đá euro ký tự dấu gạch chéo ngược (\) bắt đầu giống như cBackslash Escape23545_23667Bảng 4.1.

Bảng 4.1. Trình tự thoát hiểm Backslash

Trình tự thoát Backslash Giải thích
\ B Backspace
\ f Form Feed
\ n Newline
\ r Trở lại vận chuyển
\ T Tab
\o, \OO, \OOO(o= 0 - 7) Giá trị byte Octal
\ xH, \ xHH(H= 0 - 9, a - f) Giá trị byte thập lục phân
\ uxxxx, \ Uxxxxxxxxx(x= 0 - 9, a - f) 16 hoặc 32 bit HexAdeCimal unicode Giá trị ký tự

Bất kỳ ký tự nào khác sau kèo bóng đá euro dấu gạch chéo ngược được thực hiện theo nghĩa đen. Do đó, để bao gồm kèo bóng đá euro ký tự dấu gạch chéo ngược, hãy viết hai dấu gạch chéo ngược (\). Ngoài ra, kèo bóng đá euro trích dẫn duy nhất có thể được bao gồm trong kèo bóng đá euro chuỗi thoát bằng cách viết\ ', ngoài cách bình thường của''.

25815_26113Phần 4.1.2.3, nên được sử dụng thay thế. (Giải pháp thay thế sẽ thực hiện mã hóa UTF-8 bằng tay và viết ra kèo bóng đá euro byte, điều này sẽ rất cồng kềnh.)

26421_26494UTF8. Khi kèo bóng đá euro mã hóa máy chủ khác được sử dụng, chỉ có kèo bóng đá euro điểm mã trong phạm vi ASCII (lên đến\ U007F) có thể được chỉ định. Cả hình thức 4 chữ số và 8 chữ số đều có thể được sử dụng để chỉ định kèo bóng đá euro cặp thay thế UTF-16 để soạn kèo bóng đá euro ký tự có điểm mã lớn hơn U+FFFF, mặc dù tính khả dụng của dạng 8 chữ số về mặt kỹ thuật làm cho điều này không cần thiết. (Khi kèo bóng đá euro cặp thay thế được sử dụng khi mã hóa máy chủ làUTF826980_27064

THẬN TRỌNG

Nếu tham số cấu hìnhStandard_Conforming_Strings27271_27277TẮT, sau đóPostgreSQLNhận ra kèo bóng đá euro lần thoát hiểm trong cả hai hằng số chuỗi thường xuyên và thoát. Tuy nhiên, kể từPostgreSQL9.1, mặc định làtrên, có nghĩa là việc thoát khỏi sự ngược lại chỉ được công nhận trong kèo bóng đá euro hằng số chuỗi thoát. Hành vi này tuân thủ tiêu chuẩn nhiều hơn, nhưng có thể phá vỡ kèo bóng đá euro ứng dụng dựa trên hành vi lịch sử, nơi thoát khỏi sự ngược lại luôn được công nhận. Là một cách giải quyết, bạn có thể đặt tham số này thànhTẮT27861_28034E.

NgoàiStandard_Conforming_Strings, tham số cấu hìnhESCET_STRING_WARNINGBackslash_quoteQuản lý điều trị ngược dòng trong kèo bóng đá euro hằng số chuỗi.

ký tự có mã số 0 kèo bóng đá euro thể nằm trong hằng số chuỗi.

28626_28679

PostgreSQLCũng hỗ trợ một loại cú pháp thoát khác cho kèo bóng đá euro chuỗi cho phép chỉ định kèo bóng đá euro ký tự Unicode tùy ý theo điểm mã. Hằng số chuỗi thoát Unicode bắt đầu bằngU &29026_29163u & 'foo'. (Lưu ý rằng điều này tạo ra sự mơ hồ với toán tử&. Sử dụng kèo bóng đá euro không gian xung quanh toán tử để tránh vấn đề này.) Bên trong kèo bóng đá euro trích dẫn, kèo bóng đá euro ký tự Unicode có thể được chỉ định ở dạng thoát ra bằng cách viết một dấu gạch chéo ngược, theo sau là số điểm mã hexadecimal gồm bốn chữ số hoặc thay vào đó là một dấu gạch chéo ngược theo dấu hiệu cộng với số lượng mã số thập lục số sáu chữ số. Ví dụ: chuỗi'Data'có thể được viết là

U & 'D \ 0061T \ +000061'

Ví dụ ít tầm thường sau đây viết từ tiếng NgaMạnhSlon(voi) bằng chữ Cyrillic:

U & '\ 0441 \ 043B \ 043E \ 043D'

Nếu kèo bóng đá euro ký tự thoát khác với dấu gạch chéo ngược, nó có thể được chỉ định bằng cách sử dụngUESCAPEmệnh đề sau chuỗi, ví dụ:

U & 'D! 0061T! +000061' UESCAPE '!'

ký tự thoát có thể là bất kỳ ký tự nào khác ngoài chữ số thập lục phân, dấu cộng, kèo bóng đá euro trích dẫn duy nhất, trích dẫn kép hoặc ký tự khoảng trắng.

Cú pháp thoát Unicode chỉ hoạt động khi mã hóa máy chủ làUTF8. Khi kèo bóng đá euro mã hóa máy chủ khác được sử dụng, chỉ có kèo bóng đá euro điểm mã trong phạm vi ASCII (lên đến\ 007F) có thể được chỉ định. Cả hình thức 4 chữ số và 6 chữ số đều có thể được sử dụng để chỉ định kèo bóng đá euro cặp thay thế UTF-16 để soạn kèo bóng đá euro ký tự có điểm mã lớn hơn U+FFFF, mặc dù tính khả dụng của dạng 6 chữ số về mặt kỹ thuật làm cho điều này không cần thiết. (Khi kèo bóng đá euro cặp thay thế được sử dụng khi mã hóa máy chủ làUTF8, đầu tiên chúng được kết hợp thành kèo bóng đá euro điểm mã duy nhất sau đó được mã hóa trong UTF-8.)

Ngoài ra, cú pháp thoát Unicode cho kèo bóng đá euro hằng số chuỗi chỉ hoạt động khi tham số cấu hìnhStandard_Conforming_Stringsđược bật. Điều này là do nếu không thì cú pháp này có thể gây nhầm lẫn cho kèo bóng đá euro khách hàng phân tích kèo bóng đá euro câu lệnh SQL đến mức nó có thể dẫn đến tiêm SQL và kèo bóng đá euro vấn đề bảo mật tương tự. Nếu tham số được đặt thành TẮT, cú pháp này sẽ bị từ chối với thông báo lỗi.

Để bao gồm ký tự thoát vào chuỗi theo nghĩa đen, viết nó hai lần.

4.1.2.4. Hằng số chuỗi được trích dẫn đô la

Trong khi cú pháp tiêu chuẩn để chỉ định kèo bóng đá euro hằng số chuỗi thường thuận tiện, có thể khó hiểu khi chuỗi mong muốn chứa nhiều trích dẫn đơn hoặc dấu gạch chéo ngược, vì mỗi trong số đó phải được nhân đôi. Để cho phép kèo bóng đá euro truy vấn dễ đọc hơn trong kèo bóng đá euro tình huống như vậy,PostgreSQLCung cấp kèo bóng đá euro cách khác, được gọi làHồiTrích dẫn đô la, để viết kèo bóng đá euro hằng số chuỗi. Hằng số chuỗi được trích dẫn đô la bao gồm một dấu hiệu đô la ($), kèo bóng đá euro tùy chọnTAGKhăncủa số 0 hoặc nhiều ký tự, một dấu hiệu đồng đô la khác, một chuỗi kèo bóng đá euro ký tự tùy ý tạo nên nội dung chuỗi, một dấu hiệu đô la, cùng một thẻ bắt đầu báo giá đô la này và dấu hiệu đô la. Ví dụ: đây là hai cách khác nhau để chỉ định chuỗiDianne's HorseHồiSử dụng trích dẫn đô la:

$$ Dianne's Horse $$
$ Đôi khi $ Dianne's Horse $ đôi khi $

Lưu ý rằng bên trong chuỗi được trích xuất bằng đô la, có thể sử dụng kèo bóng đá euro báo giá đơn mà không cần phải thoát ra. Thật vậy, không có ký tự nào trong chuỗi trích dẫn đô la từng bị thoát ra: nội dung chuỗi luôn được viết theo nghĩa đen. Backslashes không đặc biệt và cũng không phải là dấu hiệu đô la, trừ khi chúng là một phần của chuỗi phù hợp với thẻ mở.

Có thể làm tổ kèo bóng đá euro hằng số chuỗi được trích xuất bằng cách chọn kèo bóng đá euro thẻ khác nhau ở mỗi cấp độ lồng. Điều này được sử dụng phổ biến nhất trong kèo bóng đá euro định nghĩa chức năng viết. Ví dụ:

$ chức năng $
BẮT ĐẦU
    Trả về ($ 1 ~ $ q $ [\ t \ r \ n \ v \] $ q $);
KẾT THÚC;
$ function $

Ở đây, chuỗi$ q $ [\ t \ r \ n \ v \] $ q $đại diện cho chuỗi chữ được trích dẫn bằng đô la[\ t \ r \ n \ v \], sẽ được nhận ra khi cơ thể chức năng được thực thi bởiPostgreSQL. Nhưng vì chuỗi kèo bóng đá euro khớp với Dollar Dollar trích dẫn DELIMITER$ hàm $, Nó chỉ là kèo bóng đá euro số ký tự khác trong hằng số cho đến khi chuỗi bên ngoài có liên quan.

TAG, nếu có, của chuỗi được trích dẫn theo đô la tuân theo kèo bóng đá euro quy tắc giống như một định danh không được trích xuất, ngoại trừ việc nó không thể chứa một dấu hiệu đô la. Thẻ nhạy cảm, vì vậy$ Tag $ Chuỗi nội dung $ Tag $là chính xác, nhưng$ Tag $ Chuỗi nội dung $ Tag $kèo bóng đá euro phải.

34386_34579

Trích dẫn đô la không phải là một phần của tiêu chuẩn SQL, nhưng nó thường là một cách thuận tiện hơn để viết kèo bóng đá euro chuỗi chuỗi phức tạp hơn so với cú pháp trích dẫn đơn theo tiêu chuẩn. Nó đặc biệt hữu ích khi biểu diễn kèo bóng đá euro hằng số chuỗi bên trong kèo bóng đá euro hằng số khác, như thường cần trong kèo bóng đá euro định nghĩa chức năng thủ tục. Với cú pháp đơn lẻ, mỗi dấu gạch chéo ngược trong ví dụ trên sẽ phải được viết dưới dạng bốn dấu gạch chéo ngược, sẽ được giảm xuống còn hai dấu gạch chéo ngược trong phân tích hằng số chuỗi ban đầu, và sau đó là một hằng số chuỗi bên trong được phân tích lại trong quá trình thực hiện chức năng.

4.1.2.5. Hằng số chuỗi bit

Hằng số chuỗi bit trông giống như kèo bóng đá euro hằng số chuỗi thông thường với AB(chữ hoa hoặc chữ thường) ngay trước khi báo giá mở (kèo bóng đá euro có khoảng trắng can thiệp), ví dụ:B'1001 '. kèo bóng đá euro ký tự duy nhất được phép trong kèo bóng đá euro hằng số chuỗi bit là01.

Ngoài ra, kèo bóng đá euro hằng số chuỗi bit có thể được chỉ định trong ký hiệu thập lục phân, sử dụng hàng đầux(chữ hoa hoặc chữ thường), ví dụ:X'1ff '. Ký hiệu này tương đương với hằng số chuỗi bit với bốn chữ số nhị phân cho mỗi chữ số thập lục phân.

Cả hai dạng hằng số bit có thể được tiếp tục trên kèo bóng đá euro dòng giống như kèo bóng đá euro hằng số chuỗi thông thường. Trích dẫn đô la không thể được sử dụng trong hằng số chuỗi bit.

4.1.2.6. Hằng số số

Hằng số số được chấp nhận trong kèo bóng đá euro hình thức chung này:

chữ số
chữ số. [Digits] [E [+-]Digits]
[Digits].Digits37008_37011E [+-]Digits]chữ sốE [+-]Digits

WHEREchữ sốlà kèo bóng đá euro hoặc nhiều chữ số thập phân (0 đến 9). Ít nhất kèo bóng đá euro chữ số phải là trước hoặc sau điểm thập phân, nếu kèo bóng đá euro chữ số được sử dụng. Ít nhất kèo bóng đá euro chữ số phải tuân theo điểm đánh dấu số mũ (E), nếu có mặt. Không thể có bất kỳ không gian hoặc kèo bóng đá euro ký tự khác được nhúng trong hằng số. Lưu ý rằng bất kỳ dấu hiệu cộng hoặc dấu trừ hàng đầu nào không thực sự được coi là một phần của hằng số; nó là một toán tử được áp dụng cho hằng số.

37760_37813

42
3.5
4.
.001
5E2
1.925E-3

Hằng số số kèo bóng đá euro chứa điểm thập phân cũng như số mũ ban đầu được coi là loạiSố nguyênNếu giá trị của nó phù hợp với loạiSố nguyên(32 bit); Nếu kèo bóng đá euro thì nó được cho là loạiBIGINTNếu giá trị của nó phù hợp với loạiBigint(64 bit); nếu kèo bóng đá euro thì nó được coi là loạiSố. kèo bóng đá euro hằng số chứa kèo bóng đá euro điểm thập phân và/hoặc số mũ luôn được coi là loạiSố.

Kiểu dữ liệu được gán ban đầu của hằng số số chỉ là một điểm bắt đầu cho kèo bóng đá euro thuật toán độ phân giải loại. Trong hầu hết kèo bóng đá euro trường hợp, hằng số sẽ được tự động ép buộc theo loại phù hợp nhất tùy thuộc vào ngữ cảnh. Khi cần thiết, bạn có thể buộc một giá trị số phải được hiểu là một loại dữ liệu cụ thể bằng cách đúc nó.Ví dụ: bạn có thể buộc kèo bóng đá euro giá trị số được coi là loạiReal(float4) bằng cách viết:

Real '1.23' - String Style
1.23 :: Real - PostgreSQL (lịch sử) phong cách

39364_39452

4.1.2.7. Hằng số của kèo bóng đá euro loại khác

Hằng số của kèo bóng đá euro39756_39767Loại có thể được nhập bằng bất kỳ một trong kèo bóng đá euro ký hiệu sau:

loại'chuỗi'
'chuỗi'::loạicast ('chuỗi' BẰNGloại)

Văn bản của Hằng số được chuyển sang thói quen chuyển đổi đầu vào cho loại gọi làloại. Kết quả là một hằng số của loại được chỉ định. kèo bóng đá euro loại đúc rõ ràng có thể được bỏ qua nếu không có sự mơ hồ về loại hằng số phải (ví dụ: khi nó được gán trực tiếp vào cột bảng), trong trường hợp đó nó được tự động ép buộc.

Hằng số chuỗi có thể được viết bằng cách sử dụng ký hiệu SQL thông thường hoặc truy xuất đô la.

Cũng có thể chỉ định kèo bóng đá euro loại ép buộc bằng cách sử dụng cú pháp giống như hàm:

typename('chuỗi' )

Nhưng không phải tất cả kèo bóng đá euro tên loại đều có thể được sử dụng theo cách này; nhìn thấyPhần 4.2.9Để biết chi tiết.

The::, cast ()và cú pháp gọi chức năng cũng có thể được sử dụng để chỉ định kèo bóng đá euro chuyển đổi loại thời gian chạy của kèo bóng đá euro biểu thức tùy ý, như đã thảo luận trongPhần 4.2.9. Để tránh sự mơ hồ của cú pháp,loại'chuỗi'Cú pháp chỉ có thể được sử dụng để chỉ định loại hằng số đơn giản. kèo bóng đá euro hạn chế khác trênloại'chuỗi'Cú pháp là nó không hoạt động cho kèo bóng đá euro loại mảng; sử dụng::hoặccast ()41914_41958

Thecast ()Cú pháp phù hợp với SQL. Theloại'chuỗi'Cú pháp là kèo bóng đá euro khái quát của tiêu chuẩn: SQL Chỉ định cú pháp này chỉ cho kèo bóng đá euro vài loại dữ liệu, nhưngPostgreSQLCho phép nó cho tất cả kèo bóng đá euro loại. Cú pháp với::là lịch sửPostgreSQLSử dụng, cũng như cú pháp gọi chức năng.

4.1.3. Người vận hành

42713_42755Được đặt tên-1 (63 theo mặc định) kèo bóng đá euro ký tự từ danh sách sau:

+-*/< = ~! @#%^& | `?

Tuy nhiên, có kèo bóng đá euro vài hạn chế đối với tên toán tử:

  • --/*kèo bóng đá euro thể xuất hiện ở bất cứ đâu trong tên toán tử, vì chúng sẽ được lấy làm bắt đầu nhận xét.

  • Tên toán tử nhiều ký tự kèo bóng đá euro thể kết thúc bằng+hoặc-, Trừ khi tên cũng chứa ít nhất kèo bóng đá euro trong những ký tự này:

    ~! @#%^& | `?

    Ví dụ:@-là tên toán tử được phép, nhưng*-kèo bóng đá euro. Hạn chế này cho phépPostgreSQLĐể phân tích kèo bóng đá euro truy vấn tuân thủ SQL mà không yêu cầu khoảng cách giữa kèo bóng đá euro mã thông báo.

Khi làm việc với tên toán tử không theo tiêu chuẩn SQL, bạn thường sẽ cần tách kèo bóng đá euro toán tử liền kề với không gian để tránh sự mơ hồ. Ví dụ: nếu bạn đã xác định một toán tử unary bên trái có tên@, bạn kèo bóng đá euro thể viếtx*@y; Bạn phải viếtX* @YĐể đảm bảo rằngPostgreSQLĐọc nó dưới dạng hai tên toán tử không kèo bóng đá euro.

4.1.4. Ký tự đặc biệt

Một số ký tự không phải là chữ và số có ý nghĩa đặc biệt khác với việc trở thành người vận hành. Chi tiết về việc sử dụng có thể được tìm thấy tại vị trí mô tả phần tử cú pháp tương ứng. Phần này chỉ tồn tại để tư vấn cho sự tồn tại và tóm tắt kèo bóng đá euro mục đích của kèo bóng đá euro ký tự này.

  • kèo bóng đá euro dấu hiệu đô la ($) Theo sau là kèo bóng đá euro chữ số được sử dụng để biểu diễn một tham số vị trí trong phần thân của định nghĩa hàm hoặc câu lệnh đã chuẩn bị. Trong kèo bóng đá euro bối cảnh khác, dấu hiệu đồng đô la có thể là một phần của định danh hoặc hằng số chuỗi được trích dẫn đô la.

  • ngoặc đơn (()) Có ý nghĩa thông thường của chúng đối với kèo bóng đá euro biểu thức nhóm và thực thi ưu tiên. Trong một số trường hợp, dấu ngoặc đơn được yêu cầu như là một phần của cú pháp cố định của một lệnh SQL cụ thể.

  • Cấu trúc ([]) được sử dụng để chọn kèo bóng đá euro phần tử của một mảng. Nhìn thấyPhần 8.15Để biết thêm thông tin về mảng.

  • dấu phẩy (,) được sử dụng trong một số cấu trúc cú pháp để tách kèo bóng đá euro phần tử của danh sách.

  • Semicolon (;) chấm dứt lệnh SQL. Nó không thể xuất hiện ở bất cứ đâu trong kèo bóng đá euro lệnh, ngoại trừ trong kèo bóng đá euro hằng số chuỗi hoặc định danh được trích dẫn.

  • Đại tá (:) được sử dụng để chọnMạnhSlicesKhănTừ mảng. (Nhìn thấyPhần 8.1546369_46465

  • Asterisk (*) được sử dụng trong một số bối cảnh để biểu thị tất cả kèo bóng đá euro trường của hàng bảng hoặc giá trị tổng hợp. Nó cũng có một ý nghĩa đặc biệt khi được sử dụng làm đối số của hàm tổng hợp, cụ thể là tổng hợp không yêu cầu bất kỳ tham số rõ ràng nào.

  • Thời kỳ (.) được sử dụng trong kèo bóng đá euro hằng số số và để phân tách lược đồ, bảng và tên cột.

4.1.5. Nhận xét

Một bình luận là một chuỗi kèo bóng đá euro ký tự bắt đầu với kèo bóng đá euro dấu gạch ngang gấp đôi và mở rộng đến cuối dòng, ví dụ:

- Đây là kèo bóng đá euro bình luận SQL tiêu chuẩn

Thay vào đó, nhận xét khối kiểu C có thể được sử dụng:

/* Nhận xét đa dòng
 * với làm tổ: / * bình luận khối lồng nhau * /
 */

nơi nhận xét bắt đầu bằng/*và mở rộng đến sự xuất hiện của*/. kèo bóng đá euro bình luận khối này làm tổ, như được chỉ định trong tiêu chuẩn SQL nhưng không giống như C, để người ta có thể nhận xét kèo bóng đá euro khối mã lớn hơn có thể chứa kèo bóng đá euro nhận xét khối hiện có.

kèo bóng đá euro nhận xét được xóa khỏi luồng đầu vào trước khi phân tích cú pháp tiếp theo và được thay thế kèo bóng đá euro cách hiệu quả bằng khoảng trắng.

4.1.6. Nhà điều hành ưu tiên

Bảng 4.2Hiển thị ưu tiên và tính kết hợp của kèo bóng đá euro toán tử trongPostgreSQL. Hầu hết kèo bóng đá euro nhà khai thác có cùng mức độ ưu tiên và được liên kết trái. Sự ưu tiên và tính kết hợp của kèo bóng đá euro toán tử được kết nối với trình phân tích cú pháp.

Đôi khi bạn sẽ cần thêm dấu ngoặc đơn khi sử dụng kết hợp kèo bóng đá euro toán tử nhị phân và đơn. Ví dụ:

Chọn 5! - 6;

sẽ được phân tích cú pháp như:

48832_48851

Vì trình phân tích cú pháp kèo bóng đá euro có ý tưởng - cho đến khi quá muộn - rằng!được định nghĩa là toán tử postfix, kèo bóng đá euro phải là infix. Để có được hành vi mong muốn trong trường hợp này, bạn phải viết:

Chọn (5!) - 6;

Đây là giá mà người ta phải trả cho khả năng mở rộng.

Bảng 4.2. Người vận hành ưu tiên (cao nhất đến thấp nhất)

toán tử/phần tử Associativity Mô tả
. trái Dấu tách tên/cột
:: trái POSTGRESQL-Style typecast
[ ] trái Lựa chọn phần tử mảng
+ - phải Unary Plus, Minus Minus
^ trái
* / % trái Nhân, chia, modulo
+ - trái Bổ sung, trừ
(bất kỳ toán tử nào khác) trái 50486_50531
giữa in như ilike tương tự Ngăn chặn phạm vi, đặt thành viên, khớp chuỗi
< = <= = < kèo bóng đá euro toán tử so sánh
isnull notnull là đúng, là sai, là null, khác với, v.v.
kèo bóng đá euro phải phủ định logic
trái Kết hợp logic
hoặc trái Phân biệt logic

Lưu ý rằng kèo bóng đá euro quy tắc ưu tiên toán tử cũng áp dụng cho kèo bóng đá euro toán tử do người dùng xác định có cùng tên với kèo bóng đá euro toán tử tích hợp đã đề cập ở trên. Ví dụ: nếu bạn xác định A+Nhà điều hành cho kèo bóng đá euro số loại dữ liệu tùy chỉnh, nó sẽ có mức độ ưu tiên giống như tích hợp+xôngtoán tử, bất kể bạn làm gì.

Khi tên toán tử có trình độ lược đồ được sử dụng trongNhà điều hànhCú pháp, ví dụ như trong:

Chọn 3 toán tử (pg_catalog.+) 4;

TheNhà điều hànhXây dựng được thực hiện để có ưu tiên mặc định được hiển thị trongBảng 4.2choBất kỳ toán tử nào khác. Điều này đúng bất kể toán tử cụ thể nào xuất hiện bên trongtoán tử ().

Lưu ý

POSTGRESQLPhiên bản trước 9.5 đã sử dụng kèo bóng đá euro quy tắc ưu tiên toán tử hơi khác nhau. Cụ thể,<= =<từng được coi là toán tử chung;kèo bóng đá euro bài kiểm tra được sử dụng để có mức độ ưu tiên cao hơn; Vàkèo bóng đá euro giữavà kèo bóng đá euro cấu trúc liên quan đã hành động không nhất quán, được thực hiện trong một số trường hợp có quyền ưu tiên củakèo bóng đá eurochứ kèo bóng đá euro phảigiữa53390_53631Mạnhkèo bóng đá euro có toán tử như vậyThất bại có thể được giải quyết bằng cách thêm dấu ngoặc đơn. Tuy nhiên, có những trường hợp góc trong đó kèo bóng đá euro truy vấn có thể thay đổi hành vi mà không có bất kỳ lỗi phân tích cú pháp nào được báo cáo. Nếu bạn lo lắng về việc liệu những thay đổi này có âm thầm bị hỏng kèo bóng đá euro cái gì đó hay không, bạn có thể kiểm tra ứng dụng của mình với tham số cấu hìnhngười điều hành_precedence_warningBật để xem có bất kỳ cảnh báo nào được ghi lại kèo bóng đá euro.