SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ AS output_name ] [, ...] [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING condition [, ...] ] [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ] [ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ] [ LIMIT { count | ALL } ] [ OFFSET start ] [ FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ] [...] ] " --> ������from_item�ϰʲ��Τ����줫�Ǥ��� " --> [ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ] ( select ) [ AS ] alias [ ( column_alias [, ...] ) ] function_name ( [ argument [, ...] ] ) [ AS ] alias [ ( column_alias [, ...] | column_definition [, ...] ) ] function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] ) from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]
SELECT��0�İʾ�Υơ��֥뤫��Ԥ��֤��ޤ��� SELECT�ΰ���Ū�ʽ����ϰʲ����̤�Ǥ���
FROM�ꥹ�Ȥˤ��������Ǥ�������ޤ� ��FROM�ꥹ�Ȥ����Ǥϼ¥ơ��֥뤫���ۥơ��֥�Τ����줫�Ǥ��ˡ� FROM�ꥹ�Ȥ�ʣ�������Ǥ����ꤵ�줿��硢�����ϥ�������礵��ޤ� �ʸ�Ҥ�FROM���Ȥ��Ƥ��������ˡ�
WHERE�礬���ꤵ�줿��硢�����������ʤ��Ԥ����ƽ��Ϥ����������ޤ� �ʸ�Ҥ�WHERE���Ȥ��Ƥ��������ˡ�
GROUP BY�礬���ꤵ�줿��硢1�Ĥޤ���ʣ�����ͤ����˹礦�Ԥ��Ȥ˥��롼�פ�ʬ���ƽ��Ϥ���ޤ��� HAVING�礬���ꤵ�줿��硢���ꤷ�������������ʤ����롼�פϼ�������ޤ� �ʸ�Ҥ�GROUP BY����HAVING���Ȥ��Ƥ��������ˡ�
�ºݤˤϡ����줿�ƹԤ��Ф��ơ�SELECT���ϼ�����Ѥ��Ʒ�������̤ιԤ����Ϥ���ޤ� �ʸ�Ҥ�SELECT�ꥹ���Ȥ��Ƥ��������ˡ�
UNION��INTERSECT��EXCEPT�黻�Ҥ���Ѥ���ȡ�ʣ����SELECTʸ�ν��Ϥ�1�Ĥη�̽���ˤޤȤ�뤳�Ȥ��Ǥ��ޤ��� UNION�黻�Ҥϡ�ξ���η�̽����¸�ߤ���Ԥȡ������η�̽����¸�ߤ���Ԥ������֤��ޤ��� INTERSECT�黻�Ҥϡ�ξ���η�̽����¸�ߤ���Ԥ��֤��ޤ��� EXCEPT�黻�Ҥϡ��ǽ�η�̽���ˤ��ꡢ2���ܤη�̽���ˤʤ��Ԥ��֤��ޤ��� ALL�����ꤵ��ʤ��¤ꡢ������ξ��⡢��ʣ����Ԥϼ�������ޤ� �ʸ�Ҥ�UNION����INTERSECT����EXCEPT���Ȥ��Ƥ��������ˡ�
ORDER BY�礬���ꤵ�줿��硢�֤����Ԥϻ��ꤷ�����֤ǥ����Ȥ���ޤ��� ORDER BY�����ꤵ��ʤ����ϡ������ƥब�������Ǹ��Ĥ������֤ǹԤ��֤���ޤ� �ʸ�Ҥ�ORDER BY���Ȥ��Ƥ��������ˡ�
DISTINCT�Ϸ�̤����ʣ�Ԥ�������ޤ��� DISTINCT ON�ϻ��ꤷ�����Ƥμ��˰��פ���Ԥ�������ޤ��� ALL�Ǥϡ���ʣ�Ԥ�ޤᡢ���Ƥθ���Ԥ��֤��ޤ��ʤ��줬�ǥե���ȤǤ��� �ܤ����ϡ���Ҥ�DISTINCT���Ȥ��Ƥ��������ˡ�
LIMIT���뤤��OFFSET�礬���ꤵ�줿��硢SELECTʸ�Ϸ�̹Ԥΰ���ʬ�Τߤ��֤��ޤ� �ʾܤ����ϡ���Ҥ�LIMIT���Ȥ��Ƥ��������ˡ�
FOR UPDATE�ޤ���FOR SHARE�����ꤹ��ȡ�SELECTʸ�ϰ���³���Ԥ��빹��������������Ԥ���å����ޤ� �ʾܤ����ϡ���Ҥ�FOR UPDATE/FOR SHARE���Ȥ��Ƥ��������ˡ�
�ơ��֥뤫���ͤ��ɤ��ˤ�SELECT���¤�ɬ�פǤ��� FOR UPDATE�ޤ���FOR SHARE����Ѥ���ˤϡ�����ˡ�UPDATE���¤�ɬ�פǤ���
FROM��ˤ�SELECT���оݤȤʤ륽�����ơ��֥��1�İʾ���ꤷ�ޤ��� ʣ���Υ����������ꤵ�줿��硢��̤����ƤΥ�������ľ�ѡʥ��������ˤȤʤ�ޤ��� ���������̾����������դ��ơ�ľ�ѤΤ����������֤��褦�˷�̹Ԥ���ꤷ�ޤ���
FROM��ˤϰʲ������Ǥ����Ǥ��ޤ���
��¸�Υơ��֥�⤷���ϥӥ塼��̾���Ǥ��ʥ���������̾��ġˡ� ONLY�����ꤵ�줿��硢���Υơ��֥�Τߤ��������ޤ��� ONLY�����ꤵ��ʤ���硢�ơ��֥�ȡ�¸�ߤ���Сˤ����Ѿ��������ƤΥơ��֥뤬�������ޤ��� �ҥơ��֥�Υ������ϡ��ơ��֥�̾��*���դ��������ǻ��ꤹ�뤳�Ȥ�Ǥ��ޤ��������ߤΥС������Ǥϥǥե���ȤǹԤ��ޤ� ��7.1������Υ����Ǥϡ�ONLY���ǥե���ȤǤ����ˡ� �ǥե���Ȥο����ѹ�����ˤϡ�sql_inheritance���ꥪ�ץ������ѹ����ޤ���
��̾��ޤ�FROM�����ƥ������̾�Ǥ��� ��̾�ϡ������ʷ�ˤ��뤿�ᡢ�⤷���ϡ����ʷ���Ʊ���ơ��֥��ʣ���������ˤ�ۣ�椵��ʤ�������˻Ȥ��ޤ��� ��̾�����ꤵ��Ƥ�����ϡ�������̾�ˤ�äƼºݤΥơ��֥�̾�ޤ��ϴؿ�̾�������˱�����ޤ��� �㤨�С�FROM foo AS f�Ȼ��ꤵ��Ƥ����硢�ʹߤ�SELECTʸ�ǤϤ���FROM�����ƥ��foo�ǤϤʤ�f�Ȥ��ƻ��Ȥ���ɬ�פ�����ޤ��� �ơ��֥����̾������С����Υơ��֥��ʣ�������̾�����֤������������̾�ꥹ�ȤҤ��뤳�Ȥ��Ǥ��ޤ���
FROM��Ǥϡ���SELECT��Ȥ����Ȥ��Ǥ��ޤ��� SELECT���ޥ�ɤμ¹��桢��SELECT�ν��Ϥϰ���ơ��֥�Ǥ��뤫�Τ褦��ư��ޤ��� ��SELECT�ϳ�̤ǰϤޤ�ʤ���Фʤ�ޤ��ޤ���ɬ����̾��Ϳ���Ƥ����ʤ���Фʤ�ޤ��� VALUES���ޥ�ɤ��ǻ��Ѥ��뤳�Ȥ�Ǥ��ޤ���
FROM��Ǥϡ��ؿ��ƤӽФ�����Ѥ��뤳�Ȥ��Ǥ��ޤ� �ʤ�����ä˴ؿ�����̥��åȤ��֤�����ͭ�ѤǤ�����Ǥ�դδؿ�����Ѥ��뤳�Ȥ�Ǥ��ޤ��ˡ� SELECT���ޥ�ɤμ¹���ϡ����δؿ��η�̤ϰ���ơ��֥�Ǥ��뤫�Τ褦��ư��ޤ��� �ޤ�����̾����Ѥ��뤳�Ȥ�Ǥ��ޤ��� ��̾�����ꤵ��Ƥ���С�����������̾�ꥹ�Ȥ���ꤷ�ơ��ؿ���ʣ�緿������ͤ�°�����Ф�������̾�����뤳�Ȥ�Ǥ��ޤ��� �ؿ���record�ǡ��������֤����������Ƥ�����ϡ���̾���ʤ��AS������ɤȡ������³����column_name data_type [, ... ]���Ȥ���������������ꥹ�Ȥ�ɬ�פǤ��� ������ꥹ�Ȥϡ��ؿ��ˤ�ä��֤����ºݤ���ο�����ӥǡ������˰��פ��Ƥ��ʤ���Фʤ�ޤ���
�ʲ��Τ����줫�Ǥ���
[ INNER ] JOIN
LEFT [ OUTER ] JOIN
RIGHT [ OUTER ] JOIN
FULL [ OUTER ] JOIN
CROSS JOIN
INNER�����OUTER��緿�Ǥϡ��������ʤ����NATURAL, ON join_condition��USING (join_column [, ...])�Τ����줫1�ĤΤߤ���ꤹ��ɬ�פ�����ޤ��� ���줾��ΰ�̣�ϸ�Ҥ��ޤ��� CROSS JOIN�Ǥϡ������ζ�Ҥ��ʤ��Ƥ���ޤ���
JOIN��ϡ�2�Ĥ�FROM�����ƥ�����դ��ޤ��� ����Ҥν��֤���뤿��ˡ�ɬ�פʤ�г�̤���Ѥ��Ƥ��������� ��̤��ʤ��ȡ�JOIN�Ϻ����鱦������Ҥˤ��ޤ��� �ɤΤ褦�ʾ��Ǥ�JOIN�ϡ�����ޤ�ʬ����줿FROM���ܤ��������դ�������ޤ���
CROSS JOIN��INNER JOIN��ľ�Ѥ�1���������ޤ�������ϡ�FROM�κǾ�̤�2�Ĥι��ܤ��礷����̤�Ʊ��Ǥ��� ���������ʻ��ꤹ��С˷����ˤ�ä����¤��뤳�Ȥ��Ǥ��ޤ��� CROSS JOIN��INNER JOIN ON (true)�������Ǥ��ꡢ���ˤ�äƺ�������ԤϤ���ޤ��� �����η�緿�ϵ��Ҿ���ص��Τ���������Ѱդ���Ƥ��ޤ��� �������äơ��̾��FROM��WHERE��¹Ԥ��ʤ���в���Ԥ��ޤ���
LEFT OUTER JOIN�ϡ����˹礦ľ�Ѥ����ƤιԡʤĤޤꡢ���η��������������Ƥ��Ȥ߹�碌�ˤ˲ä�����¦�ơ��֥����ǡ���¦�ơ��֥�ˤϷ������������Ԥ�¸�ߤ��ʤ��ä��ԤΥ��ԡ����֤��ޤ��� ���κ�¦�ơ��֥�ιԤ����̤Υơ��֥�����˳�ĥ���뤿��ˡ���¦�ơ��֥뤬������ˤ�NULL�ͤ���������ޤ��� �ޥå�����Ԥ������ϡ�JOIN�缫�Ȥξ��Τߤ���θ����뤳�Ȥ����դ��Ƥ��������� ¾�γ��������ϸ��Ŭ�Ѥ���ޤ���
�դˡ�RIGHT OUTER JOIN�ϡ����Ƥη��Ԥȡ���¦�ơ��֥�����ƤϤޤ��Τ��ʤ��ä���¦�ιԡʺ�¦��NULL�dz�ĥ����Ƥ��ޤ��ˤ�1�Ԥ��Ĥ��֤��ޤ��� �����Υơ��֥�������ؤ����LEFT OUTER JOIN���Ѵ��Ǥ���Τǡ�RIGHT OUTER JOIN�ϵ��Ҿ���ص���ޤ뤿���Ѱդ���Ƥ���˲�ޤ���
FULL OUTER JOIN�ϡ����Ƥη��Ԥ˲ä������פ��ʤ��ä���¦�ιԡʱ�¦��NULL�dz�ĥ�ˡ����פ��ʤ��ä���¦�ιԡʺ�¦��NULL�dz�ĥ�ˤ������֤��ޤ���
join_condition�ϡ����ˤ����ƤɤιԤ����פ��뤫����ꤹ�롢boolean�����ͤ��֤����Ǥ���WHERE���������Ƥ��ޤ��ˡ�
USING ( a, b, ... )���ON left_table.a = right_table.a AND left_table.b = right_table.b ...�ξ�ά���Ǥ��� USING�����������ξ���ǤϤʤ������Τߤ����ν��Ϥ˴ޤޤ�뤳�Ȥ��̣���ޤ���
NATURAL�ϡ�2�ĤΥơ��֥����Ʊ��̾������ĹԤ����ƻ��ꤷ��USING�ꥹ�Ȥξ�ά���Ǥ���
WHERE����̾�ʲ��η����Ȥʤ�ޤ��ʤ��ζ�Ͼ�ά��ǽ�Ǥ��ˡ�
WHERE condition
condition�ϡ�ɾ���η�̤Ȥ���boolean�����֤�Ǥ�դμ��Ǥ��� ���ξ����������ʤ��Ԥ����ƽ��Ϥ����������ޤ��� ���Ƥ��ѿ��˼ºݤιԤ��ͤ��������ơ����������֤���硢���ιԤϾ����������Ȥߤʤ���ޤ���
GROUP BY����̾�ʲ��η����Ȥʤ�ޤ��ʤ��ζ�Ͼ�ά��ǽ�Ǥ��ˡ�
GROUP BY expression [, ...]
GROUP BY�ϡ����롼�ײ��Τ����Ϳ����줿����ɾ��������̤�Ʊ���ͤˤʤä��Ԥ�1�ĤιԤˤޤȤ�뵡ǽ������ޤ��� expression�ˤϡ��������̾�����������SELECT�ꥹ�ȹ��ܡˤ�̾��/���������뤤����������ͤ������Ǥ�դμ����뤳�Ȥ��Ǥ��ޤ��� Ƚ�Ǥ��Ĥ��ʤ����ϡ�GROUP BY��̾���Ͻ�����̾�ǤϤʤ�������̾�Ȥ��Ʋ�ᤵ��ޤ���
����ؿ������Ѥ��줿��硢�ƥ��롼��������ƤιԤ��оݤ˷����Ԥ�졢��̤Ȥ��ƥ��롼�פ��Ȥ��ͤ���������ޤ� �ʰ���GROUP BY���ʤ���С�����ؿ������줿���ƤιԤ��оݤ˷���Ԥ���1�Ĥ��ͤ��������ޤ��ˡ� GROUP BY��¸�ߤ����硢����ؿ������ʳ��ǡ����롼�ײ�����Ƥ��ʤ���Ȥ���SELECT�ꥹ�Ȥ�̵���ˤʤ�ޤ��� ���롼�ײ�����Ƥ��ʤ���ˤĤ����֤�����ͤ�ʣ�����ͤˤʤäƤ��ޤ���ǽ�������뤫��Ǥ���
HAVING���̾�ʲ��η��ˤʤ�ޤ��ʤ��ζ�Ͼ�ά��ǽ�Ǥ��ˡ�
HAVING condition
condition��WHERE��ǻ��ꤹ���Τ�Ʊ���Ǥ���
HAVING�ϡ����롼�ײ����줿�Ԥ���ǡ������������ʤ��Ԥ��������ǽ������ޤ��� HAVING��WHERE�ϼ��������ۤʤ�ޤ��� WHERE����GROUP BY��Ŭ�����˸ġ��ιԤ��Ф��ƥե��륿��ݤ���Τ��Ф���HAVING�ϡ�GROUP BY��Ŭ�Ѹ���������줿���롼�ײ����줿�Ԥ��Ф��ƥե��륿���ޤ��� condition��ǻ��Ѥ�����ϡ�����ؿ���ǻ��Ѥ��줿��Τ���������롼�ײ����줿����դ˻��Ȥ����ΤǤʤ���Фʤ�ޤ���
HAVING�礬����ȡ�GROUP BY�礬�ʤ��ä��Ȥ��Ƥ��䤤��碌�ϥ��롼�ײ����줿�䤤��碌�ˤʤ�ޤ��� GROUP BY�������ʤ��䤤��碌������ؿ���ޤ����Ʊ�ͤǤ��� ���줿�ԤϤ��٤ơ�1�ĤΥ��롼�פ���������ΤȤߤʤ���ޤ����ޤ���SELECT�ꥹ�Ȥ�HAVING��Ǥϡ�����ؿ������Ϥ���ơ��֥������Ȥ��뤳�Ȥ��Ǥ��ޤ��� ���������䤤��碌�Ǥϡ�HAVING�����ξ��ˤ�ñ��ιԤ��ʳ��ξ���0�Ԥ���Ϥ��ޤ���
SELECT�ꥹ�ȡ�SELECT��FROM�δ֤ˤ��륭����ɡˤϡ�SELECTʸ�ν��ϹԤ�������뼰����ꤹ���ΤǤ��� ���μ��Ǥϡ�FROM��ǽ��������Ȥ��뤳�Ȥ��Ǥ��ޤ����̾�ϼºݤ˻��Ȥ��ޤ��ˡ� AS output_name����Ѥ���ȡ�������˸���̾���Ȥ��̤�̾�����դ��뤳�Ȥ��Ǥ��ޤ��� ����̾���ϡ����ɽ���Ѥ����٥�Ȥ��ƻȤ��ޤ��� �ޤ���ORDER BY���GROUP BY���������ͤȤ�����⡢����̾������ѤǤ��ޤ��� ��������WHERE��HAVING��Ǥϻ��ѤǤ��ޤ������Ǥϼ���ʤ���Фʤ�ޤ���
�ꥹ�Ȥˤϡ����줿�Ԥ����Ƥ����ɽ����ά���Ȥ��ơ����ǤϤʤ�*�Ƚ��Ȥ��Ǥ��ޤ��� �ޤ������Υơ��֥��ͳ�褹����Τߤ�ɽ����ά���Ȥ��ơ�table_name.*�Ƚ��Ȥ�Ǥ��ޤ���
UNION���̾�ʲ��η����Ȥʤ�ޤ���
select_statement UNION [ ALL ] select_statement
select_statement�ˤϡ�ORDER BY��LIMIT��FOR UPDATE��FOR SHARE�������ʤ�Ǥ�դ�SELECTʸ������ޤ� ��ORDER BY��LIMIT�ϡ���̤ǰϤ��ʣ���Ȥ�����Ϳ���뤳�Ȥ��Ǥ��ޤ��� ��̤��ʤ���硢�����ζ�ϱ�¦���֤��줿���ϼ��ǤϤʤ���UNION�η�̤��Ф���Ŭ�Ѥ���Ƥ��ޤ��ޤ��ˡ�
UNION�黻�Ҥϡ�2�Ĥ�SELECTʸ���֤��Ԥ��½����������ޤ��� �����½���ˤϡ�2�Ĥ�SELECTʸ�η�̽���Τ����줫�ʤޤ���ξ���ˤ�¸�ߤ���Ԥ����ƴޤޤ�Ƥ��ޤ��� UNION��ľ�ܤΥ��ڥ��ɤȤʤ�SELECTʸƱ�Τ��֤�����ϡ�Ʊ���Ǥʤ���Фʤ�ޤ��ޤ����б�������Υǡ������ˤϸߴ�����¸�ߤ���ɬ�פ�����ޤ���
ALL���ץ�����ꤵ��Ƥ��ʤ��¤ꡢUNION�η�̤ˤϽ�ʣ�Ԥϴޤޤ�ޤ��� ALL����ꤹ��Ȥ��Τ褦�ʽ�ʣ����Ԥ��ޤ��� �ʤ������äơ��̾�UNION ALL��UNION��꤫�ʤ��®�Ǥ��� �Ǥ������ALL����Ѥ��Ƥ��������ˡ�
1�Ĥ�SELECTʸ��ʣ����UNION�黻�Ҥ������硢��̤��ʤ��¤ꡢ�����Ϻ����鱦��ɾ������ޤ���
�������Ǥϡ�UNION�η�̤�UNION���Ф������Ϥˡ�FOR UPDATE�ޤ���FOR SHARE����ꤹ�뤳�ȤϤǤ��ޤ���
INTERSECT���̾�ʲ��η����Ȥʤ�ޤ���
select_statement INTERSECT [ ALL ] select_statement
select_statement�ˤϡ�ORDER BY��LIMIT��FOR UPDATE��FOR SHARE�������ʤ���Ǥ�դ�SELECTʸ������ޤ���
INTERSECT�ϡ�2�Ĥ�SELECTʸ���֤��Ԥ��ѽ��������ޤ��� �����ѽ���˴ޤޤ��Τϡ�2�Ĥ�SELECTʸ�η�̽����ξ����¸�ߤ���ԤǤ���
ALL���ץ�������ꤷ�ʤ��¤ꡢINTERSECT�η�̤˽�ʣ�Ԥϴޤޤ�ޤ��� ALL�����ꤵ�줿��硢��¦�ơ��֥��m�ġ���¦�ơ��֥��n�Ĥν�ʣ������Ԥϡ���̽���Ǥ�min(m,n)�Ľи����ޤ���
1�Ĥ�SELECTʸ��ʣ����INTERSECT�黻�Ҥ������硢��̤��ʤ��¤ꡢ�����Ϻ����鱦��ɾ������ޤ��� INTERSECT��UNION���������դ�������ޤ��� �ĤޤꡢA UNION B INTERSECT C ��A UNION (B INTERSECT C)�Ȳ�ᤵ��ޤ���
�������Ǥϡ�INTERSECT�η�̤�INTERSECT���Ф������Ϥˡ�FOR UPDATE�ޤ���FOR SHARE����ꤹ�뤳�ȤϤǤ��ޤ���
EXCEPT���̾�ʲ��η����Ȥʤ�ޤ���
select_statement EXCEPT [ ALL ] select_statement
select_statement�ˤϡ�ORDER BY��LIMIT��FOR UPDATE��FOR SHARE�������ʤ���Ǥ�դ�SELECTʸ������ޤ���
EXCEPT�ϡ���¦��SELECTʸ�η�̤ˤ�¸�ߤ�����¦��SELECTʸ�η�̤ˤ�¸�ߤ��ʤ��Ԥν�����������ޤ���
ALL���ץ�����ꤵ��Ƥ��ʤ��¤ꡢEXCEPT�η�̤ˤϽ�ʣ�Ԥϴޤޤ�ޤ��� ALL�������硢��¦�ơ��֥��m�ġ���¦�ơ��֥��n�Ĥν�ʣ������Ԥϡ���̽���Ǥ�max(m-n,0)�Ľи����ޤ���
1�Ĥ�SELECTʸ��ʣ����EXCEPT�黻�Ҥ������硢��̤��ʤ��¤ꡢ�����Ϻ����鱦��ɾ������ޤ��� EXCEPT�η���դ��ζ�����UNION��Ʊ���Ǥ���
�������Ǥϡ�EXCEPT�η�̤�EXCEPT���Ф������Ϥˡ�FOR UPDATE�ޤ���FOR SHARE����ꤹ�뤳�ȤϤǤ��ޤ���
ORDER BY����̾�ʲ��η����Ȥʤ�ޤ��ʤ��ζ�Ͼ�ά��ǽ�Ǥ��ˡ�
ORDER BY expression [ ASC | DESC | USING operator ] [, ...]
expression�ˤϡ��������SELECT�ꥹ�ȹ��ܡˤ�̾��/���������뤤���������ͤ�����������Ǥ�դμ����뤳�Ȥ��Ǥ��ޤ���
ORDER BY���Ȥ��ȡ���̹Ԥ���ꤷ�����˽��äƥ����Ȥ��뤳�Ȥ��Ǥ��ޤ��� �Ǥ⺸¦�μ���Ȥä���Ӥ�����̡�2�ĤιԤ���������Ƚ�Ǥ��줿���ϡ�1�ı�¦�μ���Ȥä���Ӥ��ޤ������η�̤���������С�����˼��μ��˿ʤߤޤ��� ���ꤷ�����Ƥμ�����������Ƚ�Ǥ��줿���ϡ������˰�¸�������֤��֤���ޤ���
�����ϡ������ΰ��֡ʺ����鱦�˳�����Ƥ��ޤ��ˤ��ޤ��� �����Ȥ��ȡ���դ�̾��������ʤ���ν����������뤳�Ȥ��Ǥ��ޤ��� AS�����Ѥ���з�����̾���������Ƥ뤳�Ȥ��Ǥ���Τǡ�����Ϥɤ����Ƥ�ɬ�פʵ�ǽ�Ȥ����櫓�ǤϤ���ޤ���
�ޤ���ORDER BY��ˤϡ�SELECT��̥ꥹ�Ȥ˽и����ʤ����ޤࡢǤ�դμ�����ѤǤ��ޤ��� �������äơ��ʲ���ʸ��ͭ���Ǥ���
SELECT name FROM distributors ORDER BY code;
��������UNION��INTERSECT��EXCEPT�η�̤�ORDER BY��Ŭ�Ѥ�����ϡ����ϻ��ѤǤ������������̾���������Τߤ����Ǥ���Ȥ������¤�����ޤ���
ORDER BY�μ��Ȥ��Ʒ����̾��������̾��ξ���˰��פ���ñ�ʤ�̾����Ϳ����줿��硢ORDER BY�Ϥ��������̾�Ȥ��ư����ޤ��� ����ϡ�Ʊ�������ˤ�����GROUP BY������Ȥ�ȿ�ФǤ��� ����������ϡ�ɸ��SQL�Ȥθߴ������ݻ����뤿���ȯ�����Ƥ��ޤ���
ORDER BY���Ǥ�դμ��θ�ˡ���ά��ǽ�ʥ������ASC�ʾ���ˡ�DESC�ʹ߽�ˤ��ղä��뤳�Ȥ��Ǥ��ޤ��� ���꤬�ʤ���С��ǥե���Ȥ�ASC�������ΤȤ��ư����ޤ��� ����¾���������ꤹ��黻��̾��USING��˻��ꤹ����ˡ�⤢��ޤ��� �̾ASC��USING <�ȡ�DESC��USING >��Ʊ���Ǥ� �ʤ��������桼������ǡ������κ������ˤϡ��ǥե���ȤΥ����Ƚ��������뤳�Ȥ��Ǥ��ޤ����ޤ����ۤʤ�̾���α黻�Ҥ��б��դ����뤳�Ȥ�Ǥ��ޤ��ˡ�
NULL�ͤ�¾���ͤ����̤��ͤȤ��ƥ����Ȥ���ޤ��� ����������ȡ������Ƚ礬����λ���NULL�ͤϺǸ�ˡ��߽�λ���NULL�ͤϺǽ�˥����Ȥ���ޤ���
ʸ�����ǡ����Ǥϡ��ǡ����١������饹���ν�������˷��ꤵ�������������ξȹ��˽��äƥ����Ȥ���ޤ���
DISTINCT�����ꤵ���ȡ���ʣ����Ԥ����Ʒ�̥��åȤ���������ޤ� �ʤ��줾��1�ԤΤߤ��ݻ�����ޤ��ˡ� ALL�Ϥ���ȿ�Фǡ����ƤιԤ��ݻ�����ޤ��� �ǥե���ȤϤ�����Ǥ���
DISTINCT ON ( expression [, ...] )�ϳƹԽ������ǡ����ꤷ��������������ɾ�������ǽ�ιԤΤߤ��ݻ����ޤ��� DISTINCT ON���ϡ���Ҥ�ORDER BY��Ʊ����§�ǰ����ޤ��� �ƽ����"�ǽ�ι�"�ϡ�ORDER BY����Ѥ�����Ū�ιԤ��μ¤˺ǽ�˸����褦�ˤ��ʤ��¤�ͽ¬���뤳�ȤϤǤ��ޤ��� �㤨�С�������ϳ������κǿ��ε��ݾ������Ф��ޤ���
SELECT DISTINCT ON (location) location, time, report FROM weather_reports ORDER BY location, time DESC;
ORDER BY����Ѥ��Ƴ���������֤ˤ�äƹ߽�˥����Ȥ��ʤ���С��������ˤĤ�������������ĤΤ�Τ��Ϥ狼��ޤ���
DISTINCT ON�˻��ꤹ�뼰��ORDER BY�κǤ⺸¦�μ��Ȱ��פ��ʤ���Фʤ�ޤ��� ORDER BY��ϡ��̾��DISTINCT ON���롼�פ���ǤιԤ�ͥ���̤���ꤹ���ɲ�Ū�ʼ���ޤߤޤ���
LIMIT���2�Ĥ���Ω�������礫�鹽������ޤ���
LIMIT { count | ALL } OFFSET start
count�ˤ��֤����Ԥκ����������start�ˤϹԤ��֤��Ϥ���������Ф��Կ�����ꤷ�ޤ��� ξ���Ȥ���ꤵ�줿��硢start��ʬ�����Ф��졢�������������count�Ԥ��֤���ޤ���
LIMIT��Ȥ����ϡ���̹Ԥ��դʽ��֤˶�������ORDER BY���Ȥ��Ȥ褤�Ǥ��礦�� �������ʤ��ȡ��䤤��碌��̤Τɤ���ʬ���֤����Τ����狼��ޤ��� 10��20���ܤޤǤ���Ϥ���Ȥ��Ƥ⡢�ɤν��֤��¤٤�����10��20���ܤʤΤǤ��礦���� ORDER BY����ꤷ�ʤ��¤ꡢ�Ԥ��֤������֤������Ǥ���
�䤤��碌�ץ��ʤ��䤤��碌�ײ������������LIMIT���θ����Τǡ�LIMIT��OFFSET�λ���ˤ�äưۤʤä��ײ�����뤳�Ȥˤʤ�Ǥ��礦���ײ褬�ۤʤ�С��ۤʤ���֤ǹԤ��֤�ޤ��� �������äơ�LIMIT/OFFSET�ͤ��ѹ��ˤ�äưۤʤ��̹Ԥ����褦�Ȥ���ȡ�ORDER BY�ǽ�����¤��ؤ��ʤ��¤ꡢ̷�⤷����̤��֤����Ȥˤʤ�ޤ��� ����ϥХ��ǤϤ���ޤ��� ��SQL�ϡ�ORDER BY�ǽ�������椵��ʤ��¤ꡢ�䤤��碌��̤��֤��������«���ʤ��פȤ������¤������ε���ʤΤǤ���
FOR UPDATE�ϰʲ��η����Ȥʤ�ޤ���
FOR UPDATE [ OF table_name [, ...] ] [ NOWAIT ]
������Ϣ����FOR SHARE��ϰʲ��η����Ȥʤ�ޤ���
FOR SHARE [ OF table_name [, ...] ] [ NOWAIT ]
FOR UPDATE����Ѥ���ȡ��䤤��碌�ˤ�äƸ������줿�Ԥ������Ѥ˥��å�����ޤ��� ����ˤ�ꡢ���ԤΥȥ�������λ����ޤǤϡ������ιԤ�¾�Υȥ�������ˤ�ä��ѹ����줿�������줿�ꤹ�뤳�Ȥ��ʤ��ʤ�ޤ��� �Ĥޤꡢ���ԤΥȥ�������λ����ޤǤϡ�¾�Υȥ����������ιԤ��Ф���UPDATE��DELETE��SELECT FOR UPDATE���Ԥ��Ƥ���ݤ���ޤ��� �ޤ���¾�Υȥ��������UPDATE��DELETE��SELECT FOR UPDATE�ˤ�ä������Ԥ����å�����Ƥ����硢SELECT FOR UPDATE��¹Ԥ��褦�Ȥ���ȡ�SELECT FOR UPDATE�Ϥ��Υȥ�������λ����Τ��ԤäƤ��顢���θ�Ԥ���å����ƹ������줿�Ԥ��֤��ޤ��ʹԤ�������줿�����֤��ޤ���ˡ� �ܺ٤���12���Ȥ��Ƥ���������
¾�Υȥ�������Υ��ߥåȤ��Ե����뤳�Ȥʤ�����ʤ��ˤϡ�NOWAIT���ץ�������Ѥ��Ƥ��������� ����ԤΥ��å���¨�¤˳����Ǥ��ʤ�����SELECT FOR UPDATE NOWAIT���Ե������ˡ����顼����𤷤ޤ��� NOWAIT�Ϲԥ�٥���å��ˤΤߤ�Ŭ�Ѥ�����������դ��Ƥ��������� �Ĥޤꡢɬ�פ�ROW SHARE�ơ��֥��٥���å����̾��̤����ˡ�� ��12�����ȡˤdz�������ޤ��� �⤷���ơ��֥��٥�Υ��å����Ե������˳������ʤ���Фʤ�ʤ��ΤǤ���С�LOCK��NOWAIT���ץ�������Ѥ��Ƥ���������
FOR SHARE��Ʊ�ͤ˿��ޤ��������ꤹ��Ԥ��Ф���¾Ū���å����������ΤǤϤʤ���ͭ���å���������������ۤʤ�ޤ��� ��ͭ���å��ˤ�ꡢ¾�ȥ�������ˤ�뤽�ιԤ��Ф���UPDATE��DELETE��SELECT FOR UPDATE���ϥ֥��å�����ޤ��� ��������¾�ȥ�������ˤ��SELECT FOR SHARE�����ɤ��ޤ���
FOR UPDATE�ޤ���FOR SHARE�������Υơ��֥뤬���ꤵ��Ƥ�����ϡ����Υơ��֥�ιԤΤߤ����å�����ޤ��� SELECT���¾�Υơ��֥���̾��̤���ɤ߹��ޤ�ޤ��� �ơ��֥�ꥹ�Ȥ�����ʤ�FOR UPDATE�⤷����FOR SHARE��ϡ����Υ��ޥ�ɤǻ��Ѥ���뤹�٤ƤΥơ��֥�˱ƶ���Ϳ���ޤ��� FOR UPDATE�⤷����FOR SHARE���ӥ塼�ޤ������䤤��碌�ǻ��Ѥ��줿��硢���Υӥ塼�����䤤��碌�ǻ��Ѥ���뤹�٤ƤΥơ��֥�˱ƶ���Ϳ���ޤ���
�ۤʤ���å�������ۤʤ�ơ��֥�˻��ꤹ��ɬ�פ�����С�ʣ����FOR UPDATE��FOR SHARE��Ҥ��뤳�Ȥ��Ǥ��ޤ��� FOR UPDATE���FOR SHARE���ξ���ǡ�Ʊ��Υơ��֥�Ҥ����ʤޤ��ϰ���Ū�˱ƶ���Ϳ����줿�˾�硢FOR UPDATE�Ȥ��ƽ�������ޤ��� Ʊ�ͤˡ�����ơ��֥�˱ƶ���Ϳ�����Τ����줫��NOWAIT�����ꤵ�줿��硢���Υơ��֥��NOWAIT�Ȥ��ƽ�������ޤ���
FOR UPDATE�����FOR SHARE�ϡ��֤����Ԥ��ơ��֥�ΤɤιԤ��б�����Τ������Τ˼��̤Ǥ��ʤ����ˤϻ��Ѥ��뤳�Ȥ��Ǥ��ޤ��� �㤨�С�����ˤϻ��ѤǤ��ޤ���
���� |
�Ԥ���å����Ƥ����Υ����֥ݥ���Ȥ�PL/pgSQL�㳰�֥��å��Ǥ��ιԤ��Խ����뤳�Ȥ��Ƥ��������� ��Υ�����Хå��ǥ��å��������Ƥ��ޤ��ޤ��� �ʲ�������ޤ��� BEGIN; SELECT * FROM mytable WHERE key = 1 FOR UPDATE; SAVEPOINT s; UPDATE mytable SET ... WHERE key = 1; ROLLBACK TO s; ROLLBACK�塢�Ԥϡ������֥ݥ�������Υ��å����줿�������ξ��֤���餺���¼����å�����ޤ��� ���ߤΥȥ�������ǥ��å����줿�Ԥ��������줿�������줿�ꤷ�����䡢��ͭ���å�����¾���å��˸��夷����硢����ϴ����Ǥ��� ���٤Ƥξ��ˤ����ơ������Υ��å����֤�˺����Ƥ��ޤ��� �ȥ��������θ塢���Υ��å����ޥ�ɤ�³�������δ֤ξ��֤˥�����Хå�������硢���ιԤϥ��å�����Ƥ��ʤ����֤Ȥ��Ƹ���ޤ��� ����ϼ����������Ǥ��ꡢ�����PostgreSQL�����ǽ�������ͽ��Ǥ��� |
���� |
LIMIT���FOR UPDATE/SHARE���ξ������Ѥ���SELECT���ޥ�ɤǤϡ�LIMIT�ǻ��ꤷ���Կ����⾯�ʤ��Ԥ��֤�����礬����ޤ��� �����LIMIT���ޤ��ǽ��Ŭ�Ѥ���뤿��Ǥ��� ���Υ��ޥ�ɤϻ��ꤷ���Կ�ʬ�ιԤ����ޤ��������ΰ������뤤�Ϥ��٤Ƥ��Ф�����å��μ������֥��å�������ǽ��������ޤ��� ����SELECT�Υ֥��å���������줿�����ǡ��ԤϺ������Ƥ��뤫�⤷��ޤ����ޤ����䤤��碌��WHERE���˹��ʤ��ʤäƤ��뤫�⤷��ޤ��� ���Τ褦�ʾ�硢�Ԥ��֤���ޤ��� |
films�ơ��֥��distributors�ơ��֥�ȷ�礷�ޤ���
SELECT f.title, f.did, d.name, f.date_prod, f.kind FROM distributors d, films f WHERE f.did = d.did title | did | name | date_prod | kind -------------------+-----+--------------+------------+---------- The Third Man | 101 | British Lion | 1949-12-23 | Drama The African Queen | 101 | British Lion | 1951-08-11 | Romantic ...
���ƤαDz��len����פ�kind��ˤ�äƷ�̤롼�ײ����ޤ���
SELECT kind, sum(len) AS total FROM films GROUP BY kind; kind | total ----------+------- Action | 07:34 Comedy | 02:58 Drama | 14:28 Musical | 06:42 Romantic | 04:38
���ƤαDz��len����פ�kind��ˤ�äƷ�̤롼�ײ�������פ�5���֤�꾯�ʤ����롼�פι�פ�ɽ�����ޤ���
SELECT kind, sum(len) AS total FROM films GROUP BY kind HAVING sum(len) < interval '5 hours'; kind | total ----------+------- Comedy | 02:58 Romantic | 04:38
���ˡ���̤�2���ܤ����name�ˤ����Ƥ˴�Ť��ƥ����Ȥ�����ˡ��2���㼨���ޤ���
SELECT * FROM distributors ORDER BY name; SELECT * FROM distributors ORDER BY 2; did | name -----+------------------ 109 | 20th Century Fox 110 | Bavaria Atelier 101 | British Lion 107 | Columbia 102 | Jean Luc Godard 113 | Luso films 104 | Mosfilm 103 | Paramount 106 | Toho 105 | United Artists 111 | Walt Disney 112 | Warner Bros. 108 | Westward
������ϡ�distributors�ơ��֥��actors�ơ��֥���½�������������ˡ���Ƥ��ޤ�������ˡ�ξ���Υơ��֥�Ƿ�̤�W�Ȥ���ʸ���ǻϤޤ�ԤΤߤ˸��ꤷ�Ƥ��ޤ��� ��ʣ���ʤ��ԤΤߤ�ɬ�פʤΤǡ�ALL������ɤϾ�ά����Ƥ��ޤ���
distributors: actors: did | name id | name -----+-------------- ----+---------------- 108 | Westward 1 | Woody Allen 111 | Walt Disney 2 | Warren Beatty 112 | Warner Bros. 3 | Walter Matthau ... ... SELECT distributors.name FROM distributors WHERE distributors.name LIKE 'W%' UNION SELECT actors.name FROM actors WHERE actors.name LIKE 'W%'; name ---------------- Walt Disney Walter Matthau Warner Bros. Warren Beatty Westward Woody Allen
���ˡ�FROM����Ǥδؿ��λ�����ˡ�ˤĤ��ơ�������ꥹ�Ȥ�������Ȥʤ�����ξ��������ޤ���
CREATE FUNCTION distributors(int) RETURNS SETOF distributors AS $$ SELECT * FROM distributors WHERE did = $1; $$ LANGUAGE SQL; SELECT * FROM distributors(111); did | name -----+------------- 111 | Walt Disney CREATE FUNCTION distributors_2(int) RETURNS SETOF record AS $$ SELECT * FROM distributors WHERE did = $1; $$ LANGUAGE SQL; SELECT * FROM distributors_2(111) AS (f1 int, f2 text); f1 | f2 -----+------------- 111 | Walt Disney
�����ʤ��顢SELECTʸ��ɸ��SQL�ȸߴ���������ޤ��� ����������ĥ��ǽ��¸�����Ƥ��ʤ���ǽ�⤤���Ĥ�����ޤ���
PostgreSQL�Ǥϡ�FROM����ά���뤳�Ȥ��Ǥ��ޤ��� ����ˤ�äơ��ʲ��Τ褦��ñ��ʼ���������뤳�Ȥ��Ǥ��ޤ���
SELECT 2+2; ?column? ---------- 4
¾��SQL�ǡ����١����Ǥϡ����Τ褦��SELECT��Ԥ�����ˤϥ��ߡ���1�ԥơ��֥��Ȥ�ʤ���Фʤ�ޤ���
FROM��λ��꤬�ʤ���硢�䤤��碌�Ǥϥǡ����١����ơ��֥�Ȥ��뤳�Ȥ��Ǥ��ޤ��� �㤨�С��ʲ����䤤��碌��̵���Ǥ���
SELECT distributors.* WHERE distributors.name = 'Westward';
PostgreSQL����8.1������ޤǤǤϡ��������������䤤��碌������դ����䤤��碌�ǻ��Ȥ���ƥơ��֥���Ф������Ū�ʹ��ܤ��䤤��碌��FROM����ɲä��Ƥ��ޤ����� ����ϡ�ɸ��SQL�˽��äƤ��餺���ޤ������顼��Ƴ���䤹�����ᡢ�ǥե���Ȥ�ư��ǤϤʤ��ʤ�ޤ����� ����ư��˰�¸���륢�ץꥱ�������ˤ�����ߴ������ݤĤˤϡ�add_missing_from�����ѿ���ͭ���ˤ��Ƥ���������
ɸ��SQL�Ǥϡ���ά��ǽ�ʥ�����ɤǤ���AS��ñ�ʤ�Υ����Ȥ��ư���졢��ά���Ƥ�ƶ��Ϥ���ޤ��� PostgreSQL�Υѡ����Ͻ������̾�����ѹ�����ݤˤ��Υ�����ɤ�ɬ�פȤ��ޤ��� �ʤ��ʤ顢���γ�ĥ��ǽ��ͤ���ȡ����Υ�����ɤ��ʤ��ȹ�ʸ���Ϥ������Ƥ��ˤĤʤ��뤫��Ǥ��� ��������FROM���ܤǤ�AS�Ͼ�ά��ǽ�Ǥ���
ɸ��SQL-92�Ǥϡ�ORDER BY��ǻ��ѤǤ���Τϡ���̤���̾�������ΤߤǤ��ꡢGROUP BY��ǻ��ѤǤ���Τϡ�������̾����ʤ뼰�ΤߤǤ��� PostgreSQL�ϡ������ζ��ξ��������Ǥ���褦�˳�ĥ����Ƥ��ޤ� �ʤ������������Ƥ����������ɸ��β����Ѥ���ޤ��ˡ� ����ˡ�PostgreSQL�ǤϤɤ���ζ�ˤ�Ǥ�դμ������Ǥ��ޤ��� ���ǻȤ���̾���ϡ���˷�����̾���ǤϤʤ��������̾���Ȥߤʤ���뤳�Ȥ����դ��Ƥ���������
SQL:1999�ʹߤǤϡ�SQL-92�Ȥξ�̸ߴ������ޤä����ʤ���¿���ۤʤ���������Ѥ���Ƥ��ޤ��� ���������ۤȤ�ɤξ�硢PostgreSQL��SQL:1999��Ʊ����ˡ��ORDER BY��GROUP BY���ᤷ�ޤ���