| ÐокÑменÑаÑÐ¸Ñ Ð¿Ð¾ PostgreSQL 9.4.1 | |||
|---|---|---|---|
| ÐÑед. | УÑÐ¾Ð²ÐµÐ½Ñ Ð²ÑÑе | Ðлава 9. ФÑнкÑии и опеÑаÑоÑÑ | След. |
9.5. ФÑнкÑии и опеÑаÑоÑÑ Ð´Ð²Ð¾Ð¸ÑнÑÑ ÑÑÑок
Ð ÑÑом Ñазделе опиÑÑваÑÑÑÑ ÑÑнкÑии и опеÑаÑоÑÑ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð´Ð°Ð½Ð½Ñми Ñипа bytea.
Ð SQL опÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð½ÐµÑколÑко ÑÑÑоковÑÑ ÑÑнкÑий, в коÑоÑÑÑ Ð°ÑгÑменÑÑ ÑазделÑÑÑÑÑ Ð½Ðµ запÑÑÑми, а клÑÑевÑми Ñловами. ÐодÑобнее ÑÑо опиÑано в ТаблиÑе 9-9. PostgreSQL Ñакже пÑедоÑÑавлÑÐµÑ Ð²Ð°ÑианÑÑ ÑÑÐ¸Ñ ÑÑнкÑий Ñ ÑинÑакÑиÑом, обÑÑнÑм Ð´Ð»Ñ ÑÑнкÑий (Ñм. ТаблиÑÑ 9-10).
ÐамеÑание: РпÑимеÑÐ°Ñ , пÑиведÑннÑÑ Ð½Ð° ÑÑой ÑÑÑаниÑе, подÑазÑмеваеÑÑÑ, ÑÑо паÑамеÑÑ ÑеÑвеÑа bytea_output Ñавен escape (вÑбÑан ÑÑадиÑионнÑй ÑоÑÐ¼Ð°Ñ PostgreSQL).
ТаблиÑа 9-9. SQL-ÑÑнкÑии и опеÑаÑоÑÑ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð´Ð²Ð¾Ð¸ÑнÑми ÑÑÑоками
| ФÑнкÑÐ¸Ñ | Тип ÑезÑлÑÑаÑа | ÐпиÑание | ÐÑÐ¸Ð¼ÐµÑ | РезÑлÑÑÐ°Ñ |
|---|---|---|---|---|
| string || string | bytea | ÐонкаÑенаÑÐ¸Ñ ÑÑÑок | E'\\\\Post'::bytea || E'\\047gresâ\\000'::bytea | \\Post'gresâ\000 |
octet_length(string) | int | ЧиÑло Ð±Ð°Ð¹Ñ Ð² двоиÑной ÑÑÑоке | octet_length(E'jo\\000se'::bytea) | 5 |
overlay(string placing string from int [for int]) | bytea | ÐаменÑÐµÑ Ð¿Ð¾Ð´ÑÑÑÐ¾ÐºÑ | overlay(E'Th\\000âomas'::bytea placing E'\\002\\003'::bytea from 2 for 3) | T\\002â\\003âmas |
position(substring in string) | int | Ðоложение Ñказанной подÑÑÑоки | position(E'\\000om'::bytea in E'Th\\000âomas'::bytea) | 3 |
substring(string [from int] [for int]) | bytea | ÐÐ·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¿Ð¾Ð´ÑÑÑÐ¾ÐºÑ | substring(E'Th\\000âomas'::bytea from 2 for 3) | h\000o |
trim([both] bytes from string) | bytea | УдалÑÐµÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑÑÑÑ Ð¿Ð¾Ð´ÑÑÑокÑ, ÑодеÑжаÑÑÑ ÑолÑко байÑÑ bytes, Ñ Ð½Ð°Ñала и Ñ ÐºÐ¾Ð½Ñа ÑÑÑоки string | trim(E'\\000'::bytea from E'\\000Tomâ\\000'::bytea) | Tom |
Ð PostgreSQL еÑÑÑ Ð¸ дÑÑгие ÑÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð´Ð²Ð¾Ð¸ÑнÑми ÑÑÑоками, пеÑеÑиÑленнÑе в ТаблиÑе 9-10. ÐекоÑоÑÑе из Ð½Ð¸Ñ Ð¸ÑполÑзÑÑÑÑÑ Ð² каÑеÑÑве внÑÑÑенней ÑеализаÑии ÑÑандаÑÑнÑÑ ÑÑнкÑий SQL, пÑиведÑннÑÑ Ð² ТаблиÑе 9-9.
ТаблиÑа 9-10. ÐÑÑгие ÑÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð´Ð²Ð¾Ð¸ÑнÑми ÑÑÑоками
| ФÑнкÑÐ¸Ñ | Тип ÑезÑлÑÑаÑа | ÐпиÑание | ÐÑÐ¸Ð¼ÐµÑ | РезÑлÑÑÐ°Ñ |
|---|---|---|---|---|
btrim(string bytea, bytes bytea) | bytea | УдалÑÐµÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑÑÑÑ Ð¿Ð¾Ð´ÑÑÑокÑ, ÑоÑÑоÑÑÑÑ ÑолÑко из Ð±Ð°Ð¹Ñ bytes, Ñ Ð½Ð°Ñала и Ñ ÐºÐ¾Ð½Ñа ÑÑÑоки string | btrim(E'\\000trimâ\\000'::bytea, E'\\000'::bytea) | trim |
decode(string text, format text) | bytea | ÐолÑÑÐ°ÐµÑ Ð´Ð²Ð¾Ð¸ÑнÑе даннÑе из ÑекÑÑового пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² string. ÐнаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑа format Ñе же, ÑÑо и Ð´Ð»Ñ ÑÑнкÑии encode. | decode(E'123â\\000456', 'escape') | 123\000456 |
encode(data bytea, format text) | text | ÐеÑÐµÐ²Ð¾Ð´Ð¸Ñ Ð´Ð²Ð¾Ð¸ÑнÑе даннÑе в ÑекÑÑовое пÑедÑÑавление в одном из ÑоÑмаÑов: base64, hex, escape. ФоÑÐ¼Ð°Ñ escape пÑеобÑазÑÐµÑ Ð½ÑлевÑе байÑÑ Ð¸ байÑÑ Ñ 1 в ÑÑаÑÑем биÑе в воÑÑмеÑиÑнÑе поÑледоваÑелÑноÑÑи \nnn и дÑблиÑÑÐµÑ Ð¾Ð±ÑаÑнÑÑ ÐºÐ¾ÑÑÑ ÑеÑÑÑ. | encode(E'123â\\000456'::bytea, 'escape') | 123\000456 |
get_bit(string, offset) | int | ÐÐ·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð±Ð¸Ñ Ð¸Ð· ÑÑÑоки | get_bit(E'Th\\000âomas'::bytea, 45) | 1 |
get_byte(string, offset) | int | ÐÐ·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð±Ð°Ð¹Ñ Ð¸Ð· ÑÑÑоки | get_byte(E'Th\\000âomas'::bytea, 4) | 109 |
length(string) | int | Ðлина двоиÑной ÑÑÑоки | length(E'jo\\000se'::bytea) | 5 |
md5(string) | text | ÐÑÑиÑлÑÐµÑ MD5-Ñ ÐµÑ ÑÑÑоки string и возвÑаÑÐ°ÐµÑ ÑезÑлÑÑÐ°Ñ Ð² 16-ÑиÑном виде | md5(E'Th\\000âomas'::bytea) | 8ab2d3c9â689aaf18 b4958c33â4c82d8b1 |
set_bit(string, offset, newvalue) | bytea | УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð·Ð½Ð°Ñение биÑа в ÑÑÑоке | set_bit(E'Th\\000âomas'::bytea, 45, 0) | Th\000omAs |
set_byte(string, offset, newvalue) | bytea | УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð·Ð½Ð°Ñение байÑа в ÑÑÑоке | set_byte(E'Th\\000âomas'::bytea, 4, 64) | Th\000o@as |
ÐÐ»Ñ ÑÑнкÑий get_byte и set_byte байÑÑ Ð½ÑмеÑÑеÑÑÑ Ñ 0. ФÑнкÑии get_bit и set_bit нÑмеÑÑÑÑ Ð±Ð¸ÑÑ ÑпÑава налево; напÑимеÑ, Ð±Ð¸Ñ 0 бÑÐ´ÐµÑ Ð¼ÐµÐ½ÑÑим знаÑаÑим биÑом пеÑвого байÑа, а Ð±Ð¸Ñ 15 — болÑÑим знаÑаÑим биÑом вÑоÑого байÑа.
См. Ñакже агÑегаÑнÑÑ ÑÑнкÑÐ¸Ñ string_agg в Разделе 9.20 и ÑÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð±Ð¾Ð»ÑÑими обÑекÑами в Разделе 32.4.
| ÐÑед. | ÐаÑало | След. |
| СÑÑоковÑе ÑÑнкÑии и опеÑаÑоÑÑ | УÑÐ¾Ð²ÐµÐ½Ñ Ð²ÑÑе | ФÑнкÑии и опеÑаÑоÑÑ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð±Ð¸ÑовÑми ÑÑÑоками |