psql �֗̕��ȃR�}���h \h

PostgreSQL �� psql �ɂ̓w���v��\������֗��ȃR�}���h \h ������܂��B

�g�����͊ȒP�ł��B
�����Ȃ��Ŏ��s����� SQL �̃R�}���h�ꗗ���\������܂��B

db=# \h
  ABORT                            CREATE LANGUAGE       
  ALTER AGGREGATE                  CREATE OPERATOR       
  ALTER CONVERSION                 CREATE OPERATOR CLASS 
  ALTER DATABASE                   CREATE OPERATOR FAMILY
  ALTER DOMAIN                     CREATE ROLE           
  ALTER FOREIGN DATA WRAPPER       CREATE RULE           
  ALTER FUNCTION                   CREATE SCHEMA         
  ALTER GROUP                      CREATE SEQUENCE       
  ALTER INDEX                      CREATE SERVER         
  ALTER LANGUAGE                   CREATE TABLE          

�����ɃR�}���h��t����ƃR�}���h�̐�����\�����܂��B

db=# \h COPY
Command:     COPY
Description: copy data between a file and a table
Syntax:
COPY tablename [ ( column [, ...] ) ]
    FROM { 'filename' | STDIN }
    [ [ WITH ]
          [ BINARY ]
          [ OIDS ]
          [ DELIMITER [ AS ] 'delimiter' ]
          [ NULL [ AS ] 'null string' ]
          [ CSV [ HEADER ]
                [ QUOTE [ AS ] 'quote' ]

SQL �R�}���h�̎g������Y�ꂽ�Ƃ��� �茳�Ƀ��t�@�����X���Ȃ��Ă� ���̏�Ŋm�F�ł���̂� �֗��ł��B

�^�C�v�q���e�B���O

PHP5 ����^�C�v�q���e�B���O���g�p���邱�Ƃ��ł��܂��B ����͊֐��̈����̌^���w�肷�邱�Ƃ��ł��܂��B

���̂悤�Ɉ����̑O�Ɍ^��錾���܂��B

function test(array %values) {
    .....
}

����� $values �͔z����w�肵�Ȃ��ƃG���[�ɂȂ�܂��B

�������z��ƃI�u�W�F�N�g�^������ int �Ȃǂ̃l�C�e�B�u�^�ɂ͎w�肷�邱�Ƃ��ł��܂���B

�z���`�̗D����

PHP �ł͔z����`����Ƃ����̂悤�� �Ō�̗v�f�̌��ɃJ���}�������Ă��G���[�ɂȂ�܂���B

$a = array(1, 3, 4,);
                 ~~

���̂悤�ɒ�`�����ꍇ�A�z��̗v�f���� 3 �ł��B �Ō�̃J���}�͖��������킯�ł��B

�Ȃ������Ȃ��Ă邩�ł����A �z��́A�v�f������������A�z�z�񂾂Ǝ��̂悤�ɒ�`���邱�Ƃ�����܂��B

$b = array('a' => 3,
           'b' => 2,
           'c' => 5);

4 �‚߂̗v�f��lj�����Ƃ��́A�Ō�̗v�f�̌��ɃJ���}��t���āE�E�E�� ���Ȃ��Ă͂Ȃ�܂���B

�Ƃ��낪���̂悤�ɒ�`���Ă���ꍇ�A�S�Ă̗v�f�̍s�𓯂��悤�Ɉ������Ƃ��ł��܂��B

$b = array(
        'a' => 3,
        'b' => 2,
        'c' => 5,
);

�����l�ɁA�ƂĂ��D�����ł��ˁB �����ƋK��ɂ��Ă��܂��΁A������̕����~�X�����Ȃ��ėǂ��񂶂�Ȃ��ł��傤���B

����� Perl �� JavaScript, Java �Ȃ񂩂ł������ł��B

psql �� SQL �̎��s���Ԃ��v������

PostgreSQL �� psql �ł� \timing ���g���� ���s���Ԃ��v�����邱�Ƃ��ł��܂��B

db=# \timing
Timing is on.

����Ōv���� on �ɂȂ�܂����B
��͒ʏ�ʂ� SQL �����s���܂��B

db=# select 1;
?column?
----------
        1
(1 row)

Time: 2.422 ms

���� 1 �x���s����� off �ɂȂ�܂��B

db=# \timing
Timing is off.

SQL �Ŋ֐��쐬

PostgreSQL �� PL/pgSQL ���g���� ORACLE �� PL/SQL �̂悤�� �֐�����邱�Ƃ��ł��܂��� �葱������� SQL �ł��ȒP�Ɋ֐�����邱�Ƃ��ł��܂��B

���̂悤�ɒ�`���܂��B

CREATE FUNCTION test_func (
     i1 integer,
     i2 integer
)
RETURNS integer
AS
$$
    SELECT $1 + $2
$$
LANGUAGE sql IMMUTABLE STRICT;

�Ăяo���Ƃ��͓����ł��B

db=# SELECT test_func(4, 3); 
7

Google �T�C�g������

Amazon�A�\�V�G�C�g