¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

�� 8�ϥǡ�����

�ܼ�
8.1. ���ͥǡ�����
8.1.1. �����ǡ�����
8.1.2. Ǥ�դ����٤���Ŀ�
8.1.3. ��ư�������ǡ�����
8.1.4. Ϣ�ַ�
8.2. �̲߷�
8.3. ʸ����
8.4. �Х��ʥ���ǡ�����
8.5. ����/����ǡ�����
8.5.1. ����/���������
8.5.2. ����/�������
8.5.3. ������
8.5.4. ����
8.6. �����ͥǡ�����
8.7. �����ǡ�����
8.7.1. ��ɸ��
8.7.2. ��ʬ
8.7.3. ���
8.7.4. ��ϩ
8.7.5. ¿�ѷ�
8.7.6. ��
8.8. �ͥåȥ�����ɥ쥹��
8.8.1. inet
8.8.2. cidr
8.8.3. inet��cidr�ǡ������ΰ㤤
8.8.4. macaddr
8.9. �ӥå���ǡ�����
8.10. ����
8.10.1. ���󷿤����
8.10.2. ������ͤ�����
8.10.3. ������Ф��륢������
8.10.4. ������ѹ�
8.10.5. ��������
8.10.6. ����������Ϲ�ʸ
8.11. ���֥������ȼ��̻ҥǡ�����
8.12. �����ǡ�����

PostgreSQL�ˤϥ桼�������Ѳ�ǽ��˭�٤ʥǡ��������Ϥᤫ������äƤ��ޤ��� CREATE TYPE���ޥ�ɤ�PostgreSQL���Ф��������ǡ��������ɲäǤ��ޤ���

ɽ8-1���Ȥ߹��ߤ����ѥǡ������򤹤٤Ƽ����ޤ��� "��̾"�����󤵤줿����̾�ΤΤۤȤ�ɤϡ����Ū����ͳ�ˤ��PostgreSQL �������ǻ��Ѥ���Ƥ���̾���Ǥ��� ¾�ˤ⡢�����˵��ܤ��Ƥ��ʤ��������ǻ��Ѥ����ǡ����������ͽ��Υǡ������⤢��ޤ���

ɽ 8-1. �ǡ�����

̾����̾����
bigintint88�������������
bigserialserial8��ư��ʬ8�Х�������
bit ����Ĺ�ӥå���
bit varying(n)varbit(n)����Ĺ�ӥå���
booleanbool�����ʥ֡�����͡ʿ�/����
box ʿ�̾�ζ��
bytea �Х��ʥ�ǡ���
character varying(n)varchar(n)����Ĺʸ����
character(n)char(n)����Ĺʸ����
cidr IPv4�⤷����IPv6�ͥåȥ�����ɥ쥹
circle ʿ�̾�α�
date ������ա�ǯ������
double precisionfloat8��������ư������
inet IPv4�⤷����IPv6�ۥ��ȥ��ɥ쥹
integerint, int44�������������
interval(p) ���ֳִ�
line ʿ�̾��̵��ľ��(�����˼�������Ƥ��ޤ���)
lseg ʿ�̾����ʬ
macaddr MAC ���ɥ쥹
money ��ʾ���
numeric [ (p, s) ]decimal [ (p, s) ]���٤������ǽ�ʹ����ٿ���
path ʿ�̾�η�ϩ(����ϩ������ķ�ϩ)
point ʿ�̾�δ�����Ū��
polygon ʿ�̾���Ĥ���������Ū��ϩ
realfloat4ñ������ư������
smallintint22 �������������
serialserial4��ư��ʬ 4 �Х�������
text ����Ĺʸ����
time [ (p) ] [ without time zone ] ����
time [ (p) ] with time zonetimetz�������դ�����
timestamp [ (p) ] [ without time zone ]timestamp���դȻ���
timestamp [ (p) ] with time zonetimestamptz�������դ����դȻ���

�ߴ���: ���˵󤲤�ǡ�����(���뤤�Ϥ����֤���)��SQL �ǵ��ꤵ��Ƥ��ޤ��� bit��bit varying��boolean��char�� character varying��character��varchar�� date��double precision��integer�� interval��numeric��decimal��real�� smallint��time(�����ॾ�����դ���̵����ξ��)�� timestamp(�����ॾ�����դ���̵����ξ��)��

���줾��Υǡ������ˤϤ��Υǡ������������ϴؿ��Ƿ��ꤵ��볰��ɽ������ͭ���Ƥ��ޤ��� �Ȥ߹��ߥǡ�������¿���ˤϡ��Ϥä���Ȥ��������񼰤�����ޤ��� �ȤϤ��äƤ⡢����ϩ���⤷�����ķ�ϩ�Τ褦��PostgreSQL����ͭ�ʷ��䡢���뤤�ϡ����դ����ǡ������Τ褦�˽񼰤򤤤��Ĥ�����Ǥ��뷿��¿������ޤ��� �����������ϴؿ���ž�֤��뤳�Ȥ��Ǥ��ޤ��� �Ĥޤꡢ���ϴؿ��ˤ���̤Ϻǽ�����Ϥ���Ӥ���������٤򼺤���ǽ��������ޤ���

��­������ݤ����ʤɤΡ˱黻�Ҥȴؿ��ˤϡ��¹�®�٤�夲�뤿��˼¹Ի��˥��顼�����å���Ԥ�ʤ���Τ⤢��ޤ��� �㤨�С������ƥ�ˤ�äƤϡ�����ǡ��������Ф�����ͱ黻�Ҥ��Τ�ʤ������˥�������ե����䥪���С��ե�����������������⤷��ޤ���

8.1. ���ͥǡ�����

���ͥǡ������ˤ�2��4��8�Х��������ȡ�4��8�Х�����ư����������Ӹ������ٿ�������ޤ��� ɽ8-2�˻��Ѳ�ǽ�ʷ�����󤷤ޤ���

ɽ 8-2. ���ͥǡ�����

��̾��Ǽ�����������ϰ�
smallint2�Х������ϰϤ�����-32768����+32767
integer4�Х����̾���Ѥ�������-2147483648����+2147483647
bigint8�Х������ϰ�����-9223372036854775808����9223372036854775807
decimal����Ĺ�桼���������١���������1000��[����:��ʸ�Ǥ�no limit�Ǥ�]
numeric����Ĺ�桼���������١���������1000��[����:��ʸ�Ǥ�no limit�Ǥ�]
real4�Х����������١�������6������
double precision8�Х����������١�������15������
serial4�Х�����ư��ʬ����1����2147483647
bigserial8�Х������ϰϼ�ư��ʬ����1����9223372036854775807

���ͥǡ��������Ф�������ι�ʸ����4.1.2����������Ƥ��ޤ��� ���ͥǡ������ˤ��б����뻻�ѱ黻�Ҥȴؿ��ΰ켰��·�äƤ��ޤ��� �ܺ٤���9���򻲾Ȥ��Ƥ��������� ����ǥǡ������ˤĤ��ƾܤ����������ޤ���

8.1.1. �����ǡ�����

smallint��integer��bigint�Ͽ������Τ��ݻ����ޤ��� ���ΰ�̣�Ͼ������ʲ���ü���䡢�Ѳ����٤���ͤ��ϰϤ��ݻ����ޤ��� �����ϰϤ˳��줿�ͤ���¸���褦�Ȥ���ȥ��顼�ˤʤ�ޤ���

integer���Ͽ��ͤ��ϰϡ���¸�Υ������������ǽ�ˤ����ƺǤ���礤�����Ƥ���Τǡ��̾���Ѥ���ޤ��� smallint���ϰ���Ū�˥ǥ��������̤����¤��Ĥ��Ƥ�����ˤΤ߻��Ѥ��ޤ��� bigint����integer�����Ƥ����ϰϤǤϽ�ʬ�ǤϤʤ����ˤΤ߻��Ѥ��٤��Ǥ��� integer�ǡ��������������ä�®������Ǥ���

8�Х��������򥳥�ѥ��餬���ݡ��Ȥ��Ƥ��뤫�˰�¸����bigint���ϡ����٤ƤΥץ�åȥե����������˵�ǽ����Ȥϸ¤�ޤ��� ���ݡ��Ȥ��Ƥ��ʤ��ޥ����Ǥ�bigint��integer��Ʊ���˿��񤤤ޤ��ʤ��������ΰ��8�Х��Ȥޤ�ɬ�פǤ��ˡ� �������ʤ��顢���Τ褦�ʤ��Ȥ����¤�����򵯤����褦�ʥץ�åȥե����ब���뤫�ɤ���Ƚ��ޤ���

SQL�Ǥ������η��Ȥ���integer(�ޤ���int)��smallint�Τߤ��ꤷ�Ƥ��ޤ��� bigint��int2��int4������� int8�ϳ�ĥ�Ǥ�����¾���͡���SQL�ǡ����١��������ƥ�Ǥ�Ȥ��Ƥ��ޤ���

����: ����ǥå������դ���줿smallint���뤤��bigint���󤬥ơ��֥�ˤ����硢�����ƥब���Υ���ǥå�������Ѥ��褦�Ȥ������������������������Ȥ�����ޤ��� �㤨�ж礬���Τ褦�ʷ����ξ�硢

... WHERE smallint_column = 42

�����ƥ�ϥ���ǥå�������Ѥ��ޤ��� �ʤ��ʤ�42�Ȥ�������˥����ƥबinteger�������Ƥ뤫��Ǥ��� ���ν�PostgreSQL��2�Ĥΰۤʤ�ǡ����������ߤ��Ƥ�����ˤϡ�����ǥå�����Ȥ����Ȥ��Ǥ��ޤ��� �������򤹤�ˤϰʲ��Τ褦�������ʬ��ñ�������dz��ޤ���

... WHERE smallint_column = '42'

��������ȡ������ƥ�Ϸ�ʬ�Ϥ������ˤ��Ƥ���������������ǡ��������꿶��ޤ���

8.1.2. Ǥ�դ����٤���Ŀ�

numeric���ϡ�����1000������٤ǿ��ͤ��Ǽ�Ǥ������Τʷ׻���Ԥ��ޤ��� �̲߶�ۤ䤽��¾����������������̤���¸��������äˤ��η���侩���ޤ��� �ȤϤ��äƤ⡢numeric�ϼ��������������ư�������ǡ���������Ӥ�ư������٤��ʤ�ޤ���

���θ�������Ǥϡ������Ѹ����Ѥ��ޤ��� numeric���̼���ȤϾ������α�¦�ξ������ʲ��η���򤤤��ޤ��� numeric�������ȤϿ������Τ�ͭ������Ǥ��� ���ʤ������������Ϥ���Ǥ���ξ¦�η���ι�פǤ��� ���Τ��ᡢ23.5141�Ȥ������ͤ����٤�6�ǰ̼���4�Ȥʤ�ޤ��� �����ΰ̼��ϡ������Ǥ���ȸ��ʤ����Ȥ��Ǥ��ޤ���

���ͤ����٤Ȱ̼��϶���������뤳�Ȥ��Ǥ��ޤ��� ��Υǡ�������numeric���������ˤϼ��ι�ʸ��Ȥ��ޤ���

NUMERIC(precision, scale)

���٤��������̼���0�⤷���������Ǥʤ���Фʤ�ޤ��� ¾��

NUMERIC(precision)

�ϰ̼�꤬0�Ǥ��뤳�Ȥ����򤷤ޤ���

NUMERIC

���٤ޤ��ϰ̼��λ��꤬�ʤ���硢���٤���������Ƥ���³��ޤǤϡ������ʤ����٤��뤤�ϰ̼����ͤ��Ǽ�Ǥ����󤬺���ޤ��� ���������Ϥ����ʤ�����ΰ̼����Ф��Ƥ������ͤ��פ��ޤ��󤬡�������줿�̼������numeric��������ͤˤ��ΰ̼����פ��ޤ��� (ɸ��SQL�ϥǥե���ȤȤ��ư̼��0���׵ᤷ�Ƥ��ơ��������Ф��븷̩���������Ƥ��ޤ��� ��������������ˡ�ϡ����ޤ����Ω���ʤ��Ȼפ��ޤ��� �⤷�ܿ������ۤ���ʤ������٤Ȱ̼�������Ū�����ꤷ�Ƥ���������)

������줿������٤ޤ��ϰ̼���ꡢ�ͤ����٤ޤ��ϰ̼�꤬�礭����硢�����ƥब�ͤ�ݤ�褦�Ȥ��ޤ��� �⤷������줿�ϰ���Ǵݤ�뤳�Ȥ��Ǥ��ʤ����ϥ��顼�Ȥʤ�ޤ���

decimal��numeric���������Ǥ��� 2�ĤΥǡ������϶���ɸ��SQL�˽��äƤ��ޤ���

8.1.3. ��ư�������ǡ�����

real��double precision�������Τ����٤���ư������ͥǡ������Ǥ��� �ºݤˤϤ����Υǡ������ϡ����Ѥ��Ƥ���ץ����å������ڥ졼�ƥ��󥰥����ƥप��ӥ���ѥ��餬���ݡ��Ȥ��Ƥ���С��̾�ϡʤ��줾��ñ���٤���������٤Ρ˥Х��ʥ���ư�������黻�Τ����IEEE����754�μ����Ǥ���

�����ΤȤ����Τϡ������ͤϤ��Τޤޤ������������Ѵ����줺�˶���ͤȤ�����¸����ޤ��� �Ǥ����顢��¸���褦�Ȥ����ͤ���¸���줿�ͤ��ᤷ��ɽ����������¿���κ��ۤ�ǧ����ޤ��� �����Υ��顼��������׻��ˤ�ä�������ɤ����뤫�Ͽ��ؤη��������ȥ���ԥ塼���ʳؤˤ�����뤳�Ȥǡ������ǤϤ�����ˤĤ��ưʲ��������������ޤ���

  • �ʶ�����ۤʤɡ����Τʵ�Ͽ�ȷ׻���ɬ�פʻ���numeric�򤽤�����Ȥ��ƻȤ��ޤ���

  • �����Υǡ������Dz������פʷ���Ф�ʣ���ʷ׻���ɬ�פȤ�������äˡ�̵����Ȥ���������ե����Τ褦�ʡ˶������ˤ����뤢���ο��񤤤ˤĤ��ƿ�����֤��ʤ���Фʤ�ʤ��ΤǤ���С����������տ������ڤ��ʤ���Фʤ�ޤ���

  • 2�Ĥ���ư�������ͤ������Ǥ���Τ��ɤ�������Ӥ�ͽ���̤�˹Ԥ����⤢��йԤ��ʤ����⤢��ޤ���

�ۤȤ�ɤΥץ�åȥե�����Ǥ�real�Ϻ���6������٤���ä����ʤ��Ȥ�-1E+37��+1E+37���ϰϤǤ��� double precision���̾����15������٤Ǥ��褽-1E+308��+1E+308���ϰϤǤ��� �礭�᤮���꾮���᤮���ͤϥ��顼�θ����Ȥʤ�ޤ��� �����ͤ����٤��⤹������ϴݤ���뤳�Ȥ�����ޤ��� �����˸¤�ʤ��ᤤ�ͤǡ������⥼���Ȥ϶��̤���Ƥ���褦�˸��ʤ���ʤ����ͤϥ�������ե������顼������������ޤ���

�ޤ���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���ϰϤ�Ʊ��Ǥ���

8.1.4. Ϣ�ַ�

serial�����bigserial�ǡ����������Τˤϥǡ������ǤϤʤ����ơ��֥����˰�դμ��̻Ҥ����ꤹ����ؤ�ɽ��ˡ�Ǥ��� (¾�Υǡ����١����ǥ��ݡ��Ȥ����AUTO_INCREMENT�ץ��ѥƥ��˻��Ƥ��ޤ���) ���ߤμ����Ǥϡ�

CREATE TABLE tablename (
    colname SERIAL
);

�ϰʲ�����ꤹ�뤳�Ȥ�Ʊ���Ǥ���

CREATE SEQUENCE tablename_colname_seq;
CREATE TABLE tablename (
    colname integer DEFAULT nextval('tablename_colname_seq') NOT NULL
);

���Τ褦����������������������Υǥե�����ͤ�Ϣ�������狼�������Ƥ���褦�ˤ��ޤ����� �ޤ���NOT NULL�����Ŭ�Ѥ��뤳�Ȥˤ�äơ�null�ͤ�����Ū����������ʤ��褦�ˤ��ޤ��� �����Ƥ��ξ��ϡ���ʣ�����ͤ�ְ�ä��������ʤ��褦�ˡ�UNIQUE����ޤ���PRIMARY KEY������ɲä��뤳�Ȥ��侩����ޤ���������ϼ�ưŪ�ˤϹԤ��ޤ���

����: PostgreSQL 7.3������Ǥϡ�serial��UNIQUE���̣���Ƥ��ޤ����� ���ߤǤϼ�ưŪ�ˤϹԤʤ��ޤ��� Ϣ�֤���˰��������⤷���ϥץ饤�ޥꥭ������Ϳ���������ϡ�¾�Υǡ�����Ʊ�ͻ��ꤷ�ʤ���Фʤ�ޤ���

serial��˥������󥹤μ����ͤ���������ˤϡ�serial��ˤ��Υǥե�����ͤ������Ƥ�褦���ꤷ�Ƥ��������� ����ϡ�INSERTʸ����ꥹ�Ȥ��餽�����������롢�⤷���ϡ�DEFAULT������ɤ���Ѥ��뤳�ȤǹԤʤ����Ȥ��Ǥ��ޤ���

serial��serial4�Ȥ�������̾�Τ������Ǥ��� ����integer���������ޤ��� bigserial��serial8�Ȥ�������̾�Τ�bigint���������뤳�Ȥ������Ʊ�����񤤤򤷤ޤ��� �⤷�ơ��֥����Ѥ�����֤�231�ʾ�μ��̻Ҥ���Ѥ����ͽ¬������硢bigserial����Ѥ��ʤ���Ф����ޤ���

serial���Ѥ˺������줿�������󥹤ϡ�������ͭ�����󤬺�����줿���˼�ưŪ�˺�����졢¾����ˡ�Ǻ������뤳�ȤϤ���ޤ��� (���Τ��Ȥϡ�PostgreSQL��7.3������ΥС������ˤ����ƤϤޤ�ޤ��� �С������7.3������Υǡ����١�������Υ���פ������ɤ��뤳�Ȥˤ�äƺ������줿�������󥹤ˤĤ��Ƥϡ����μ�ưϢ�������ȯ�����ޤ��� ����ϡ�7.3������Υ���ץե�����ˤϡ���¸�ط��ηҤ�����Ω���뤿���ɬ�פʾ��󤬴ޤޤ�Ƥ��ʤ�����Ǥ���) ���˸����С����ΰ�¸�ط���serial��ˤ�ä��������줿�������󥹤Ȥ������Τδ֤ˤ���¸�ߤ��ޤ��� �⤷¾���󤬤��Υ������󥹤򻲾Ȥ��Ƥ���(�����餯nextval()�ؿ����ư�ǸƤӽФ�)��硢���Υ������󥹤��˴����줿�餽�δط��ϲ���Ƥ��ޤ��ޤ��� serial��Υ������󥹤򤳤Τ褦�˻��Ѥ��뤳�ȤϹ��ޤ����ʤ���ΤȤߤʤ���Ƥ��ޤ��� Ʊ��Υ������������狼��ʣ��������ͤ��󶡤������ΤǤ���С���Ω�������֥������ȤȤ��ƥ������󥹤�������Ƥ���������