Đầu vào SQL bao gồm cách đọc kèo bóng đá chuỗilệnh. cách đọc kèo bóng đá lệnh bao gồm cách đọc kèo bóng đá chuỗimã thông báo, bị chấm dứt bởi dấu chấm phẩy (Hồi;Hồi). Phần cuối của luồng đầu vào cũng chấm dứt cách đọc kèo bóng đá lệnh.
mã thông báo có thể là cách đọc kèo bóng đá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. cách đọc kèo bóng đá 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;
11624_11798
Ngoài ra,bình luậncó thể xảy ra trong đầu vào SQL. Chúng cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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ọnxông, anHồiCập nhậtHàngvà cách đọc kèo bóng đáHồiChènlệnh. Nhưng ví dụCập nhật
Lệnh luôn yêu cầuset
Mã thông báo xuất hiện ở cách đọc kèo bóng đá vị trí nhất định và biến thể cụ thể này củaChèn
cũng yêu cầuGiá trị
Để hoàn thành. cách đọc kèo bóng đá quy tắc cú pháp chính xác cho mỗi lệnh được mô tả trongPhần VI.
mã thông báo nhưChọn
, Cập nhật
hoặcgiá trị
Trong ví dụ trên là cách đọc kèo bóng đá ví dụ củaTừ khóa, nghĩa là cách đọc kèo bóng đá từ có ý nghĩa cố định trong ngôn ngữ SQL. Mã thông báomy_table
vàA
là ví dụ củaĐịnh danh. Họ xác định tên của cách đọc kèo bóng đá bảng, cột hoặc cách đọc kèo bóng đá đố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ồitên. cách đọc kèo bóng đá 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ữ.Phụ lục C.
Định danh SQL và cách đọc kèo bóng đá từ khóa phải bắt đầu bằng một chữ cái (A
-Z
, nhưng cũng có cách đọc kèo bóng đá 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 (_
). cách đọc kèo bóng đá ký tự tiếp theo trong một định danh hoặc từ khóa có thể là cách đọc kèo bóng đá chữ cái, dấu gạch dưới, chữ số (0
-9
) hoặc dấu hiệu đô la ($
). Lưu ý rằng cách đọc kèo bóng đá dấu hiệu đô la không được phép trong cách đọc kèo bóng đá đị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 cách đọc kèo bóng đá ứng dụng trở nên kém di động hơn.
Hệ thống cách đọc kèo bóng đá sử dụng nhiều hơnĐượ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 cách đọc kèo bóng đá lệnh, nhưng chúng sẽ bị cắt ngắn.Được đặt tên
là 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ên
hằng số trongsrc/bao gồm/pg_config_manual.h
.
cách đọc kèo bóng đá 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 như:
Cập nhật My_Table Set A = 5;
Một quy ước thường được sử dụng là viết cách đọc kèo bóng đá 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ó cách đọc kèo bóng đá 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 cách đọc kèo bóng đá ký tự tùy ý trong cách đọc kèo bóng đá trích dẫn kép ("
). cách đọc kèo bóng đá định danh được phân định luôn là cách đọc kèo bóng đá định danh, không bao giờ là cách đọc kèo bóng đá từ khóa."Chọn"
Có thể được sử dụng để tham khảo cách đọc kèo bóng đá cột hoặc bảng có tênChọn, trong khi cách đọc kèo bóng đá được trích xuấtChọn
sẽ đượ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 cách đọc kèo bóng đá định danh được trích dẫn như thế này:
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ố cách đọc kèo bóng đá. .
Một biến thể của cách đọc kèo bóng đá định danh được trích dẫn cho phép bao gồm cách đọc kèo bóng đá ký tự unicode thoát được xác định bởi cách đọc kèo bóng đá điểm mã của chúng. Biến thể này bắt đầu bằngU &
17462_17599U & "foo"
. (Lưu ý rằng điều này tạo ra sự mơ hồ với toán tử&
. Sử dụng cách đọc kèo bóng đá không gian xung quanh toán tử để tránh vấn đề này.) Bên trong cách đọc kèo bóng đá trích dẫn, cách đọc kèo bóng đá 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ố."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 NgaSlon(voi) bằng chữ Cyrillic:
U & "\ 0441 \ 043b \ 043e \ 043d"
Nếu cách đọc kèo bóng đá 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ụngUescape
mệ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 cách đọc kèo bóng đá 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, hãy 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 cách đọc kèo bóng đá mã hóa máy chủ khác được sử dụng, chỉ có cách đọc kèo bóng đá đ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 cách đọc kèo bóng đá cặp thay thế UTF-16 để soạn cách đọc kèo bóng đá 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.
Trích dẫn một định danh cũng làm cho nó nhạy cảm với trường hợp, trong khi cách đọc kèo bóng đá tên chưa được trình cấp luôn được gấp lại thành chữ thường. Ví dụ: cách đọc kèo bóng đá định danhfoo
, foo
và"foo"
được coi là giống nhau bởiPostgreSQL, nhưng"foo"
và"foo"
khác với ba người này và nhau. (Việc gấp cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 đó,foo
nên tương đương với"foo"
cách đọc kèo bóng đá"foo"
Theo tiêu chuẩn. Nếu bạn muốn viết cách đọc kèo bóng đá ứ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ó.)
Có ba loạiHằng số được gõ ngầminPostgreSQL: chuỗi, chuỗi bit và số. cách đọc kèo bóng đá hằng số cũng có thể được chỉ định với cách đọc kèo bóng đá 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.
Hằng số chuỗi trong SQL là một chuỗi cách đọc kèo bóng đá ký tự tùy ý bị giới hạn bởi cách đọc kèo bóng đá trích dẫn đơn ('
), ví dụ'Đây là cách đọc kèo bóng đá chuỗi'
. Để bao gồm cách đọc kèo bóng đá ký tự đơn lẻ trong cách đọc kèo bóng đá 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àcách đọc kèo bóng đágiố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 cách đọc kèo bóng đá dòng mớiđược kết hợp và xử lý hiệu quả như thể chuỗi đã được viết là cách đọc kèo bóng đá hằng số. Ví dụ:
Chọn 'Foo'
là tương đương với:
chọn 'foobar';
nhưng:
Chọn 'foo' 'Bar';
cách đọc kèo bóng đá 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.)
PostgreSQLCũng chấp nhậnEscapeHàngHằng số chuỗi, là cách đọc kèo bóng đá phần mở rộng cho tiêu chuẩn SQL. cách đọc kèo bóng đá 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 cách đọc kèo bóng đá dòng, hãy viếtE
Chỉ trước khi trích dẫn mở đầu tiên.) Trong cách đọc kèo bóng đá chuỗi thoát, cách đọc kèo bóng đá ký tự dấu gạch chéo ngược (\
) bắt đầu giống như cBackslash Escape23816_23938Bả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 = 0 - 7) |
Giá trị byte Octal |
\ x , \ x (H = 0 - 9, a - f) |
Giá trị byte thập lục phân |
\ u , \ u (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 cách đọc kèo bóng đá dấu gạch chéo ngược được thực hiện theo nghĩa đen. Do đó, để bao gồm cách đọc kèo bóng đá 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, cách đọc kèo bóng đá trích dẫn duy nhất có thể được bao gồm trong cách đọc kèo bóng đá chuỗi thoát bằng cách viết\ '
, ngoài cách bình thường của''
.
Trách nhiệm của bạn là cách đọc kèo bóng đá chuỗi byte bạn tạo, đặc biệt là khi sử dụng cách đọc kèo bóng đá lần thoát hiểm hoặc thập lục phân, soạn cách đọc kèo bóng đá ký tự hợp lệ trong mã hóa ký tự của máy chủ. Khi mã hóa máy chủ là UTF-8, thì unicode thoát ra hoặc cú pháp thoát Unicode thay thế, được giải thích trongPhầ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 cách đọc kèo bóng đá byte, điều này sẽ rất cồng kềnh.)
Cú pháp thoát Unicode chỉ hoạt động đầy đủ khi mã hóa máy chủ làUTF8
. Khi cách đọc kèo bóng đá mã hóa máy chủ khác được sử dụng, chỉ có cách đọc kèo bóng đá đ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 cách đọc kèo bóng đá cặp thay thế UTF-16 để soạn cách đọc kèo bóng đá 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.UTF8
, đầu tiên chúng được kết hợp thành cách đọc kèo bóng đá điểm mã duy nhất sau đó được mã hóa trong UTF-8.)
Nếu tham số cấu hìnhStandard_Conforming_StringslàTẮT
, sau đóPostgreSQLNhận ra cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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ỡ cách đọc kèo bóng đá ứ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.TẮ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 cách đọc kèo bóng đá lối thoát dấu vết để biểu diễn cách đọc kèo bóng đá ký tự đặc biệt, hãy viết hằng số chuỗi bằng cách đọc kèo bóng đáE
.
NgoàiStandard_Conforming_Strings
, tham số cấu hìnhESCET_STRING_WARNINGvàBackslash_quoteQuản lý điều trị ngược dòng trong cách đọc kèo bóng đá hằng số chuỗi.
ký tự có mã số 0 cách đọc kèo bóng đá thể nằm trong hằng số chuỗi.
PostgreSQLCũng hỗ trợ một loại cú pháp thoát khác cho cách đọc kèo bóng đá chuỗi cho phép chỉ định cách đọc kèo bóng đá ký tự Unicode tùy ý theo điểm mã. Hằng số chuỗi thoát Unicode bắt đầu bằngU &
(chữ hoa hoặc chữ thường U theo sau bởi ampersand) ngay trước khi trích dẫn mở, cách đọc kèo bóng đá 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 cách đọc kèo bóng đá không gian xung quanh toán tử để tránh vấn đề này.) Bên trong cách đọc kèo bóng đá trích dẫn, cách đọc kèo bóng đá 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ố.'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 cách đọc kèo bóng đá 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ụngUescape
mệ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, cách đọc kèo bóng đá 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 cách đọc kèo bóng đá mã hóa máy chủ khác được sử dụng, chỉ có cách đọc kèo bóng đá điểm mã trong phạm vi ASCII (lên đến\ 007F
) có thể được chỉ định. Cả dạng 4 chữ số và dạng 6 chữ số đều có thể được sử dụng để chỉ định cách đọc kèo bóng đá cặp thay thế UTF-16 để soạn cách đọc kèo bóng đá 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.UTF8
trước tiên chúng được kết hợp thành cách đọc kèo bóng đá điểm mã duy nhất sau đó được mã hóa trong UTF-8.)
Ngoài ra, cú pháp thoát Unicode cho cách đọc kèo bóng đá 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 cách đọc kèo bóng đá khách hàng phân tích cách đọc kèo bóng đá câu lệnh SQL đến mức nó có thể dẫn đến tiêm SQL và cách đọc kèo bóng đá vấn đề bảo mật tương tự.
Để đưa ký tự thoát vào chuỗi theo nghĩa đen, viết nó hai lần.
Trong khi cú pháp tiêu chuẩn để chỉ định cách đọc kèo bóng đá 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 cách đọc kèo bóng đá truy vấn dễ đọc hơn trong cách đọc kèo bóng đá tình huống như vậy,POSTGRESQLcung cấp cách đọc kèo bóng đá cách khác, được gọi làHồiDollar Trích dẫn, để viết cách đọc kèo bóng đá 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 ($
), cách đọc kèo bóng đá tùy chọnTAGcủa số không hoặc nhiều ký tự, một dấu hiệu đồng đô la khác, một chuỗi cách đọc kèo bóng đá 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ỗiDianne's HorseKhănSử dụng trích dẫn đô la:
$$ Dianne's Horse $$
Lưu ý rằng bên trong chuỗi được trích xuất bằng đô la, có thể sử dụng cách đọc kèo bóng đá 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.
Có thể làm tổ cách đọc kèo bóng đá hằng số chuỗi được trích dẫn bằng cách chọn cách đọc kèo bóng đá thẻ khác nhau ở mỗi cấp độ lồng. Điều này được sử dụng phổ biến nhất trong cách đọc kèo bóng đá định nghĩa chức năng viết.
$ chức năng $
Ở đâ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 cách đọc kèo bóng đá khớp với Dollar Dollar trích dẫn DELIMITER$ hàm $
, nó chỉ là cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 $
cách đọc kèo bóng đá phải.
Chuỗi được trích xuất 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à cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 cách đọc kèo bóng đá hằng số chuỗi bên trong cách đọc kèo bóng đá hằng số khác, như thường cần trong cách đọc kèo bóng đá định nghĩa chức năng thủ tục.
Hằng số chuỗi bit trông giống như cách đọc kèo bóng đá 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ở (cách đọc kèo bóng đá có khoảng trắng can thiệp), ví dụ:B'1001 '
. cách đọc kèo bóng đá ký tự duy nhất được phép trong cách đọc kèo bóng đá hằng số chuỗi bit là0
và1
.
Ngoài ra, cách đọc kèo bóng đá 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 cách đọc kèo bóng đá dòng giống như cách đọc kèo bóng đá 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.
Hằng số số được chấp nhận trong cách đọc kèo bóng đá hình thức chung này:
chữ số
chữ số
. [chữ số
] [E [+-]chữ số
]chữ số
].chữ số
[E [+-]Digits
]chữ số
E [+-]chữ số
WHEREchữ số
là cách đọc kèo bóng đá hoặc nhiều chữ số thập phân (0 đến 9). Ít nhất cách đọc kèo bóng đá chữ số phải là trước hoặc sau điểm thập phân, nếu cách đọc kèo bóng đá chữ số được sử dụng.E
), nếu có mặt. Không thể có bất kỳ không gian hoặc cách đọc kèo bóng đá ký tự khác được nhúng trong hằng số.
Đây là cách đọc kèo bóng đá số ví dụ về hằng số số hợp lệ:
42
3.5
4.
.001
5E2
1.925E-3
cách đọc kèo bóng đá hằng số không chứa cách đọc kèo bóng đá điểm thập phân cũng như số mũ ban đầu được coi là loạiSố nguyên
Nếu giá trị của nó phù hợp với loạiSố nguyên
(32 bit); Nếu cách đọc kèo bóng đá thì nó được cho là loạiBigint
Nếu giá trị của nó phù hợp với loạiBigint
(64 bit); nếu cách đọc kèo bóng đá thì nó được coi là loạiSố
. cách đọc kèo bóng đá hằng số chứa cách đọc kèo bóng đá đ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 cách đọc kèo bóng đá thuật toán độ phân giải loại. Trong hầu hết cách đọc kèo bóng đá 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.Ví dụ: bạn có thể buộc cách đọc kèo bóng đá giá trị số được coi là loạiReal
(float4
) bằng cách viết:
Real '1.23' - Kiểu chuỗi
Đây thực sự là những trường hợp đặc biệt của cách đọc kèo bóng đá ký hiệu đúc chung được thảo luận tiếp theo.
Hằng số của cách đọc kèo bóng đátùy ýLoại có thể được nhập bằng bất kỳ một trong cách đọc kèo bóng đá ký hiệu sau:
loại
'chuỗi
'chuỗi
'::loại
cast ('chuỗi
' BẰNGloại
)
Văn bản của hằng số chuỗi được chuyển sang thói quen chuyển đổi đầu vào cho loại được gọi làloại
. Kết quả là cách đọc kèo bóng đá hằng số của loại được chỉ định.
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 cách đọc kèo bóng đá 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ả cách đọc kèo bóng đá 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 cách đọc kèo bóng đá chuyển đổi loại thời gian chạy của cách đọc kèo bóng đá 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,
Cú pháp chỉ có thể được sử dụng để chỉ định loại hằng số đơn giản. cách đọc kèo bóng đá hạn chế khác trênloại
'chuỗi
'
Cú pháp là nó không hoạt động cho cách đọc kèo bóng đá loại mảng; sử dụngloại
'chuỗi
'::
hoặccast ()
Để chỉ định loại hằng số mảng.
Thecast ()
Cú pháp phù hợp với SQL. The
Cú pháp là cách đọc kèo bóng đá khái quát của tiêu chuẩn: SQL Chỉ định cú pháp này chỉ cho cách đọc kèo bóng đá vài loại dữ liệu, nhưngPOSTGRESQLCho phép nó cho tất cả cách đọc kèo bóng đá loại. Cú pháp vớiloại
'chuỗi
'::
là lịch sửPostgreSQLSử dụng, cũng như cú pháp gọi chức năng.
Tên toán tử là cách đọc kèo bóng đá chuỗi lên đếnĐược đặt tên
-1 (63 theo mặc định) cách đọc kèo bóng đá ký tự từ danh sách sau:
+-*/< = ~!@#%^& |
Tuy nhiên, có cách đọc kèo bóng đá vài hạn chế đối với tên toán tử:
--
và/*
Không thể xuất hiện ở bất cứ đâu trong tên toán tử, vì chúng sẽ được lấy cách đọc kèo bóng đám bắt đầu nhận xét.
Tên toán tử nhiều ký tự cách đọc kèo bóng đá thể kết thúc bằng+
hoặc-
, trừ khi tên cũng chứa ít nhất cách đọc kèo bóng đá trong những ký tự này:
~!@#%^& |
Ví dụ:@-
là tên toán tử được phép, nhưng*-
cách đọc kèo bóng đá. Hạn chế này cho phépPOSTGRESQLĐể phân tích cách đọc kèo bóng đá truy vấn tuân thủ SQL mà không yêu cầu khoảng cách giữa cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 cách đọc kèo bóng đá.
cách đọc kèo bóng đá số ký tự không phải là chữ và số có ý nghĩa đặc biệt khác với việc là 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.
cách đọc kèo bóng đá dấu hiệu đô la ($
) Theo sau là cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 cách đọc kèo bóng đá yếu 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 cách đọc kèo bóng đá lệnh, ngoại trừ trong cách đọc kèo bóng đá hằng số chuỗi hoặc định danh được trích dẫn.
Đại tá (:
) được sử dụng để chọnSlicesHàngTừ mảng. (Nhìn thấyPhần 8.1548498_48594
Asterisk (*
) được sử dụng trong một số bối cảnh để biểu thị tất cả cách đọc kèo bóng đá 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 cách đọc kèo bóng đá hằng số số và để phân tách lược đồ, bảng và tên cột.
Một bình luận là một chuỗi cách đọc kèo bóng đá ký tự bắt đầu với cách đọc kèo bóng đá dấu gạch ngang gấp đôi và mở rộng đến cuối dòng, ví dụ:
- Đây là cách đọc kèo bóng đá bình luận SQL tiêu chuẩn
Ngoài ra, có thể sử dụng nhận xét khối kiểu C:
/* Nhận xét đa dòng
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*/
. cách đọc kèo bóng đá 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 cách đọc kèo bóng đá khối mã lớn hơn có thể chứa cách đọc kèo bóng đá nhận xét khối hiện có.
cách đọc kèo bóng đá 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ế cách đọc kèo bóng đá cách hiệu quả bằng khoảng trắng.
Bảng 4.2Hiển thị ưu tiên và tính kết hợp của cách đọc kèo bóng đá toán tử trongPostgreSQL. Hầu hết cách đọc kèo bóng đá nhà khai thác có cùng mức độ ưu tiên và được liên kết trái.
Đôi khi bạn sẽ cần thêm dấu ngoặc đơn khi sử dụng cách đọc kèo bóng đá kết hợp cách đọc kèo bóng đá toán tử nhị phân và Unary. Ví dụ:
Chọn 5! - 6;
sẽ được phân tích cú pháp như:
Chọn 5! (- 6);
Bởi vì trình phân tích cú pháp cách đọc kèo bóng đá có ý tưởng - cho đến khi quá muộn - rằng!
được định nghĩa là toán tử postfix, cách đọc kèo bóng đá 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à cách đọc kèo bóng đá người 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 phân cách bảng/cột |
:: |
trái | PostgreSQL-Style typecast |
[ ] |
trái | Lựa chọn phần tử mảng |
+ - |
phải | Unary Plus, Unary Minus |
đối chiếu |
trái | Lựa chọn đối chiếu |
at |
trái | Tại múi giờ |
^ |
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 | Tất cả cách đọc kèo bóng đá 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 | |
< = <= = < |
cách đọc kèo bóng đá toán tử so sánh | |
là isnull notnull |
là đúng , là sai , là null , khác với , v.v. |
|
cách đọc kèo bóng đá |
phải | phủ định logic |
và |
trái | Kết hợp logic |
hoặc |
trái | Phân biệt logic |
Lưu ý rằng cách đọc kèo bóng đá quy tắc ưu tiên toán tử cũng áp dụng cho cách đọc kèo bóng đá toán tử do người dùng xác định có cùng tên với cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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+Khăntoán tử, bất kể bạn cách đọc kèo bóng đám gì.
Khi tên toán tử có trình độ lược đồ được sử dụng trongNhà điều hành
Cú pháp, ví dụ như trong:
Chọn 3 toán tử (pg_catalog.+) 4;
TheNhà điều hành
Xây dựng được thực hiện để có quyền ưu tiên mặc định được hiển thị trongBảng 4.2choBất kỳ toán tử nào khácHồi. Điều này đúng bất kể toán tử cụ thể nào xuất hiện bên trongToán tử ()
.
PostgreSQLPhiên bản trước 9.5 đã sử dụng cách đọc kèo bóng đá quy tắc ưu tiên toán tử hơi khác nhau. Cụ thể,<=
=
và<
từng được coi là toán tử chung;là
cách đọc kèo bóng đá bài kiểm tra được sử dụng để có mức độ ưu tiên cao hơn; Vàcách đọc kèo bóng đá giữa
và cách đọc kèo bóng đá 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ủacách đọc kèo bóng đá
chứ cách đọc kèo bóng đá phảigiữa
. cách đọc kèo bóng đá quy tắc này đã được thay đổi để tuân thủ tốt hơn với tiêu chuẩn SQL và để giảm sự nhầm lẫn từ việc xử lý không nhất quán cách đọc kèo bóng đá cấu trúc tương đương logic.Mạnhcách đọc kèo bóng đá 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 đó cách đọc kèo bóng đá 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.nhà điều hành_precedence_warningbật lên để xem có bất kỳ cảnh báo nào được ghi lại cách đọc kèo bóng đá.