áá°ááá¯á·áá²á· á¡ááœááºá¡ááŒááºáá²á· áááºáááºááŒá®áž áá¶ááááŒá áºá áᬠáá¬ááŸáááŸááá«áá°ážá ááá¯á·á¡ááŒááºá áááºážááá¯á·ááẠááá·áºá¡á¬áž áá±á¬ááºážá áœá¬áááºážááŸá®ážááŒá®áž á¡áá»áááºá¡ááŒá¬ááŒá®ážááẠáááºážááŸá®ážáá±áá¯á¶ááááºá áá«áá±ááá·áº á¡á²áá«ááœá±ááᯠáááºá á áºáá±ážáá²á·á¡áá»áááºá¡áááá² ááŸááá«áá±ážáááºá á€áá±áá¬ááœáẠáááºážááá¯á·ááẠáááºáá»áŸá±á¬áºááá·áºáá¬ážáááºááẠáá¯á¶ážáááœá²ááŒá¬ážá áœá¬ áá¯ááºáá±á¬ááºáá±ááá·áº áááºážááá¯á·á áá¯ááºáá¶á·áá±á¬ ááá¬áááᯠááŒááááºá áá áºáá«áá áºáá¶ááœáẠáááºážááá¯á·ááẠááá·áºáá¶áááºááᯠá¡áá¯á¶ážáá áááºáááºá á±ááá·áº á¡áá¬áá áºáá¯ááᯠááŒá¯áá¯ááºááẠ- á¥ááá¬á áááºážááá¯á·áá¶á¡ááºááŸááºážáá¬ážáá±á¬ áá»áŸáá¯á·ááŸááºá¡áá»ááºá¡áááºáá»á¬áž áá¯á¶ážááŸá¯á¶ážááœá¬ážáááºáá«áááºá áá°ááá¯á·áá²á·áááºááá¯ááºááá²á·á¡áá« ááŸá±á¬ááºááááºá¡á±á¬ááºááŸá¬ á¡áá°áá° áá¯á¶á·ááá®áááááŸáááŸá á¡áá¯ááºáá¯ááºááŒáá±ááá·áº áá áºáá±á¬ááºáá²á·áá áºáá±á¬áẠáááááŒáá°ážááá¯á· ááá¯ááŒáá«áááºá áá±á¬ááºáá¯á¶ážáá±á¬á· áá°ááá¯á·ááᯠáá±ááá·áºáá±ážááá¯á· á¡áá»áááºáá±á¬ááºáá«ááŒá®á á€áá¶ááááŒá áºááœááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááá¯áááºáž ááá¯ááºááœááºááŒáá«á áá¯á·á
áá¯áá¹áááá±áá¡á¬ážáá¯á¶ážá¡ááœáẠPostgreSQL ááœáẠáá±áá¬á á¬ááá¯ááºááŒááºážááẠáá áºáá«áá áºáá¶ááœáẠá¡ááœááºáá°ážáááºážáá±á¬ á¡á¶á·ááŒááœááºáá±á¬ááºážááŸá¯áá»á¬ážááᯠáááºááŒáááºáá«áááºá áá®áá±á¬ááºážáá«ážááŸá¬ áá°ááá¯á·áá²á· áá°ážááŒá¬ážáá»ááºááá»áá¯á·ááᯠááŸááºážáááºážááá¯á·á áá°ááá¯á·áá²á· áá°ážáááºážáá²á· á¡ááŒá¯á¡áá°ááœá±áá²á· á¡ááŒá±á¬ááºážáááºážááᯠáá¬ážáááºááŒá®áž áá±á·á ááºá¡áá±á·á¡áá»áá·áºááŸá¬ ááŒá¿áá¬áááŒá áºá¡á±á¬áẠáááºááá¯ááŒá±ááŸááºážáááá²ááá¯áá¬ááᯠáá¬ážáááºá¡á±á¬áẠááŒáá¯ážá á¬ážááœá¬ážááŸá¬áá«á á¡ááŸááºá¡ááá¯ááºážááŒá±á¬ááá»áŸáẠáá»áœááºá¯ááºááẠá€áá±á¬ááºážáá«ážááᯠá¡ááá¯ážá¡áá¬ážá á¬á¡á¯ááºáá áºáá»áá¯ážá¡ááŒá áºáááºážáá±á¬ááºážá á¡ááŒááºážááœá¬ážááœááºáá¬ááá á¹á áá»á¬ážááœáẠá¡ááœááºááá°áááºááœáŸááºážááá¯ááºáá±á¬ á¡ááá¯ážá¡áá¬ážá á¬á¡á¯ááºá¡ááŒá áºáááºáž ááŒá¯á á¯áá²á·áááºá ááá¯á·ááŒá±á¬áá·áºá áá¶ááááŒá áºááœááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážá០á¡á¶á·ááŒááœááºáá¬á¡áá áºáá»á¬ážááᯠááŸá¬ááœá±ááœá±á·ááŸááá¬áá±á¬ááŒá±á¬áá·áº áááºážááᯠááŒáá·áºá áœááºááœá¬ážáááºááŒá áºáááºá áá«ááá¯á áá±á¬áááºážááœááºážáááºáá²á· áá±áá¬áá±á·á ẠááŒá±áá¬áá¶áááááá¬ááœá± ááœá¬ážááŒáá·áºáá¡á±á¬ááºá
Dossier áá¶áá«ááºáá áºá á¡á á áºá¡ááŸááº/ááŸá áºááááá»ááŸá¯/ááááºáž/ááœá±
á¡ááŒá¯á¡áá°áá»á¬ážááœáẠá¡á¶á·á¡á¬ážááá·áºá áá¬áá»á¬ážááŸáá·áºáááºáááºá ááááºážá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááẠááŒá¿áá¬á¡áááºážáá¯á¶ážááŒá áºáá¯á¶ááááºá áá«áá±ááá·áº áááºááá¯áá² ááŒá áºáá±áá«á á±á áá®áá±á¬á· áá°ááá¯á·áá²á· á ááá¯ááºáá¡á±á¬ááºá áá®áá±á¬á·âŠ
áá±ááœááºáááºáž áá±á·ááœá¬ážáááºá
SELECT 0.1::real = 0.1
?column?
boolean
---------
f
áá¬ááŒá áºáá¬áá²? ááŒá¿áá¬ááŸá¬ PostgreSQL ááẠáááá¯ááºááá±ážáá±á¬ ááááºážáá± 0.1 ááᯠáááá»ááŸá¯ááŸá áºáá¡ááŒá ẠááŒá±á¬ááºážáá²ááŒá®áž áááºážááᯠá¡áá»áá¯ážá¡á á¬ážá¡á á áºá¡ááŸááºá 0.1 ááŸáá·áº ááŸáá¯ááºážááŸááºááẠááŒáá¯ážá á¬ážááŒááºážááŒá±á¬áá·áºááŒá áºáááºá ááŒá®ážáá±á¬á· áá«ááœá±á áá¯á¶ážáááœá²ááŒá¬ážáá²á· á¡áááá¹áá«ááºááœá±áá«á á áááºáá°ážááẠá ááºááŸááºáá¬ááºááœáẠááááºážá¡á á áºá¡ááŸááºáá»á¬ážááᯠááá¯ááºá á¬ážááŒá¯áááºááŒá áºáááºá 0.1 ááᯠá¡ááá·áºá¡áááºááŸááá±á¬ ááœáá¡ááá¯ááºážá¡á á¡ááŒá Ạááá¯ááºá á¬ážááŒá¯ááááá±á¬ááŒá±á¬áá·áº (áááºážááẠááœáááááºáž 0.0(0011) ááŒá áºáááá·áºáááº)á ááœá²ááŒá¬ážáá±á¬áá áºá¡ááááºá¡áááºááŸááá±á¬ ááááºážáá»á¬ážááẠááœá²ááŒá¬ážáááá·áºáááºááŒá áºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááẠáá®áá»áŸááŒááºážááá¯ááºáá±á áá±áá°áá»á¡á¬ážááŒáá·áºááŒá±á¬ááá»áŸááºá á€ááẠáá®ážááŒá¬ážáá±á¬ááºážáá«ážá¡ááœáẠáá±á«ááºážá ááºááŒá áºáááºá á€áá±áá¬ááœáẠáá»áœááºá¯ááºááẠáá±á¬ááºáááºá¡áá±ážá áááºááá±ážáá«á
á¡ááŸá¬ážá áááºááá¬áá¬áá²á
SELECT double precision(1)
ERROR: syntax error at or near "("
LINE 1: SELECT double precision(1)
^
********** ÐÑОбка **********
ERROR: syntax error at or near "("
SQL-ÑПÑÑПÑМОе: 42601
СОЌвПл: 24
PostgreSQL ááẠá¡áá»áá¯ážá¡á á¬ážáá¬á áºáááºááŒááºážá¡ááœáẠáá¯ááºáá±á¬ááºááá¯ááºáá±á¬ ááŸááºáá»ááºáá»á¬ážááᯠááœáá·áºááŒá¯ááŒá±á¬ááºáž áá°áá»á¬ážá áœá¬áááááºá ááá¯ááá¯áááºááŸá¬ áááºááẠ1::int áá¬áá int(1) ááá¯áá« áá®áá»áŸá¡á±á¬ááºáá±ážááá¯ááºáááºá ááá¯á·áá±á¬áº á áá¬ážáá¯á¶ážáá»á¬ážá áœá¬áá«áá±á¬ áá¬áááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážá¡ááœáẠááá¯ááºáá«á ááá¯á·ááŒá±á¬áá·áºá áááºááẠááááºážááá¬ááºážáááºááá¯ážáá áºáá¯á¡á¬áž áá¯ááºáá±á¬ááºááŸá¯áá¯á¶á á¶ááœáẠááŸá áºááááá»á á±ááẠáá¬á áºáá¯ááºááá¯áá«áá á€á¡áá»áá¯ážá¡á á¬áž float8 á alias ááŒá áºáá±á¬ SELECT float8(1) ááᯠá¡áá¯á¶ážááŒá¯áá«á
Infinity ááẠáá¬ááŒá®ážáá²á
SELECT 'Infinity'::double precision < 'NaN'::double precision
?column?
boolean
---------
t
áááºááá¯áá»áá¯ážáá² ááŒáá·áºááá¯ááºáá«áŠážá á¡áá¯á¶ážáááŸáááẠááá¯ááŒá®ážáá²á·á¡áá¬áá áºáá¯ááŸááááºá á¡á²áá«á NaN áá«á áá áºáá»áááºáááºážááŸá¬áááºá PostgreSQL á á¬ááœááºá á¬áááºážááẠáá»áœááºá¯ááºááá¯á·ááᯠááá¯ážááá¯ážáá¬ážáá¬áž áá»ááºáá¯á¶ážáá»á¬ážááŒáá·áº ááŒáá·áºáᬠNaN ááẠá¡ááŒá¬ážáá¶áá«ááºáá»á¬ážááẠáááá¬áááºááŸá¬ážá áœá¬ ááŒá®ážáá¬ážáá±á¬ááŒá±á¬áá·áºá ááá¯á·ááŒá±á¬áá·áº á¡áá¯á¶ážáááŸááᯠááá¯áá¬ážáááºá ááá·áºáá»ááºáááºááẠ-NaN á¡ááœááºáááºáž ááŸááºáá«áááºá áááºá¹ááá¬áá« áááºá¹áá»á¬áá»á áºáá°áá»á¬ážá ááá¯á·áá±á¬áº á€á¡áá¬á¡á¬ážáá¯á¶ážááẠááááºážááá¬ááºážáá»á¬ážá áááºá ááºááŸá¯ááœáẠáá¯ááºáá±á¬ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á· ááááááá«áááºá
áá»ááºáá¯á¶ážááá¯ááºážá ááº
SELECT round('2.5'::double precision)
, round('2.5'::numeric)
round | round
double precision | numeric
-----------------+---------
2 | 3
ááŒá±áááºážá០ááá»áŸá±á¬áºááá·áºáá¬ážáá±á¬ áá±á¬ááºááẠááŸá¯ááºáááºá áá¬ážá áá áºáááºá áááá»ááŸá¯ááŸá áºáááºááŸáá·áº ááááºážá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááẠááá°áá®áá±á¬ á¡ááá¯ááºážáá¯á¶á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯áá»á¬ážááŸáááŒá±á¬ááºáž áááááá«á ááááºážáá»á¬ážá¡ááœáẠ- áá¯á¶ááŸááºáááºážá¡á¬ážááŒáá·áº 0,5 ááᯠáá±á«ááºážááá¯ááºáá±á¬á¡áá«á ááŸáá·áº ááŸá áºááááá»ááŸá¯á¡ááœáẠ- 0,5 ááᯠá¡áá®ážáá¯á¶ážááááºážááŒáá·áºáá®ááá¯á· ááá¯ááºážáá¬ážáááºá
ááœá±ááẠáá°ážááŒá¬ážáá±á¬á¡áá¬áá áºáá¯ááŒá áºáááºá
SELECT '10'::money::float8
ERROR: cannot cast type money to double precision
LINE 1: SELECT '10'::money::float8
^
********** ÐÑОбка **********
ERROR: cannot cast type money to double precision
SQL-ÑПÑÑПÑМОе: 42846
СОЌвПл: 19
PostgreSQL á¡á ááœá±ááẠá¡á á áºá¡ááŸááºááááºážááááºážááá¯ááºáá«á á¡áá»áá¯á·áá±á¬ áá¯áá¹ááá¯ááºáá»á¬áž á¡ááá¯á¡ááááºáž áá«áá«áááºá ááááºážá¡áá»áá¯ážá¡á á¬ážááá¯áᬠááœá±á¡áá»áá¯ážá¡á á¬ážááá¯á· áá¬á áºááá¯ááºááá²á·ááá¯á· ááœá±á¡áá»áá¯ážá¡á á¬ážááᯠááááºážááá¬ááºážá¡áá»áá¯ážá¡á á¬ážá¡ááœááºáᬠááŒá áºááá¯ááºááŒá±á¬ááºáž ááŸááºáá¬ážáá¬ážáááºááá¯áá«áááºá ááá¯áá°áá¬áž ááá·áºá áááºááá¹áá¡ááá¯ááºáž áá á¬ážááá¯ááºááŒá®ááŒá áºáááºá áá«áá±ááá·áº ááá¯ááºáá¶á á¡áá°áá°ááŒá áºááŸá¬ááá¯ááºáá°ážá
Smallint ááŸáá·áº sequence áá»áá¯ážáááº
SELECT *
FROM generate_series(1::smallint, 5::smallint, 1::smallint)
ERROR: function generate_series(smallint, smallint, smallint) is not unique
LINE 2: FROM generate_series(1::smallint, 5::smallint, 1::smallint...
^
HINT: Could not choose a best candidate function. You might need to add explicit type casts.
********** ÐÑОбка **********
ERROR: function generate_series(smallint, smallint, smallint) is not unique
SQL-ÑПÑÑПÑМОе: 42725
ÐПЎÑказка: Could not choose a best candidate function. You might need to add explicit type casts.
СОЌвПл: 18
PostgreSQL ááẠá¡áá±ážá¡ááœá²áá»á¬ážáá±á«áºááœáẠá¡áá»áááºááŒá¯ááºážááŒááºážááᯠáááŒáá¯ááºáá«á á¡áá±ážá¡ááœáŸá¬ážááᯠá¡ááŒá±áá¶á ဠsequence áá»á¬ážááẠá¡áááºáááºážá intá ááááºážáá°áž! ááá¯á·ááŒá±á¬áá·áºá á¡áááºáá±á¬áºááŒáá«áá±ážááœááºážááᯠáá¯ááºáá±á¬ááºáááºááŒáá¯ážá á¬ážáá±á¬á¡áá«á áá±áá¬áá±á·á áºááẠá¡ááŒá¬ážááááºážááŒáá·áºá¡áá»áá¯ážá¡á á¬ážááá¯á· á¡áá±ážá¡ááœáŸá¬ážááᯠáá¬á áºáááºááŒáá¯ážá á¬ážáᬠááá¯ááá¯á·áá±á¬ áá¬á áºáá»á¬ážá áœá¬ááŸáááá¯ááºáááºááᯠááœá±á·ááŒááºááááºá áááºáá¬ážááᯠááœá±ážááá²á áá«ááᯠáá°á ááá¯á¶ážááŒááºááá¯ááºáá¬ááŒá±á¬áá·áº á¡ááŸá¬ážáá áºáá¯áá²á· áá»ááºáá»ááœá¬ážáááºá
ááá¯ááºáá¶áá«ááºááŸá áºá "char"/char/varchar/á á¬áá¬áž
á¡áá¹ááá¬á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááœááºáááºáž áá°ážáá°ážááŒá¬ážááŒá¬ážáá»á¬ážá áœá¬ááŸááááºá áá°ááá¯á·ááá¯áááºáž ááááá¯ááºáá¡á±á¬ááºá
áá«ááœá±á áááºááá¯ááŸáá·áºááœááºááœá±áá²á
SELECT 'ÐÐТЯ'::"char"
, 'ÐÐТЯ'::"char"::bytea
, 'ÐÐТЯ'::char
, 'ÐÐТЯ'::char::bytea
char | bytea | bpchar | bytea
"char" | bytea | character(1) | bytea
-------+-------+--------------+--------
âš | xd0 | Ð | xd09f
áá«áá¬á¡áá»áá¯ážá¡á á¬ážáá²á áá«áááºááá¯áá°ááœáŸááºáá±á¬áºáá²á á¡á²áá«ááœá±ááᯠáááá¯á¡ááºáá«áá°áž... ááá¯ážáá¬ážáá»ááºáá»á¬ážáá«ááŸááá±á¬áºáááºážá áááºážááẠáá¬ááẠchar áá²á·ááá¯á· áááºáá±á¬ááºáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá áááºážááẠááá¯ážáá¬ážááá«áá² áá¯á¶ááŸáẠchar ááŸáá·áº ááœá²ááŒá¬ážáááºá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº áááºážááẠstring ááá¯ááºá á¬ážááŒá¯ááŒááºážá ááá byte ááá¯áᬠáá¯ááºáááºá áá¯á¶ááŸáẠchar ááẠáááá á¬áá¯á¶ážááᯠááœááºáá±á«áºá á±ááŒá®ážá áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá áááá á¬áá¯á¶ážááẠááááºááᯠbytea á¡áá»áá¯ážá¡á á¬ážááá¯á·ááŒá±á¬ááºážáá²ááŒááºážááŒáá·áº áááºáá±ááŒáá¬ážááá·áºá¡ááá¯ááºáž áá°áá®áá¯ááºááá¯ááºá á¬ážááŒá¯ááŸá¯ááœáẠ2 bytes áá°ááá·áºá á¬áá¯á¶áž P ááŒá áºáááºá âcharâ á¡áá»áá¯ážá¡á á¬ážááẠá€áá°áá®áá¯ááºááá¯ááºá á¬ážááŒá¯ááŸá¯á áááááá¯ááºááá¯áᬠáá°áááºá áá«ááᯠáá®á¡áá»áá¯ážá¡á á¬ážá áá¬ááŒá±á¬áá·áº ááá¯á¡ááºáá¬áá²á PostgreSQL á á¬áááºážááœáẠá€á¡áá¬ááẠá¡áá°ážááá¯á¡ááºáá»ááºáá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº á¡áá°ážá¡áá»áá¯ážá¡á á¬ážááŒá áºáááºáᯠááá¯áááºá áá«ááŒá±á¬áá·áº áá»áœááºáá±á¬áºááá¯á·á á¡á²áá«ááᯠáááá¯á¡ááºáá«áá°ážá áá«áá±ááá·áº áá°á·áá»ááºáá¯á¶ážááœá±ááᯠááŒáá·áºááŒá®áž áá°á·áá°ážááŒá¬ážáá²á· á¡ááŒá¯á¡áá°áá²á· áá°áá²á·ááœá±á·áá²á·á¡áá« áááºáž ááŸá¬ážááœá¬ážáááá·áºáááºá
á¡ááá¯áá±áá¬áá»á¬ážá áá»ááºááœááºááŒá¯á á áááºáááŸáá
SELECT 'abc '::char(6)::bytea
, 'abc '::char(6)::varchar(6)::bytea
, 'abc '::varchar(6)::bytea
bytea | bytea | bytea
bytea | bytea | bytea
---------------+----------+----------------
x616263202020 | x616263 | x616263202020
áá±ážáá¬ážáá±á¬ á¥ááá¬ááᯠááŒáá·áºáá«á áá»áœááºá¯ááºááẠááááºá¡á¬ážáá¯á¶ážááᯠbytea á¡áá»áá¯ážá¡á á¬ážááá¯á· á¡áá°ážááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ááŒá±á¬áá·áº áááºážááœááºááŸááá±á¬á¡áá¬áá»á¬ážááᯠááŸááºážááŸááºážáááºážáááºážááŒááºááá¯ááºá á±áááºá varchar(6) ááá¯á· áá¬á áºááŒá®ážáá±á¬áẠáá±á¬ááºááá¯ááºáá±áá¬áá»á¬áž áááºááŸá¬áá²á á á¬ááœááºá á¬áááºážááœáẠááá¯ááá¯áá¯ááºáá¯ááºáá±á¬áºááŒáá¬ážáááº- "áá¬ááºáá±á¬ááºááááºááá¯ážááᯠá¡ááŒá¬ážáá¬ááºáá±á¬ááºá¡áá»áá¯ážá¡á á¬ážááá¯á· áá»ááŒáá±á¬á¡áá«á áá±á¬ááºááœááºááá¯ááºáá±ááá·áº áá±áá¬ááœááºáá»á¬ážááᯠáááºáá áºáááº" áá«ááᯠáááŒáá¯ááºáá¬ááᯠááŸááºáá¬ážááááºá ááá¯ážáá¬ážáá¬ážáá±á¬ á á¬ááŒá±á¬ááºáž ááááºážáá±áá»á¬ážááᯠvarchar(6) ááá¯á· ááá¯ááºááá¯áẠáá¬á áºáá¯ááºáá«áá áá±á¬ááºááá¯ááºáá±áá¬áá»á¬ážááᯠááááºážááááºážáá¬ážááŒá±á¬ááºáž áááááŒá¯áá«á á¡á¶á·á©á áá¬ááœá±áá«áá²á
ááá¯ááºáá¶áá«ááºáá¯á¶ážá json/jsonb
JSON ááẠáááºážáááá¯ááºááá¯ááºáááá±ááá¯ááºááá·áº áá®ážááŒá¬ážááœá²á·á ááºážáá¯á¶ááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áºá áááºážáá¡áá¬áá»á¬ážááŸáá·áº PostgreSQL áá¡áá¬áá»á¬ážáááºá¡áááºážáááºááœá²ááŒá¬ážáááºá á€ááœáẠá¥ááá¬áá»á¬ážá
áá»áœááºáááºáá²á· áá»áœááºáááºá ááœá¬ááŒá¬ážááŸá¯ááᯠáá¶á á¬ážáá«á
SELECT 'null'::jsonb IS NULL
?column?
boolean
---------
f
á¡ááŒá±á¬ááºážááŸá¬ JSON ááœáẠPostgreSQL ááŸá NULL á analogue ááá¯ááºááá·áº áááºážáááá¯ááºááá¯áẠnull entity ááŸááááºá áá áºáá»áááºáááºážááŸá¬áááºá JSON á¡áá¬ááá¹áá¯ááá¯ááºááá¯ááºá áááºááá¯áž NULL ááŸááá±á¬ááºážááŸáááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áº á áá¬ážááẠSELECT null::jsonb IS NULL (ááá¯ážáá¬ážáá»ááºáá áºáá¯áááºážáááŸáááŒááºážááᯠáááááŒá¯áá«) ááẠá€áá áºááŒáááºááœáẠááŸááºááŒááºáá«áááºá
á á¬áá áºá á±á¬ááºá á¡áá¬á¡á¬ážáá¯á¶ážááᯠááŒá±á¬ááºážáá²á á±áááºá
SELECT '{"1": [1, 2, 3], "2": [4, 5, 6], "1": [7, 8, 9]}'::json
json
json
------------------------------------------------
{"1": [1, 2, 3], "2": [4, 5, 6], "1": [7, 8, 9]}
---
SELECT '{"1": [1, 2, 3], "2": [4, 5, 6], "1": [7, 8, 9]}'::jsonb
jsonb
jsonb
--------------------------------
{"1": [7, 8, 9], "2": [4, 5, 6]}
json ááŸáá·áº jsonb ááẠáá¯á¶ážáááŒá¬ážáá¬ážáá±á¬ ááœá²á·á ááºážáá¯á¶ááŒá áºáááºá json ááœááºá á¡áá¬ááá¹áá¯ááᯠááááºá¡ááá¯ááºáž ááááºážáááºážáá¬ážááŒá®áž jsonb ááœáẠáááºážááᯠááœá²ááŒááºážá áááºááŒá¬ááŒá®áž á¡ááœáŸááºážááŒá¯áááºáá±á¬ááºááŸá¯áá¯á¶á á¶ááŒáá·áº ááááºážáááºážáá¬ážááŒá®ážááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áº áá¯áááááá á¹á ááœááºá áá±á¬á· 1 ááŒáá·áº á¡áá¬ááá¹áá¯áááºááá¯ážááᯠ[1, 2, 3] á០[7, 8, 9] ááá¯á· á¡á á¬ážááá¯ážáá²á·ááŒá®ážá á¡áá¯á¶ážááœáẠáá°áá®áá±á¬áá±á¬á·ááŒáá·áº ááœá²á·á ááºážáááºáá±á¬ááºáá¯á¶ááá¯á· áá±á¬ááºáá¬áááºá
áá»ááºááŸá¬á០áá±ááá±á¬ááºáá«ááŸáá·áº
SELECT '{"reading": 1.230e-5}'::jsonb
, '{"reading": 1.230e-5}'::json
jsonb | json
jsonb | json
------------------------+----------------------
{"reading": 0.00001230} | {"reading": 1.230e-5}
áááºážá JSONB á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááœáẠPostgreSQL ááẠááááºážá¡á á áºá¡ááŸááºáá»á¬ážáá±á¬áºáááºááᯠááŒá±á¬ááºážáá²á á±ááŒá®áž áááºážááá¯á·ááᯠááá¹ááááºáá¯á¶á á¶ááá¯á· áá°áá±á¬ááºáá¬áááºá JSON á¡áá»áá¯ážá¡á á¬ážá¡ááœáẠáá«á áááŒá áºáá«áá°ážá áááºážáááºážáá°ážáááºážáá±ááá·áº áá°ááŒá±á¬áá¬ááŸááºáááºá
ááá¯ááºáá¶áá«ááºáá±ážá áááºá áœá²/á¡áá»áááº/á¡áá»áááºáá¶ááááº
áááºá áœá²/á¡áá»áááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááŸáá·áº áá°ážáá°ážááŒá¬ážááŒá¬ážá¡áá»áá¯á·áááºáž ááŸááá«áááºá áá°ááá¯á·ááá¯ááŒáá·áºáá¡á±á¬ááºá á¡áá»áááºáá¯ááºáá»á¬ážááŸáá·áº áá¯ááºáá±á¬ááºááŒááºážá á¡ááŸá áºáá¬áááᯠáá±á¬ááºážá áœá¬áá¬ážáááºáá«á á¡ááŒá¯á¡áá°ááá¯ááºáᬠá¡ááºá¹áá«áááºá¡áá»áá¯á· ááŸááºážááŸááºážáááºážáááºážááŒá áºáá¬á á±ááẠáá»ááºáá»ááºážááŒáá¯áááºá á¬áááºážáá±ážáá«áá á±á áá«áá±ááá·áº áá«á áá®ážááŒá¬ážáá±á¬ááºážáá«ážáá áºáá¯á¡ááœáẠáá±á«ááºážá ááºáá áºáá¯áááºáž ááŒá áºáá«áááºá
áááºážáá«á·ááᯠáá¬ážááááºáá°ážá
SELECT '08-Jan-99'::date
ERROR: date/time field value out of range: "08-Jan-99"
LINE 1: SELECT '08-Jan-99'::date
^
HINT: Perhaps you need a different "datestyle" setting.
********** ÐÑОбка **********
ERROR: date/time field value out of range: "08-Jan-99"
SQL-ÑПÑÑПÑМОе: 22008
ÐПЎÑказка: Perhaps you need a different "datestyle" setting.
СОЌвПл: 8
á€áá±áá¬ááœáẠáá¬ážááááºááá¯ááºáá±á¬ á¡áá¬ááŒá áºáá¯á¶ááááºá ááá¯á·áá±á¬áº áá±áá¬áá±á·á áºááẠáá»áœááºá¯ááºááá¯á· á€áá±áá¬ááœáẠááááá±áá¬ááœáẠáá¬ážáá¬ážáááºâááŸá Ạááá¯á·ááá¯áẠáá±á·ááᯠáá¬ážááááºáá±ážáá«á áá°áááẠ99, 2008 áá¯ááŸá Ạáááºááá«áá®á ááŒá áºááẠáᯠáá°á á áááºáá² áá áºááœááºáž ááœá¬ážá á±ááẠá áá±áá°áá»á¡á¬ážááŒáá·áºá áááºá áœá²áá»á¬ážááᯠá á¬áá¬ážáá±á¬áºáááºááŒáá·áº áá±ážááá¯á·ááá·áºá¡áá«á áá±áá¬áá±á·á áºá áááºážááá¯á·ááᯠáááºáá²á·ááá¯á· ááŸááºáááºááŒá±á¬ááºáž á¡ááá¡ááŸááºááŒá¯ááŒá±á¬ááºáž áá±áá»á¬á áœá¬ á á áºáá±ážááẠááá¯á¡ááºááẠ(á¡áá°ážáááŒáá·áºá SHOW datestyle command ááŒáá·áº datestyle parameter ááᯠááá¯ááºážááŒá¬ážá áááºááŒá¬áá«)á á€ááá á¹á ááœáẠááá±áá»á¬ááá±áá¬ááŸá¯áá»á¬ážááẠá¡ááœááºá á»á±ážááŒá®ážáá±á¬ááŒá±á¬áá·áº ááŒá áºáááºá
áá«ááᯠáááºážáááºáááá²á·áá¬áá²á
SELECT '04:05 Europe/Moscow'::time
ERROR: invalid input syntax for type time: "04:05 Europe/Moscow"
LINE 1: SELECT '04:05 Europe/Moscow'::time
^
********** ÐÑОбка **********
ERROR: invalid input syntax for type time: "04:05 Europe/Moscow"
SQL-ÑПÑÑПÑМОе: 22007
СОЌвПл: 8
áá±áá¬áá±á·á áºááẠáááá»á áœá¬áááºááŸááºáá¬ážáá±á¬á¡áá»áááºááᯠá¡áááºááŒá±á¬áá·áºáá¬ážááááºááá¯ááºááááºážá á á¶áá±á¬áºáá»áááºáá¯ááºááœáẠá¡ááá¯áá±á¬ááºáááŸááá±á¬áºáááºážá á¡áá»áááºáá¯ááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááááá¯ááºážááŒá±á¬ááºážááᯠááá·áºááœááºážá ááºážá á¬ážáá±á¬ááŒá±á¬áá·áº áááºá áœá²áá áºáá¯áá¡ááŒá±á¡áá±ááœááºáᬠá¡áááá¹áá¬ááºááŸááá±á¬ á¡áááºá¡ááŒáá·áºá¡á á¯á¶ááŒá áºááŒá®ážá áááºážááẠáááºá áœá²ááá«áá² á¡áá¯ááºááá¯ááºáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá ááŒá®ážáá±á¬á· time line áá²á· á áá¬ážáá¯á¶ážá¡áá¯á¶ážá¡ááŸá¯ááºážá áá±ážááœááºážááœá± ááœááºáá¬ááẠ- programmer á áá¬ááᯠááá¯ááá¯áá¬áá²á ááá¯á·ááŒá±á¬áá·áº á€áá±áá¬ááœáẠááŒáá·áºáá»áŸáẠá¡áá¬á¡á¬ážáá¯á¶ážááẠáá¯áá¹ááááŸááááºá
áá°áá¬ááŒá áºáá±áá¬áá²á
á¡ááŒá±á¡áá±ááᯠááŒááºáá±á¬ááºááŒáá·áºáá«á timestamptz ááá¯á·ááá¯ááºááá·áºáá¬ážáá²á· ááá·áºááá¬ážáá²ááŸá¬ á¡ááœááºáá áºáá¯ááŸááá«áááºá á¡á²áá«ááᯠááœáŸááºážáá»ááºáá¬áá¬ážá ááá¯á·áá±á¬áº á€áááºáááºááœáẠá¡ááœáŸááºážáá áºáá¯áááºáá±á¬ááºááŒááºážááẠáááºážáááœá±ážáá»ááºááá¯ááºá áœááºážááŒáá·áºáá¬ážááŸá¯ááŒá±á¬áá·áº á¡ááŒá²áááºážáá»áŸááááºááá¯ááºááŒá±á¬ááºáž áááºáá¬ážáááºáá«ááẠ(á€á¡áá»áá¯ážá¡á á¬ážááááºááá¯ážá¡á¬ážáá¯á¶ážáá®ážáá«ážááẠáá°ážááŒá¬ážáááá·áºáááº)á ááá¯á·ááŒá±á¬áá·áº á¡áá»áá¯ážá¡á á¬ážááᯠáááºá áœá²áá áºáá¯á¡ááŒá Ạáá»ááŒááŒááºážááŒáá·áº á¡ááœáŸááºážá ááœá±ážáá»ááºááá¯ááºááŸá¯ááᯠáá»áŸá±á¬á·áá»ááẠáááºáá¯á¶ážááŒááºáá²á·áááºá ááŒá®ážâáá±á¬á· áááºáž á¡á¶á·á¡á¬ážááá·áºâá áá¬áá áºâáá¯ááá¬áááºâá
CREATE INDEX "iIdent-DateLastUpdate"
ON public."Ident" USING btree
(("DTLastUpdate"::date));
ERROR: functions in index expression must be marked IMMUTABLE
********** ÐÑОбка **********
ERROR: functions in index expression must be marked IMMUTABLE
SQL-ÑПÑÑПÑМОе: 42P17
áá¬ááŒá áºáá¬áá²? á¡ááŸááºááŸá¬ timestamptz á¡áá»áá¯ážá¡á á¬ážááᯠáááºá áœá²á¡áá»áá¯ážá¡á á¬ážáá áºáá¯ááá¯á· áá¬á áºáá¯ááºáááºá¡ááœáẠTimeZone á áá áºáá«áá¬áá®áá¬ááááºááá¯ážááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž á¡áá»áá¯ážá¡á á¬ážááŒá±á¬ááºážáá²ááŒááºážáá¯ááºáá±á¬ááºáá»ááºááᯠá áááºááŒáá¯ááºááá·áºáááºáá±á¬ááºáá áºáá¯á¡áá±á«áºááœááºáá°áááºá á±ááá·áºá ááá¯ááá¯áááºááŸá¬á ááááºááŒáááºáá±á¬á ááá¯ááá¯á·áá±á¬áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡ááœáŸááºážááœáẠááœáá·áºáááŒá¯áá«á á€ááá á¹á ááœááºá áááºááẠáááºááá·áºá¡áá»áááºáá¯ááºááœáẠáá¬á áºá¡áá»áá¯ážá¡á á¬ážááᯠáá¯ááºáá±á¬ááºááŒá±á¬ááºáž á¡ááá¡áááºážáá±á¬áºááŒááá«áááºá
á¡áá¯áá»áááºááŸá¬áá±á¬á· áá¯á¶ážáááá¯ááºáá±ážáá°ážá
á¡áá»áááºáá¯ááºááᯠááá·áºááœááºážá ááºážá á¬ážááŒá®áž áááºááŸááááºá áœá²/á¡áá»áááºááᯠááᯠ() ááŒááºáá±ážáá±á·ááŸááááºá ááá¯á·áá±á¬áº á¡á±á¬ááºáá«áá±ážááœááºážáá»á¬ážááᯠááŒáá·áºáá«á
START TRANSACTION;
SELECT now();
now
timestamp with time zone
-----------------------------
2019-11-26 13:13:04.271419+03
...
SELECT now();
now
timestamp with time zone
-----------------------------
2019-11-26 13:13:04.271419+03
...
SELECT now();
now
timestamp with time zone
-----------------------------
2019-11-26 13:13:04.271419+03
COMMIT;
ááááºáá±á¬ááºážááá¯ááŸá¯ááááºážá á¡áá»áááºáááºáá»áŸááŒá¬áááºááŒá áºá á± áá±á·áááº/á¡áá»áááºááᯠááŒááºáá±ážáá«áááºá áá¬ááŒá áºáá¬áá²? á¡ááŸááºááŸá¬ ááá¯()ááẠáááºááŸáá¡áá»áááºááá¯ááºáá±á¬áºáááºáž áááºááŸáááœá±áá±ážááœá±áá°á á áááºáá»áááºááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áº á¡áá±á¬ááºážá¡áááºá¡ááœááºáž áááŒá±á¬ááºážáá²áá«á ááœá±áá±ážááœá±áá° áááºáááºá¡ááŒááºáááºááœáẠáááºááá·áºáá±ážááœááºážááá¯áááᯠááœá±áá±ážááœá±áá°ááœáẠááœááºááá¯ááºá áœá¬ áá áºáááºáá¬ážáááºá ááá¯á·ááŒá±á¬áá·áº ááá¯ážááá¯áž SELECT now(); á¡ááŸááºááááºáá±á¬á· áááºááŸáá¡áá»áááºááá¯ááºáá«... ááá¯ážááá¯ážáá¬ážáá¬áž áááºááŸáá¡áá»áááºááᯠááá°ááá¯áá«á clock_timestamp() áá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯áááºááá¯á¡ááºáá«áááºá
ááá¯ááºáá¶áá«ááºáá«ážá áááºážáááºáž
áááºážáááºážáá±á¬á· áá°ážáááºážáááºá
SELECT '111'::bit(4)
bit
bit(4)
------
1110
á¡áá»áá¯ážá¡á á¬ážááá¯ážáá»á²á·ááŸá¯ááœáẠáááºááá·áºáááºááŒááºážááᯠááá·áºááá·áºááááºážá áááºáá²áááºááœááºááŸááá¯á¶ááááºá áá«áá±ááá·áº á¡ááŒá±áá¶ááá² áá®ááá á¹á áá²á· áááºáááºááŒá®áž ááœá²ááŒá¬ážáá²á· ááá±á¬áá¬ážááŸááá«áááºá ááááá¬ážáá«- á¡áá»áá¯ážá¡á á¬ážáá áºáá¯ááᯠáá¬á áºáá¯ááºááá·áºá¡áá« ááááºážá¡áá±á¡ááœááºááŸáá·áº áááá¯ááºáá®áá«áá áááºá¡ááá¯ááŸááá±á¬á¡áá¬ááᯠáááŸááááºááá¯ááºáá«á áááºážááẠáá¬áááºááœáẠbits áá±á«ááºážááá·áºááŒááºážááŸáá·áº ááŒááºáá±á¬ááºááŒááºáž bits ááŸá áºáá¯áá¯á¶ážá¡ááœáẠá¡áá»á¯á¶ážáááºáá«áááºá áá¬áááºááŸá¬áááºáž...
ááá¯ááºáá¶áá«ááºááŒá±á¬ááºá á¡áááºážáá»á¬áž
NULL áááºáá»áŸáẠááá áºáá²á·áá«á
SELECT ARRAY[1, 2] || NULL
?column?
integer[]
---------
{1,2}
SQL ááœáẠááœá±ážááŒá°áá¬ážáá±á¬ áá¬áááºáá°áá»á¬ážá¡áá±ááŒáá·áº á€áá±á¬áºááŒáá»ááºá ááááºááẠNULL ááŒá áºáááºáᯠáá»áœááºá¯ááºááá¯á· áá»áŸá±á¬áºááá·áºáá«áááºá áá«áá±ááá·áºá¡á²áá®ááŸá¬ááá¯ááºáá«áá°ážá array áá áºáá¯ááᯠááŒááºáá±ážáááºá á¡áááºááŒá±á¬ááºá·? á€ááá á¹á ááœááºá á¡ááŒá±áá¶ááẠNULL ááᯠááááºážááŒáá·áº array áá áºáá¯ááá¯á· áá»áá±ážááŒá®áž array_cat áá¯ááºáá±á¬ááºáá»ááºááᯠááœááºááá¯ááºá áœá¬áá±á«áºááá¯áá±á¬ááŒá±á¬áá·áº ááŒá áºáááºá ááá¯á·áá±á¬áº ဠ"array cat" ááẠarray ááᯠá¡áááºááŒá±á¬áá·áº ááŒááºáááºááááºááŸááºáááááºážááá¯áááºááᯠááŸááºážááŸááºážáááºážáááºáž áááááá±ážáá«á áá®á¡áá°á¡áá»áá·áºááá¯áááºáž ááŸááºáá¬ážáá¬ážááá¯á· ááá¯áá«áááºá
á¡áá»ááºážáá»á¯ááºáá«á áá°ážáááºážáá¬ááœá± á¡áá»á¬ážááŒá®ážááŸááááºá á¡áá»á¬ážá á¯ááŸá¬ áááá·áºáá»á±á¬áºáá±á¬ á¡ááŒá¯á¡áá°áá»á¬ážááᯠááŒá±á¬ááºááŒá±á¬ááºáááºážáááºáž ááŒá±á¬ááá¯ááŒááºážá¡ááœáẠá¡ááœááºá¡ááŒá áºáááºáá±áááºááŒááºáž áááŸáááŒáá±á á¡áá»áá¯á·áá±á¬ á¡ááŒá±á¡áá±áá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áááœááºáá°ááŒááºáž ááá¯á·ááá¯áẠáááºážááá¯á·áá¡áá¯á¶ážáá»ááá¯ááºááŸá¯ á¡ááŒáááºáá±ááŒáá·áº ááŸááºážááŒáá¬ážáá«áááºá áá«áá±ááá·áº áá áºáá»áááºáááºážááŸá¬ á¡á¶á·ááŒá áá¬ááœá± á¡áá»á¬ážááŒá®ážááŸááá«áááºá ááá¯á·ááŒá±á¬áá·áº áááºážááá¯á·á¡ááŒá±á¬ááºáž áááá¬ážááẠááá¯á¡ááºáá«áááºá á¡áá»áá¯ážá¡á á¬ážá¡ááá¯áẠáá°ážáá°ážááŒá¬ážááŒá¬áž ááá¯á·ááá¯áẠáá°ážáá°ážááŒá¬ážááŒá¬áž á¡ááŒá¯á¡áá°áá áºáá¯áá¯ááᯠááœá±á·ááŸááá«á comment ááœáẠáá±ážáá±ážáá²á·áá«á áááºážááá¯á·ááœáẠáááŸáááá¯ááºáá±á¬ á á¬ááœááºá á¬áááºážáá»á¬ážááᯠááá·áºááœááºážááẠáááºážááŒá±á¬ááºáááá«áááºá
source: www.habr.com