Postgresql | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 4. SQL | Chuyển tiếp nhanh | Tiếp theo |
Đầ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ỗiToken, bị chấm dứt bởi soi kèo bóng đá truoctran dấu chấm phẩy";"). Phần cuối của luồng đầu vào
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 không đổi) hoặc soi kèo bóng đá truoctran ký tự đặc biệt
Ngoài ra,bình luậncó thể xảy ra trong
Ví dụ: sau đây là SQL hợp lệ (về mặt cú pháp)
Chọn * từ my_table;
Đây là chuỗi ba lệnh, soi kèo bóng đá truoctran lệnh trên mỗi dòng (mặc dù
Cú pháp SQL không nhất quán về những gì mã thông báo"Chọn", an"Cập nhật","Chèn"lệnh. Nếu không cóCập nhậtLệnh luôn luônsetMã thông báo xuất hiện trong A trong AChèncũng yêu cầuGiá trịĐể hoàn thành. Cú pháp chính xácPhần VI.
mã thông báo nhưChọn, Cập nhậthoặcGiá trịTrongkhóa, nghĩa là các từ có ý nghĩa cố định trong SQLmy_tablevàAlà ví dụ củaĐịnh danh. Họ xác định tên của các bảng,"Tên". Từ khóa và số nhận dạngPhụ lục C.
Định danh SQL và các từ khóa phải bắt đầu bằng soi kèo bóng đá truoctran chữ cáiA-Z, nhưng_). Tiếp theo0-9) hoặc dấu hiệu đô la ($). Lưu ý rằng các dấu hiệu đô la không được phép vào
Hệ thống không sử dụng nữaĐược đặt tên-1 byte của soi kèo bóng đá truoctranĐược đặt tênlà 64 vì vậy định danh tối đaĐược đặt tênhằng số trongsrc/bao gồm/pg_config_manual.h.
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;
soi kèo bóng đá truoctran quy ước thường được sử dụng là viết các từ khóa trong trường hợp trên
Cập nhật my_table set a = 5;
Có loại thứ haiPhân đoạnhoặcĐịnh danh được trích dẫn."). soi kèo bóng đá truoctran bản phân đoạn"Chọn"có thể được sử dụng để chỉ soi kèo bóng đá truoctran"Chọn",,Chọnsẽ
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ừ
Trích dẫn soi kèo bóng đá truoctran định danh cũng làm cho nó nhạy cảm trường hợp, trong khi đófoo, foovà"foo"làPostgreSQL, nhưng"foo"và"foo"làPostgreSQLkhông tương thích với SQLfoonên được"foo"không"foo"Theo tiêu chuẩn. Nếu bạn muốn
Có ba loạiHằng số được gõ ngầminPostgreSQL: soi kèo bóng đá truoctran, soi kèo bóng đá truoctran bit và
Hằng số soi kèo bóng đá truoctran trong'), ví dụ'Đây là soi kèo bóng đá truoctran chuỗi'. Bao gồm soi kèo bóng đá truoctran phương tiện đơn'Dianne''s Horse'. Ghi chúkhônggiống như ký tự đôi (").
Hai hằng số soi kèo bóng đá truoctran chỉ được phân tách bằng khoảng trắngVới ít nhất soi kèo bóng đá truoctranđược kết nối và xử lý hiệu quả như thể
chọn 'foo'
là tương đương với:
chọn 'foobar';
nhưng:
Chọn 'foo' 'Bar';
không phải là cú pháp hợp lệ. (Hành vi hơi kỳ quái này làSQL;PostgreSQLđang theo dõi
PostgreSQLCũng chấp nhận"Escape"soi kèo bóng đá truoctranE(trên hoặc chữ thường) ngay trước khie'foo '. (Khi tiếp tục soi kèo bóng đá truoctran chuỗi thoátEChỉ\) bắt đầu aBackslash EscapeTrình tự, trong\ Blà soi kèo bóng đá truoctran backspace,\ flà soi kèo bóng đá truoctran nguồn cấp dữ liệu biểu mẫu,\ nlà soi kèo bóng đá truoctran dòng mới,\ rlà soi kèo bóng đá truoctran xe ngựa trở lại,\ Tlà soi kèo bóng đá truoctran tab. Cũng được hỗ trợ là\chữ số, trong đóchữ sốđại diện cho soi kèo bóng đá truoctran bát phân\ xHexDigits, trong đóHexDigitsđại diện cho soi kèo bóng đá truoctran byte thập lục phân\). Ngoài ra, soi kèo bóng đá truoctran duy nhất\ ', ngoài cách bình thường của''.
THẬN TRỌNG |
Nếu tham số cấu hìnhStandard_Conforming_StringslàTẮT, sau đóPostgreSQLNhận dạng BackslashStandard_Conforming_StringsHiện tạiTẮT, mặc địnhtrêntrong aEĐể chắc chắn rằng nó sẽ được xử lý theo cùng soi kèo bóng đá truoctran cách trong tương lai NgoàiStandard_Conforming_Strings, TheESTERY_STRING_WARNINGvàBackslash_quoteQuản lý điều trị ngược dòng trong soi kèo bóng đá truoctran |
ký tự có mã số 0 không thể nằm trong soi kèo bóng đá truoctran
Trong khi cú pháp tiêu chuẩn để chỉ định các hằng số soi kèo bóng đá truoctranPostgreSQLcung cấp soi kèo bóng đá truoctran cách khác, được gọi là"Trích dẫn đô la", để ghi soi kèo bóng đá truoctran$), soi kèo bóng đá truoctran tùy chọn"Tag"của số không hoặc nhiều ký tự,"Dianne's Horse"Sử dụng trích dẫn đô la:
$$ Dianne's Horse $$
Lưu ý rằng bên trong soi kèo bóng đá truoctran được trích dẫn bằng đô la, các báo giá đơn
Có thể soi kèo bóng đá truoctranm tổ các hằng số chuỗi được trích xuất bằng đồng đô la bằng cách
$ chức năng $
Ở đây, soi kèo bóng đá truoctran$ q $ [\ t \ r \ n \ v \] $ q $đại diện cho soi kèo bóng đá truoctran trích dẫn đô la[\ t \ r \ n \ v \], màPostgreSQL. Nhưng kể từ$ hàm $, nó chỉ là soi kèo bóng đá truoctran số
Thẻ, nếu có, của soi kèo bóng đá truoctran được trích dẫn theo đô la theo sau$ Tag $ soi kèo bóng đá truoctran nội dung $ Tag $là chính xác, nhưng$ Tag $ soi kèo bóng đá truoctran nội dung $ Tag $không phải.
soi kèo bóng đá truoctran được trích xuất theo đô la theo từ khóa hoặc từ khóa
Trích dẫn đô la không phải là soi kèo bóng đá truoctran phần của tiêu chuẩn SQL, nhưng nó là
Hằng số soi kèo bóng đá truoctran bit trông giống như các hằng số soi kèo bóng đá truoctran thông thườngB(trên hoặc chữ thường)B'1001 '. Duy nhất0và1.
Ngoài ra, các hằng số dây bit có thể được chỉ định trongx(trên hoặc chữ thường), ví dụ:X'1ff '. Ký hiệu này tương đương với
Cả hai dạng hằng số bit có thể được tiếp tục
Hằng số số được chấp nhận trong các hình thức chung này:
chữ số chữ số. [chữ số] [E [+-]chữ số]chữ số].chữ số[E [+-]chữ số]chữ sốE [+-]chữ số
WHEREchữ sốlà soi kèo bóng đá truoctran hoặcE), nếu có mặt. Không thể có bất kỳ
Đâ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
soi kèo bóng đá truoctran sốSố nguyênNếu giá trị của nó phù hợp với loạiSố nguyên(32 bit); nếu không nó được cho làBigintNếu giá trị của nó phù hợp với loạiBigint(64 bit); nếu không nó được lấySố. Hằng số màSố.
Loại dữ liệu được gán ban đầu của hằng số số làVí dụ: bạn có thể buộc soi kèo bóng đá truoctran giá trị số được coi làReal(float4) bằng cách viết:
Real '1.23' - String Style
Đây thực sự chỉ là những trường hợp đặc biệt của chung
Hằng số củatùy ýLoại có thể được nhập
loại'soi kèo bóng đá truoctran'soi kèo bóng đá truoctran'::loạicast ('soi kèo bóng đá truoctran' BẰNGLoại)
Văn bản của hằng số soi kèo bóng đá truoctran được chuyển đến đầu vàoloại. Kết quả là soi kèo bóng đá truoctran hằng số của
Hằng số soi kèo bóng đá truoctran có thể được viết bằng cách sử dụng thông thường
cũng có thể chỉ định soi kèo bóng đá truoctran loại ép buộc bằng cách sử dụng
typename('soi kèo bóng đá truoctran' )
Nhưng không phải tất cả các tên loại đều có thể được sử dụng theo cách này; nhìn thấyPhầnđể biết chi tiết.
The::, cast (), và cú pháp gọi chức năng cũng có thểPhần. Để tránh sự mơ hồ của cú pháp,loại'soi kèo bóng đá truoctran'Cú pháp chỉ có thể được sử dụng đểloại'soi kèo bóng đá truoctran'Cú pháp là nó không::hoặccast ()Để chỉ định loại của soi kèo bóng đá truoctran
Thecast ()Cú pháp phù hợp vớiloại'soi kèo bóng đá truoctran'Cú pháp là soi kèo bóng đá truoctran khái quátPOSTGRESQLCho phép nó cho tất cả các loại. Cú pháp với::là lịch sửPOSTGRESQLsử dụng, cũng 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) các ký tự từ
+-*/< = ~! @#%^& |
Có--và/*Không thể xuất hiện ở bất cứ đâu trong toán tử
Tên toán tử đa nhân không thể kết thúc bằng+hoặc-,,
~! @#%^& |
cho@-là người vận hành được phép*-không. Cái nàyPostgreSQLĐể phân tích SQL-tuân thủKhi soi kèo bóng đá truoctranm việc với tên toán tử không theo tiêu chuẩn SQL, bạn sẽ@, bạn khô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ử
soi kèo bóng đá truoctran số ký tự không có chữ và số
soi kèo bóng đá truoctran dấu hiệu đô la ($) theo sau
ngoặc đơn (()) có của họ
soi kèo bóng đá truoctran ([]) được sử dụng đểPhần 8.14Để biết thêm thông tin về
dấu phẩy (,) được sử dụng trong soi kèo bóng đá truoctran số
semicolon (;) chấm dứt an
Đại tá (:) được sử dụng để chọn"Slices"Từ mảng. (Nhìn thấyPhần 8.14.) Trong soi kèo bóng đá truoctran số SQL nhất định
Asterisk (*) được sử dụng trong
giai đoạn (.) được sử dụng trong
soi kèo bóng đá truoctran bình luận là soi kèo bóng đá truoctran chuỗi các ký tự tùy ý bắt đầu
- Đây là soi kèo bóng đá truoctran bình luận SQL tiêu chuẩn
Ngoài ra, nhận xét khối kiểu C có thể được sử dụng:
/* 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*/. Những bình luận khối này soi kèo bóng đá truoctranm tổ, như được chỉ định trong
soi kèo bóng đá truoctran bình luận bị xóa khỏi luồng đầu vào trước khi tiếp tục
BảngHiển thị ưu tiên và tính kết hợp của các toán tửPOSTGRESQL. Hầu hết các nhà khai thác<vàcó quyền ưu tiên khác với<=và =. Ngoài ra, đôi khi bạn sẽ cần
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 không có ý tưởng - cho đến khi quá muộn - rằng!được định nghĩa là toán tử postfix, không
Chọn (5!) - 6;
Đây là giá mà người ta phải trả cho khả năng mở rộng.
Bảng 4-1. Người vận hành ưu tiên (giảm)
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 |
[ ] | trái | Lựa chọn phần tử mảng |
- | phải | MINUS |
^ | trái | số mũ |
* / % | trái | Nhân, chia, modulo |
+ - | trái | Bổ sung, trừ |
là | là đúng, là sai, IS, là null | |
isnull | Kiểm tra cho NULL | |
notnull | Kiểm tra không null | |
(bất kỳ khác) | trái | Tất cả các toán tử người dùng và người dùng khác |
in | Đặt thành viên | |
giữa | Ngăn chặn phạm vi | |
chồng chéo | Khoảng thời gian chồng chéo | |
như ilike tương tự | soi kèo bóng đá truoctran kết hợp mẫu | |
< | Ít hơn, lớn hơn | |
= | phải | Bình đẳng, gán |
khô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ác quy tắc ưu tiên toán tử cũng áp dụng cho"+"Nhà điều hành cho soi kèo bóng đá truoctran số dữ liệu tùy chỉnh"+"Nhà điều hành, bất kể của bạn là gì
Khi tên toán tử điều chỉnh lược đồ được sử dụng trongNhà điều hànhCú pháp, ví dụ như
Chọn 3 toán tử (pg_catalog.+) 4;
TheNhà điều hànhXây dựng được đưa đếnBảng 4-1cho"bất kỳ" nào khác "toán tử. Đây làtoán tử ().