PostgreSQL 9.3.2ʸ�� | ||||
---|---|---|---|---|
前のページ | 上に戻る | 第 8章�ǡ����� | 次のページ |
���ͥǡ������ˤ�2��4��8�Х��������ȡ�4��8�Х�����ư������������������꤬��ǽ�ʿ�������ޤ��� 表8-2�˻��Ѳ�ǽ�ʷ�����ޤ���
表 8-2. ���ͥǡ�����
��̾ | ��Ǽ������ | ���� | �ϰ� |
---|---|---|---|
smallint | 2�Х��� | ���ϰϤ����� | -32768����+32767 |
integer | 4�Х��� | ŵ��Ū�˻��Ѥ������� | -2147483648����+2147483647 |
bigint | 8�Х��� | ���ϰ����� | -9223372036854775808����+9223372036854775807 |
decimal | ����Ĺ | �桼���������١����� | ���������ޤǤ�131072�塢�������ʹߤ�16383�� |
numeric | ����Ĺ | �桼���������١����� | ���������ޤǤ�131072�塢�������ʹߤ�16383�� |
real | 4�Х��� | �������١������� | 6������ |
double precision | 8�Х��� | �������١������� | 15������ |
smallserial | 2�Х��� | ���ϰϼ�ư���� | 1����32767 |
serial | 4�Х��� | ��ư��ʬ���� | 1����2147483647 |
bigserial | 8�Х��� | ���ϰϼ�ư��ʬ���� | 1����9223372036854775807 |
���ͥǡ��������Ф�������ι�ʸ��項4.1.2���������Ƥ��ޤ��� ���ͥǡ������ˤ��б����뻻�ѱ黻�Ҥȴؿ��ΰ켰��·�äƤ��ޤ��� �ܺ٤�第9章�Ȥ��Ƥ��������� ����ǥǡ������ˤĤ��ƾܤ����������ޤ���
smallint��integer��bigint�ϳƼ��ϰϤ��������Ĥޤ꾮�����ʲ���ü�����ʤ������ݻ����ޤ��� �����ϰϤ��鳰�줿�ͤ���¸���褦�Ȥ���ȥ��顼�ˤʤ�ޤ���
integer���Ͽ��ͤ��ϰϡ���Ǽ�������������ǽ�ˤ����ƺǤ���礤�����Ƥ��ޤ��Τǡ�����Ū�˻��Ѥ���ޤ��� smallint�����̾�ϥǥ��������̤����¤��դ��Ƥ�����ˤΤ��Ѥ��ޤ��� bigint����integer�ε����ϰϤǤϽ�ʬ�ǤϤʤ����ˤΤ��Ѥ��٤��Ǥ���
���ˤ鷺���ʥ��ڥ졼�ƥ������ƥ��bigint���ϡ�8�Х���������ѥ��餬���ݡ��Ȥ��Ƥ��뤫�ɤ����˰�¸���ޤ��Τ�����˵�ǽ����Ȥϸ¤�ޤ��� ���Τ褦�ʥޥ���Ǥ�bigint��integer��Ʊ���褦�˿��ޤ������ΰ��8�Х��Ȥޤ�ɬ�פǤ��� �ʤ��ξ��������ƤϤޤ�Ƕ�Υץ�åȥե�������İ����Ƥ��ޤ���
SQL�Ǥ������η��Ȥ���integer�ʤޤ���int�ˤ�smallint��bigint�Τߤ��ꤷ�Ƥ��ޤ��� int2��int4�����int8�ϳ�ĥ�Ǥ����������Ĥ�¾��SQL�ǡ����١��������ƥ�Ǥ�Ȥ��Ƥ��ޤ���
numeric���ϡ������礭�ʷ���ǿ��ͤ��Ǽ�Ǥ������Τʷ���Ԥ��ޤ��� �̲߶�ۤ䤽��¾����������������̤���¸��������äˡ����η���侩���ޤ��� �Ȥϸ��äƤ⡢numeric���ͤ��Ф��뻻�ѱ黻��ư��ϼ���������������������⤷������ư�������ǡ���������Ӥ������٤��ʤ�ޤ���
���θ�������Ǥϡ������Ѹ����Ѥ��ޤ��� numeric���̼���Ȥϡ��������α�¦�ξ������ʲ��η�����ޤ��� numeric�������ȤϿ������Τ�ͭ������Ǥ��� ���ʤ������������Ϥ���Ǥ���ξ¦�η���ι�פǤ��� ���Τ��ᡢ23.5141�Ȥ������ͤ����٤�6�ǰ̼���4�Ȥʤ�ޤ��� �����ΰ̼��ϡ������Ǥ���Ȥߤʤ����Ȥ��Ǥ��ޤ���
numeric��ο��ͤκ������٤Ⱥ���̼��ϤȤ�����ꤹ�뤳�Ȥ��Ǥ��ޤ��� ��Υǡ�������numeric���������ˤϼ��ι�ʸ��Ȥ��ޤ���
NUMERIC(precision, scale)
���٤��������̼���0�⤷���������Ǥʤ���Фʤ�ޤ��� ¾��
NUMERIC(precision)
�ϰ̼�꤬0�Ǥ��뤳�Ȥ����ޤ���
NUMERIC
���٤ޤ��ϰ̼��λ��꤬�ʤ���硢��������Ƥ���³������٤ޤǡ������ʤ����٤��뤤�ϰ̼����ͤ��Ǽ�Ǥ�������ޤ��� ���������Ϥ����ʤ�����ΰ̼����Ф��Ƥ������ͤ��פ��ޤ���������줿�̼������numeric��������ͤˤ��ΰ̼����פ��ޤ��� ��ɸ��SQL�ϥǥե���ȤȤ��ư̼��0���ᤷ�Ƥ��ơ��������Ф��븷̩���������Ƥ��ޤ��� ��������������ˡ�Ϥ��ޤ����Ω���ʤ��Ȼפ��ޤ��� �⤷�ܿ������ۤ���ʤ顢������٤Ȱ̼�������Ū�����ꤷ�Ƥ�����������
注意: ����Ū�˷�����ǻ��ꤵ�����˵������������٤�1000�Ǥ��� ���٤λ��꤬�ʤ�NUMERIC��表8-2�������������¤˽����ޤ���
��Ǽ������ͤΰ̼�꤬������줿��ΰ̼�����礭���ä���硢�����ƥ�ϻ��ꤵ�줿�������η�ޤ��ͤ�ݤ�ޤ��� �����ơ��������κ�¦�η������������줿���٤���������줿�̼�������������Ķ������˥��顼�Ȥʤ�ޤ���
���ͤ�ʪ��Ū����Ƭ��������0����Ϳ����뤳�Ȥʤ���Ǽ����ޤ��� �������äơ����������줿���٤Ȱ̼��Ϻ���Ǥ��ꡢ����Ū�˳�����Ƥ��Ƥ��ޤ��� �ʤ��ΰ�̣�Ǥ�numeric��char(n)����varchar(n)�˻��Ƥ��ޤ����� �ºݤγ�Ǽ��ɬ�פ����̤ϡ�10�ʿ�4��Τ��줾��Υ��롼�פ��Ф���2�Х��Ȥȡ�3����8�Х��ȤΥ����ХإåɤǤ���
�̾�ο��ͤ˲ä���numeric���ϡ�"�����"���̣����NaN�Ȥ������̤��ͤ��뤳�Ȥ��Ǥ��ޤ��� NaN���Ф������Ϥ��٤ơ��̤�NaN���������ޤ��� �����ͤ�SQL���ޥ�ɤ�����Ȥ��Ƶ��Ҥ�����ϡ��㤨��UPDATE table SET x = 'NaN'�Τ褦�ˡ�������Ǥ�����ʤ���Фʤ�ޤ��� ���Ϥκݤϡ�NaN�Ȥ���ʸ�������ʸ����ʸ���ζ��̤ʤ�ǧ������ޤ���
注意: �ۤȤ�ɤ�"���"�μ����ˤ����ơ�NaN�ϡ�NaN��ޤ��¾�ο��ͤ������ˤʤ�Ȥߤʤ���Ƥ��ޤ��� numeric�ͤ��ȤǤ��롢�ޤ����ĥ���ˤ�������ǥå����ǻ��ѤǤ���褦�ˡ�PostgreSQL��NaNƱ�Τ������������٤Ƥ�NaN�ʳ����ͤ����礭���ͤȤʤ��ΤȤ��ư����ޤ���
decimal��numeric���������Ǥ��� 2�ĤΥǡ������ϤȤ��ɸ��SQL�˽��äƤ��ޤ���
real��double precision�������Τʲ������٤ο��ͥǡ������Ǥ��� �ºݤˤϤ����Υǡ������ϡ����Ѥ��Ƥ���ץ����å������ڥ졼�ƥ������ƥप��ӥ���ѥ��餬���ݡ��Ȥ��Ƥ���С��̾�ϡʤ��줾��ñ���٤���������٤Ρ˥Х��ʥ���ư�������黻�Ѥ�IEEE����754�μ����Ǥ���
�����ΤȤ����Τϡ������ͤϤ��Τޤޤ������������Ѵ����줺�˶���ͤȤ�����¸�����Ȥ������ȤǤ��� �Ǥ����顢��¸���褦�Ȥ����ͤ���Ф��褦�Ȥ����ͤδ֤�¿���κ��ۤ�ǧ����ޤ��� �����Υ��顼����������ˤ�ä�������ɤ����뤫�ˤĤ��Ƥϡ����ؤȥ���ԥ塼���ʳؤη������٤Ƥ˴ؤ�뤳�Ȥǡ��ʲ��������������ޤ���
�ʶ�����ۤʤɡ����Τʵ�Ͽ�ȷ���ɬ�פʻ��������numeric����Ѥ��Ƥ���������
�����Υǡ������Dz������פʷ���Ф�ʣ���ʷ���ɬ�פȤ�������äˡ�̵����䥢������ե����Τ褦�ʡ˶������ˤ����뤢���ο��ˤĤ��ƿ�����֤��ʤ���Фʤ�ʤ��ΤǤ���С����������տ������ڤ��ʤ���Фʤ�ޤ���
2�Ĥ���ư�������ͤ������Ǥ���Τ��ɤ�������Ӥ�ͽ���̤�˹Ԥ��ʤ����⤢��ޤ���
�ۤȤ�ɤΥץ�åȥե�����Ǥ�real�Ϻ���6������٤���ä����ʤ��Ȥ�-1E+37��+1E+37���ϰϤǤ��� double precision���̾����15������٤Ǥ��褽-1E+308��+1E+308���ϰϤǤ��� �礭����꾮������ͤϥ��顼�θ����Ȥʤ�ޤ��� �����ͤ����٤�������ϴݤ���뤳�Ȥ�����ޤ��� �����˸¤�ʤ��ᤤ�ͤǡ������⥼���Ȥ϶��̤���Ƥ���褦�ˤߤʤ���ʤ����ͤϥ�������ե������顼������������ޤ���
注意: ��ư��������ޤ��ͤ��ƥ����ȷ����Ѵ�������硢extra_float_digits�ˤ�ä�ͭ�����������椷�ޤ��� �ǥե�����ͤ�0�����ꤵ��Ƥ����硢���Ϥ�PostgerSQL�ݡ��Ȥ������ƤΥץ�åȥۡ����Ʊ���Ǥ��� �����ͤ��礭�����뤳�Ȥdz�Ǽ���줿�ͤ�����̩��ɽ���Ǥ��ޤ������ץ�åȥۡ���֤ΰܿ����������뤫�⤷��ޤ���
�̾�ο��ͤ˲ä�����ư���������Ǥϰʲ����ü���ͤ���ޤ���
Infinity
-Infinity
NaN
注意: IEEE754�Ǥϡ�NaN�ϡ�NaN��ޤ��¾�Τ��٤Ƥ���ư�������ͤ���٤����������Ǥʤ���Фʤ�ʤ��ȵ��ꤷ�Ƥ��ޤ��� ��ư�������ͤ��ȤǤ��롢�ޤ����ĥ���ˤ�������ǥå����ǻ��ѤǤ���褦�ˡ�PostgreSQL��NaNƱ�Τ������������٤Ƥ�NaN�ʳ����ͤ����礭���ͤȤʤ��ΤȤ��ư����ޤ���
�ޤ���PostgreSQL�Ǥ������Τʿ��ͷ����ꤹ��ɸ��SQL��float��float(p)�ݡ��Ȥ��Ƥ��ޤ��� �����ǡ�p��2�ʿ�����Ǻ�������դ������٤���ꤷ�ޤ��� PostgreSQL��float(1)����float(24)��real�������ΤȤ��Ƽ����դ���float(25)����float(53)��double precision�������ΤȤ��Ƽ����դ��ޤ��� �����ϰϳ���p���ͤϥ��顼�ˤʤ�ޤ��� ���ٻ���Τʤ�float��double precision�Ȥ��Ʋ�ᤵ��ޤ���
注意: 7.4�������PostgreSQL�Ǥϡ�float(p)�����٤�10�ʿ�����Ȥ��Ʋ�ᤵ��ޤ����� ����ϡ�2�ʿ���������٤��ꤹ��ɸ��SQL�˰��פ���褦���ѹ����줿��ΤǤ��� real��double precision�β��������줾��24�ӥåȤ�53�ӥåȤǤ���Ȥ�������ϡ�IEEEɸ����ư�������μ����Ǥ���������ΤǤ��� ��IEEE�Υץ�åȥե�����Ǥϡ�����̵���ˤʤ��ǽ��������ޤ�����ñ�㲽�Τ���ˤ��٤ƤΥץ�åȥե������p���ϰϤ�Ʊ��Ǥ���
smallserial��serial�����bigserial�ǡ����������Τˤϥǡ������ǤϤʤ����ơ��֥����˰�դμ��̻Ҥ����������ؤ�ɽ��ˡ�Ǥ� ��¾�Υǡ����١����ǥ��ݡ��Ȥ����AUTO_INCREMENT�ץ��ѥƥ��˻��Ƥ��ޤ��ˡ� ���ߤμ����Ǥϡ�
CREATE TABLE tablename ( colname SERIAL );
�ϰʲ�����ꤹ�뤳�Ȥ�Ʊ���Ǥ���
CREATE SEQUENCE tablename_colname_seq; CREATE TABLE tablename ( colname integer NOT NULL DEFAULT nextval('tablename_colname_seq') ); ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;
���Τ褦����������������������Υǥե�����ͤ�Ϣ�֥����ͥ졼�����������Ƥ���褦�ˤ��ޤ����� �ޤ���NOT NULL�����Ŭ�Ѥ��뤳�Ȥˤ�äơ�NULL�ͤ���������ʤ��褦�ˤ��ޤ��� �ʤ����Ƥ��ξ��ϡ���ʣ�����ͤ�ְ�ä��������ʤ��褦�ˡ�UNIQUE����ޤ���PRIMARY KEY������ɲä��뤳�Ȥ��侩����ޤ���������ϼ�ưŪ�ˤϹԤ��ޤ��� �Ǹ�ˡ������������"����ͭ"������ΤȰ����դ��ޤ��� �������äơ��ơ��֥��������줿���˥������Ϻ������ޤ���
注意: smallserial�� serial�����bigserial�ϥ�������ȤäƼ�������Ƥ��뤿�ᡢ�Ԥκ�����Ԥ��Ƥ��ʤ��Ȥ⡢���"��"��Ϣ�֤�ȴ����ȯ�����뤫�⤷��ޤ��ޤ����ơ��֥���������������Ƥ��ʤ��ˤ�ؤ�餺�����������ͤ�"���Ƥ��ޤ�"���Ȥ⤢��ޤ�������ϡ��㤨�����������ȥ�����������Хå����줿����ȯ�����뤳�Ȥ�����ޤ����ܺ٤�項9.16��nextval()�Ȥ��Ƥ���������
注意: PostgreSQL 7.3������Ǥϡ�serial��UNIQUE���̣���Ƥ��ޤ����� ���ߤǤϼ�ưŪ�ˤϹԤ��ޤ��� Ϣ�֤���˰��������⤷���ϥץ饤�ޥꥭ������Ϳ���������ϡ�¾�Υǡ�����Ʊ�ͻ��ꤷ�ʤ���Фʤ�ޤ���
serial��˥������μ����ͤ���������ˤϡ�serial��ˤ��Υǥե�����ͤ������Ƥ�褦���ꤷ�Ƥ��������� ����ϡ�INSERTʸ����ꥹ�Ȥ��餽�����������롢�⤷����DEFAULT������ɤ���Ѥ��뤳�ȤǹԤ����Ȥ��Ǥ��ޤ���
serial��serial4�Ȥ�������̾�Τ������Ǥ��� �Ȥ��integer���������ޤ��� bigserial��serial8�Ȥ�������̾�Τ�bigint���������뤳�Ȥ������Ʊ�����ޤ��� �⤷�ơ��֥����Ѥ�����֤�231�ʾ�μ��̻Ҥ���Ѥ����ͽ¬������硢bigserial����Ѥ��ʤ���Ф����ޤ���smallserial��serial2�Ȥ�������̾�Τ�ޤ���smallint���������뤳�Ȥ������Ʊ�����ޤ���
serial���Ѥ˺������줿�������ϡ�������ͭ����������줿���˼�ưŪ�˺������ޤ��� ����������˥������������뤳�Ȥ��Ǥ��ޤ���������ˤ�궯��Ū����Υǥե���ȼ����������ޤ���