PostgreSQL�ˤϥ桼�������Ѳ�ǽ��˭�٤ʥǡ��������Ϥᤫ������äƤ��ޤ��� CREATE TYPE���ޥ�ɤ�PostgreSQL���Ф��������ǡ��������ɲäǤ��ޤ���
ɽ8-1���Ȥ߹��ߤ����ѥǡ������٤Ƽ����ޤ��� "��̾"�����줿����̾�ΤΤۤȤ�ɤϡ����Ū����ͳ�ˤ��PostgreSQL �������ǻ��Ѥ���Ƥ���̾���Ǥ��� ¾�ˤ⡢�����˵��ܤ��Ƥ��ʤ��������ǻ��Ѥ����ǡ����������ͽ��Υǡ������⤢��ޤ���
ɽ 8-1. �ǡ�����
̾�� | ��̾ | ���� |
---|---|---|
bigint | int8 | 8������������� |
bigserial | serial8 | ��ư��ʬ8�Х������� |
bit | ����Ĺ�ӥå��� | |
bit varying(n) | varbit(n) | ����Ĺ�ӥå��� |
boolean | bool | �����ʥ֡�����͡ʿ�/���� |
box | ʿ�̾�ζ�� | |
bytea | �Х��ʥ�ǡ��� | |
character varying(n) | varchar(n) | ����Ĺʸ���� |
character(n) | char(n) | ����Ĺʸ���� |
cidr | IPv4�⤷����IPv6�ͥåȥ�����ɥ쥹 | |
circle | ʿ�̾�α� | |
date | ������ա�ǯ������ | |
double precision | float8 | ��������ư������ |
inet | IPv4�⤷����IPv6�ۥ��ȥ��ɥ쥹 | |
integer | int, int4 | 4������������� |
interval(p) | ���ֳִ� | |
line | ʿ�̾��̵��ľ��(�����˼�������Ƥ��ޤ���) | |
lseg | ʿ�̾����ʬ | |
macaddr | MAC ���ɥ쥹 | |
money | ��ʾ��� | |
numeric [ (p, s) ] | decimal [ (p, s) ] | ���٤������ǽ�ʹ����ٿ��� |
path | ʿ�̾�η�ϩ(����ϩ������ķ�ϩ) | |
point | ʿ�̾�δ�����Ū�� | |
polygon | ʿ�̾���Ĥ���������Ū��ϩ | |
real | float4 | ñ������ư������ |
smallint | int2 | 2 ������������� |
serial | serial4 | ��ư��ʬ 4 �Х������� |
text | ����Ĺʸ���� | |
time [ (p) ] [ without time zone ] | ���� | |
time [ (p) ] with time zone | timetz | �������դ����� |
timestamp [ (p) ] [ without time zone ] | timestamp | ���դȻ��� |
timestamp [ (p) ] with time zone | timestamptz | �������դ����դȻ��� |
�ߴ���: ���˵�ǡ�����(���뤤�Ϥ����֤���)��SQL �ǵ��ꤵ��Ƥ��ޤ��� bit��bit varying��boolean��char�� character varying��character��varchar�� date��double precision��integer�� interval��numeric��decimal��real�� smallint��time(�����ॾ�����դ���̵����ξ��)�� timestamp(�����ॾ�����դ���̵����ξ��)��
���줾��Υǡ������ˤϤ��Υǡ������������ϴؿ��Ƿ��ꤵ��볰��ɽ������ͭ���Ƥ��ޤ��� �Ȥ߹��ߥǡ�������¿���ˤϡ��Ϥä���Ȥ�������������ޤ��� �ȤϤ��äƤ⡢����ϩ���⤷�����ķ�ϩ�Τ褦��PostgreSQL����ͭ�ʷ��䡢���뤤�ϡ����դ����ǡ������Τ褦�˽��Ĥ�����Ǥ��뷿��¿������ޤ��� �����������ϴؿ���ž�֤��뤳�Ȥ��Ǥ��ޤ��� �Ĥޤꡢ���ϴؿ��ˤ���̤Ϻǽ�����Ϥ���Ӥ���������٤���ǽ��������ޤ���
��������ݤ����ʤɤΡ˱黻�Ҥȴؿ��ˤϡ��¹�®�٤�夲�뤿��˼¹Ի��˥��顼�����å���Ԥ�ʤ���Τ⤢��ޤ��� �㤨�С������ƥ�ˤ�äƤϡ�����ǡ��������Ф�����ͱ黻�Ҥ��Τ�ʤ������˥�������ե����䥪���С��ե�����������������⤷��ޤ���
���ͥǡ������ˤ�2��4��8�Х��������ȡ�4��8�Х�����ư����������Ӹ������ٿ�������ޤ��� ɽ8-2�˻��Ѳ�ǽ�ʷ�����ޤ���
ɽ 8-2. ���ͥǡ�����
��̾ | ��Ǽ������ | ���� | �ϰ� |
---|---|---|---|
smallint | 2�Х��� | ���ϰϤ����� | -32768����+32767 |
integer | 4�Х��� | �̾���Ѥ������� | -2147483648����+2147483647 |
bigint | 8�Х��� | ���ϰ����� | -9223372036854775808����9223372036854775807 |
decimal | ����Ĺ | �桼���������١����� | ����1000��[����:��ʸ�Ǥ�no limit�Ǥ�] |
numeric | ����Ĺ | �桼���������١����� | ����1000��[����:��ʸ�Ǥ�no limit�Ǥ�] |
real | 4�Х��� | �������١������� | 6������ |
double precision | 8�Х��� | �������١������� | 15������ |
serial | 4�Х��� | ��ư��ʬ���� | 1����2147483647 |
bigserial | 8�Х��� | ���ϰϼ�ư��ʬ���� | 1����9223372036854775807 |
���ͥǡ��������Ф�������ι�ʸ����4.1.2����������Ƥ��ޤ��� ���ͥǡ������ˤ��б����뻻�ѱ黻�Ҥȴؿ��ΰ켰��·�äƤ��ޤ��� �ܺ٤���9���Ȥ��Ƥ��������� ����ǥǡ������ˤĤ��ƾܤ����������ޤ���
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'��������ȡ������ƥ�Ϸ�ʬ�Ϥ������ˤ��Ƥ���������������ǡ��������꿶��ޤ���
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�˽��äƤ��ޤ���
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���ϰϤ�Ʊ��Ǥ���
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��Υ������Τ褦�˻��Ѥ��뤳�ȤϹ��ޤ����ʤ���ΤȤߤʤ���Ƥ��ޤ��� Ʊ��Υ������������狼��ʣ��������ͤ��������ΤǤ���С���Ω�������֥������ȤȤ��ƥ�������������Ƥ���������