¾�ΥС�������ʸ�� �� 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

Chapter 1. SQL�ι�ʸ

Table of Contents
1.1. ���äι���
1.1.1. ���̻Ҥȥ������
1.1.2. ���
1.1.3. �黻��
1.1.4. �ü�ʸ��
1.1.5. ������
1.2. ��
1.3. ɾ����
1.3.1. ����
1.3.2. ���֥ѥ�᡼��
1.3.3. �黻�ҤθƤӽФ�
1.3.4. �ؿ��ƤӽФ�
1.3.5. ����
1.3.6. �����㥹��
1.3.7. �����顼���䤤��碌
1.4. ���ä�ͥ����

���ξϤǤ�SQL�ι�ʸ�ˤĤ����������ޤ���

1.1. ���äι���

SQL �����Ϥϡ��Ҥ�³�������ޥ����������ޤ������ޥ�ɤ��ȡ��������Ҥ��ä���Τǹ������졢�Ǹ�ϥ��ߥ������";"�ˤǽ����ޤ������ϥ��ȥ꡼��ν�λ���Ϥꥳ�ޥ�ɤ򽪤�餻�ޤ����ɤΥȡ�����ͭ����������Υ��ޥ�ɤι�ʸ�ˤ��ޤ���

�ȡ��������������� ���̻��� ������ǰϤޤ줿���̻��� ��ƥ���ʤ⤷��������ˡ����̤�ʸ������ܥ�Ǥ����ȡ�������̾����ʥ��ڡ��������֡����ԡˤǶ��ڤ��ޤ����������ޤ������ʤ���Сʰ���Ū�ˤ����̤�ʸ����¾�Υȡ����󷿤����ܤ��Ƥ�����Τߡ�ɬ�פ���ޤ���

����ˡ����Ϥ��줿 SQL �����������դ��Ƥ��Ƥ⹽���ޤ��󡣥����Ȥϥȡ�����ǤϤ���ޤ��󤬡����̤϶����Ʊ���Ǥ���

���Ȥ��С��ʲ��Τ�Τϡʹ�ʸŪ�ˡ������� SQL �����ϤǤ���

SELECT * FROM MY_TABLE;
UPDATE MY_TABLE SET A = 5;
INSERT INTO MY_TABLE VALUES (3, 'hi there');

������� 1 �Ԥ� 1 �ĤΥ��ޥ�ɤ򵭽Ҥ�����3 �ĤΥ��ޥ�ɤ�Ϣ³���Ƥ��ޤ���ɬ������1�ĤΥ��ޥ�ɤ�1�Ԥǽ�ɬ�פϤ���ޤ���1�Ԥ�ʣ���Υ��ޥ�ɤ����Ϥ��뤳�Ȥ��ǽ�Ǥ�����1�ĤΥ��ޥ�ɤ�ʣ���Ԥ�ʬ���Ƶ��Ҥ��뤳�Ȥ��ǽ�Ǥ��ˡ�

SQL ��ʸ�ϡ��ɤΥȡ����󤬥��ޥ�ɤ��̤����ɤ줬���ڥ��ɤǤɤ줬�ѥ�᡼�����˴ؤ��ƤϤ��ۤɼ�����Ӥ��Ƥ��ޤ��󡣺ǽ�Τ����Ĥ��Υȡ�����ϰ��̤˥��ޥ��̾�Ǥ����������äơ��嵭����ˤ����� "SELECT"��"UPDATE"�� "INSERT" ���ޥ�ɤˤĤ����̾��������뤳�Ȥˤʤ�ޤ������������Ȥ��� UPDATE ���ޥ�ɤǤϡ�SET �ȡ���������ΰ��֤˾�˵��Ҥ���ʤ���Фʤ�ޤ��󤷡�������ǻȤ��Ƥ��� INSERT ���ޥ�ɤ򴰷뤹�뤿��ˤ� VALUES �ȡ�����ɬ�פǤ������줾��Υ��ޥ�ɤ����Τʹ�ʸ�Υ롼�����ե���󥹥ޥ˥奢������������Ƥ��ޤ���

1.1.1. ���̻Ҥȥ������

�嵭����˽ФƤ���SELECT��UPDATE���⤷���� VALUES �Τ褦�ʥȡ������ ��������ΰ���Ǥ���������ɤȤϡ�SQL ����Ƿ�ޤä���̣����äƤ���ñ��Ǥ���MY_TABLE �ȡ������ A �ȡ���������̻��ΰ���Ǥ��������ϡ��Ȥ��륳�ޥ�ɤˤ�äơ��ơ��֥롢��¾�Υǡ����١������֥������Ȥ�̾�����̤��ޤ����������äơ�"̾��" �Ȥ����ƤФ�뤳�Ȥ⤢��ޤ���������ɤȼ��̻Ҥ�Ʊ�����äι�¤����Ĥ��ᡢ������Τ�ʤ��Ƥϥȡ����󤬼��̻ҤʤΤ�������ɤʤΤ��狼��ʤ��Ȥ������Ȥˤʤ�ޤ������ƤΥ�����ɤΥꥹ�Ȥ� Appendix B�ˤ���ޤ���

SQL ���̻Ҥȥ�����ɤϡ�����ե��٥åȡ�a ��z�ˤ��ɤ�ʬ��������� Latin ʸ�������������������_�ˤǻϤޤ�ʤ���Ф����ޤ��󡣼��̻Ҥޤ��ϥ�����ɤ����³��ʸ���ϡ�����ե��٥åȡ�������0��9�ˡ�����������������Ȥ��ޤ�����SQL ɸ��ǤϿ��������äƤ��롢���뤤�ϥ�������������ǻϤޤä��꽪��ä��ꤹ�륭����ɤ��������Ƥ��ޤ���

�����ƥ�� NAMEDATALEN-1 �ʾ�μ��̻Ҥ�ʸ������Ȥ��ޤ��󡣤��Ĺ��̾���򥳥ޥ�ɤǽ񤯤��ȤϤǤ��ޤ�����û���ڤ��Ƥ��ޤ��ޤ����ǥե���ȤǤ� NAMEDATALEN ��32 �ʤΤǡ����̻Ҥκ�Ĺ�� 31 �Ǥ��ʥ����ƥ�ι��ۻ��ˤ� NAMEDATALEN �� src/include/postgres_ext.h ������Ѥ����ޤ��ˡ�

���̻Ҥȥ������̾����ʸ���Ⱦ�ʸ������̤��ޤ��󡣤������äơ��ʲ���2�Ĥ�ʸ��Ʊ����̣�ˤʤ�ޤ���

UPDATE MY_TABLE SET A = 5;

uPDaTE my_TabLE SeT a = 5;

����Ū�ˤϡ�������ɤ���ʸ���ǡ�̾����ʸ���ǽ񤭤ޤ������Ȥ��в����Τ褦�ˤʤ�ޤ���

UPDATE my_table SET a = 5;

���̻Ҥˤ�¾�μ���⤢��ޤ������ڤ꼱�̻� ���뤤���������դ����̻��Ǥ���ʸ��������Τ�Ϣ�ʤ꤬��Ű������"�ˤǰϤޤ�Ƥ���ΤǤ������ڤ꼱�̻ҤϤɤΤ褦�ʾ��Ǥ⼱�̻ҤǤ��äơ�������ɤǤϤ���ޤ��󡣤Ǥ����� "select" �� "select" �Ȥ���̾�����󤢤뤤�ϥơ��֥���䤤��碌�뤿��˻Ȥ��ޤ�����������ΤĤ��ʤ� select �ϥ�����ɤȤ������򤵤졢�������äƥơ��֥�⤷������̾�����Ԥ������ʬ�Ǥϥѡ������顼�򵯤����ޤ����������դ����̻Ҥϲ�������Τ褦�˽񤯤��Ȥ��Ǥ��ޤ���

UPDATE "my_table" SET "a" = 5;

�������դ����̻Ҥϡ���Ű����伫�Ȱʳ��Ǥ���Фɤ褦��ʸ���Ǥ�Ȥ��ޤ������η�ޤ꤬���뤳�Ȥˤ�äơ����ʻȤ��ʤ����ڡ����䥢��ѥ���ɡ�&�ˤ�����褦�ʥơ��֥�̾����̾���뤳�Ȥ���ǽ�Ǥ������ξ��ˤ����Ƥ�Ĺ�������¤�Ŭ�Ѥ���ޤ���

�����䤬�Ĥ��ʤ�̾���Ͼ�˾�ʸ���˲�ᤵ��ޤ��������̻Ҥ������ǰϤळ�Ȥˤ�ä���ʸ���Ⱦ�ʸ�������̤����褦�ˤʤ�ޤ������Ȥ��С����̻� FOO��foo�� "foo" �� PostgreSQL �ˤ���Ʊ����ΤȤ��Ʋ�ᤵ��ޤ�����"Foo" �� "FOO" �ϡ������ 3 �ĤȤ⡢�ޤ����ߤ��Ȥ��ä���ΤȤ��Ʋ�ᤵ��ޤ��� [1]

1.1.2. ���

PostgreSQL �ˤϡ�4 �Ĥ� ���ۤ˷��դ���������������ޤ���ʸ���󡢥ӥå�ʸ������������ư�������Ǥ������������Ū�ʷ��ǻ��ꤹ�뤳�Ȥ�Ǥ������ξ��ϥ����ƥ�ˤ�롢������Τ�ɽ���ȸ�Ψ�Τ褤����ǽ�ˤʤ�ޤ������ۤ�����ˤĤ��Ƥϰʲ����������ޤ�������Ū������ϸ�ۤ��������ޤ���

1.1.2.1. ʸ�������

SQL ��ʸ���������Ǥ�դ�ʸ�����¤Ӥ�ñ��������"'"�ˤǰϤä���Τǡ� 'This is a string' �Τ褦�ˤʤ�ޤ���SQL �Ǥ�2 ��Ϣ³����ñ�����������Ϥ��뤳�Ȥˤ�ꡢñ��������ʸ�������������ळ�Ȥ��Ǥ��ޤ����㡧 'Dianne''s horse'�ˡ� PostgreSQL �Ǥϡ�ñ������������˥Хå�����å����"\"�ˤ�Ȥ����Ȥ�Ǥ��ޤ������㡧 'Dianne\'s horse'��

C ��������ΥХå�����å���ˤ�륨�������פ�ͭ���Ǥ��� \b �ϥХå����ڡ�����\f �ϲ��ǡ�\n �ϲ��ԡ�\r �������ʥ����å��꥿����ˡ�\t �ϥ��֡� xxx ��Ȭ�ʿ��Ǥ����硢 \xxx ���б�����ASCII �����ɤ��̣���ޤ��������˼������ʳ��ΥХå�����å����³��ʸ���ϡ�ʸ���̤�˲�ᤵ��ޤ����������äơ�ʸ��������˥Хå�����å����ޤ���ϡ��Хå�����å���� 2 �����Ϥ��Ƥ���������

ʸ�������� 0 ��ʸ����ʸ�����������ˤϴޤ���ޤ���

2 �Ĥ�ʸ��������������ʤ��Ȥ� 1 �Ĥβ��� ��ޤ������Ƕ��ڤ��Ƥ�����ϡ�2 �Ĥ������Ϣ�뤵��ơ��������� 1 �Ĥ�����Ȥ��ƽ񤫤줿�褦�˸�ΨŪ�˽�������ޤ������Ȥ��С��ʲ��� 2 �Ĥ�ɽ����Ʊ����ΤȤ��ư����ޤ���

SELECT 'foo'
'bar';

SELECT 'foobar';

���������ʲ���ͭ���ʹ�ʸ�ǤϤ���ޤ���

SELECT 'foo'      'bar';

PostgreSQL �Ϥ������ˤĤ��Ƥ� SQL9x �Ȱ��פ��ޤ���

1.1.2.2. �ӥå�ʸ�������

�ӥå�ʸ��������� B����ʸ���⤷���Ͼ�ʸ���ˤ�������λϤޤ�����ˤĤ��Ƥ���ʴ֤˶���Ϥ���ޤ����ʸ��������Τ褦�˸����ޤ������Ȥ��� B'1001' �Τ褦�ˤʤ�ޤ����ӥå�ʸ�����������ǵ��Ĥ����ʸ���� 0 �� 1 �ΤߤǤ����ӥå�ʸ��������ϡ��̾��ʸ���������Ʊ���褦�˹Ԥ�ޤ�����³���ƽ񤯤��Ȥ��Ǥ��ޤ���

1.1.2.3. �������

SQL ����������ϡ����ʿ���0��9�ˤ�Ϣ³�ǡ���������ؿ������դ��ʤ���ΤǤ����������ͤ��ϰϤϤɤ������ǡ��������Ȥ��Ƥ��뤫�ˤ��ޤ�����ñ�ʤ� integer ���� -2,147,483,648 ����+2,147,483,647 �ޤǤ��ϰϤ�����դ��ޤ��ʥץ饹�����ޥ��ʥ�����ϼºݤϥ��ץ������̤�ñ��黻�ҤǤ�����������ΰ����ǤϤ���ޤ���ˡ�

1.1.2.4. ��ư���������

��ư����������ϲ����ΰ���Ū�ʷ��Ǽ����դ����ޤ���

digits.[digits][e[+-]digits]
[digits].digits[e[+-]digits]
digitse[+-]digits

������ digits �� 1 �İʾ�ν��ʿ����Ǥ������ʤ��Ȥ� 1 �Ĥο�������������������ˤʤ��ƤϤʤ�ޤ��� e ���դ�������Ȥ����ˤ� e �θ�ˤ⾯�ʤ��Ȥ� 1 �Ĥο������ʤ���Ф����ޤ��󡣤������äơ���ư����������ϡ��������⤷���ϻؿ���ʤ⤷����ξ���ˤ�¸�ߤˤ����������ȶ��̤���ޤ������ڡ�����¾��ʸ��������������ᤳ�ळ�ȤϤǤ��ޤ���

������ͭ������ư����������Τ����Ĥ�����Ǥ���

3.5
4.
.001
5e2
1.925e-3

��ư����������� DOUBLE PRECISION ���Ǥ��� REAL �� SQL ʸ����ɽ���� PostgreSQL ��ɽ����Ȥä�����Ū�˻���Ǥ��ޤ���

REAL '1.23'  -- ʸ����ɽ��
'1.23'::REAL -- PostgreSQL �����Ū�ʡ˷���

1.1.2.5. ¾�η������

Ǥ�դ���������ϲ�����ɽ���Τ����줫��Ȥä����Ϥ��뤳�Ȥ��Ǥ��ޤ�����

type 'string'
'string'::type
CAST ( 'string' AS type )

ʸ����Υƥ����Ȥ� type �ȸƤФ�뷿�������Ѵ��롼����ؤ��Ϥ���ޤ�����̤ϻؼ����줿��������Ǥ�������Ū�ʷ����㥹�Ȥϡ��⤷������ɤη��Ǥʤ���Фʤ�ʤ����ˤĤ���ۣ��������ʤ���Сʤ��Ȥ��а����������С������ɤ���Ƥ��ʤ��ؿ����Ϥ������˾�ά���Ƥ⹽���ޤ��󡣤��ξ�缫ưŪ�˷���������ޤ���

�ؿ��Τ褦�ʹ�ʸ��ȤäƷ���������ꤹ�뤳�Ȥ��ǽ�Ǥ���

typename ( 'string' )

�����������Ƥη���̾���Ǥ�����ˡ�ϻ��ѤǤ��ޤ��󡣾ܺ٤� Section 1.3.6 �򻲾Ȥ��Ʋ�������

::��CAST() ��ؿ��ƤӽФ���ʸ�⡢Section 1.3.6 �����������̤ꡢǤ�դμ��μ¹Ի��η��Ѵ�����ꤹ�뤿��˻Ȥ����Ȥ��Ǥ��ޤ����������� type'string'�Ȥ��������ϥ�ƥ���������ꤹ����ˤΤ߻Ȥ����Ȥ��Ǥ��ޤ�������¾�� type 'string'�ϡ����󷿤Ǥ�ư��ʤ����ȤǤ������󷿤��������ꤹ����� :: �� CAST() ����Ѥ��Ʋ�������

1.1.2.6. �������

����Ū����������Υե����ޥåȤϰʲ��ΤȤ���Ǥ���

'{ val1 delim val2 delim ... }'

delim �Ϸ��ζ��ڤ�ʸ���ǡ� pg_type �ι��ܤ˽񤫤�Ƥ����ΤǤ��ʤ��٤Ƥ��Ȥ߹��߷��ˤȤäơ�����ϥ���ޡ�,�פǤ��ˡ����줾��� val ���������Ǥη����������ʬ����Ǥ��������������ϰʲ��Τ褦�ˤʤ�ޤ���

'{{1,2,3},{4,5,6},{7,8,9}}'

����������󼡸��ǡ������� 3 �Ĥ���ʬ����ˤ�ä�����Ω�� 3��3 ������Ǥ���

�ġ����������Ǥϡ������ۣ�椵���������򤹤뤿�ᡢ��Ű������"�ˤδ֤��֤����Ȥ��Ǥ��ޤ���������ʤ��Ǥϡ������ͤΥѡ������Ϻǽ�ζ����ȤФ��Ƥ��ޤ��ޤ���

����������ϼºݤϡ�������������줿����Ū�ʷ�����������̤ʻ���Ǥ�������ޤ�����������ϻϤ��ʸ����Ȥ��ư���졢���������Ѵ��롼������Ϥ���ޤ�������Ū�ʷ��λ��꤬ɬ�פʾ�礬���뤫�⤷��ޤ���)

1.1.3. �黻��

�黻�Ҥ�NAMEDATALEN-1�ޤǤΡʥǥե���Ȥ�31�Ǥ���Ĺ���Ρ��ʲ��˼����ꥹ�Ȥ˴ޤޤ��ʸ�����¤ӤǤ���

+ - * / < > = ~ ! @ # % ^ & | ` ? $

���������黻�Ҥ�̾���ˤϤ����Ĥ������󤬤���ޤ���

  • $�ʥɥ뵭��ˤϡ�ʣ��ʸ���α黻��̾�ˤʤ뤳�ȤϤǤ��ޤ�����ñ��ʸ���α黻�ҤˤϤʤ뤳�Ȥ��Ǥ��ޤ���

  • -- �ȡ�/*�פϱ黻��̾����˻Ȥ����Ȥ��Ǥ��ޤ��󡣤ʤ��ʤ餳���ϥ����ȤλϤޤ�Ȳ�ᤵ��뤫��Ǥ���

  • ʣ��ʸ���α黻��̾�ϡ�����̾�������ʤ��ȤⲼ����ʸ���� 1 �İʾ��ޤޤʤ��¤ꡢ��+�פ��-�פǽ���뤳�Ȥ��Ǥ��ޤ���

    ~ ! @ # % ^ & | ` ? $

    ���Ȥ��С�@- �ϱ黻��̾�Ȥ���ǧ����Ƥ��ޤ�������*-�פ�ǧ����Ƥ��ޤ��󡣤������¤ˤ�� PostgreSQL�ϡ�SQL�˽�򤹤��䤤��碌��ȡ�����Ʊ�Τδ֤˥��ڡ������׵᤻�������Ϥ��뤳�Ȥ��Ǥ��ޤ���

��SQLɸ��α黻��̾��Ȥ���硢�̾��ۣ�椵����򤹤뤿��ˡ��٤��ä��黻�Ҥ򥹥ڡ����Ƕ��ڤ�ɬ�פ�����ޤ������Ȥ��С��⤷ @ �Ȥ�����ñ��黻�Ҥ���������Ȥ���� X*@Y �ȤϽ񤱤ޤ��� PostgreSQL �� 1 �ĤǤϤʤ�2�Ĥα黻��̾�Ȥ��Ʋ�᤹�뤳�Ȥ�μ¤ˤ��뤿��ˤϡ�X* @Y �Ƚ񤫤ʤ��ƤϤ����ޤ���

1.1.4. �ü�ʸ��

�ѿ����ǤϤʤ������Ĥ���ʸ���ϡ��黻�ҤǤ��뤳�ȤȤϰۤʤ��ü�ʰ�̣����äƤ��ޤ�������ˡ�ξܺ٤Ϥ��줾��ι�ʸ���Ǥ���������Ƥ�����Ǹ��Ĥ��뤳�Ȥ��Ǥ��ޤ������������Ū��ñ��¸�ߤ��Τ餻��������ʸ������Ū��ޤȤ�뤳�Ȥ�α��ޤ���

  • ľ��˿�����³���ɥ뵭��ʡ�$�סˤϡ��ؿ������������ΰ��֥ѥ�᡼����ɽ������˻Ȥ��ޤ���¾��ʸ̮�Ǥϥɥ뵭��ϱ黻��̾�ΰ����Ǥ��뤫�⤷��ޤ���

  • ���ä��ʡ�()�סˤϡ��̾�ɤ��꼰��ޤȤ�ͥ�褹��Ȥ�����̣������ޤ������ˤ�äƤϤ��ä��ϡ������ SQL ���ޥ�ɤθ��깽ʸ�ΰ����Ȥ����׵ᤵ��뤳�Ȥ�����ޤ���

  • �礫�ä��ʡ�[]�סˤϡ��������Ǥ����򤹤뤿��˻Ȥ��ޤ�������˴ؤ���ܤ��������Chapter 6�򻲾Ȥ��Ƥ���������

  • ����ޡʡ�,�סˤϡ��ꥹ�Ȥ����Ǥ���ڤ뤿��˹�ʸŪ��¤�ΤǻȤ��뤳�Ȥ�����ޤ���

  • ���ߥ�����ʡ�;�סˤϡ�SQL���ޥ�ɤν������̣���ޤ���ʸ��������ޤ��ϰ������դ����̻Ұʳ��Ǥϡ����ޥ�ɤ�����ǤϻȤ����Ȥ��Ǥ��ޤ���

  • ������ʡ�:�סˤϡ����󤫤� "����ʬ"�����������˻Ȥ��ޤ��� Chapter 6�򻲾ȡˡ������Ĥ��� SQL ������������ SQL �ʤɡˤǤϡ���������ѿ�̾����Ƭ���Ȥ��ƻȤ��ޤ���

  • �������ꥹ���ʡ�*�סˤϡ� SELECT ���ޥ�ɤ��桢���뤤�� COUNT ����ؿ��Ȱ��˻Ȥ����硢�ü�ʰ�̣������ޤ���

  • �ԥꥪ�ɡʡ�.�סˤϡ���ư������������桢����ӡ��ơ��֥����̾����ڤ뤿��˻Ȥ��ޤ���

1.1.5. ������

�����Ȥ���ťϥ��ե�ǻϤޤ�Ǥ�դ�ʸ�����¤Ӥǡ��Ԥν����ޤ�³���ޤ������Ȥ��аʲ��Τ褦�ˤʤ�ޤ���

-- �����ɸ�� SQL92 �Υ����ȤǤ�

����ˡ�C ��������Υ֥��å������Ȥ�Ȥ��ޤ���

/* �ͥ����դ�
 * ʣ���ԥ����� /* �ͥ��Ȥ��줿�֥��å������� */
 */

�֥��å������Ȥ� /* �ǻϤޤꡢ�б����� */ �ǽ����ޤ��������Υ֥��å������Ȥϡ�SQL99�ǻ��ꤵ��Ƥ��ޤ���C�Ȥϰ㤤���ͥ��ȤǤ���Τǡ���¸�Υ֥��å������Ȥ�ޤ��ǽ���Τ����礭�ʥ����ɤΥ֥��å��򥳥��ȥ����Ȥ��뤳�Ȥ��Ǥ��ޤ���

�����Ȥϡ�����˹�ʸ���Ϥ��Ԥ����������ϥ��ȥ꡼�फ������졢����ˤ�ä�Ŭ�ڤ��֤��������ޤ���

Notes

[1]

PostgreSQL ����������դ��ʤ�̾����ʸ���Ȥ��Ʋ�᤹�뤳�Ȥ� SQL ɸ��Ȥ����Ƥ�ʤ���Τǡ�SQL ɸ��Ǥϰ�������դ��ʤ�̾������ʸ���˲�ᤵ���٤����Ȥ���Ƥ��ޤ����������ä�SQL ɸ��ˤ��С�foo �� "FOO" ��Ʊ���Ǥ���٤��ǡ�"foo" �ǤϤʤ��Ϥ��ʤΤǤ����⤷�ܿ���ǽ�ʥ��ץꥱ��������񤭤����ʤ�������̾���Ͼ�˰�����ǰϤफ�����뤤�������Ϥޤʤ��Τ����줫�����줹�뤳�Ȥ򤪴��ᤷ�ޤ���