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 soi kèo bóng đá truoctran đượ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

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

Đầu vào SQL bao gồm soi kèo bóng đá truoctran chuỗilệnh. soi kèo bóng đá truoctran lệnh bao gồm soi kèo bóng đá truoctran chuỗimã thông báo, bị chấm dứt bởi dấu chấm phẩy (;Hồi10783_10914

mã thông báo có thể là soi kèo bóng đá truoctranTừ 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. soi kèo bóng đá truoctran 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):

Chọn * từ my_table;
Cập nhật my_table đặt a = 5;
Chèn vào soi kèo bóng đá truoctran giá trị my_table (3, 'Xin chào');

11568_11742

Ngoài ra,bình luậnCó thể xảy ra trong đầu vào SQL. Chúng soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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ềChọn, anMạnhCập nhậtHồivà soi kèo bóng đá truoctranChè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 ở soi kèo bóng đá truoctran 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. soi kèo bóng đá truoctran 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à soi kèo bóng đá truoctran ví dụ củaTừ khóa, nghĩa là soi kèo bóng đá truoctran từ có ý nghĩa cố định trong ngôn ngữ SQL. Mã thông báomy_tableAlà ví dụ củaĐịnh danh. Họ xác định tên của soi kèo bóng đá truoctran bảng, cột hoặc soi kèo bóng đá truoctran đố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àHồi13852_13859. soi kèo bóng đá truoctran 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 đủ soi kèo bóng đá truoctran từ khóa có thể được tìm thấy trongPhụ lục C.

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

Hệ thống soi kèo bóng đá truoctran sử dụng nhiều hơnĐược đặt tên15155_15265Đượ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 đổi15439_15452hằng số trongsrc/bao gồm/pg_config_manual.h.

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

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

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

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

Một quy ước thường được sử dụng là viết soi kèo bóng đá truoctran 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ó soi kèo bóng đá truoctran loại định danh thứ hai: TheĐị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 soi kèo bóng đá truoctran ký tự tùy ý trong soi kèo bóng đá truoctran trích dẫn kép ("). soi kèo bóng đá truoctran định danh được phân định luôn là soi kèo bóng đá truoctran định danh, không bao giờ là soi kèo bóng đá truoctran từ khóa. Vì thế"Chọn"Có thể được sử dụng để tham khảo soi kèo bóng đá truoctran cột hoặc bảng có tênChọn, trong khi soi kèo bóng đá truoctran được trích xuấtChọn16640_16827

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

Định danh được trích dẫn có thể chứa bất kỳ ký tự nào, ngoại trừ ký tự có mã số soi kèo bóng đá truoctran. . Giới hạn độ dài vẫn được áp dụng.

Trích dẫn một định danh cũng làm cho nó nhạy cảm trường hợp, trong khi soi kèo bóng đá truoctran tên chưa được trình cấp luôn được gấp lại thành chữ thường. Ví dụ: soi kèo bóng đá truoctran định danhfoo, foo17427_17435"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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran tên chưa được trình bày nên được gấp lại thành trường hợp trên. Do đó,foonên tương đương với"foo"soi kèo bóng đá truoctran"foo"Theo tiêu chuẩn. Nếu bạn muốn viết soi kèo bóng đá truoctran ứ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ó.)

Một biến thể của soi kèo bóng đá truoctran định danh được trích dẫn cho phép bao gồm soi kèo bóng đá truoctran ký tự unicode đã thoát được xác định bởi soi kèo bóng đá truoctran điểm mã của chúng. Biến thể này bắt đầu bằngU &18385_18522u & "foo". (Lưu ý rằng điều này tạo ra sự mơ hồ với toán tử&. Sử dụng soi kèo bóng đá truoctran không gian xung quanh toán tử để tránh vấn đề này.) Bên trong soi kèo bóng đá truoctran trích dẫn, soi kèo bóng đá truoctran 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 sau đó là một dấu hiệu Hexadecimal sáu chữ số. Ví dụ: định danh"Data"có thể được viết là

19087_19114

19126_19187SlonHồi19245_19279

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

Nếu soi kèo bóng đá truoctran ký tự lối thoát khác với mong muốn của Backslash, nó có thể được chỉ định bằng cách sử dụ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 soi kèo bóng đá truoctran trích dẫn đơn, không phải dấu ngoặc kép, sauUescape.

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

Có thể sử dụng mẫu thoát 4 chữ số hoặc 6 chữ số để chỉ định soi kèo bóng đá truoctran cặp thay thế UTF-16 để soạn soi kèo bóng đá truoctran ký tự có điểm mã lớn hơn U+FFFF, mặc dù tính khả dụng của biểu mẫu 6 chữ số này không cần thiết. (soi kèo bóng đá truoctran cặp thay thế không được lưu trữ trực tiếp, nhưng được kết hợp thành một điểm mã duy nhất.)

20389_20583

4.1.2. Hằng số#

Có ba loạiHằng số được gõ ngầminPostgreSQL: chuỗi, chuỗi bit và số. soi kèo bóng đá truoctran hằng số cũng có thể được chỉ định với soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran tiểu mục sau.

4.1.2.1. Chuỗi hằng số#

Hằng số chuỗi trong SQL là một chuỗi soi kèo bóng đá truoctran ký tự tùy ý bị giới hạn bởi soi kèo bóng đá truoctran trích dẫn đơn ('21837_21854'Đây là soi kèo bóng đá truoctran chuỗi'. Để bao gồm soi kèo bóng đá truoctran ký tự đơn lẻ trong soi kèo bóng đá truoctran 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àsoi kèo bóng đá truoctrangiống như soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran dòng mớiđược kết hợp và xử lý hiệu quả như thể chuỗi đã được viết là soi kèo bóng đá truoctran hằng số. Ví dụ:

chọn 'foo'
'thanh';

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

chọn 'foobar';

nhưng:

Chọn 'foo' 'Bar';

soi kèo bóng đá truoctran 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ậnHồiEscapeHằng số chuỗi, là soi kèo bóng đá truoctran phần mở rộng cho tiêu chuẩn SQL. soi kèo bóng đá truoctran 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ụ:e'foo '. (Khi tiếp tục một chuỗi thoát hằng số trên soi kèo bóng đá truoctran dòng, hãy viếtEChỉ trước khi trích dẫn mở đầu tiên.) Trong soi kèo bóng đá truoctran chuỗi thoát, soi kèo bóng đá truoctran ký tự dấu gạch chéo ngược (\) bắt đầu giống như cBackslash Escape23976_24098Bả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 Từ7) Giá trị byte Octal
\ xH, \ xHH(H= 0 Mạnh9, A F F) Giá trị byte thập lục phân
\ Uxxxx, \ uxxxxxxxxx(x= 0 Mạnh9, A F F) 16 hoặc 32 bit HexAdeCimal unicode Giá trị ký tự

Bất kỳ ký tự nào khác sau soi kèo bóng đá truoctran dấu gạch chéo ngược được thực hiện theo nghĩa đen. Do đó, để bao gồm soi kèo bóng đá truoctran ký tự dấu gạch chéo ngược, hãy viết hai dấu gạch chéo ngược (\26761_26834\ ', ngoài cách bình thường của''.

Trách nhiệm của bạn là soi kèo bóng đá truoctran chuỗi byte bạn tạo, đặc biệt là khi sử dụng soi kèo bóng đá truoctran lần thoát hiểm hoặc thập lục phân, tạo ra soi kèo bóng đá truoctran ký tự hợp lệ trong mã hóa ký tự ký tự. Một giải pháp thay thế hữu ích là sử dụng soi kèo bóng đá truoctran lối thoát Unicode hoặc cú pháp Escape Escape thay thế, được giải thích trongPhần 4.1.2.3; sau đó máy chủ sẽ kiểm tra xem việc chuyển đổi ký tự có thể soi kèo bóng đá truoctran.

THẬN TRỌNG

Nếu tham số cấu hìnhStandard_Conforming_StringsTẮT, sau đóPostgreSQLNhận ra soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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ỡ soi kèo bóng đá truoctran ứ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ẮT, nhưng tốt hơn là di chuyển ra khỏi việc sử dụng thoát hiểm ngược. Nếu bạn cần sử dụng soi kèo bóng đá truoctran lối thoát dấu vết để biểu diễn soi kèo bóng đá truoctran ký tự đặc biệt, hãy viết hằng số chuỗi bằng soi kèo bóng đá truoctranE.

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

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

4.1.2.3. Chuỗi hằng số với unicode thoát#

PostgreSQL29391_29562U &(chữ cái trên hoặc chữ thường U theo sau bởi ampersand) ngay trước khi báo giá mở, soi kèo bóng đá truoctran có bất kỳ khoảng trống nào ở giữa, ví dụu & 'foo'. (Lưu ý rằng điều này tạo ra sự mơ hồ với toán tử&. Sử dụng soi kèo bóng đá truoctran không gian xung quanh toán tử để tránh vấn đề này.) Bên trong soi kèo bóng đá truoctran trích dẫn, soi kèo bóng đá truoctran 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 NgaHồiSlon(voi) bằng chữ Cyrillic:

u & '\ 0441 \ 043b \ 043e \ 043d'

Nếu soi kèo bóng đá truoctran 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, soi kèo bóng đá truoctran trích dẫn duy nhất, trích dẫn kép hoặc ký tự khoảng trắng.

31070_31144

Có thể sử dụng biểu mẫu 4 chữ số hoặc 6 chữ số hoặc có thể được sử dụng để chỉ định soi kèo bóng đá truoctran cặp thay thế UTF-16 để soạn soi kèo bóng đá truoctran ký tự có điểm mã lớn hơn U+FFFF, mặc dù tính khả dụng của biểu mẫu 6 chữ số này không cần thiết. (soi kèo bóng đá truoctran cặp thay thế không được lưu trữ trực tiếp, nhưng được kết hợp thành một điểm mã duy nhất.)

Nếu mã hóa máy chủ không phải là UTF-8, điểm mã Unicode được xác định bởi một trong soi kèo bóng đá truoctran chuỗi thoát này được chuyển đổi thành mã hóa máy chủ thực tế; một lỗi được báo cáo nếu điều đó là không thể.

Ngoài ra, cú pháp thoát Unicode cho soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran khách hàng phân tích soi kèo bóng đá truoctran câu lệnh SQL đến mức nó có thể dẫn đến tiêm SQL và soi kèo bóng đá truoctran 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.

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 soi kèo bóng đá truoctran 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, vì mỗi trong số đó phải được nhân đôi. Để cho phép soi kèo bóng đá truoctran truy vấn dễ đọc hơn trong soi kèo bóng đá truoctran tình huống như vậy,POSTGRESQLCung cấp soi kèo bóng đá truoctran cách khác, được gọi là"Trích dẫn đô laKhăn, để viết soi kèo bóng đá truoctran 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 ($), soi kèo bóng đá truoctran tùy chọnTAGcủa số 0 hoặc nhiều ký tự, một dấu hiệu đồng đô la khác, một chuỗi soi kèo bóng đá truoctran 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à một dấu hiệu đô la. Ví dụ: đây là hai cách khác nhau để chỉ định chuỗi33462_33478Sử dụng trích dẫn đô la:

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

33621_33962

Có thể làm tổ soi kèo bóng đá truoctran hằng số chuỗi được trích dẫn bằng cách chọn soi kèo bóng đá truoctran thẻ khác nhau ở mỗi cấp độ lồng. Điều này được sử dụng phổ biến nhất trong soi kèo bóng đá truoctran đị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 dạng khi cơ thể chức năng được thực thi bởiPostgreSQL. Nhưng vì chuỗi soi kèo bóng đá truoctran khớp với Dollar Dollar trích dẫn DELIMITER$ hàm $, Nó chỉ là soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran quy tắc tương tự 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 $soi kèo bóng đá truoctran phải.

soi kèo bóng đá truoctran chuỗi được trích dẫn theo đô la theo từ khóa hoặc định danh phải được tách ra khỏi nó bằng khoảng trắng; Nếu không thì dấu phân cách trích dẫn đô la sẽ được lấy như là soi kèo bóng đá truoctran phần của định danh trước.

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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran hằng số chuỗi bên trong soi kèo bóng đá truoctran hằng số khác, như thường cần trong soi kèo bóng đá truoctran đị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ư soi kèo bóng đá truoctran 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ở (soi kèo bóng đá truoctran có khoảng trắng can thiệp), ví dụ:b'1001 '. soi kèo bóng đá truoctran ký tự duy nhất được phép trong soi kèo bóng đá truoctran hằng số chuỗi bit là01.

Ngoài ra, soi kèo bóng đá truoctran 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(trên 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 soi kèo bóng đá truoctran dòng giống như soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran hình thức chung này:

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

WHEREchữ sốlà soi kèo bóng đá truoctran hoặc nhiều chữ số thập phân (0 đến 9). Ít nhất soi kèo bóng đá truoctran chữ số phải là trước hoặc sau điểm thập phân, nếu soi kèo bóng đá truoctran chữ số được sử dụng. Ít nhất soi kèo bóng đá truoctran 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ỳ khoảng trống hoặc soi kèo bóng đá truoctran ký tự khác được nhúng trong hằng số, ngoại trừ dấu gạch dưới, có thể được sử dụng để nhóm trực quan như được mô tả dưới đây. 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ố.

Đây là soi kèo bóng đá truoctran số ví dụ về hằng số số hợp lệ:


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

Ngoài ra, soi kèo bóng đá truoctran hằng số nguyên không quyết định được chấp nhận trong soi kèo bóng đá truoctran hình thức này:

0xHexDigits0OOCTDigits0bBindigits

WHEREHexDigitslà soi kèo bóng đá truoctran hoặc nhiều chữ số thập lục phân (0-9, a-f),acdDigitslà soi kèo bóng đá truoctran hoặc nhiều chữ số bát phân (0-7) vàBindigitslà một hoặc nhiều chữ số nhị phân (0 hoặc 1). soi kèo bóng đá truoctran chữ số thập lục phân và tiền tố radix có thể ở trên hoặc chữ thường. Lưu ý rằng chỉ soi kèo bóng đá truoctran số nguyên mới có thể có soi kèo bóng đá truoctran hình thức không phân giải, không phải là số có soi kèo bóng đá truoctran phần phân số.

Đây là soi kèo bóng đá truoctran số ví dụ về hằng số nguyên không quyết định hợp lệ:


0B100101
0B10011001
0O273
0O755
0x42F
0xffff

Để nhóm trực quan, dấu gạch dưới có thể được chèn giữa soi kèo bóng đá truoctran chữ số. Chúng không có tác dụng gì thêm về giá trị của hằng số. Ví dụ:


1_500_000_000
0B10001000_00000000
0O_1_755
0xffff_ffff
1.618_034

Không được phép nhấn mạnh ở đầu hoặc cuối hằng số hoặc một nhóm soi kèo bóng đá truoctran chữ số (nghĩa là ngay trước hoặc sau điểm thập phân hoặc điểm số mũ), và không được phép ở độ dưới trong một hàng.

soi kèo bóng đá truoctran hằng số số không chứa soi kèo bóng đá truoctran đ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 soi kèo bóng đá truoctran thì nó được cho là loạiBigintNếu giá trị của nó phù hợp với loạiBigint(64 bit); nếu soi kèo bóng đá truoctran thì nó được coi là loạiSố. soi kèo bóng đá truoctran hằng số chứa soi kèo bóng đá truoctran đ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 soi kèo bóng đá truoctran thuật toán độ phân giải loại. Trong hầu hết soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran giá trị số được coi là loạiReal(float4) bằng cách viết:

Real '1.23' - Kiểu chuỗi
1.23 :: Real - PostgreSQL (lịch sử) phong cách

Đây thực sự là những trường hợp đặc biệt của soi kèo bóng đá truoctran ký hiệu đúc chung được thảo luận tiếp theo.

42398_42439#

Hằng số củatùy ýLoại có thể được nhập bằng bất kỳ một trong soi kèo bóng đá truoctran 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. soi kèo bóng đá truoctran 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.

43619_43697

typename('chuỗi' )

Nhưng không phải tất cả soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran chuyển đổi loại thời gian chạy của soi kèo bóng đá truoctran 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. soi kèo bóng đá truoctran hạn chế khác trênloại'chuỗi'Cú pháp là nó không hoạt động cho soi kèo bóng đá truoctran loại mảng; sử dụng::hoặccast ()Để chỉ định loại hằng số mảng.

Thecast ()Cú pháp phù hợp với SQL. Theloại'chuỗi'Cú pháp là soi kèo bóng đá truoctran khái quát của tiêu chuẩn: SQL Chỉ định cú pháp này chỉ cho soi kèo bóng đá truoctran vài loại dữ liệu, nhưngPostgreSQLCho phép nó cho tất cả soi kèo bóng đá truoctran 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#

Tên toán tử là soi kèo bóng đá truoctran chuỗi lên đếnĐược đặt tên-1 (63 theo mặc định) soi kèo bóng đá truoctran ký tự từ danh sách sau:


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

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

  • --/*soi kèo bóng đá truoctran 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ử đa nhân soi kèo bóng đá truoctran thể kết thúc bằng+hoặc-, trừ khi tên cũng chứa ít nhất soi kèo bóng đá truoctran trong những ký tự này:


    ~! @#%^& | `?

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

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 soi kèo bóng đá truoctran mục đích của soi kèo bóng đá truoctran ký tự này.

  • soi kèo bóng đá truoctran dấu hiệu đô la ($) Theo sau là soi kèo bóng đá truoctran chữ số được sử dụng để biểu thị một tham số vị trí trong phần thân của định nghĩa hàm hoặc một câu lệnh đã chuẩn bị. Trong soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran lệnh, ngoại trừ trong soi kèo bóng đá truoctran hằng số chuỗi hoặc định danh được trích dẫn.

  • Đại tá (:) được sử dụng để chọnSlicesTừ mảng. (Nhìn thấyPhần 8.1549897_49993

  • Asterisk (*) được sử dụng trong một số bối cảnh để biểu thị tất cả soi kèo bóng đá truoctran 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.

  • giai đoạn (.) được sử dụng trong soi kèo bóng đá truoctran 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#

Nhận xét là một chuỗi soi kèo bóng đá truoctran ký tự bắt đầu bằng soi kèo bóng đá truoctran dấu gạch ngang gấp đôi và mở rộng đến cuối dòng, ví dụ:

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

Ngoài ra, có thể sử dụng soi kèo bóng đá truoctran bình luận khối kiểu C:

/* 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 phù hợp của*/. soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran khối mã lớn hơn có thể chứa soi kèo bóng đá truoctran nhận xét khối hiện có.

soi kèo bóng đá truoctran 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ế soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran toán tử trongPostgreSQL52285_52570

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
đối chiếu trái Lựa chọn đối chiếu
at trái Tại múi giờ, tại địa phương
^ trái
* / % trái Nhân, chia, modulo
+ - trái Bổ sung, trừ
54935_54957 trái Tất cả soi kèo bóng đá truoctran toán tử người dùng và người dùng khác
giữa in như ilike tương tự Ngăn chặn phạm vi, đặt thành viên, khớp chuỗi
< = <= = < soi kèo bóng đá truoctran toán tử so sánh
isnull notnull là đúng, là sai, là null, khác với, v.v.
soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran quy tắc ưu tiên của toán tử cũng áp dụng cho soi kèo bóng đá truoctran toán tử do người dùng xác định có cùng tên với soi kèo bóng đá truoctran toán tử tích hợp đã đề cập ở trên. Ví dụ: nếu bạn xác định AMạnh+Nhà điều hành cho soi kèo bóng đá truoctran số loại dữ liệu tùy chỉnh, nó sẽ có mức độ ưu tiên giống như tích hợpMạnh+Khăn57048_57087

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.2choHồiBấ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 soi kèo bóng đá truoctran quy tắc ưu tiên toán tử hơi khác nhau. Cụ thể,<= =<từng được coi là người vận hành chung;soi kèo bóng đá truoctran bài kiểm tra được sử dụng để ưu tiên cao hơn; Vàsoi kèo bóng đá truoctran giữavà soi kèo bóng đá truoctran 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ủasoi kèo bóng đá truoctranchứ soi kèo bóng đá truoctran phảigiữa58381_58622soi kèo bóng đá truoctran 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ó soi kèo bóng đá truoctran trường hợp góc trong đó một 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.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu soi kèo bóng đá truoctran chính xác, soi kèo bóng đá truoctran 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.