롤 토토 : 문서 : 9.5 : 롤 토토 9.5 | |||
---|---|---|---|
토토 결과 : 문서 : 9.5 : fuzzystrmatch | PostgreSQL : 문서 : 9.5 : 추가 제공 윈 토토 | Phụ lục F. Các mô -đun được cung cấp bổ sung | 토토 커뮤니티 : 문서 : 9.5 : Intagg |
Mô -đun này thực hiện토토 사이트 순위Kiểu dữ liệu để lưu trữ các bộ khóa/giá trị trong mộtPOSTGRESQLGiá trị. Điều này có thể hữu ích trong các kịch bản khác nhau, chẳng hạn như các hàng có nhiều thuộc tính hiếm khi được kiểm tra hoặc dữ liệu bán cấu trúc. Các khóa và giá trị chỉ đơn giản là chuỗi văn bản.
Biểu diễn văn bản của토토 사이트 순위, được sử dụng cho đầu vào và đầu ra, bao gồm 0 hoặc nhiều hơnKey = giá trịCác cặp được phân tách bằng dấu phẩy. Một số ví dụ:
k = v foo = thanh, baz = bất cứ điều gì "1-a" = "bất cứ điều gì ở tất cả"
Thứ tự của các cặp không đáng kể (và có thể không được sao chép trên đầu ra). Khoảng trắng giữa các cặp hoặc xung quanh=Dấu hiệu bị bỏ qua. Các phím và giá trị trích dẫn kép bao gồm khoảng trắng, dấu phẩy,=S hoặcs. Để bao gồm một báo giá kép hoặc dấu gạch chéo ngược trong một khóa hoặc giá trị, hãy thoát nó bằng một dấu gạch chéo ngược.
mỗi khóa trong một토토 사이트 순위là duy nhất. Nếu bạn khai báo토토 사이트 순위Với các khóa trùng lặp, chỉ có một cái sẽ được lưu trữ trong토토 사이트 순위Và không có gì đảm bảo sẽ được giữ:
Chọn 'a = 1, a = 2' :: 토토 사이트 순위; hstore ---------- "A" = "1"
Một giá trị (nhưng không phải là khóa) có thể là SQLnull. Ví dụ:
key = null
ThenullTừ khóa không nhạy cảm với trường hợp. Hai phần trích dẫnnullĐể coi nó là chuỗi thông thường"null".
Lưu ý:Hãy nhớ rằng토토 사이트 순위Định dạng văn bản, khi được sử dụng cho đầu vào, áp dụngtrướcBất kỳ trích dẫn hoặc thoát yêu cầu nào. Nếu bạn đang vượt qua토토 사이트 순위theo nghĩa đen thông qua một tham số, sau đó không cần xử lý bổ sung. Nhưng nếu bạn đang chuyển nó dưới dạng hằng số theo nghĩa đen được trích dẫn, thì bất kỳ ký tự nào một cách nào và (tùy thuộc vào cài đặt củaStandard_Conforming_StringsTham số cấu hình) Các ký tự Backslash cần được thoát chính xác. Nhìn thấyPhần 4.1.2.1Để biết thêm về việc xử lý các hằng số chuỗi.
trên đầu ra, báo giá đôi luôn bao quanh các khóa và giá trị, ngay cả khi nó không hoàn toàn cần thiết.
Các toán tử được cung cấp bởi토토 사이트 순위Mô -đun được hiển thị trongBảng F-8, các chức năng trongBảng F-9.
Bảng F-8.토토 사이트 순위toán tử
Nhà điều hành | Mô tả | Ví dụ | result |
---|---|---|---|
토토 사이트 순위 - Text | Nhận giá trị cho khóa (nullNếu không có) | 'a = x, b = y' :: 토토 사이트 순위 - 'a' | x |
토토 사이트 순위 - Text [] | Nhận giá trị cho các khóa (nullNếu không có) | 'a = x, b = y, c = z' :: 토토 사이트 순위 - mảng ['c', 'a'] | "z", "x" |
토토 사이트 순위 || 토토 사이트 순위 | Concatenate토토 사이트 순위S | 'a = b, c = d' :: hstore || 'c = x, d = q' :: hstore | "A" = "B", "C" = "X", "D" = "Q" |
토토 사이트 순위 ? Text | không토토 사이트 순위chứa khóa? | 'A = 1' :: 토토 사이트 순위? 'Một' | T |
토토 사이트 순위 ? & Text [] | không토토 사이트 순위chứa tất cả các khóa được chỉ định? | 'a = 1, b = 2' :: 토토 사이트 순위? & Array ['A', 'B'] | T |
토토 사이트 순위 ? | Text [] | không토토 사이트 순위chứa bất kỳ khóa nào được chỉ định? | 'a = 1, b = 2' :: 토토 사이트 순위? | Mảng ['b', 'c'] | T |
토토 사이트 순위 @ 토토 사이트 순위 | Vận hành bên trái có chứa phải không? | 'a = b, b = 1, c = null' :: hstore @ 'b = 1' | T |
토토 사이트 순위 <@ 토토 사이트 순위 | là toán hạng bên trái có ở bên phải? | 'A = C' :: 토토 사이트 순위 <@ 'a = B, b = 1, c = null' | f |
토토 사이트 순위 - Text | Xóa phím từ toán hạng bên trái | 'a = 1, b = 2, c = 3' :: 토토 사이트 순위 - 'b' :: text | "A" = "1", "C" = "3" |
토토 사이트 순위 - Text [] | Xóa các phím từ toán hạng bên trái | 'a = 1, b = 2, c = 3' :: 토토 사이트 순위 - mảng ['a', 'b'] | "C" = "3" |
토토 사이트 순위 - 토토 사이트 순위 | Xóa các cặp khớp từ toán hạng bên trái | 'a = 1, b = 2, c = 3' :: 토토 사이트 순위 - 'a = 4, b = 2' :: 토토 사이트 순위 | "A" = "1", "C" = "3" |
Record #= 토토 사이트 순위 | Thay thế các trường trongRecordvới các giá trị phù hợp từ토토 사이트 순위 | Xem ví dụ phần | |
%% 토토 사이트 순위 | Chuyển đổi토토 사이트 순위Để mảng các khóa và giá trị xen kẽ | %% 'a = foo, b = bar' :: hstore | a, foo, b, bar |
%# 토토 사이트 순위 | Chuyển đổi토토 사이트 순위16283_16320 | %# 'a = foo, b = bar' :: hstore | a, foo, b, bar |
Lưu ý:Trước PostgreSQL 8.2, toán tử ngăn chặn@và<@được gọi là@và~, tương ứng. Những cái tên này vẫn có sẵn, nhưng không được chấp nhận và cuối cùng sẽ bị xóa. Lưu ý rằng các tên cũ được đảo ngược từ Công ước trước đây là các loại dữ liệu hình học cốt lõi!
Bảng F-9.토토 사이트 순위chức năng
chức năng | Loại trả lại | Mô tả | Ví dụ | result |
---|---|---|---|---|
토토 사이트 순위 (ghi) |
토토 사이트 순위 | Xây dựng một토토 사이트 순위Từ bản ghi hoặc hàng | 토토 사이트 순위 (hàng (1,2)) | f1 = 1, f2 = 2 |
토토 사이트 순위 (văn bản []) |
토토 사이트 순위 | Xây dựng토토 사이트 순위Từ một mảng, có thể là một mảng khóa/giá trị hoặc mảng hai chiều | 토토 사이트 순위 (mảng ['a', '1', 'b', '2']) || hstore (mảng [['c', '3'], ['d', '4']])) | a = 1, b = 2, c = 3, d = 4 |
토토 사이트 순위 (văn bản [], văn bản []) |
토토 사이트 순위 | Xây dựng một토토 사이트 순위Từ các mảng khóa và giá trị riêng biệt | 토토 사이트 순위 (mảng ['a', 'b'], mảng ['1', '2']) | "A" = "1", "B" = "2" |
토토 사이트 순위 (văn bản, văn bản) |
토토 사이트 순위 | Làm đơn lẻ토토 사이트 순위 | 토토 사이트 순위 ('A', 'B') | "A" = "B" |
akeys (토토 사이트 순위) |
Text [] | Nhận토토 사이트 순위S phím như một mảng | akeys ('a = 1, b = 2') | a, b |
SKEYS (토토 사이트 순위) |
Setof Text | GET토토 사이트 순위's Keys As a Set | SKEYS ('A = 1, B = 2') |
a B |
Avals (토토 사이트 순위) |
Text [] | GET토토 사이트 순위'giá trị dưới dạng mảng | Avals ('a = 1, b = 2') | 1,2 |
svals (토토 사이트 순위) |
Setof Text | Nhận토토 사이트 순위s giá trị như một tập hợp | svals ('a = 1, b = 2') |
1 2 |
토토 사이트 순위_to_array (토토 사이트 순위) |
Text [] | Get토토 사이트 순위19787_19850 | 토토 사이트 순위_to_array ('a = 1, b = 2') | a, 1, b, 2 |
토토 사이트 순위_to_matrix (토토 사이트 순위) |
Text [] | get토토 사이트 순위s Keys và giá trị như một mảng hai chiều | 토토 사이트 순위_to_matrix ('a = 1, b = 2') | a, 1, b, 2 |
토토 사이트 순위_to_json (토토 사이트 순위) |
JSON | GET토토 사이트 순위như mộtJSONGiá trị, chuyển đổi tất cả các giá trị không null thành chuỗi JSON | "A Key": "1", "B": "T", "C": null, "D": "12345", "E": "012345", "F": "1.234" | |
토토 사이트 순위_to_jsonb (토토 사이트 순위) |
JSONB | GET토토 사이트 순위như mộtJSONBGiá trị, chuyển đổi tất cả các giá trị không null thành chuỗi JSON | "A Key": "1", "B": "T", "C": NULL, "D": "12345", "E": "012345", "F": "1.234" | |
HSTORE_TO_JSON_LOOSE (hstore) |
json | GET토토 사이트 순위như mộtjsonGiá trị, nhưng cố gắng phân biệt các giá trị số và boolean để chúng không được trình bày trong JSON | "A Key": 1, "B": True, "C": NULL, "D": 12345, "E": "012345", "F": 1.234, "G" | |
hstore_to_jsonb_loose (hstore) |
JSONB | GET토토 사이트 순위như mộtJSONBGiá trị, nhưng cố gắng phân biệt các giá trị số và boolean để chúng không được trình bày trong JSON | "A Key": 1, "B": True, "C": NULL, "D": 12345, "E": "012345", "F": 1.234, "G" | |
Slice (토토 사이트 순위, văn bản []) |
토토 사이트 순위 | Trích xuất một tập hợp con토토 사이트 순위 | Slice ('a = 1, b = 2, c = 3' :: 토토 사이트 순위, mảng ['b', 'c', 'x']) | "B" = "2", "C" = "3" |
mỗi (토토 사이트 순위) |
setof (văn bản chính, văn bản giá trị) | GET토토 사이트 순위'các phím và giá trị như một tập hợp | Chọn * từ mỗi ('a = 1, b = 2') |
khóa | giá trị -----+------- A | 1 B | 2 |
tồn tại (토토 사이트 순위, văn bản) |
Boolean | không토토 사이트 순위chứa khóa? | tồn tại ('a = 1', 'a') | T |
được xác định (토토 사이트 순위, văn bản) |
Boolean | không토토 사이트 순위chứa khôngnullGiá trị cho khóa? | được xác định ('a = null', 'a') | f |
Xóa (토토 사이트 순위, văn bản) |
토토 사이트 순위 | Xóa cặp với phím khớp | Xóa ('A = 1, B = 2', 'B') | "A" = "1" |
Xóa (토토 사이트 순위, Text []) |
토토 사이트 순위 | Xóa các cặp với các phím phù hợp | Xóa ('a = 1, b = 2, c = 3', mảng ['a', 'b']) | "C" = "3" |
Xóa (토토 사이트 순위, 토토 사이트 순위) |
토토 사이트 순위 | Xóa các cặp khớp với các cặp trong đối số thứ hai | Xóa ('a = 1, b = 2', 'a = 4, b = 2' :: 토토 사이트 순위) | "A" = "1" |
Population_Record (Record, 토토 사이트 순위) |
Record | Thay thế các trường trongRecordVới các giá trị phù hợp từ토토 사이트 순위 | Xem ví dụ Phần |
Lưu ý:hàm
hstore_to_json
được sử dụng khi토토 사이트 순위Giá trị được đúc thànhJSON. Tương tự như vậy,hstore_to_jsonb
được sử dụng khi토토 사이트 순위Giá trị được đúc thànhJSONB.
Lưu ý:hàm
Population_Record
thực sự được khai báo vớiAnyEuity, khôngRecord, như đối số đầu tiên của nó, nhưng nó sẽ từ chối các loại không ghi với lỗi thời gian chạy.
토토 사이트 순위Hỗ trợ Chỉ số Gist và Gin cho@, ?, ? &và? |Người vận hành. Ví dụ:
Tạo chỉ mục HIDX trên Test토토 사이트 순위 bằng Gist (h); Tạo chỉ mục HIDX trên Test토토 사이트 순위 bằng Gin (H);
토토 사이트 순위cũng hỗ trợBtreehoặcHashChỉ mục cho=toán tử. Điều này cho phép토토 사이트 순위cột được khai báođộc đáohoặc được sử dụng trongNhóm bởi, Đặt hàng bởihoặckhác biệtBiểu thức. Thứ tự sắp xếp cho토토 사이트 순위Giá trị không đặc biệt hữu ích, nhưng các chỉ mục này có thể hữu ích cho các tra cứu tương đương. Tạo chỉ mục cho=So sánh như sau:
Tạo chỉ mục HIDX trên Testhstore bằng Btree (h); Tạo chỉ mục HIDX trên Testhstore bằng băm (h);
Thêm khóa hoặc cập nhật khóa hiện có có giá trị mới:
Tab Cập nhật đặt H = H || hstore ('c', '3');
Xóa khóa:
Tab Update Set H = Delete (H, 'K1');
Chuyển đổi ARecordđến một토토 사이트 순위:
Tạo thử nghiệm bảng (số nguyên col1, văn bản col2, văn bản col3); Chèn vào các giá trị kiểm tra (123, 'foo', 'thanh'); Chọn HStore (T) từ thử nghiệm là T; hstore ------------------------------------------------- "col1" = "123", "col2" = "foo", "col3" = "bar" (1 hàng)
Chuyển đổi một토토 사이트 순위đến được xác định trướcRecordloại:
Tạo thử nghiệm bảng (số nguyên col1, văn bản col2, văn bản col3); Chọn * Từ population_record (null :: test, '"col1" = "456", "col2" = "zzz"'); col1 | col2 | col3 ------+------+------ 456 | zzz | (1 hàng)
Sửa đổi bản ghi hiện có bằng cách sử dụng các giá trị từ토토 사이트 순위:
Tạo thử nghiệm bảng (số nguyên col1, văn bản col2, văn bản col3); Chèn vào các giá trị kiểm tra (123, 'foo', 'thanh'); Chọn (r).* Từ (chọn t #= '"col3" = "Baz"' làm r từ thử nghiệm t) s; col1 | col2 | col3 ------+------+------ 123 | foo | Baz (1 hàng)
The토토 사이트 순위Loại, vì tính tự do nội tại của nó, có thể chứa rất nhiều khóa khác nhau. Kiểm tra các khóa hợp lệ là nhiệm vụ của ứng dụng. Các ví dụ sau đây chứng minh một số kỹ thuật để kiểm tra các khóa và có được số liệu thống kê.
Ví dụ đơn giản:
Chọn * từ mỗi ('aaa = bq, b = null, "" = 1');
Sử dụng bảng:
Chọn (mỗi (h)).
Thống kê trực tuyến:
chọn khóa, đếm (*) từ (Chọn (mỗi (h)). Khóa từ Testhstore) làm chỉ số Nhóm theo khóa Đặt hàng theo đếm desc, khóa; chìa khóa | đếm -----------+------- dòng | 883 Truy vấn | 207 pos | 203 nút | 202 Không gian | 197 trạng thái | 195 công khai | 194 Tiêu đề | 190 org | 189 ...................
Kể từ Postgresql 9.0,토토 사이트 순위Sử dụng biểu diễn nội bộ khác với các phiên bản trước. Điều này không có trở ngại cho việc nâng cấp/khôi phục từ bỏ vì biểu diễn văn bản (được sử dụng trong bãi rác) không thay đổi.
Trong trường hợp nâng cấp nhị phân, khả năng tương thích tăng được duy trì bằng cách có mã mới nhận ra dữ liệu định dạng cũ. Điều này sẽ đòi hỏi một hình phạt hiệu suất nhỏ khi xử lý dữ liệu chưa được sửa đổi bởi mã mới. Có thể buộc nâng cấp tất cả các giá trị trong cột bảng bằng cách thực hiệnCập nhậtCâu như sau:
CẬP NHẬT TABLENAME SET HSTORECOL = hstorecol || '';
Một cách khác để làm điều đó là:
30070_30144
TheBảng thay đổiPhương thức yêu cầu khóa độc quyền trên bảng, nhưng không dẫn đến việc làm cho bảng với các phiên bản hàng cũ.
Tiện ích mở rộng bổ sung có sẵn để thực hiện các biến đổi cho토토 사이트 순위Loại cho các ngôn ngữ PL/Perl và PL/Python. Các tiện ích mở rộng cho PL/perl được gọi là토토 사이트 순위_plperlvà토토 사이트 순위_plperlu, Đối với PL/Perl đáng tin cậy và không đáng tin cậy. Nếu bạn cài đặt các biến đổi này và chỉ định chúng khi tạo hàm,토토 사이트 순위Giá trị được ánh xạ tới băm Perl. Các tiện ích mở rộng cho PL/Python được gọi là토토 사이트 순위_plpythonu, 토토 사이트 순위_plpython2uvà토토 사이트 순위_plpython3u(xemPostgreSQL : 문서 : 9.5 : 스포츠 토토 사이트 2 vs. 스포츠 토토 사이트 3Đối với quy ước đặt tên PL/Python). Nếu bạn sử dụng chúng,토토 사이트 순위Giá trị được ánh xạ tới từ điển Python.
THẬN TRỌNG |
Được khuyến nghị mạnh mẽ rằng các tiện ích mở rộng biến đổi được cài đặt trong cùng lược đồ với토토 사이트 순위. Nếu không |
Oleg Bartunov<leg@sai.msu.su
, Moscow, Đại học Moscow, Nga
Teodor Sigaev<teodor@sigaev.ru
, Moscow, Delta-Soft Ltd., Nga
Cải tiến bổ sung của Andrew Gierth<andrew@tao11.riddles.org.uk
, Vương quốc Anh