Linux �� Database-SQL-RDBMS HOW-TO ��� (PostgreSQL ������p��Ʈw�t��)
�@�̡JAl Dev (Alavoor Vasudevan) [1]
[email protected]
Ķ�̡J���F�d [2]
[email protected]
�@�E�E�E�~�@��K��A11.0��
_________________________________________________________________
�����O�@�����Цp��b Unix �t�Χֱ��a�إߤ@�� SQL ��Ʈw���
(Database Engine) �Ϋe�ݤu�㪺�u��Ϋ��n�v�C���]�Q�װ�ڼзǪ�
ANSI/ISO SQL �y����Q�b���p��u�}�}�o�v��� ("open
development" environment) �}�o SQL ��Ʈw������u�I�C���O���p��b
Unix �t�Τ��إ� PostgreSQL �o�ӬJ�i�Χ@���ε{����Ʈw���A��
(Application Database Server)�A�S�b�Χ@�U�����Ʈw���A�� (Web
Database Server) ���s�@�N������p����Ʈw�CPostgreSQL ���� 1998,
92, 89 ����ڼз� ISO / ANSI SQL�C�����]��������Ʈw�������{���A�p
�e�ݹϹ������B���ε{�����t�}�o (Rapid Application Development) �u��
�BODBC�BJDBC �X�ʵ{���BC�BC++�BJava�BPerl �{���y�������M��W��Ʈw�u��
�C�o�̴��Ѫ���ƾA�Ω�Ҧ� Unix ���x�Ψ�L��Ʈw�A���Ʈw�BSQL �y����
PostgreSQL ���s��D�`���ΡC�o�̴��Ѫ���ƾA�Ω�Ҧ� Unix ���x�ΩҦ���L
SQL ��Ʈw�C�o���Ʈw�BSQL �y���M PostgreSQL ����Ǫ̷|�D�`���ΡC�o��
��]���@�� SQL ���ɽסA��� SQL ���y�k�A���Ǫ̫D�`���ΡC���g�窺�ήa
�|ı�o�o�O�@�����Ϊ��ѦҸ�ơC��ǥͨӻ��A�o�B���Ѫ���Ʒ|��L�̱o��
PostgresSQL ��p����Ʈw�����{���X�A�q�ӾDzߦp��s�g�@�Ӫ�����p�� SQL
��Ʈw�C
_________________________________________________________________
1. �ި�
2. �����L�榡
3. ���z�w�ߤ]�A�Ω�q���n��I
4. PostgreSQL �O����H
5. ��B���o ?
6. PostgreSQL �䴩�W�L 200 Gig ���W�Ÿ�Ʈw
7. �̤���۫H PostgreSQL�HRegression ���ծM�� (Regression test package) ���Τ��
�߫H��
8. PostgreSQL ���e�� GUI �u��]�Ϲ��ϥΪ̬ɭ��^
9. PostgreSQL ����X�}�o��Ҥu�� (GUI IDE)
10. PostgreSQL �������X�ʵ{��
* 10.1 PostgreSQL �� ODBC �X�ʵ{��
* 10.2 PostgreSQL �� UDBC �X�ʵ{��
* 10.3 PostgreSQL �� JDBC �X�ʵ{��
* 10.4 PostgreSQL �� Java
11. PostgreSQL �� Perl ��Ʈw���� (Database Interface, DBI)
* 11.1 PostgreSQL �� PERL 5 ����
* 11.2 Perl ��Ʈw���� DBI
12. PostgreSQL �z�u��
* 12.1 PGACCESS - PostgreSQL �z�� GUI �u��
* 12.2 PostgreSQL ���������ʦ��d�ߤu��]WISQL �� MPSQL�^
* 12.3 �W�� PSQL �� PostgreSQL ���ʦ��d�ߤu��]ISQL�^
* 12.4 MPMGR�XPostgreSQL ����Ʈw�z�u��
13. �u�ϥΤ@����ܾ� (monitor) �ӫإߦh�x PostgreSQL �q��
14. PostgreSQL �����ε{���M�u��
* 14.1 PostgreSQL �� 4GL �U�����Ʈw�{���XAppGEN �}�o�t��
* 14.2 PostgreSQL �����p����XDBENGINE
* 14.3 PostgreSQL �� Apache ���A���ҲաXNeoSoft NeoWebScript
* 14.4 HTML �� HEITML ���A���ݩ����M�@�� PostgreSQL �� 4GL �y��
* 14.5 PostgreSQL �� America On-line AOL �U����A��
* 14.6 PostgreSQL ����� / �p���l�ܨt�ε{���u��(Problem/Project
Tracking System Application Tool for PostgreSQL )
* 14.7 �� dbase �� dbf ���ഫ�� PostgreSQL
15. PostgreSQL �����p���Ʈw�]�p/�����u��XEARP
* 15.1 EARP �O����H
* 15.2 �I��
* 15.3 �A�ݭn����Ӱ��� EARP
* 15.4 ���p��u�@�H
* 15.5 ��B���o EARP�H
16. PHP Hypertext PreProcessor�XPostgreSQL �����A���� html �O�J�R�O�Z�y��
* 16.1 �D�n�S��
* 16.2 �W�A
* 16.3 PHP 3�X²�v
* 16.4 ����A�گ�� PHP/FI ������H
* 16.5 �@��²�檺�Ҥl�J
* 16.6 CGI ��V (CGI Redirection)
* 16.7 �b���O���� PHP/FI
17. PostgreSQL �� Python ����
* 17.1 �p��o PyGres�H
* 17.2 ��ƩM�䴩
18. PostgreSQL �M�U����h�� (gateway) �XWDB-P95
* 18.1 ��� wdb-p95
* 18.2 PostgreSQL ���A���Bpgperl �M httpd �O�_�ݦb�P�@�q���H
19. "C", "C++", ESQL/C �y�������M PostgreSQL ���v��B�⤸ (Bitwise Operators)
* 19.1 "C" ����
* 19.2 "C++" ����
* 19.3 ESQL/C
* 19.4 PostgreSQL ���v�줸�B�⤸
20. PostgreSQL ����尲�W�X (Kanji Code)
21. ���� PostgreSQL ���� 95 / ���� NT
22. �q�H��
* 22.1 ���o�K�O�q�l��f
* 22.2 �^��q�H��
* 22.3 �q�H�¦s�w
* 22.4 ��Z����q�H��
23. ���M�ѦҮ�
* 23.1 �Τ��ީM������
* 23.2 �u�W���
* 23.3 ���Ϊ��ѦҮ�
* 23.4 ANSI/ISO SQL �W����XSQL 1992, SQL 1998
* 23.5 ANSI/ISO SQL 1992 ���y�k
* 23.6 ANSI/ISO SQL 1998 ���y�k
* 23.7 ��Ǫ� SQL �ɤ�
* 23.8 SQL92 ���ɺA���� (Temporal Extension)
* 23.9 �Ĺs�����X���o ISO/ANSI SQL ���
* 23.10 �Ĥ@�����XISO/ANSI SQL ��e���p
* 23.11 �ĤG�����XISO/ANSI SQL �� (ISO/ANSI SQL Foundation)
* 23.12 �ĤT�����XISO/ANSI SQL �I�s�Ť��� (Call Level Interface)
* 23.13 �ĥ|�����X ISO/ANSI SQL ���[�x�s�Ҳ� (Persistent Stored
Modules)
* 23.14 �Ĥ������X ISO/ANSI SQL/���X (Bindings)
* 23.15 �Ĥ������XISO/ANSI SQL XA �����W�� �]SQL/XA�^
* 23.16 �ĤC�����X�ɺA ISO/ANSI SQL
* 23.17 �ĤK�����XISO/ANSI SQL MULTIMEDIA (SQL/MM)
24. PostgreSQL ���N�䴩
25. �g�٩M�ӷ~�譱
26. ��L��Ʈw���W��
27. �U����j�M����
28. ����
29. FAQ�X��� PostgreSQL �����D
30. ���v�q��
Appendix
31. �����ҡXANSI/ISO SQL 1992 �y�k
32. �����A�X��Ǫ� SQL �ɤ�
* 32.1 PostgreSQL �ɤ�
* 32.2 ���p�� URL ����
33. �������XLinux �ֳt�w�˫���
_________________________________________________________________
1. �ި�
����D�n�ؼЬO���Ѥ@�����]�w PostgreSQL �Ժɪ� URL �W��A�M���Ҷ}
�l�X�t�ΡA�p PostgreSQL�BLinux ���n�B�C
�@�ɤW���C�@���q�����ݭn�@�Ӹ�Ʈw�Ӧs����ơC�A�ϥιq���D�n�z�ѬO�Ψ�
�x�s�BŪ���M�B�z��ơA�ӥB���̫ܧ֧����u�@�A�]�Ӹ`�٧A���ɶ��C�P�ɡA�t
�Υ���²��B����B�����B�i�a�B�g�٩M���ΡC��Ʈw�O�̭��n���t�ΡA�]����
�x�s�F�@�ɤW�C�@�����q������ơC�̬y�檺��Ʈw�t�γ���q��ڼзDz�´
(International Standard Organisation, ISO) ���W��A�ӳo�]�O��q ANSI
SQL�]����^ �W�檺�C�~�ɱ`�Ϊ��̷s�W��O ISO/ANSI SQL 1992�C�U�@�Ӽз�
�O SQL 1998/99�A�S�W SQL-3�A�o���b�}�o���C�y�檺��Ʈw�A�p Oracle
�ASybase �M Informix ���O�ھڳo�ǼзǡA�ι��չ�I�o�ǼзǡC
�@�W���W�L�G�Q�Ӥ��P���ӷ~/���p���Ʈw�t�ΡA���[���N�Ӥ���٦���h�C�p
�G�S���@�ӹ� ANSI/ISO SQL ���зǡA�Ȥ�n�إߤ@�ӵ{���Ӧb�Ҧ�����Ʈw��
�ΫK�|�Q���x��C�Ȥ�Ʊ�@���L�ϥ� ISO SQL�AODBC�AJDBC �o�i�@����γn��
�Ӧb�@�W�Ҧ�����Ʈw�t����ΡC
�@�W�ۥѦӤ䴩ISO SQL�AANSI SQL/98�ASQL/92 �M ANSI SQL/89 ����p�����
�w (RDBMS) ���A�̬y�檺�O PostgreSQL�CPostgreSQL �O�s�@�N��������p����
�Ʈw�A�ӥ��Ӫ� ANSI SQL �зǦp SQL 1998 (SQL-3) �Ψ��N�|��ۭ������
�Ʈw�Ϊ����ƧκA�CPostgreSQL �O�ߤ@�P�ɤ䴩�����Ʈw�� SQL ���ۥ�
(free) RDBMS�C�����|�i�D�A�p��w�˳o��Ʈw�B�p��إߺ�W��Ʈw�B����
�n���Ʈw�B�e�ݹϹ������M�����{���C�ڱj�P��ij�A�Ҽg����Ʈw�n����
���ʲŦX ISO/ANSI SQL�BODBC�BJDBC ���зǡA�o�ˡA�A���{���~���Ө줣�P��
��Ʈw�A�p PostgreSQL�BOracle�BSybase�BInformix ���C
�A�i�b PostgreSQL �o��̰����ΫD�`�״I���\��A�]�����̱q�u�}�l�X
�}�o�Ҧ��v (Open Source Code development model)�C�}���{���X�Ҧ��|��
�A���㪺���{���X�A�}�o�L�{�b���p��W�Ѧ��j�q���H��ѻP�i��C�ثe���Ͷ�
��ܥ��Ӥj�������n��}�o�u�@�|�b�@�ɳq�檺�ҿסu��T���t����v�W�i��C
���ӼƦ~�A���p��|�z���ʦa�����A�o�˷|�ϧ�h��Ʈw���s�ϥ� PostgreSQL�C
�ǧ�έp�ǡB�ƾǩM��Ǫ���z���Ω�n����A�ڭ̥u�|�b�@�Ӧp
PostgreSQL ��A�ⷽ�{���X�}�g��T���t����sô�b�@�_���j�q�Y�����t��
�U�A�~��o��̰������n��C���ҿ���s�q�C�}�{���X���Ҧ��]�i����
���Фu�@�A�D�`�g�١A�`�ٴ��G�ɶ��ΦX�Ŧ���̨Τưꤺ�M���y�귽���g�٩w
�ߡC�u�n���H�g�n�F�@�ӳn��A�A�K���ݭn�A�Ӥ@���C�A���|���O�ɶ��w��
�n���F��C�@�o�����@�o���A�A�n�n�n�Q�ΡA�]���H�@�ѥu���K�p�ɤu�@�I�b��
�̽�J�ܤ@�@���ɡA�ڭ̨��o�һݳn��k�N�|���ܡC�ήa���Ĥ@��ܱN�|�O
�p PostgreSQL�BLinux ���}��t�ΡC
�ʶR�i���檺�n�N��A�֦��n��C���{���X�O�öQ���겣�A�G���ɨõL����
�C�ʶR�n��@�i��|�������v�C�A�u�ݭn�R�n���w��A���b�w��W�ӱq���p��
�W���o�n��O�ȱo���C���I�O�u�@�q�j���q���w��C�w��~�O�u���]�ʪ����ǡA
�n��u�O�@���e�C�q���w����{�רϱo���y 180 �Ӱ�a���u 6 �����S�X�]
�p�ΥͲ��q�������M�w��O�C�o�O�@�إ��i����ޡA�L�{�D�`����A���K
���A�]�t�ΥͲ� 0.18 �L�̬�ު���������e�j�C�b�@�p�������W�K���ƥH�ʸU
�p���b����M�q��b�@�_�CApplied Material�BAMD�B�^�N���BCyrix�A���
�AIBM �Ψ�L�u�q��O�j�q�H-�~ (man-years) �b����ޡA�p�����]�p�B�L�q�l
�ηL���q�l����s�W�C�L�̥N��ʸU�����@�� (10^-6)�A�L���̥N��Q�������@
�� (10^-9)�C�{���L�q�l�N���A0.35 �L�̪��ϥξT�@����A0.25 �L�̪��ϥ�
�ɡC���[�N�Ӥ���A�λɪ� 0.10 �L�̧N�A�ƭP�L���q�l�N�N�|���Ω�q��
�����C�]���ɾɹq��O���j�A�T����N�|�Q�^�O�C�b��k����
(photolithography) ���L�{���A�����W�����~�u�BX-�g�u�ιq�l��|�Q�Ω��k
(etch) �S�x�j�p (feature size) �p�� 0.15 �L�̪��q��C ����G�Q�~�A����
�N�|�Q���l�q�� (molecular) �M�ͪ����� (bio chips) ���N�C���̪��t�ױN�|
���ּƤQ�����I���l�O�@�խ�l�C�ӭ�l�զ��Ҧ��A�b�@�W�Ҩ�������C ��
�l�q���|�Ϊ��誺���l�ӷ�W�֪��q�l�}���C�}�� (ON)���ᥦ���� 1�B���
(OFF) ���� 0�C�@�W�Ҧ��q���{�����O�ھڤG���ơ]�Ʀr 1 �M 0�^�B�@�C �U
��C�X�����N���i�B�Υ��ӵo�i�ͶաC
���Ӵ�������O���i�i
********************
+--------------------------+---------+---------+---------+---------+--------+--
-------+
| ����/�~�� | 1997 | 1999 | 2001 | 2003 | 2012 | 2
020 |
+--------------------------+---------+---------+---------+---------+--------+--
-------+
| �S�x�j�p�]�L�̡^ | 0.25 | 0.18 | 0.15 | 0.13 | 0.05 |<
0.00001|
+--------------------------+---------+---------+---------+---------+--------+--
-------+
| �����j�p�]���̡^ | 200 | 300 | 300 | 300 | 450 |��
��/���l|
+--------------------------+---------+---------+---------+---------+--------+--
-------+
| �̧C�B��q�� | 1.8-2.5 | 1.5-1.8 | 1.2-1.5 | 1.2-1.5 | 0.5-0.6| <
0.001 |
+--------------------------+---------+---------+---------+---------+--------+--
-------+
| �̤j�\�v���� | 70 | 90 | 110 | 130 | 175 | 6
00 |
+--------------------------+---------+---------+---------+---------+--------+--
-------+
| �B��W�v (MHz) | 750 | 1,250 | 1,500 | 2,100 | 10,000 | >
50,000|
+--------------------------+---------+---------+---------+---------+--------+--
-------+
| DRAM �e�q | 256 MB | 1 GB | 2 GB | 4 GB | 256 GB | >
1000GB|
+--------------------------+---------+---------+---------+---------+--------+--
-------+
�p�A�Ҩ��A�w��~���n�M�ݭn����ޡA�n��ҥΪ���N��²��C�]���A�Ͳ�
�w����a�g�٫D�`���n�I���ײ{�b�Υ��ӡA���d�f�BDell�B�@���B�f���B�U��
�ӷ~�������q���X���ӳ��|�O����g�٥D�n�^�m�̡I
�t�@�譱�A�@�W�C��a���|�o�i�n��C�ƹ�W�A�@�W���@�Ӿ֦��@���C���q��
���H���i�g�X�@�� Oracle ��Ʈw���A���A���L�j���n��Q�~�ɶ��]Oracle ���
�w���A���O�j���Q�H-�~���u�@�^�C�@�H-�~�O���@�ӤH�@�~��¾���u�@�q�C�p�G
�Q�ӤH�u�@�@�~�A�o�u�@�q�K�O�Q�H-�~�C
�� Oracle�AInformix�ASybase�AIBM DB2 (Unix) ����Ʈw�A���O�� "C" �y���g
���A�G���ɫh�O�νsĶ�����͡A�o�˫K�i��Τ�F�COracle�BSybase
�BInformix ��Ʈw�O�ʤ��ʪ� C �{���I�I
�Q�G�~�ӡA�H�̤w�b PostgreSQL �W���F���֨ơA�q�Y�гy�t�@�ӲŦX
ANSI/ISO SQL ����Ʈw�t�Ψä��X�ű`�z�C�b PostgreSQL �����{���W�[�W���
���\��αN���[�j�A����ߨ�ϥΡA���ܤj�n�B�C
PosrtgreSQL ���W�O�ӧK�O����Ʈw�A���]�O�@�Ӱ������u���p��~�v�C��
��p�A��u���p��s�y�v�����~���ݨD�N�|�H���ƯżƼW���A�]�����i��ô�@��
�����B�C�����e�j���ϥΪ̤ζ}�o�H���C���ϥΡu���p��s�y�v�����~����a
�|���L�o���u���p��R�v�ӳQ��L��a�j�j����C�o�O�]�����p����N�O�@
�W�̤j���n�q�I
2. �����L�榡
�����H�Q�ؤ��P���榡�X���A�Y�JDVI�BPostscript�BLaTeX�BLyX�BGNU-info
�BHTML�BRTF�]Rich Text Format�^�B�¤�r�BUnix man pages �� SGML�C
* �A�i�q
[3]
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats/ �o�쥻
HOWTO ��� HTML�BDVI�BPostscript �� sgml �榡����@ tar �ɮסC �]Ķ
���J sunsite.unc.edu �w��W�� metalab.unc.edu�C�^
* �¤�r�����h�b�J [4]
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
* ��L�y����½Ķ�A�p�k��B�w��B��Z����B����B���h�b
[5]
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO �ڹ�½Ķ�����L�y
�������U�L���w��C
�����ϥΤ@�ӦW���uSGML Tool�v���u��s�g�A���i�b
[6]
http://www.xs4all.nl/~cg/sgmltools/ �o��C �s�n���{���X��A�A�|�o
��H�U�����O�J
* sgml2html databasehowto.sgml �]���� HTML �ɡ^
* sgml2rtf databasehowto.sgml �]���� RTF �ɡ^
* sgml2latex databasehowto.sgml �]���� LaTeX �ɡ^
�������J
* [7]
http://sunsite.unc.edu/LDP/HOWTO/PostgreSQL-HOWTO.html
�A�]�i�b�H�U���M�g�x�W��쥻���J
* [8]
http://www.caldera.com/LDP/HOWTO/PostgreSQL-HOWTO.html
* [9]
http://www.WGS.com/LDP/HOWTO/PostgreSQL-HOWTO.html
* [10]
http://www.cc.gatech.edu/linux/LDP/HOWTO/PostgreSQL-HOWTO.html
* [11]
http://www.redhat.com/linux-info/ldp/HOWTO/PostgreSQL-HOWTO.ht
ml
* ��L�M�A�۪�]�H��a�}�ӻ��^���M�g�x�i�b
[12]
http://sunsite.unc.edu/LDP/hmirrors.html ���C�п�ܤ@�ӤΫe��
/LDP/HOWTO/PostgreSQL-HOWTO.html �ؿ��C
�]Ķ���J�������e�j���X�f���ثe�u�� LaTeX�BLyX�BHTML�B�¤�r�M
SGML �榡�C�i�b [13]
http://www.linux.org.tw/CLDP/HOWTO/ ���C�ӭn����
������A�A�ݭn bg5sgmltools�A�i�b [14]
http://www.linux.org.tw/CLDP/
���C�^
�n�ݥ���� dvi �榡�A�Шϥ� xdvi �{���C�b Redhat Linux ���A�A�i�z�L
ControlPanel | Applications | Publishing | TeX ���s���
tetex-xdvi*.rpm �M��A���Y�� xdvi �{���C
�n�\Ū dvi ���A�ϥΫ��O
xdvi -geometry 80x90 howto.dvi
�Ψϥηƹ��վ����j�p�C�аѾ\ xdvi �� man page�C
�s��ɨϥνb�Y��BPage Up�BPage Down ��A�A�]�i�ϥ�
'f', 'd', 'u', 'c', 'l', 'r', 'p', 'n' �r�����
�W���B�U���B�m���B�줧�e�B����@�������C
�n����M�a�ؿ� (expert menu) �� 'x'�C
�A�i�ε{�� 'gv' (ghostview) �� 'ghostscript' �Ӿ\Ū postscript �ɡC�b
RedHat Linux ���Aghostscript �{���O�b ghostscript*.rpm �M�˳n��Agv �h
�b gv*.rpm�C�A�i�z�L ControlPanel | Applications | Graphics ���s��쥦
�̡Cgv �{���� ghostscript ���αo�h�Cghostscript �M gv �]�i�b��L���x�A
�p OS/2�B���� 95 �� NT �o��A�A�]�i�b�o�ǥ��x�\Ū�����C
�n�\Ū postscript ���A�ϥΫ��O
gv howto.ps
�n�ϥ� ghostscript�A�ϥΫ��O
ghostscript howto.ps
�`�N�J�����ܪ��A�p�G�A�Q�L�X�o postscript �ɡA�j���ݭn 113 ���C �]Ķ
���Jgv �O ghostscript ���@�ӫe�ݬɭ��A�ҥH�Y�ϧA�u����� gv�A�A�]�n�w��
��̡C���~�A�b OS/2 �M�������èS�� gv�A�u�� GSView�A�@�өM gv �\��t��
�h���{���C�Ա��а�� [15]
http://www.cs.wisc.edu/~ghost�C�^
�A�i�ϥ� Netscape Navigator�AMicrosoft Internet Explorer�ARedhat Baron
Web Browser �Υ���L���U�����s����Ӿ\Ū HTML �榡�����C
�A�i�� LyX�ALaTeX ���@�� X-Window �e�ݤ����Ӿ\Ū LaTeX �M LyX �ɡC
3. ���z�w�ߤ]�A�Ω�q���n��I
�o���|������Ǧb���P�ƪ��A�p�n��B�t�z�B��l�B��q�ƦܧA�ۤv���гy�L�{
����t�p�n������C�]�|���������Ǫ��Ѧb�ϥά�Ǫ����~�e�D�`���n�C
����]�A�Ҧ��F��X�p PostgreSQL�B�ɶ��B��q�B��q�B��P�B�j���B��G�B��
�P�B�Ȫe�B�P�ΡB�H��������O��ǥͦ����C�o���]�|������ǩM�έp�ǩw�ߦp
����}���l�X�A�p PostgreSQL �M Linux�C���p��t�רC�鳣�b�W���A�]
�V�ӶV�i�a�A�}�{���X���ʶq (momentum) �|���t�W�[�C�t�~�A�p�G�έp��
�ά�ǩw�ߥ��T���ܡA�ʳ����{���𦭷|�b�@�W�����C
�H�U�Ƭq�|�����J�u��ǬO�p��s�x�B����H�����n�ʤΥ��p����
PostgreSQL�BLinux ������n��p���C�v
�o�i PostgreSQL �o��p���ݭn��q�M�ɶ����귽�A�]���APostgreSQL �O��q�M
�ɶ������~�C��q�M�ɶ��u��b��ǤW����A�ҥH���z�ǩM PostgreSQL�BLinux
����n��M�O��������p���C
��ǡ]���z�^�w����Ω���a��B���ɶ��B���u�@�A�Ʀܶ}�o�n��M��
�C���z�ǧY�Ϧb�A���ܡ]�n�i�^�B�B��]�a���M�}�����������O�^�B�ݮѩM�s�g
�n��ɳ��o�ͧ@�ΡC��Ǫ����P����A�p���z�ǡB�ƾǵ��̲׳���¦���O�ƾǡ]
�Q�٬���Ǥ��� (Queen of all Sciences)�^�C�@�W�Ҧ��ƪ����Ӯک�ƾǡA�]
�A PostgreSQL�CPostgreSQL �ϥΤF�ƾǪ��@�Ӥp���K���{�N�N�ơ�(Modern
Algebra)�C�{�N�N�ƳB�z�����X�ס�(Set Theory)�B����Y�N�ơ�(Relational
Algebra)�B�s�� (Groups)�B�� (Rings)�B���� (Collections)�B�� (Sets)�B�p
�X (Unions)�B�� (Intersections)�B�ƥ� (Exclusions)�B��� (Domains)�B
�ƦC (Lists) �����C
PostgreSQL �o����~���ҥH�s�b�A�K�O�]����q�M�ɶ��C���O�гy�@�ɡB���l�M
��L�F�誺��q�C�ӽ�q�M��q�O�P�@�ƪ��I���ۦP���ƹ�b�@�ʦ~�e������
�H�Ҫ��I�]Ķ���J���ܾA�Φ� 2005 �~�J�^
�H�������ӭM�b�u�@�]�s�g�{���^�ɷ|���ӯ�q�A��Ӧۭ������ƾǯ���Ƭ��q
��μ���C�Y�Ϧb�A�\Ū�o�q��r�ɡA�A�������ӭM�K�|���ӿU�ƤΨϥΤp�q��
�q�C�ҥH�ߧY����\Ū�I�I���g���]���ӭM�^����q���ʥi�b����Ǥ��q�סC��
�p�������Ψ�L��q������q���ʪ��������C�]�N�O���A�H���O�@�x���O��
�W������ (thermodynamic heat engine)�C���]���o�ˡA���O�Ǫ��w�ߤ]�A�Ω�
�H���A�]�N�����a�v�T�� PostgreSQL �@��n��C
��Ǩӻ��A�إߤ@�Ӧʤ��ʧ����ΨS�����~���t�Ωβz�ס]�]�A��Ʈw�t�Ρ^�O
���i��C�o�N�������A�ڭ̥ä��i���F�������t�Ωβz�׳o�ؼСC�Բ�
���ƾǤ�{���M�Q���ҩ��F���������t�Ρ��]�����������t�Ρ��]�O�^�ä��i��
�X�{�C�o�O�@�Ӷi�������D�A�W�X�F���媺�Q�d��C�ӳo�˪��Q�ײo�A��L��
������ (dimemsions)�]�ΰ��� (primay dimensions)�^�A�o�O�b�j�۵M���s
�b���C�����a�A�H��u��ݨ�M�P��|���A���ƾǥi�����ݨ��L���ơC��L��
�Ƥ��l���L���a�Ӥp��(infinitely smaller)�A�ӭ�l�����w�p�o�ײ��ݤ���
�I�ƾǬO�D�`���O���F��A�]�������R�M����ڭ̦t�z���ͦ��C �b��L�t�z��
�ӡA�ڭ̪��t�z�X�G�S���j�p�A�Ϥ���M�C�Y�O���A���L�t�z���H�ӻ��A�ڭ�
���t�z�ä��i���]���s�b�^�I�Ϥ���M�I�I
�z�פW�A�A�i�H��}���B���t�z�A���Ϊ���ɶ��W�V�������Z��]�ƻ����~�^
�A����b���P���ɪŦ^�k�t�z�I�ڭ̪��t�z�M��L�t�z���Z��ƹ�O�s�I
���M�Ŷ����L�����ơA���̳��i�q�p�q�������͡C�]�N�O���A�L���Ӻ��ƥi
�X�֬����C���i�l����L���ƦӤ��Q�}�a�C�ƾǮa�ϥΰ��Ӳz�Ѧt
�z���ͦ��C�A�Ҩ��B���t�z�}�l��ƥH�Q���~�e�]���G�ʻ��~�e�^�A�Ѩ�L�t�z
���ɤl�����ʲ��ͪ����@���j�z���C�b�j�z�����e�u���@�I�A�S�����סB�S����
�סB�S���ūסB�S���ɶ��]�Y�S���ڭ̪��t�z�I�I�^�A��L�t�z�M���h�s�b
�C�ɶ����s�b�A��l�B�ڬP�B��P�B�Ȫe�]���s�b�I�A�餺����l���s�b�I�ɶ�
�ϥͫe�A�H�g�o�ͫܦh�ƤF�C
�j�z���M�]���ϥͪ��ڭ̪��t�z�O�ѰŶ�����l�y�����C���H�B�]���F��H
�^����F��L�Ŷ����X�ӭ�l�Ӳ��ͧڭ̪��t�z�A�s���ɶ��B���B��B���U�ת�
���ϥͤF�I�ڭ̬ݨ�@�ǽu���C�H����������F�ѳo�L�{�C�H�̥����զb�����
������j�z���Ӳ��ͨ�L�t�z�]�ڬw���b�سy�j�����[�t�� (accelerator)�A�b
�F�Դ� (Dallas) ���t�@�y�h�]�����|�d��]�F�w��Ӱ��ءC�^��L�Ŷ�����
��l�A�N���ڭ̪��@�ˡC�z�פW�A�ڭ̥i�гy�M���͵L���Ӧt�z�I�o�ǹL�{�O�i
�f��A�Y�ڭ̪��t�z�i�����������ܬ���L�Ŷ����ƭӭ�l�I�@�����������
�K�O�A�p��]��ӲӭM������A�y���@�ӲӭM�Ӧ����A�C���Ӥp�p���ӭM������
���W�A���ͤ��U���ӲӭM�M�ܦ��@�Ӥ��ذ����H�]�A�I�^�C�H��M�t�z���@�Ǭ�
�����B�A�t�z�M�H��ۦ��A�]���ͦ��C
���������A�]�����������A�]�O�^�õL�i��A�t�z���ͦѯf���O�@�Ӵ`��L�{
�C�����������`�ä��s�b�A��ǥu�e�\�ഫ (transformation)�I�ڭ̪��t�z���H
�����t���X�i�A���ä��R��A�ӬO�D�`�ʺA�C���ٷ|�~���X�i�A�������L��
�������O���z�Z�ϥ��Y��A�ñN���l���M�P�ơI�I����ӥi��ʡX�q�¬}������
�̦t�z����q�]�@�ӽw�C���L�{�^�A�αq�լ}�`�J�s����q�]�@�ӧֳt���L�{�^
�C���ƥH�ʸU�p�Ӧt�z�s�b�A���u���p�ƬO�Ѱ����Ƴy�����C�A�ä��u�O��
�̦t�z����l�զ��A�٦���L���Ŷ�����l�I�¬}�|�l�J�ڭ̦t�z����l�M�ɤl
�A������ƤΦ�����L�Ŷ����ɤl�I�b�¬}���ߡA���סB��װ��שM�ɶ����O�s
�I�¬}�O��L�t�z���X�J�f�C��L�t�z���X�J�f�i�b���a��X�{�A�]�A�A����
���I
�@�W�i���L�����C��B�q���y���B�����]�p�M�z�סA�����i��@�ا������C��
�B�q���y���B�]�p�M�t�ΡI�A�ү�o�쪺�u�O��G�������C��]�i���^�B�t�ΡB
��Ʈw�βz�סI�j�۵M�N���@�ӸU�ᵩ�C
��@�W�ƦʸU�����q���X�_�ӡA�ϱo�إߤ@�Ӫ�G�������t�Ρ]�]�A��Ʈw
�n��^�ܱo���i��C�t�x���A���y�ۺ��j�q�H�ⶰ�X�_�ӡA�L�̪��`��q
�|�D�`�e�j�A�ӥB�i������إߤ@�Ӫ�G�������t�ΡC�H��O�֦�������q�θ�
�����ͪ��A�g�`�|�ǤU���P�{�ת����~�C�]���H�̥ǿ����ɦV�|�̯S��ޯ�B�S
��g��M�߱����Ҥ��P�A�ڭ̥i�Ƕ��X���P���H�@�P�V�O�Өϱo�o�{�M�M���H��
�y���n��~��e���C���~�A��h�H�N���h�u�@�ɶ��Υ\��C
�ܩ��V�A���p��i�sô�ܦh�H�A�]�N�O�����p��j�q��q�M�ɶ��A�i�Τ߳n��
���q��u���ɶ����ͧ����n��C�Y�ϬO�L�n�BIBM ���j���q�]���i�H�ܪ�
�z�w�ߡA�ӥ��|�V���z�w�ߧ뭰�C
�ثe�@�ɤW�w���Ӧh�H ANSI/ISO SQL �o�@�ӳW�欰�ؼЪ� SQL RDBMS ��Ʈw�C
�H����i�A���O�ɶ��b���ͬۦ��ƦܬۦP���n��A����ǤW����h�ȱo�`�N���D
���C
���O�J�]����Ǫ��w�ߡA���}���l�X���t�ΡA�� PostgreSQL�BLinux �|��
�ʳ���l�X���t��u���C�o�O����Ǯھڪ��C
4. PostgreSQL �O����H
PostgreSQL 6.4 ���O�@�ӦۥѪ���Ʈw�A�����A���㪺�{���X�A�O�@�Ӫ�G�̱q
�]���b�ͪ�^ANSI SQL 1998, 92, 89 �W�檺������p����Ʈw�t�ΡA�Υi�b��
�P���w�x�M�ާ@�t�Τ�����C
���ɰ����O�ɷ|�b�D�n�����X PostgreSQL ���D�n��������X�{�C
�A�i�̾ڦۤw�ݭn�A�ۦ�i��ɡC�и�q�H�U�B�J�J
�� postgresql �{���X���ؿ�
cd /usr/src/postgresql6.4
patch -p0 < patchfile
make clean
make
�]�о\Ū�����ѡA���� 'man patch'
�O��ɬO�b
* PostgreSQL �O�ɡJ [16]
ftp://ftp.postgresql.org/pub/patches
PostgreSQL ���̲ץت��O�ʤ��ʲŦX ANSI/ISO SQL �Φ����@�ɲĤ@���}��q��
��Ʈw�CPostgreSQL �]�|���ޡB���ʡB����B�ʹ�Ϋ������Ӫ� ANSI/ISO SQL
�C �Y�O���A�N���|���b PostgreSQL ���A����A�[�i ANSI/ISO SQL ���C
Informix Universal server�]1997 �~���X�^����¦�O PostgreSQL �����ª���
�A�]�� Informix ���ʤF Illustra Inc. �ξ�X�� Informix�CIllustra ��Ʈw
�O�����ھ� Postgres�]PostgreSQL ���e���^�g�����C
PostgreSQL �O POSTGRES ��Ʈw�z�t�Ϊ���}���A�@�ӷs�@�N DBMS ����s��
�� (prototype)�C�b�O�d POSTGRES �j�j����Ƽҫ����״I����ƫ��A���P�ɡA
���H�@���X�R�F�� SQL �l���Ө��N PostQuel �d�y���C
PostgreSQL �O�Ѥ@�s�ѥ[ PostgreSQL �}�o�q�H�ª����p��}�o �H���i�檺
�C�ثe����ժ̬� Marc G. Fournier
* [17]
[email protected]
�o����|�t�d�Ҧ��{�b�Υ��Ӫ� PostgreSQL �o�i�u�@�C��M�A��Ʈw���Τ��
�v�]�O PostgreSQL ���}�o�H���I�o�}�o�L�{�O�����b���p��W�j�q��Ʈw�ήa
���C
PostgreSQL 1.01 ���@�̬O Andrew Yu �M Jolly Chen�C�ܦh��L�H�]���ѻP��
�ӡB���աB�����Υ[�j�{�����u�@�CPostgreSQL ���e�� Postgres ���{���X�A�O
�ܦh�j�Dz��~�͡B����ͤε{���]�p���b University of California
�ABerkeley �� Michael Stonebraker �бª����ɤU�����~�C
���n��b Berkeley ����W�O Postgres�C�b 1995 �~�[�W SQL �\���A�K��W
�� Postgres95�C1996 �~�~���A��W�� PostgreSQL�C
�w���ƥH�ʸU�M PostgreSQL �Q�w�˧@��Ʈw���A���A��W��Ʈw���A���M����
�{����Ʈw���A���C�����L���i�o�h�A�ӥB�O�@�Ӫ���ɦV��p����Ʈw
�]ORDBMS�^�C
PostgreSQL �i�x�s�ܦh�Dzθ�ƫ��A�A�p��ơB�r�����~����ƫ��A�C�A�i�H��
�ߦ۩w���A�B��ơB��� (inheritance) ���CPostgreSQL �i�b Soloris
�BSunOS�BHPUX�BAIX�BLinux�BIrix�BDigital Unix�BBSDi�BNetBSD�BFreeBSD
�BSCO Unix�BNEXTSTEP�BUnixware �ΩҦ���L�� Unix ����C���Ө���
95/NT ���u�@���b�i�椤�C
* �D�ءJ PostgreSQL SQL RDBMS ��Ʈw�]������p��Ʈw�z�t�Ρ^
* �ثe�����J 6.4
* �~�֡J PostgreSQL �Q�G���C�� 1985 ��}�l�}�o
* �@�̡J �Q�G�~�Ӥ��p��W�ƥH�ʸU�p���j�ǩM���q
PostgreSQL �M���������ػݿ�u�H�U���v�n���C
PostgreSQL Data Base Management System
Copyright (c) 1994-6 Regents of the University of California
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement
is hereby granted, provided that the above copyright notice and this
paragraph and the following two paragraphs appear in all copies.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON
AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
5. ��B���o ?
�A�i�q�H�U�a��ʶR Redhat Linux ���СB Debian Linux ���Щ� Slackware
Linux ���СA�q����� PostgreSQL �M�˳n��]���{���X�M�G���X�^�J
* Linux System Labs ��}�J [18]
http://www.lsl.com/ 7 �]�����^
* Cheap Bytes Inc ��}�J [19]
http://www.cheapbytes.com/ 7 �]�����^
* Debian Main ��}�J [20]
http://www.debian.org/vendors.html
PostgreSQL ��´�]��桥PostgreSQL CDROM���A���t���㪺���{���X�A�\�h
Unix �ާ@�t�Ϊ��i����ɤΧ��㪺���C
* �q�D����o PostgreSQL ���СJ [21]
http://www.postgresql.org 30�]��
���^
PostgreSQL �u���G���ɪ����G�J
* �A�i�����sĶ���{���X�Ӱ��� PostgreSQL�C�q
[22]
ftp://www.redhat.com/pub/contrib/i386/ ��
postgresql-6.4.i386.rpm �ɥi�o��^�N�� (Intel) Linux ���G���ɡC�o��
�רϥ� Rehat ����rpm���榡�C�A��i��� PostgreSQL ���{���X�C
* Solaris�AHPUX�AAIX�AIRIX �M Linux �G���ɪ��a�}�J
[23]
ftp://ftp.postgresql.org/pub/bindist �p�G�A�b����L���x���\�s
Ķ�A�]�ФW����o�̡A�ϱo��L�H�]�i�ϥΡC
* ftp ���x�J�q [24]
ftp://ftp.redhat.com/pub/contrib/i386/ �i���o�^�N
�� Linux ���G���ɡA������ɮO postgresql-6.4-3.i386.rpm�C�o�ɮר�
�� Rehat ����rpm���榡�C�A��i��� PostgreSQL ���{���X�C
�U�����J
* �D��J [25]
http://www.postgresql.org/
* ����J [26]
http://logical.thought.net/postgres95/
* [27]
http://www.itm.tu-clausthal.de/mirrors/postgres95/
* [28]
http://s2k-ftp.cs.berkeley.edu:8000/postgres95/
* [29]
http://xenium.pdi.net/PostgreSQL/
* [30]
http://s2k-ftp.cs.berkeley.edu:8000/postgres95/
�b���C�X ftp ���J
* �D FTP: [31]
ftp://ftp.postgresql.org/pub
* �� FTP: [32]
ftp://ftp.chicks.net/pub/postgresql
* [33]
ftp://ftp.emsi.priv.at/pub/postgres/
* [34]
ftp://ftp.itm.tu-clausthal.de/pub/mirrors/postgres95
* [35]
ftp://rocker.sch.bme.hu/pub/mirrors/postgreSQL
* [36]
ftp://ftp.jaist.ac.jp/pub/dbms/postgres95
* [37]
ftp://ftp.luga.or.at/pub/postgres95
* [38]
ftp://postgres95.vnet.net:/pub/postgres95
* [39]
ftp://ftpza.co.za/mirrors/postgres
* [40]
ftp://sunsite.auc.dk/pub/databases/postgresql
* [41]
ftp://ftp.task.gda.pl/pub/software/postgresql
* [42]
ftp://xenium.pdi.net/pub/PostgreSQL
PostgreSQL �����{���X�]�i�q sunsite unc ���M�g���o��]���y���j���@�d��
�^�C���O�b Redhat Linux �M�G�� /pub/contrib/i386/postgresql.rpm ��
���C
* �n���D������M�g���A�� [43]
ftp://sunsite.unc.edu
6. PostgreSQL �䴩�W�L 200 Gig ���W�Ÿ�Ʈw
32 �줸�B�z�����q���b��Ʈw�W�L 5 GigaByte �ɪ�{�|���t�U���C�A�i�� 32
�줸�B�z������ 30 gig ����Ʈw�A����{�|�U���C32 �줸��������̦h 2 GB
�O����A2 GB �ɮרt�ΤΨ�L�ާ@�t�Τ譱������C
��j������Ʈw�ӻ��A�ڱj�P��ij�A�ϥ� 64 �줸�B�z���A�p Digital Alpha
�BSun Ultra-sparc 64 �줸�B�z���BSilicon graphics 64 �줸�B�z���BIntel
Mercel IA-64 �B�z���BHPUX 64 �줸�q���BIBM 64 �줸�q���C�ϥ� 64 �줸��
�B�z���ӽsĶ PostgreSQL�A���N�i�H�B�z�j������Ʈw�άd�ߡC�d�ߤj�����M
��Ʈw���t�|�� 32 �줸���q���ּƭ��C64 �줸�q�����u�I�O�A���ܤj���O��
��} (memory addressing space) �M�ާ@�t�Υi�B�z�ܤj���ɮרt�ΡB���j����
�Ʈw���Ѹ��Ϊ�{�B�䴩��h�O����B��O��j�K�K
7. �̤���۫H PostgreSQL�HRegression ���ծM�� (Regression test package) ���Τ��
�߫H��
����K����PostgreSQL�ARegression ���ծM��]src/test/regress�^�w�]�t�b��
�G���A���e�\�A���q�����ҼзǪ� SQL �ާ@�� PostgreSQL ��������O�C���ծM
�w�]�t�F�Ʀʭ� SQL ���յ{���C
�A���ιq�������t������ PostgreSQL�A�Ӥ��O�ΤH���C�q���i�H�H���d�U���Ʀ�
�ƥH�������t�רӶi�� Regression ���աC�{�N�q���i�b�ܵu�ɶ�������ƤQ��
�� SQL ���աC�b���[�N�ӡA�q���|��H���ּƥH�����C�]���A�ϥιq���Ӵ��չq
������{�O�X�z���C
�p���ݭn�A�A�]�i�ۦ�W�[���աC�p�G�A�{�����|���A���p��ήa�����U�A�A
�]�i�⥦�W���� PostgreSQL ���D��CRegression ���ճn��U�Τ�إ߹�
PostgreSQL ���H�ߤΫH��A���]���U�Ͳ��t�Ψ��t�]�� PostgreSQL�C
Regression���եi�Q�����}�o�H���P�̲ץΤᶡ�ۤ��P�N���@���D�`���O���N
���CPostgreSQL �b�}�o�L�{�α��X�n�e�s�x�ϥ�Regression���ըӫO�ҽ�
���C
PostgreSQL ����O�i�y Regression ���ժ����ϬM�X�ӡC�p�G�@�إ\��B�y�k��
�S�ʦb Regression ���դ��s�b�A���N�Q�䴩�A�Ҧ���L�S���C�X��
PostgreSQL �N�i�ण�䴩�I�I�A�i�H�ۦ����ҤΥ[�J Regression ���դ��C
8. PostgreSQL ���e�� GUI �u��]�Ϲ��ϥΪ̬ɭ��^
PostgreSQL �M�G�����@�ӦW����pgTcl���� Tcl/Tk �����{���w�CTck/Tk �O
�@�ӧֳt���ε{���}�o�u�� (Rapid Application Development tool) �]�O�@��
�R�O�Z�y�� (scripting language)�C�ϥ� Tcl/TK�A�A�i�H�o�}�{���@���Ӧb��
��a��A�]�A NT�BWin 95�BLinux�Bī�G������ iMac�BOS/2 �M�Ҧ� Unixes
�CTcl �N��Tool Command Language���A�� Tk �O��Tool Kit���CTcl/Tk ���@
�ӦW�� SpecTcl �� IDE�]��X�}�o��ҡ^�C�b Redhat linux ���M�G���ˬd
�o rpm �ɩΦb�U�C�� sunscript ���x����M�C
�@���R�O�Z�y���APerl �ȱo���ˡC�o�O�]�����O�̳q�ΡA�D�`�j�l�Υi�b�Ҧ��n
�w�x�ϥΡCPerl-Tk �� Perl-Qt �� C++ QtEZ �� C++ Lesstif �]������
�C�Ҽ{��ɶ��귽�B����t�שM�{���]�p���e���סA Perl�BC �M Tk ���զX�i��
���j�����M�ת��ݭn�C�n�`�N Java �{���D�`�w�C�CC++ �]�� C �w�C�C�M�Ҧ���
�L�y����AC �t�׳̰��CPerl �{���i�ϥ� Perl2C �{�����ܬ� C �{���A�sĶ
����|�ֳt�@�ǡC
�@�ɤW���ʤ����E�Q�����p��R�O�Z�O�� Perl �g�����C�ҥH�A�u�ݤ@�ء]
��Perl���^�y���Ӻ����A�Ҧ��ݭn�X�X���ε{���M���p��C�аѾ\�����
Perl ��Ʈw���� (Perl Database Interface) �����J [44]Perl Database
Interface �C
�b�ϥ� Tcl �}�o�@�ӱM�e�A�A�n�Q�M�� Perl �M Tcl/Tk ���u�H�C�q�`�C��
Linux CD-ROM ���|�� Tcl/Tk�C�A�]�i�b�H�U�a���쥦�J
* Tcl/Tk [45]
http://www.scriptics.com
* �W�� INCR �� Tcl ����ɦV���� [46]
http://www.tcltk.com
* Visual TCL �� [47]
http://www.neuron.com
* Visual TCL Redhat rpm
[48]
ftp://ftp.redhat.com/pub/contrib/i386/visualtcl*.rpm
* [49]
http://sunscript.sun.com/
* [50]
http://sunscript.sun.com/TclTkCore/
* [51]
ftp://ftp.sunlabs.com/pub/tcl/tcl8.0a2.tar.Z
* �ѦҮ��y�J�����W���j�q Tcl/Tk �����y�C
9. PostgreSQL ����X�}�o��Ҥu�� (GUI IDE)
�ˬd�U�C�i�M ODBC/JDBC �X�ʵ{���@�P�ϥΪ��}�o�u��A���̩M Borland C++
Builder�BBorland JBuilder �ۦ��C
Vibe �O�@�� Java �M C++ IDE�]��X�}�o��ҡ^�A�÷�אּ Unix Review ����
�~�̨� IDE (IDE of the year)�C
* ��h Vibe ����ƥi�b
[52]
http://www.LinuxMall.com/products/00487.html ���
* 'QT'�A�@�ӥi�b���� 95/NT �M Unix �ϥΪ����ε{���ج[ (application
framework)�J [53]
http://www.troll.no�Aftp ��
[54]
ftp://ftp.troll.no
�A�]�i�b���� 95 ���ϥ� Borland C++ Builder�BDelphi�BBorland JBuilder
�BPowerBuilder �g ODBC/JDBC �X�ʵ{���s���� unix �q���� PostgreSQL�C
�аѾ\����� PERL ��Ʈw���������J [55]Perl Database Interface �C�ڱj
�P���˨ϥ� Perl �M C/C++ �@ IDE ����ܡC
�K�O�� IDE �u��J
�ˬd Redhat Linux �����СC
* Lesstif Motif �u��
[56]
ftp://ftp.redhat.com/pub/contrib/i386/lesstiff*.rpm
* FreeBuilder [57]
ftp://ftp.redhat.com/pub/contrib/i386/free*.rpm
* SpecTCL [58]
ftp://ftp.redhat.com/pub/contrib/i386/spec*.rpm
* JccWarrior [59]
ftp://ftp.redhat.com/pub/contrib/i386/jcc*.rpm
* PostgreSQL �� Kanchenjunga Java RAD �u��
[60]
http://www.man.ac.uk/~whaley/kj/kanch.html
* Applixware �u�� [61]
http://www.redhat.com
* XWPE X Windows Programming Environment
[62]
http://www.rpi.edu/~payned/xwpe/
[63]
ftp://ftp.redhat.com/pub/contrib/i386/xwpe*.rpm
* XWB X Windows Work Bench
[64]
ftp://ftp.redhat.com/pub/contrib/i386/xwb*.rpm
* NEdit [65]
ftp://ftp.redhat.com/pub/contrib/i386/nedit*.rpm
10. PostgreSQL �������X�ʵ{��
10.1 PostgreSQL �� ODBC �X�ʵ{��
ODBC �N��Open DataBase Connectivity���C���O�q���P�t�Ӥ��P��Ʈw�s����
�ƪ��y�椶���C�ϥ� ODBC �X�ʵ{���g�����n��O�ҥi�M���P��Ʈw�A�p
PostgreSQL�BOracle�BSybase �M Informix ���X�@�C
* PostODBC �w�g�]�A�b PostgreSQL �����G���C��D��
[66]
http://www.postgresql.org. ���]�]�A�b PostgreSQL �����C
* [67]
http://www.openlinksw.com Open Link Software Corporation ���
PostgreSQL �M��L��Ʈw�� ODBC �X�ʵ{���C�o�]�e�X�K�O�� ODBC (�W�B
�����^�C
* PostgreSQL �� Insight ODBC [68]
http://www.insightdist.com/psqlodbc
�o�O PostODBC ���x���C
�o�O�@�ӦW�� FreeODBC Pack Package ���p���C�ثe ���S PostgreSQL �����A
�]�\�A���U�C
* [69]
http://www.ids.net/~bjepson/freeODBC/ �o�O�@�ӧK�O�� ODBC�C
10.2 PostgreSQL �� UDBC �X�ʵ{��
UDBC �O �@�ؿW�ߩ��X�ʵ{���z�� (driver managers) �M DLL �䴩���R�A
ODBC �����A�ΨӪ������Ʈw�s����O�O�J���γn�C
* [70]
http://www.openlinksw.com Open Link Software Corporation �X��
PostgreSQL �M��L��Ʈw�� UDBC �X�ʵ{���C Open Link �]�e�X�K�O��
UDBC (�W�B�����^�C
10.3 PostgreSQL �� JDBC �X�ʵ{��
JDBC �N��Java DataBase Connectivity���CJava �O�@�ت@�� (Sun
Microsystems) �Ҷ}�o���W�ߩx���{���y���CJava �{���]�p�v�Q���y�ϥ�
JDBC �Ӽ��g��Ʈw�{���A�H�W�j�{���b���P��Ʈw�A�p PostgreSQL�BOracle
�BInformix �����������ӯ�O�C�p�G�A�g Java �{���A�A�i�b�H�U����o
PostgreSQL �� JDBC �X�ʵ{���C
JDBC �X�ʵ{���w�]�A�A�b PostgreSQL ���G���C
* [71]
http://www.demon.co.uk/finder/postgres/index.html �@����
PostgreSQL �s��
* [72]
ftp://ftp.ai.mit.edu/people/rst/rst-jdbc.tar.gz
* [73]
http://www.openlinksw.com Open Link Software Corporation �X��
PostgreSQL �M��L��Ʈw�� JDBC �X�ʵ{���C Open Link �]�e�X�K�O��
JDBC (�W�B�����^�C
* JDBC �^��� [74]
http://www.retep.org.uk/postgres
* JDBC FAQ �� [75]
http://eagle.eku.edu/tools/jdbc/faq.html
JDBC ����B�ɤީM FAQ �b�J
* JDBC HOME [76]
http://splash.javasoft.com/jdbc
* JDBC guide
[77]
http://www.javasoft.com/products/jdk/1.1/docs/guide/jdbc
* JDBC FAQ [78]
http://javanese.yoyoweb.com/JDBC/FAQ.txt
10.4 PostgreSQL �� Java
Java �{���]�p�v�|ı�o�o�ǹ�L�̫ܦ��ΡC
* [79]
ftp://ftp.redhat.com/pub/contrib/i386 �� postgresql-jdbc-*.rpm
* [80]
http://www.blackdown.org
11. PostgreSQL �� Perl ��Ʈw���� (Database Interface, DBI)
11.1 PostgreSQL �� PERL 5 ����
PERL �O��Practical Exptraction and Report Language����²�g�C�@�W�Ҧ��n
�w�x���i�ϥ� Perl�C�A�Ҧb���� 95/NT�Bī�G������ iMac�B�Ҧ� Unix
�]Solaris�BHPUX�BAIX�BLinux�BIrix�BSCO �����^�B�j���q�� MVS�B�ୱ��
OS/2�BOS/400�BAmdahl UTS �M��L�ܦh�q���CPerl �Ʀܥi�b�ܦh���y��M����
�H�����ާ@�t�ΩM�w���I�I�ҥH�A�b�ݨ� Perl �b�@�Өu�����ާ@�t�ΤW��
��ɡA�����j��p�ǡC�A�i�H�Q���� Perl ���ϥΪ̩M�}�o�H�����ƶq�C
PostgreSQL �� Perl �����w�]�A�b PostgreSQL �����G���C�аѬ�
src/pgsql_perl5 �ؿ��C
* Pgsql_perl5 �q�l�p���a�}�J [81]
[email protected]
* �t�@��ƨӷ��J
[82]
ftp://ftp.kciLink.com/pub/PostgresPerl-1.3.tar.gz
* Perl �� [83]
http://www.perl.com/perl/index.html
* Perl �ɤޡA�Цb [84]
http://reference.perl.com/ �Ѭݾɤޥؿ�
* Perl FAQ �b
[85]
http://www.yahoo.com/Computers_and_Internet/Programming_Langua
ges/Perl/
* Perl GUI �ϥΪ̤��� Perl-Qt rpm�J
[86]
ftp://ftp.redhat.com/pub/contrib/i386 �]�Ь�
PerlQt-1.06-1.i386.rpm
* Perl GUI �ϥΪ̤��� Perl-Qt�J
[87]
http://www.accessone.com/~jql/perlqt.html
* Perl GUI �ϥΪ̤��� Perl-XForms�J
[88]
ftp://ftp.redhat.com/pub/contrib/i386�A�M��
Xforms4Perl-0.8.4-1.i386.rpm
* Perl GUI �ϥΪ̤��� Perl-Tk�J
[89]
ftp://ftp.redhat.com/pub/contrib/i386
* Perl GUIkits�J [90]
http://reference.perl.com/query.cgi?ui
* Perl ��Ʈw�����J [91]
http://reference.perl.com/query.cgi?database
* Perl �� "C" ��½Ķ�u��J
[92]
http://www.perl.com/CPAN-local/modules/by-module/B/ �M��
Compiler-a3.tar.gz
* Bourne shell �� Perl ��½Ķ�u��J
[93]
http://www.perl.com/CPAN/authors/id/MERLYN/sh2perl-0.02.tar.gz
* awk �� perl �� a2p �M sed �� perl �� s2p �w�]�A�b PERL ���G���C
* �]�� comp.lang.perl.* ����� PERL ���s�D��
11.2 Perl ��Ʈw���� DBI
��� DBI�H
Perl ��Ʈw�����]DBI�^�O Perl �y�����@�Ӹ�Ʈw�s�����ε{�������]API�^
�CPerl DBI API �W��w�q�F�@�ը�ơB�ܼƩM�D�ҡA�H���Ѥ@�Ӥ@�P�ӿW�ߩ��
�کҥΪ���Ʈw�����C��� DBI ���o�@�q����ƬO�Ӧۡ�DBI FAQ�����A�@��
�O Alligator Descartes�A����b���ƻs�C
* Alligator Descartes Hermetica �b [94]
[email protected]
PostgreSQL �� DBI �X�ʵ{�� DBD-Pg-0.89
�b�����o DBD-Pg-0.89.tar.gz�J
* DBD-Pg-0.89 : [95]
http://www.perl.com/CPAN/modules/by-module/DBD/
* Comprehensive Perl Archive Network CPAN
[96]
http://www.perl.com/CPAN
* DBI �X�ʵ{���W��M DBI �Ҳպ�
[97]
http://www.hermetica.com/technologia/perl/DBI
* DBI ����Ʀb [98]
http://www.fugue.com/dbi/
* �D�� [99]
ftp://ftp.demon.co.uk/pub/perl/db
* ��A DBI �s�� [100]
http://www-ccs.cs.umass.edu/db.html
* ��A DBI �s�� [101]
http://www.odmg.org/odmg93/updates_dbarry.html
* ��A DBI �s�� [102]
http://www.jcc.com/sql_stnd.html
* PostgreSQL ��Ʈw [103]
http://www.postgresql.org
�t�λݨD�J
* - �إߡB���թM�w�� Perl 5 (�̤� 5.002)
* - �إߡB���թM�w�� DBI �Ҳ� (�̤� 0.89)
* - �إߡB���թM�w�� PostgreSQL (�̤� 6.2)
DBI ���N�䴩
��N���M���~���i�H��
* [104]
[email protected]
��H perl -v�Bperl -V ����X�BPostgreSQL �������BDBD-Pg �������BDBI
�������]�A�b���~���i���C
��� DBI�BDBperl�BOraperl �M *perl�H
�K���� Tim Bunce�ADBI ���]�p�̩M�@�̡J
��DBI �O Perl �y�����@����ε{�������]API�^�CPerl DBI API �W��w�q�F �@
�ը�ơB�ܼƩM�D�ҡA�ΩѤ@�Ӥ@�P�ӿW�ߩ��کҥΪ���Ʈw�����C��
²��a���ADBI �e�\�ήa�z���a (transparently) �s���h�ظ�Ʈw�C�ҥH�A�p�G
�A�s���� Oracle�BInformix�BmSQL�BSybase �Υ���Ʈw�A�A���ݭn���D 3GL
�h�����̪�����CDBI �ҩw�q�� API �i�Ω�Ҧ��o�Ǹ�Ʈw�C
�o�˪��n�B�O�A�o��b�@�g perl ��Z���s����Ӥ��P�X���Ӥ��P����Ʈw�A��
�p�b�@�ӵ{����Ū���b�@�� Oracle ��Ʈw����ƤαN�����J�� Informix ���
�w���CDBI �h���e�\�A²��Φ��O�a����C
DBperl �O�o�Ӥ����W�檺�¦W�C���{�b�@��Ω�N��Ω� perl4 ����Ʈw����
�ҲաA�p oraperl�Bisqlperl�Bingperl ����C�o�Ǥ����S���зǪ� API�A�@��
�w�S���䴩�C
�o�O DBperl �Ҳժ��W��A�ҹ��� DBI �ҲդΧN�䴩��T�C��� DBI �X��
�{�������D���Ӧb dbi-users �q�T�´��X�C list.
�ҲզW�� �һݸ�Ʈw �@�� DBI
----------- ----------------- ------ ---
Sybperl Sybase Michael Peppler DBD::Sybase
<
[email protected]>
http://www.mbay.net/~mpeppler
Oraperl Oracle 6 & 7 Kevin Stock DBD::Oracle
<
[email protected]>
Ingperl Ingres Tim Bunce & DBD::Ingres
Ted Lemon
<
[email protected]>
Interperl Interbase Buzz Moschetti DBD::Interbase
<
[email protected]>
Uniperl Unify 5.0 Rick Wargo None
<
[email protected]>
Pgperl Postgres Igor Metz DBD::Pg
<
[email protected]>
Btreeperl NDBM John Conover SDBM?
<
[email protected]>
Ctreeperl C-Tree John Conover None
<
[email protected]>
Cisamperl Informix C-ISAM Mathias Koerber None
<
[email protected]>
Duaperl X.500 Directory Eric Douglas None
User Agent
���L�A���� DBI �Ҳզ� DBperl ����h (emulation layers)�A�]��
�ADBD:Oracle �|�� Oraperl ����h�A��A�L�ݧ��{�s�� Oraperl ��Z�K��
��C�o����h�� Oraperl API �I�s½Ķ�� DBI �I�s�óq�L DBI ����C
�o�C��O����h����ơJ
�Ҳ� ����h ���p
------ --------------- ------
DBD::Oracle Oraperl ����
DBD::Informix Isqlperl �}�o��
DBD::Sybase Sybperl �i�ΡH�]�������ҡ^
DBD::mSQL Msqlperl �b DBD::mSQL-0.61 ������ʱ��X
Msqlperl ����O�S���p�CMsqlperl �O mSQL ��Ʈw�� perl5 �X�ʵ{���A����
�̱q DBI �W��C�j�a���ϥ� DBD::mSQL�A�Ӥ����� Msqlperl�CMsqlperl �i�q
CPAN �U���J
* [105]
http://www.perl.com/cgi-bin/cpan_mod?module=Msqlperl
DBI �W��
�o�̦��@�� DBI ����ƨӷ��C
* DBI �W��
[106]
http://www.hermetica.com/technologia/perl/DBI/doc/dbispec
�o�|�s����G�ӳW��A�Y�}�o����V�O�o�i�@��í�w�����������A���ֳt��諸
�s DBI �W���סA�M�� DBperl �W��o�i�ӨӡA�ثe�� DBI �����C
�����u�Q�������v�����A�Ӥ��i�Χ@�{���]�p�����ѩΥ����v�©ʪ����C
���L�A���٬O�Q�����Ϊ��ѦҸ�ơC
POD ��� POD �O�O�J�� perl �{�����ΥH���Y��������{���X���@�q���A�ΥH
���� ���Ϊ���Ƶ��{���]�p�v�M�Ҳժ��ήa�CDBI �M�X�ʵ{���� POD ���V�ӶV
�y��A�n�\Ū������A�ШϥΥH�U���O�C
DBI �W�� �ШϥΥH�U���O�\Ū DBI �W�檺 POD
perldoc DBI
Oraperl DBD::Oracle �� Oraperl ����h���ϥΪ̥i�ΥH�U���O�Dzߦp���
Oraperl �����s�g�{���J
perldoc Oraperl
�o�˷|���ͤ@���� Kevin Stock �� perl4 �Ҽg����� oraperl man page ��s
���C�o�̷|�����C�X�Τ��� oraperl API�C
DBD::mSQL DBD::mSQL �Ҳժ��ήa�i�y�H�U���O�\Ū�@�Ǹ��X�ʵ{�����p�a���
(private functions) �M���q����ơJ
perldoc DBD::mSQL
�`�����D (FAQ) POD ��]�]�t�`�����D�C�n�\Ū���ܽп�J�J
perldoc DBI::FAQ
�藍�O�ä[�Τ����K�a�s���W���p��H�ӻ��o���K�J
POD ���@���� ��� POD �p�g POD�A�Τ@��ӻ��� POD ���ǡA�i�y���\Ū
�J
perldoc perlpod
�w�ˤF Tk �Ҳժ��ήa�i��|��@�ӦW�� tkpod�A�ϥ� Tk �� POD �\Ū��������
�C���|�� POD �s�ƨ�@�Ӥ�K�Υi�\Ū���Φ��J
���͡B�p�D�����M�[��J �b DBI ���q�H�¤������P�H���X���@�s�갸�M����
�͡C
* [107]
http://www.hermetica.com/technologia/perl/DBI/tidbits
��DBI�X�Xperl5 ��Ʈw������ ������ Alligator Descartes �M Tim Bunce
�Ҽg�A��� DBI �����c�C���b��The Perl Journal���Ĥ����X���C���g�o�����n
�C�жR�o����x�C�ƹ�W�A�ШC�����R�C��The Perl Journal�������p���}�O
�J
* [108]
http://www.tpj.com
��DBperl�� �o�峹�b�@�E�E���~�Q�@�몺��Dr. Dobbs Journal���o��A���e�
��DBperl�C
��The Perl5 Database Interface�� �o�O�@���� Alligator Descartes �g�A��
O'Reilly and Associates �X�����ѡC
�q�H�� Ted Lemon �`�@�z�T�� DBI ���q�H�¡C���̳��i�b�U����W�q�\
���� �q�\�J
* �q�H�� [109]
http://www.fugue.com/dbi
�o�ǥi�[�J���¬O�J
dbi-announce �o�q�H�¥u�O�@�X�ŧG�C�p�G�A���ন�\�ϥΥH�W��}�����A
�д`�H�U�~�|�q�\�o�¡J
* �q�l�J [110]
[email protected] ���e��subscribe��
dbi-dev �o�q�H�¥ت��O��}�o�H���Q�צ�� DBI �����BAPI �M�X�ʵ{������
���N���M�����C�u��}�o�H���Φ����쪺�H���ΡC�p�G�A���ন�\�ϥΥH�W��}
�����A�д`�H�U�~�|�q�\�o�¡J
* �q�l�J [111]
[email protected] ���e����subscribe��
dbi-users �o�q�H�¬O�Χ@���~���i�B���D�Q�שM�@����D�C�p�G�A���ন�\
�ϥΥH�W��}�����A�д`�U�~�|�q�\�o�¡J
* �q�l�J [112]
[email protected] ���e����subscribe��
�q�H�x�s�B (Mailing List Archives)�J
* ����q�H�x�s�B
[113]
http://outside.organic.com/mail-archives/dbi-users/
* �ڬw�q�H�x�s�B
[114]
http://www.rosat.mpe-garching.mpg.de/mailing-lists/PerlDB-Int
erest
�sĶ���~�Ρu���ե��ѡv
�p�G�o�ͰT����x (core dump)�A���ըϥ� Devel::CoreStack �ҲըӲ��ͰT��
��x�����|�l�� (stack trace)�CDevel::CoreStack �i�b CPAN ���J
* [115]
http://www.perl.com/cgi-bin/cpan_mod?module=Devel::CoreStack
����|�l�ܡB�Ҳժ����Bperl �����B���խӮסB�ާ@�t�Ϊ����Υ���L�A�Ϊ�
��ƹq�l�� dbi-users �q�H�¡C�H�X����ƶV��A�}�o�H���V�ָѨM���D�C
�p�G�A���i�D�ڭ̡A���n����o�쵪�סC
���� 95/NT ���S�� DBI �䴩�H
DBI �M DBD::Oracle �� Win32 �����w���� DBI ���зdz����C�]���A�� DBI
0.81 �����������ӷ|���`�B�@�C�z�L ODBC�A�A�i�H�s���L�n Access �M
SQL-Server ��Ʈw�C�b DBI-0.79�]�ΥH��^���@�ӹ���ʽ誺 Win32::ODBC
DBI ����h�C���W�� DBI::W32ODBC�C�A�ݭn�ϥ� Win32::odbc �ҲաC
* Win32 DBI [116]
http://www.hermetica.com/technologia/perl/DBI/win32
* Win32 ODBC [117]
http://www.roth.net
��� DBM�H����n�� DBI�H
UNIX �쥻�O�ϥ�²��H�ɮ���¦���u��Ʈw�v�A�Y dbm �t�ΡCdbm �e�\�A�b
�ɮקֳt�a�s����ơC���L�A�����ƭ��Y�������I�C
�ɮ��� (File Locking)
dbm �t�Τ��e�\�S�O�������ɮ����O�A�]�S���ץ��P�ɼg�J��Ʈw�ް_����
�D����O�C
�H�N����Ƶ��c
dbm �t�Υu�e�\��@�T�w����Ƶ��c�J��-�ƭȹ� (key-value pair)�C���ƭȥi
�H�O���������A�p�@�� C �� struct�A���쥲���O�W�@�L�G���C�o�� dbm �t��
���γ~�y���ܤj����C
���L�Adbm �t�Τ����ϥ�²���Ƥθ귽�������ήa���ѤF���Ϊ��\��A�]����
�ֳt�B�����θg�L���Y�Ԫ����աC�s�� dbm �t�Ϊ��Ҳղ{�w�g AnyDBM_File ��
�վ�X�� Perl ���֤ߴ��G���C
�`�A�@�y�A���G�O��Ū����Ʈw�Τp����²�檺��ƨӻ��Adbm �O�@�ӫD�`�O
�H���N���ѨM��k�C���L�A���j�j�M�i�W�� (scalable) ����ƶ��ӻ��A�ήa
�̦n�ϥ� DBI�C�ܩ���������� (transactional locking)�A�N�λ��F
�C�
DBI �O�_�䴩<�o���\��>�H
�ھکҴ��X���\��O�@�Өä��зǡA�ӥu��������Ʈw�ҿW�������]�A���O�_
�C
DBI �ϬM�@�ӳq�Φӥi�b�j������Ʈw�ϥΪ� API�A�ӨS����Ʈw�W�����\��C
���L�A�p�G�X�ʵ{�����@�̦�����A�L�̥i�H�y DBI �����ҩw�q�� func
method �ӥ[�W��Ʈw�W�����\��C�R�O�Z���}�o�H���n�`�N�y func methods ��
�Ѫ��\��@�뤣��b���P��Ʈw�����ӡC
�� CGI �ӻ��Adbi ���S���ΡH
�@�Ӧr�J���IDBI �� CGI �{���]�p�D�`���ΡI�ƹ�W�ACGI �O DBI �̭��n����
�~���@�C
DBI � CGI �{���]�p�v�]�p�\��j�j�����p��e�ݸ�Ʈw���L�̪��ήa�A�q�Ӵ�
�Ѥj�q�����DZƦC����ơCDBI �]�e�\�b�����Ʈw���A���W�L�t���ɡA�z
�H���b�L����� CGI �R�O�Z�����p�U�N���ɯšC
�ڦp��[�� CGI �P DBD Oracle ���s���t�סH
Apache httpd �z�@�դl httpd (httpd children) �ӪA�ȫȤ�C�y�� Doug
MacEachern �� Apache mod_perl �ҲաAperl ½Ķ���w�O�J��l httpd ��
�CCGI�BDBI �M�A���w���Ҳշ|�b��l�ϥͮɸ��J�C�o�ǼҲժ���b�ϺФW������
�Q���ɤ~�|�A�Q���J�C�n���D��h��� Apache ����ơA�Ь� Apache �p����
��J
* Apache �p������ [118]
http://www.apache.org
* Mod_perl �Ҳ�
[119]
http://www.perl.com/cgi-bin/cpan_mod?module=mod_perl
�p��� DBI �M CGI ����s���H
�y�� Edmund Mergl �� Apache::DBI �ҲաA�C�Ӥl httpd �|���Ʈw�n�J�x�s
�b��� (hash) ���C�p�G�A�����ε{���u���@�Ӹ�Ʈw�ήa�A�C�@�Ө�l���i�}
�l�s�s�C�ثe�A��l�����ä��|���ɸ�Ʈw�s���CApache::DBI �i�q CPAN �U��
�J
* [120]
http://www.perl.com/cgi-bin/cpan_mod?module=Apache::DBI
���ڦb���O����@�� perl �R�O�Z�ɡA�õL���D�C���L�A��ڦb http ���楦�ɡA���|
���ѡI����ѡH
�W�A�o�ܦ��i��O�]���q���O����R�O�Z���ϥΪ̤w�����ܼƳ]�w�n�A
�H DBD::Oracle �ӻ��A�Y $ORACLE_HOME, $ORACLE_SID �� TWO_TASK�Chttpd ��
�{�q�`�O�H nobody ����������A�Y�S���F�]�w�n����ҡC���b�o���p�U����
���檺��Z���|���T�a���ѡC�n�ѨM�o���D�A�b�A���R�O�Z���}�Y�Τ@��
BEGIN() �϶�]�w��ҡC�o�˫K�|�ѨM���D�C�P�˦a�A�A�n�ˬd�A�� httpd ���~
�����ɥH�M��u���A�H�ξ\Ū��Idiot's Guide To Solving Perl / CGI
Problems���M��Perl CGI Programming FAQ���H�M���h��ơC�o���D�j�����|
�M DBI ����C�Ш���p�߾\Ū�I
* Idiot's Guide to Solving Perl / CGI problems
[121]
http://www.perl.com/perl/faq/index.html
�ϥ� DBI �ɡA�گ�_�i��h�y�B�z (multi-threading)�H
�ثe����CPerl �ä��䴩�h�y�B�z�C���L�A�ڦ�p�A�h�y�B�z�|���� 5.005 ��
�����G���@�����A�Y���[����ADBI �i��|�䴩�h�y�B�z�C�n�ݤ@�ǨϥΦh
�y SELECT �y�l�� Oracle OCI �d�ҵ{���A�аѾ\�J
* [122]
http://www.hermetica.com/technologia/oracle/oci/orathreads.ta
r.gz
�ڦp��� DBI �I�s���x�{�� (stored procedure)�H
���]�A�b�ؼи�Ʈw�A�Ҧp�@�� Oracle ��Ʈw���إߤF���x�{�ǡA�A�i�ϥ�
$dbh->do �Өϵ{�ǥߧY����C�Ҧp�J
$dbh->do( "BEGIN someProcedure END" );
�b DBI ���A�ڦp��^���x�{�Ǫ���^�ȡH
�O��٭n�ˬd���~�I
$sth = $dbh->prepare( "BEGIN foo(:1, :2, :3); END;" );
$sth->bind_param(1, $a);
$sth->bind_param_inout(2, \$path, 2000);
$sth->bind_param_inout(3, \$success, 2000);
$sth->execute;
�ڥi�_�� DBI �ӥ��@�Ӹ�Ʈw�H
�� DBI �ӻ��A�n�A��a�䴩��Ʈw���إߩM���ө�H�F�C�Ҧp�AOracle �ڥ�
���䴩����Ʈw�I���~�A�b Oracle ���A��Ʈw���A���W�N�O��Ʈw�A��
�b mSQL�A�Y�ϨS����Ʈw�A���A���]�බ�Q�a����C�o���D�o�s�Ӽs�F�C���]�p
���A�����X�ʵ{���z�L�p�a func ��k�ӫإߩM�R����Ʈw�C�A�n�ˬd�X�ʵ{��
�����ӤF�ѥ����S���䴩�o����C
DBI ��˳B�z NULL �ȡH
DBI �Q���w�� NULL �ȷ�@ undef �ȳB�z�CNULL �i�H NULL ���ƭȨӥ[�J���
�Ʈw���A�Ҧp�J
$rv = $dbh->do( "INSERT INTO table VALUES( NULL )" );
���L��d�߮ɡANULL �n�M undef ��C�o�O�Ҧ��X�ʵ{�����A�Ϊ��зǡC
�o�� func ��k�O�����H
DBI �� func ��k�w�q����Ʈw�W���\��i�J�I�A�Ҧp�إߩM���@�Ӹ�Ʈw
�C�ϥγo���X�ʵ{���W����k�Q��²��A�Ҧp�A�n�ϥΤ@�� createDatabase ��
�k��J�@�Ӥ� (argument) �A�ڭ̷|�g�J
$rv = $dbh->func( 'argument', 'createDatabase' );
�n��}�o�H���n�`�N func ��k����b���P��Ʈw�����ӡC
�ӷ~�䴩�ΰV�m
Perl5 ��Ʈw�����O�ۥѳn��C���èS������O (warranty)�C���L�A���Ǿ��c
���ѤF DBI ���N�䴩�ΰ��V�p���C
PERL CLINIC : Perl Clinic �H�X������ Perl�BDBI�BDBD::Oracle �M
Oraperl ���Ѱӷ~�䴩�C�o�Ǥ䴩�O�� DBI �@�� Tim Bunce �u�@�����q���Ѫ�
�C�����Ա��A�ЬݡJ
* [123]
http://www.perl.co.uk/tpc
12. PostgreSQL �z�u��
12.1 PGACCESS - PostgreSQL �z�� GUI �u��
PgAccess �O PostgreSQL �� Tcl/Tk �����C���w�g�]�A�b PostgreSQL �����G��
�C�A�i��Q�q�o���X�����S���s�����J
* [124]
http://www.flex.ro/pgaccess
* �p�����N���B��}����ij�A�w��q�l�J [125]
[email protected]
PgAccess ���S��
PgAccess �����XMain window, Table builder, Table(query) view, Visual
query builder.
Tables
* �}�Ҫ�� (tables) �d�\�A�̦h�G�ʭӬ����]�i�b perferences �ؿ����^
* �y�즲������u (grid line) ����j�p�]�b�C��Ŷ� (table space) ��b
�C��ؿ� (table header) �i��n�^
* ��椤�۰ʴ���X�C�Ӫ�dher ���t�m�W��x�s
* �פJ/�ץX��L�ɮ榡�]SDF�BCSV�^
* �L�o�\��]��J�p price>3.14 ���L�o���^
* �Ƨǥ\��]�ۦ��J�ݱƧǪ����^
* �Y���s��
* ��}�F����沣�ͧU�z (table generator assistant)
* ��}�F�����s��
Queries
* �w�q�B�s��M�x�s���ήa�w�q�d�ߡ�(user defined queries)
* ��d��x�s�@����� (views)
* �d�ߪ�����
* �[�� select �Φ����d�ߵ��G
* �R���M���d�ߦW��
* ��즲�M��U�\� Visual query builder�C�p�G�A���w�� Netscape
Navigator �� Tcl/Tk ����A�A�i�b���ݨ쥦�u�@�J �]Ķ���J�����b���H�I
�^
�ǦC (sequence)
* �w�q�B�R���M�ˬd�ǦC ���
* �ϥ� SQL �y���w�q�B�ˬd�M�R�����
�N��ٷ|���H�U��i
* ���]�p�]�W�[���B��W�����^
* ��Ʃw�q
* ���i���;�
* ���R�O�Z�s�g�\��
�p���N���B��}����ij�A�йq�l��J
* [126]
[email protected]
��� libgtcl �����
�A�|�Ψ� PostgreSQL �� Tcl �������{���w libgtcl�A�ҿת� Tcl/Tk �i�����J
���ҲաClibpgtcl �M���{���X��� PostgreSQL �� /src/interfaces/libpgtcl
�ؿ��C�S�w�ӻ��A�A�ݭn�@�ӥi�b Tcl/Tk�����J���� libpgtcl �{���w�C�N�W
�ӻ��A���M���q�� PostgreSQL �i���J�ت��ɨä��ۦP�A�]�� libpgtcl �O�@��
�ت��ɪ����X�C�o�ɮצb Linux �W�� libpgtcl.so�C �A�i�b�H�W��}�U����@
�ӹw���� Linux i386 �t�νsĶ�F�������C�u�ݧ�o�ɮ�����t�ε{���w�ؿ�
�]/usr/lib�^�Y�i�C�p������A�䤤�@�ӸѨM��k�O�R����{���X��������J
libpgtcl.so ���@�y�M�ϥ� pgwish�]�� wishpg�^�Ӹ��J pgaccess.tcl�A�ӫD
wish�A�]���o wish �w�쵲 libpgtcl �禡�w�C
12.2 PostgreSQL ���������ʦ��d�ߤu��]WISQL �� MPSQL�^
MPSQL ���ѵ��ϥΪ̤@�ӹϹ� SQL �������� PostgreSQL�CMPSQL �P Oracle ��
SQL Worksheet �ηL�n SQL Server ���d�ߤu�� WISQL ����C�����@�Ӻ}�G��
GUI �M���O�O���C�A�]�i�H�ŤU�ζK�W�C���٦���L���U�����Ͳ��O���\��C
* [127]
http://www.troubador.com/~keidav/index.html
* �q�l�J [128]
[email protected]
* [129]
http://www.ucolick.org/~de/ �b tcl_syb/wisql.html �ɤ�
* [130]
http://www.troubador.com/~keidav/index.html
* �q�l�J [131]
[email protected]
12.3 �W�� PSQL �� PostgreSQL ���ʦ��d�ߤu��]ISQL�^
ISQL �O�Ѥ�r���O��ݾ��ϥΪ��C �o�w�]�A�b���G���A�W�� PSQL�C�M
Sybase ISQL�BOracle SQLplus �Q���ۦ��C�b Unix ���O���ܿ�J��psql���|�X
�{ psql> ���ܡC
Type \h to see help of commands.
�D�`�ϥΪ̤͵��M���ΡC �i�b�~�ةR�O�Z (shell script) ���ϥΡC
12.4 MPMGR�XPostgreSQL ����Ʈw�z�u��
MPMGR �� PostgreSQL �O�Ѥ@�ӹϹ��z�����C�A�i�b�H�U�a���쥦�J it at
* [132]
http://www.mutinybaysoftware.com/
* Email: [133]
[email protected]
* [134]
http://www.troubador.com/~keidav/index.html
* �q�l�J [135]
[email protected]
* [136]
http://www.ucolick.org/~de in file tcl_syb/wisql.html
* PostgreSQL �� WISQL [137]
http://www.ucolick.org/~de/Tcl/pictures
* �q�l�J [138]
[email protected]
13. �u�ϥΤ@����ܾ� (monitor) �ӫإߦh�x PostgreSQL �q��
�A�i�|�_�q���D���Υu�Τ@����ܾ��A�ӥΤ@�� KWM �]��L�B�v���B��ܾ�
�^(Keyborad, Video, Monitor) �]Ķ���JM �O�_���ƹ��H�^��ܾ��ӿ�ܩҥ�
�q���C�o�����`�٦a��A�]�`����ܾ��B��L�M�ƹ��]�C���`�� 100 �� 500 ��
���^�A�M��ֲV�áC
�y�ۿ�ܾ��A�A�i�|���h�x PostgreSQL ���A���]�}�o�B���աB�Ͳ��^�B���p��
���A���Bftp ���A���B���p��A���B�q�l���A���B�s�D���A���b�@�Ӥj�d�C�o
��ܾ��]�i������ 95/NT �M OS/2 �q���C
�Ьd�ݤU�C��}�J
* DataComm Warehouse Inc�A�@�ѤG�Q�|�p�ɡA�@�P���C�ѳ��b�P�q
1-800-328-2261�C�L�̴��ѩҦ��~�ت��q���w��
[139]
http://www.warehouse.com 4 �� ��� KVM ��ܾ� (PS/2) �j��
$89.99 Part No. DDS1354
* Network Technologies Inc
[140]
http://www.networktechinc.com/servswt.html (120 ����/PC 8 ��)
���M�椤�]�A 'Server Switches' �M 'Video only switches'
* Scene Double Inc, �^��
[141]
http://www.scene.demon.co.uk/qswitch.htm
* Cybex corporation [142]
http://www.cybex.com
* Raritan Inc [143]
http://www.raritan.com
* RealStar Solutions Inc [144]
http://www.real-star.com/kvm.htm
* Belkin Inc [145]
http://www.belkin.com
* Better Box Communications Ltd.
[146]
http://www.betterbox.com/info.html
* ���w��ӾQ�d�ߡ�Server Switch���κ١�KVM Auto Switches���C
�b yahoo �j�M������X��h����Server Switches����KVM Switches�������q
�C
�C�� PostgreSQL ��Ʈw���A���̦n�Τ@���M�Ϊ� unix �q���A�H�W�j��{�C��
���L�{��/��{�����n�b�o�q���W����C�\Ū�A�Ҧ�a�誺�������ӷ~����X��
���ǰӾQ��� Intel �q���M 13 �T���ù��]�Q���G�y���ù��^�C�A�u�ݭn�w��
�A�Ӥ��ݷL�n����/DOS�]�`�٬� 150 �����^�C ��Ʈw���A�����ݭn�m����ܾ�
�A�]���A�i�b�@�ӱm�⪺�ӤH�q���W�����z�C �b�H�U�a���o RedHat�]�Ψ�
�L�M�G�^Linux �����СJ
* Linux System Labs ��}�J [147]
http://www.lsl.com/ 7 ����
* Cheap Bytes Inc ��}�J [148]
http://www.cheapbytes.com/ 7 ����
�T�O�A�ʶR���w��Q RedHat Linux �䴩�C�ʶR�e�b RedHat �� ftp ����X��
�˪��w��A�p SCSI �t�����M��ܥd�C�Τj�����ʬ����K�i�o��@�x�j�l��
Intel �q���A�� RedHat Linux �Ӱ��� PostgreSQL�C�q���� 95�BOS/2�BUnix
Motif�B�s����]�p Redbaron�BOpera�BNetscape �Ψ�L�ܦh�ӡ^�g
odbc/jdbc/perl/tcl �ӳs�� PostgreSQL�C�]�s��������t�����зǪ��Ȥ�
(client)�C�^
�γo�Ӥ�k�A�A�i�u�Τ@����ܾ��M�@���L�ӱ���ܦh���q���I
�H�U�����Server Switch������Ƹ`���� Networktechnic Inc
�� 800-742-8324 �w�q �]�b����K�q�ܶO�^
�Q����ڭ̪����~�ؿ����ܡA�Ч�A���a�}�q�l��
[email protected]
�u�Τ@���L�B��ܾ��M�ƹ��ӱ���h���q���o�ǹq�l��ܾ��e�\�u�Τ@���L
�B��ܾ��M�ƹ��ӱ���̦h���Q�|���q���C�O�J (embedded) ���L�q���Ҧ��ɶ�
������b�s���F���q���W����L�B��ܾ��M�ƹ����s�b�C
�S�ʤΥγ~
* ��L�B����x���
* 9 �w D ��p �� 6 �w miniDIN �ƹ��䴩
* 5 �w DIN �� 6 �w miniDIN ��L�䴩
* 1600x1200 �ѹ��צӨS�����u
* �ϥμзǪ��q�u
* �ୱ�ά[��
�W��X��L
* �Ҧ��s�����Ҭ� female
* 5 �w DIN �� 6 �w miniDIN
* ���ɭԳ��i�ϩҦ� PC �n�}���εw�}�� (hard or soft boot)
����X���s
* IJ�ʤ@�Ө�ӱ��쨺���q��
* ����@�Ө�W�L 0.5 ��i�J SCAN�BBROADCAST �� COMMAND �Ҧ�
* �e���� LED ����L���ާ@�Ҧ�
* ��J CTRL+* �Ӷi�J COMMAND �Ҧ�
* ���� SCAN�BBROADCAST �� COMMAND
�ƹ�
* 9 �w D ��p
* NTI �}���Ҧ��ӤH�q������L�n��p�ƹ�
* �ƹ��� 9 �w D male
* �ӤH�q���� 9 �w D female
* 6 �w miniDIN
* NTI �}���Ҧ��ӤH�q������� IBM PS/2 �t�C�ƹ�
* �Ҧ��s�����Ҭ� female
���u����
* �i�ۦ��ʡX�����ʶR
* �M����ާ@�ۦP
��ܾ��XVGA
* �W�e�� 150 MHz
* 1600X1200 �I�ѹ��צӤ����a
* �Ҧ��s�����Ҭ� female
14. PostgreSQL �����ε{���M�u��
14.1 PostgreSQL �� 4GL �U�����Ʈw�{���XAppGEN �}�o�t��
AppGEN �i�b���U��
* [149]
http://www.man.ac.uk/~whaley/ag/appgen.html
* [150]
ftp://ftp.mcc.ac.uk/pub/linux/ALPHA/AppGEN.
AppGEN �O�@�ذ����ĥ|�N�{���y���M���ε{�����;� (application
generator) �A�ΥH���ͥH���p���¦���{���C�o�ǵ{���@��b���p��Τ��q��
�p��ϥΡCAppGen �{���H�X�G Common Gateway Interface (CGI) �зǪ� C �R
�O�Z (C scripts) �g���A�j�������p��A�����i�䴩�C
�n�ϥ� AppGen�A�A�ݭn�J
PostgreSQL�A��p����Ʈw�t��
�䴩 CGI �����p��A���A�p NCSA �� HTTPD
�@�� ANSI C �s���A�p GCC
AppGEN �]�A�H�U Unix �]Linux�^ �i����{���J
* defgen�A���|�ھ����Ƶ��c���ͤ@�Ӱ�¦���˪O�{���C�o�ǵ{���i�[�J
�B��s�B �R���M�M���Ʈw���������A�S�i�۰ʫO���ѦҾ�X��
(referential integrity)�C
* appgen�AAppGEN ���s�{���C���|�� AppGEN �����{���X�s���i�� CGI
���檺 C ���{���Υi�Y�ɦb��W�ϥ� HTML �榡���C
* dbf2sql�A�� dBase III �ۮe�� .dbf ���ഫ���i���檺 SQL �R�O�Z���u��
�{���C�o�ϱo�j�����x�s�b DOS/������Ʈw����ƥi���Ө�@�� SQL ���A
���A�p PostgreSQL�C
* ���~�AAppGEN �����F�@�Ƿ|�b�������ϥΪ� HTML ���BGIF �ɩM Java
�p�{���C��M�A�p�Ҧ��n���n���A���]�]�A���㪺���{���X�C
�@�� Andrew Whaley �i�H�H�U�~�|��IJ�J
* [151]
[email protected]
14.2 PostgreSQL �����p����XDBENGINE
dbengine �O Ingo Ciechowski �Ҽg���@��H���Y�Ϊ� PostgreSQL ���p���
�C���b
* [152]
http://www.cis-computer.com/dbengine/
��� DBENGINE�J dbengine �O���p��P Postgres95 �����������A�u�ݪ�Ƥ��
�A���K�i���s�����{�s����Ʈw�C
PHP 3 ��A�b��s�g��� Perl ���y���A�����O�u�� Perl�AAppGEN �M
WDB-P95 �ݭn�A���C�@�Ӹ�Ʈw�إ߳]�w�� (configuration files)�X�Xť�_��
�A�A���G���n���Ǥ@��s�����y�� (meta language) �~��ҥΡC
�M��L�u�㤣�P�A�A���ݭn�ǥ��S�O���{���ΩR�O�Z�y���Өϥ� dbengine�C�]
���|���C�Ӹ�Ʈw�����]�w�ɪ����p�A�ҥH�A���ݭn��߳o�Ƿs���c�C���L�A�p
�G�A�Q�Ψ� dbengine ������\��A�Dz� Perl �O�@�ӥ��T�M�w�C
��Өt�Υi�y��@�Ӫ��[����Ʈw���@��²��B�@�]�w�n�A���|�]�t����p��z
�ѧA����Ʈw�s������ơC�A�Ʀܥi�H���w�갲�� (virual fields)�A�ΥH�b��
����ܦb�ù����e�@�X�Y�ɭp��C
�ϥΰ��ӡJ dbengine �O�ۥѳn��A�M Perl ���ϥα���@�ˡC�p�G�A�����A�i
���Τ��i������A�о\Ū�����ϥΰ��ӡC�̫�@�y�J���O GNU ���Ӫ����O�ũM��
���X�p�G�A�p�ߦa�ɥ� dbengine �Χ⥦�������[�J��ӷ~�����~���A�����|�Q
�P�V�C
14.3 PostgreSQL �� Apache ���A���ҲաXNeoSoft NeoWebScript
Apache �O�@�Ӧ��W�����p��A���C�@�� PostgreSQL �� Apache �������Ҳզ�
��X
* [153]
http://www.neosoft.com/neowebscript/
NeoWebScript �O�@�{�e�\�A�⤣�P����{�ת��{���O�J�� HTML �ɵ{���y���C
���H�n�D�@�ӥ]�t NeoWebScript �� HTML ��ɡA��� NeoWebScript ����
�A���K����O�J�F���R�O�Z�A���ͤ@�ӧt���ۭq���e����C
NeoWebScript �O�����b��� HTML �X�i��\��j�O�B���A������¦�����ʵ{��
���@�Ӱ��t�B�w���B���Ǫ���k�C�y�� NeoWebScript�A�Y�Ϲ�s��ӻ��A�p�ƾ�
(counter)�B�q�l��� (email forms)�B��ȡBñ�Wï (guest books)�B�X�Ȭ���
���ܱo²��C�Ьݬ� NeoWebScript �ۤv�@�X���M PERL �� JavaScript ����
�C
�p�G�A�Q�b�A�����p��A���w�� NeoWebScript�A�A����z���b�}�l�e�ݥ�
�\Ū�L�̪� Sysop FAQ�C�mTheory of Operations�n�|��� NeoWebScript �p��
�B�@�A�mInstallation�n�|�v�B�i�D�A�C�mManagement�n���]�w�M�����A��
���Ʃy�A�mTest�n��A�T�w NeoWebScript �B�@���`�A�mTroubleshooting�n�M��
�A�������D����C
�b�ۤv�� ISP�B���p��Υ~�p��ϥ� NeoWebScript �O�Υ��K�A�A�|�b�n�O�U��
�ɱo�짹�������ӡC���L�A�p�G�A�Q�⥦�O�J��ۤv�����~�Φb�ӷ~�����A���]
�p SSL�^�ϥΡA���`�� 99 �����C
NeoWebScript �O�@�Ӯe�\�A�b����O�J Tcl/Tk �y���@���R�O�Z�u�㪺
Apache �ҲաC���� Karl Lehenbauer�ANeoSoft �� Chief Technical Officer
�o���A�å� Neosoft ���{���]�p�v�M�N���Z���s�g���B��}�Υ[�j�\��C
Apache �O�@�W�̬y�檺���p��A���A�g�լd����������Q�K�ڥP�ϥΡC
Tcl/Tk �O�� Dr. John Ousterhout �}�o���@�رj�l�B�ۥѡB�x���R�O�Z�y
���C�A���L
��Tck/Tk�� �e�\�n��}�o�H����ϥΥH C �� C++ ����¦���u��֤Q�������u�@
�C���]�O�@�ذ��j������y�� (glue language)�A�ϱo�{�s���{���@�P�u��B��
�Ϲ��ƩM�i�Ω� Internet�C��
NeoSoft �п�H�� Chief Technical Officer�AKarl Lehenbauer �b�}�l�ɫK�w
�ѻP Tcl/Tk �}�o�C�L�]�M Mark Diehkans �@�_�Ч@�F Extended Tcl�A�S�W��
TclX �� NeoSoft Tcl�A�����o�ػy�����\��C�ܦh Tcl ���֤߫��O���Ӧ�
Extended Tcl�A�ӥ� Dr. Ousterhout �[�J��֤y�����C
NeoSoft Inc., 1770 St. James Place, Suite 500, Houston, TX 77056 USA
14.4 HTML �� HEITML ���A���ݩ����M�@�� PostgreSQL �� 4GL �y��
heitml �O�t�@�� postgres �P�U����������C�����Ա��A�б�IJ
Helmut Emmelmann H.E.I. Informationssyteme GmbH
Wimpfenerstrasse 23 Tel. 49-621-795141
68259 Mannheim Germany Fax. 49-621-795161
* Mr.Helmut Emmelmann ���q�l�a�} [154]
[email protected]
* Heitml �D�� [155]
http://www.heitml.com
* Heitml ���� [156]
http://www.h-e-i.deom
Heitml �P�ɬO HTML �����A���ݩ����M�@�� 4GL �y���C��s�g�H���i�H
HTML ���������� HTML ���ҽs�g�{���C
Heitml�]�� "Hi"-TML�^�O HTML �������Τ@�ӥ������ĥ|�N�y���A���e�\�H���p
���¦���{�������Q�� SQL ��Ʈw������ơA�Ӥ��ݨϥν���� CGI �R�O�Z
�C
Heitml �b���A���ݩ��� HTML�A�ʺA�a�⡧.hei�����ഫ�� HTML �榡�A�ϥ��P
����s����ݮe�C���]�A�j�a��x�B���Ϊ� HTML �y�k�A�δ��Ѥj�q�w���}�o�F
�����ҩM�{���w������H���� CGI �i�檺�u�@�C�� XML ��Aheitml �e�\�ϥΪ�
�۩w���ҡC�y�� heitml�A�ϥΪ̦۩w�����ҥi½Ķ�� HTML �ζǰe���s����C
Heitml �P�ɥH HTML �]�p�̩M�M�~���{���]�p�v���ؼСCHTML �]�p�v�i�ϥ�
heitml ���Ҩӫإ߰ʺA����A�s�� SQL ��Ʈw�A�Ϋإߧ��㪺�U����ε{
���C�p�ƾ��B�n�O��Ʈw (registration databases)�B�j�M�����B�q�l���B
���h����� (hierachical menus) ���i���P�a�y�ۦb�j�q����禡�w
(Component Libraries) �w�ت���� HTML �����Ҳ��͡C
��{���]�p�v�ӻ��Aheitml �b HTML ���O�J�F���㪺�ĥ|�N�{���y���A
(e.g. <if>, <while>, �M <let> ����)�A
�M��t��ơB��ơB���L�ȡB�r��M���� (tuple) ����F���j�l�B���O�C����
���Ѧһy�k (reference semantics) �p�P����ɦV�y����A��x�s�b���|��
�CHeitml �ܼơA�]�A�Ҧ��b���|���������Ƶ��c�A�b Session Mode ���i�b��
�P��������C�A�]�i�H�ۭq���ҩ��Ҽ��� (environment tags)�A�Ʀܭ��s�w
�q HTML ���ҡC
heitml �ϱo�H�U�Ʊ����i��
�X�X�H�㵲�c�μҲդ� (structured and modular) �覡�}�o��A�j�T��C��
�@�x�Z�C
�X�X�}�o�����z�Τ��ʪ���A���e�i�ʺA�a�A���Ϊ̩һݡC
�X�X�L�ݳ]�p�{���K�i��� SQL ��Ʈw�����e�A�A�u�ݭn�ϥιw�� �w�q��
��dba�����ҡC
�X�X�ϥ� Session Variables �}�o�������Ʈw�Υؿ��ʪ��{���C
Heitml �i�g CGI �����b Linux �����p��A��������A�Ӧb Apache ���i
�ϥ� apache API �ϱo����t�ׯS�O�֡]�קK�F CGI ���u�@�^�C�ثe�A���䴩
mSQL�]�Ĥ@�ΤG���^�BPostgreSQL�]�Ĥ����^�BmySQL�B�� the yard databases
�Cheitml �i�b Linux�BBSDi�BSolaris �M SunOS ����A�H�Φb���� NT �[�W
CGI �M ISAPI�BODBC�B���� 95 ���ϥΡC
heitml�]Linux ���^���s�B�D�ӷ~�ʩM�ӤH�γ~�O�K�O���C�ӷ~��ݪ��X��
�v�O�C�]���եδ������\�৹�㪺�եΪ��i�K�O�U���C�]���L�n�`�N�A�C�ӧA�}
�o����.hei������|�L�X�@�ӰT�����X���O�D�ӥΪ����C�n�O����A�|����@
���X�A�ϧA�i����o�T���ӵL�ݭ��s�w�ˡC�^
heitml�]����Hi��-TML�^�y�ۥi�ۦ�w�q�����ҩM���㪺�{���]�p��O��ۦa��
���μW�j HTML ���\��C�o�ϰʺA�����e�M��Ʈw�{���i�b HTML �@�ɤ��X�{�A
�Ӥ��ݭn CGI �Υ~����Z�ε{���y���C�]�N�O���A�@�� HTML �@�̥i�b����O
�J���ε{���C�o�u�ݭn�ϥηs�����ҡA�Ӥ��� CGI �ε{���]�p�C�t�@�譱�A�i��
�ϥΪ̩ε{���]�p�v�i�гy�γ]�p�j�l�����Үw�C�o���k�ϱo heitml �� HTML
�s��M�M�~�{���]�p�v�@�ɾA�ΡCheitml �b�U����A���W����ΰʺA�a����
HTML�A�ҥH heitml �M���p��зǭݮe�A�]�M����s����ݮe�C���@�譱���ѥ�
�̧��㪺��Ʈw�s���\��A�t�@�譱�ϥΪ̵L�� �z�|����n�� CGI �����
�Cheitml �O�ھڦ���sĶ���c�y�M���� (transaction) �t�Ϊ��̷s��s���G��
�}�o���C
heitml �����}�o�L�{�M HTML ���@�ˡA���O�ϥΤ�r�s�边�� HTML �s�边�A�]
�p�`�a��b�U����A���W�C���L�A�s����i�]�A�ʺA�� heitml ���ҩM�ϥ�
���Үw�C�A�i �ϥγo�Ǽ��Ҧs����Ʈw�B���ͰʺA���e�B�H�X�q�l�A�Ʀܥi�H�}
�o�j�l�����ε{���A�p�n�O��Ʈw (registration database) �M�ʪ��t�ΡC
HTML �s��M�M�~�{���]�p�v�@�˷|�������t��²���a�]�p�������ε{���A�p
�ڭ̪�����ñ�Wï�A�Ӥ��ݨϥν������Ǫ� CGI �R�O�Z����Y�C�o�u�@�u�ݨ�
�� dba ���w�����u��K�i����C
heitml �]�A���P��������Үw�A�ΥH�s�yñ�Wï�B��Ʈw���@�{���B�i�������d
�ߪ��B�j�l���q�l���κ�����h����� (hierarchic menu)�C�o�Ǥu��w
�i�ϥΡA�A�u�ݦb��W�[�W�������ҡC
�@���@�Ӧ��g�窺�{���]�p�v�A�A�i�����ϥ� heitml �����[�ʺA���լ[�c
(persistent dynamic tuple architecture)�Jheitml ����O���ʺA���A
(dynamic typing)�B���\��� �F���p��B���j��ƩM�״I���Ѽƶǻ��S�⪺�R
�Z�y���A�]�y �ʺA���լ[�c�۰ʫO�����j�p�� session ��ơC
14.5 PostgreSQL �� America On-line AOL �U����A��
AOLserver 2.3 ���O�@�ӧK�O���ӷ~�U����A�̡A���i�s���� 6.2.1 �ΥH�W��
PostgreSQL�C�����Ա��A�Ь�
* AOL �U����A�� [157]
http://www.aolserver.com
14.6 PostgreSQL ����� / �p���l�ܨt�ε{���u��(Problem/Project Tracking System
Application Tool for PostgreSQL )
���b
* [158]
http://www.homeport.org/~shevett/pts/
14.7 �� dbase �� dbf ���ഫ�� PostgreSQL
dbf2msql �{���M mSQL �� PostgreSQL �X�@�r�֡C�A�i�b�H�U����
* [159]
ftp://ftp.nerosworld.com/pub/SQL/dbf2sql/
* [160]
ftp://ftp.postgresql.org/pub/incoming/dbf2pg-3.0.tar.gz
�o�{���� Faculty of Electrical Engineering TU Delft, NL Computer
Architecture and Digital Technique section �� Maarten Boekhold �g���C
* [161]
[email protected]
�A�]�i�ϥ� python ����k (method) �bŪ�J dbf �ɤθ��J�� postgre ��Ʈw
�C
* See [162]
http://www.python.org
15. PostgreSQL �����p���Ʈw�]�p/�����u��XEARP
* [163]
http://www.oswego.edu/Earp
* [164]
ftp://ftp.oswego.edu ����pub/unix/earp���ؿ��C
15.1 EARP �O����H
�O David Dougherty ����Easily Adjustable Response Program���CEARP �O�@
�ӧQ�� PostgreSQL ��Ʈw�t�t����W��Ʈw�]�p/��I�u��C�\��]�A�J
* �@�ӵ�ı�ƪ��]�p�t�ΡC
* �@�� sendmail �����C�]�i���o�q�l�^
* �@�ӼW�j�F���O�w����C
* �@�� cgi �X�ʵ{���C
15.2 �I��
EARP �D�n�I��@�Ӧb http �ʱ��{���U���檺 CGI �G���ɨӦs����Ʈw���A��
�C�Ҧ��]�p�u�㳣�إߦb�X�ʵ{�����A���b��W�A�A�S���a��ݭn�@�X�]�p�C��
�Ǥu�㥻���ݭn�@�Ӥ䴩�Ϲ����s����A�ҳ]�p�X�Ӫ�����W�ߩ�s�g��k�A��
�O�ھڭӤH�n�c�C
15.3 �A�ݭn����Ӱ��� EARP
EARP �j���i�L���Υu�ݤ@�Dz��Ӥu�@�K�i�b���P�����x����C�w���i�Ϊ����x�]
�A�J
* Solaris 2.5
* Linux 1.2.13+
* GNU C++
* PostgreSQL (1.01 / 1.02 ��)
* netsite ���A��
* NCSA httpd
* GNU C++
* PostgreSQL (1.01 / 1.02 ��)
* NCSA httpd
* Apache httpd
�ثe�]1.3�^������ Earp ���]�p�O�ذ�� 1.01/1.02 ���� PostgreSQL ��
libpq�C�p�G�A�ϥΪ�����s�� Postgres�A�йw���A�ݭn���@�Dz��Ӫ��u�@�Ө�
���B�@���`�C�b�}�o���������]Earp 2.0�^�Alibpq �|�H�Ҳժ��Φ��䴩�C
15.4 ���p��u�@�H
EARP ���䤤�@�ӥD�n�S��O���ϥΪ���ɦV����k�Ӳ��ͥΥH�s����Ʈw��
html ���C�j�����������]�t�h�Ӫ���C�C�Ӫ��H�Y�Ǥu�㲣�ͤΨ��o�@�ӦW
�r�A�o�Ǫ���|�Q�����u�� (page tool) �H�@�ӥi�I�s������ (callable
sequence) �s���b�@�_�C����i�b�� �L���������ΡC��� HTML�B�d�ߡBŪ����
�Ϊ̿�J�B�i�������d�ߩM��J����榡�� (Extendable Formatting of Query
and Input objects)�B��{������s������L���u��Ҧ����ѡC��i
�u��]�A�q�l�u��M�h�y�d�ߤu��C
EARP ���t�@�ӯS��O���i���O�w�C���h�ؤ�k����s�� EARP �t�Ϊ����P�����C
���F���i���O�w�AEARP �ˬd�C�@�ӳs���A�H�T�w�C�ӳs���H�������� (ids)
�θs�� (groups)�C���P�������s���W�ߩw�q�A�̲� ���զX�M�w���G��_�s��
EARP ���@�ӯS�w�����C���~�A��I�o�ǫO�w�S��u�ݤ@�Ӥ䴩�]�Χ�Ρ^��
�Ϊ̻{�� (user authentication) �� http ���A���C
15.5 ��B���o EARP�H
EARP �i�y�ΦW (anonymous) ftp ���o�J
* [165]
ftp://ftp.oswego.edu �� 'pub/unix/earp' �ؿ��C
16. PHP Hypertext PreProcessor�XPostgreSQL �����A���� html �O�J�R�O�Z�y��
�U������u����J
* [166]
http://www.php.net
* [167]
http://www.vex.net/php
�e���� Professional Home Pages (PHP 3) �Ӳ{�b�٬� PHP Hypertext
Pre-Processor
* �ܦh��w�����M�g���x�A�W�� www.COUNTRYCODE.php.net
* [168]
http://www.fe.de.php.net
* [169]
http://www.sk.php.net
* [170]
http://php.iquest.net/
���D�i�q�l��J
* [171]
[email protected]
PHP 3 �O�@�Ӧ��A���� html �O�J�R�O�Z�y���C����A�b�A�� .HTML �ɤ��[�J²
�檺�R�O�Z�A�� JavaScript ��C���L�A�M JavaScript ���P�APHP �W�ߩ�A
���CJavaScript �O�@�ثȤ�ݪ� html �O�J�R�O�Z�y���A�� PHP 3 �O���A����
�y���CPHP 3 �������M Netscape �� LiveWire Pro ���~�ۦ��C�p�G�A��������
���A�A�i�b�䤤�@�ӳQ�䴩���ާ@�t�ΰ��� Netscape �� Commerce Server�A�A
�j�P�i�ݨ� LiveWire Pro�C�p�G�A���w�ֳt��s�S�]�A���{���X���ۥѳn��A�A
�j���|���w PHP 3�C
16.1 �D�n�S��
�зǪ� CGI�AFastCGI �M Apache �Ҳդ䴩 �@���@�ӼзǪ� CGI �{���APHP 3
�i�b������ Unix ���p��A������� Unix �q���W�w�ˡC�[�W��s FastCGI
�зǪ��䴩�APHP 3 �i�q���o��t�פW���ﵽ�C�@���@�� Apache �ҲաA PHP 3
�ܦ� CGI �{���~ �@�ӱj�l�Χ֦p�{�q����ܡC
* �s���O�� (Access Logging) �y�� PHP 3 ���s�������\��A�Ϊ̥i�ۦ��@
�R���Ʀr (hit counting) �Χ@�X�����C���������Q�Ψt�Τ����������ɡA
�ӥB�Y�ɺʹ�s���L�{�CLog Viewer Script ���ѤF�ӧO�Ϊ֦̾���������
�s���K�n�C���~�A���M��i�Q�]�w���b�C�����ͤ@����ܦs����ƪ����}�C
�����������N���@�ӨҤl�C
* �s������ (Access Control) �@�ӥH�U�����¦�����س]�w�e���B�z����
��]�w�C�Ϊ̥i�H���Y�H�֦����Ҧ��έӧO��إ߳W�h�A����֤H��ΥL
���˾\Ū�����C�ھڥΪ̪����B�s����B�q�l�a�}�Ʀܨӷ����
(referring document)�A��i�H�K�X�O�@�B�����ݤ���B�T����
(logging disabled) �M����L�ơC
* Postgres �䴩 Postgres �O�@�ӥ��i���ۥ� RDBMS�C�Q�� PHP 3�A�Ϊ̥i��
���b .HTML �� ���O�J Postgres95 �M PostgreSQL �� SQL�d�ߡC
* RFC-1867 �ɮפW�Ǥ䴩 �ɮפW�ǬO Netscape 2.0 ���s�\��C����Ϊ̧�
�ɮפW�Ǩ�U����A���C�ϱo�o�Ʀ�i����]�A�O��ڪ� Mime �ѽX��
PHP 3 ���ѡA���i�����B�~���ج[�A�b����W�Ǫ��ɮᰵ�Ǧ��Ϊ��ơC
* HTTP ����¦���{�ұ��� PHP 3 �i�ΨӦb Apache �U����A�����إߦ۩w
���H HTTP ����¦���{�Ҿ���C
* �ܼơB�C�}�B��p�C�} (Associative Arrays) PHP 3 �䴩�ܼƧκA�B�C�}
�B�Ʀܦp Perl �몺��p�C�}�C���̥i�y GET �� POST ��k�b����ǻ��C
* ���BWhile �j�� PHP 3 �䴩�@����� C �����\���Z�y���C�A�i�ϥ�
if/then/elseif/else/endif ���Bwhile �j��M switch/case �ԭz�ӫ�
�ާA�� html ������ܪ���y�V�C
* �����`�W��F�� �`�W����F���`�Q�Ω�Ҧ��t��B�Ҧ����� (pattern
substitutions) �M�@�몺�r��B�z�CPHP 3 �䴩�Ҧ��`�Ϊ��`�W��F���B�@
�C
* ��l HTTP ��Y���� �n�i�氪����]�p�A�Ϻ�����ζǰe�۩w HTTP ��
�Y����O�O�������C�@�ӺD�`�Ϊk�O�ǰe�@�� Location: URL ��Y�ӧ�Ȥ�
�ݶǰe���L URL�C���]�i�Ω�����֨��γB�z������W�����W����s��
��Y�C
* �Y�� GIF �Ϲ����� PHP 3 �䴩 Thomas Boutell �� GD �Ϲ��禡�w�A�ϥ�
�i�Y�ɲ��� GIF �Ϲ��C
* ISP���w���Ҧ����䴩 PHP 3 �䴩�@�ӿW�������w���Ҧ���(Safe Mode)�A��
�o�b�P�@���A���W�� �h�ӥΤ�ϥ� PHP �R�O�Z�]�S�w�����D�C
* ���O�ۥѪ��I �̫�@�ӭ��n���S�ʡJ�o�M��O�����ۥѪ��C���H GPL ����
���v�A��A�i �����ت��ϥγo�n��A�]�A�ӷ~�γ~�C�����Ա��A�аѬ�
GNU General Public License ���C
16.2 �W�A
���o�{���j�����O�b�ά��h�ۦh�j�� (the University of Toronto�^�}�o���C�D
�`�P�¤j�� Network Development �� Lee Oattes ��س]�ʪ����C
��PostgreSQL �䴩���{���X�O Adam Sussman �g�����C
* [172]
[email protected]
���L�ƨ�L����U���դΰ������H�C
16.3 PHP 3�X²�v
��X�{�ɡAPHP �O�@�ӥH Perl �g���p��²�檺 cgi �]�˾� (wrapper)�C������
���q�������X�ӤH�ϥΡC�o�M�˳̥��W�� Personal Home Page Tools�A����ܬ�
Personal Home Page Construction Kit�C
�t���@�u��O�g��²�Ʀb����O�J SQL �d�ߪ��u�@�C���W�O�t�@�� CGI
�]�˾��A���R (parsed) SQL �d�ߤ�²�ƫإ߮ھڳo�Ǭd�ߪ����M�C���u
�@�C�o�u��W��FI (Form Interpreter)�C
PHP/FI 2.0 ���������g�o��M�n��A�N���X�Ӭ��@�C���w�i�Ƭ��@�ӥi�O�J
HTML �ɤ���²��q���y���C���M�����즳��²�١A�����w�A���X�ΡC�{�b
�APHP/FI �Φb��Ӻ�����p���h�L�ӤH��]�w�C���צW�s����A���y�ۧ��
²�檺�R�O�Z�����O�J HTML �ɤ��A�����j�q�p�� Perl cgi �{�����ݭn�C�o��
�|�[�֧A����A�]�� fork �h�� Perl ���x�Z�w�g�����C���]²�ƤF�z�j��
����u�@�A�]���A�i�����Ҧ�������b�@�� html �ɤ��C�[�W�h�ظ�Ʈw
���䴩�A�i�ϥθ�Ʈw����}�o�ܱo²��C�ܦh�Hı�o�O�J�d�ߤ�O�إ�
HTML �M CGI ��²��o�h�C
�b�o��A��� PHP�BFI �� PHP/FI ���a�賣���P�@�ƪ��CPHP �M FI �u
���� ���W�����O�C���̥i�b�P�@���{���X���G���إߡC�{�b�APHP/FI �w��W��
PHP 3�C
16.4 ����A�گ�� PHP/FI ������H
�p�G�A�ϥ� PHP/FI�A�A�����|�`�N�쥦�b�����[�W�o����Q�s��L�h�֦�����
�ơ]�p�G�A�b�b�sĶ�ɿ��F access logging�^�C�o�u�O PHP/FI �Ұ����@�p��
���C�����t�@�ӭ��n����O�@���@�Ӫ�檽Ķ cgi �{�� (form interpreter
cgi)�A�o�]�N�O FI ���N��C�Ҧp�A�p�G�A�b�@�Ӻ���إߤF�@�Ӫ��A�A��
�n �@�ӵ{���ӳB�z���W����ơC�Y�ϧA�u�Q���ƶǰe��t�@��A�A�]�ݭn
cgi �{�������U�CPHP/FI �ϱo���o�M�B�z��檺��Ʒ����e���C
16.5 �@��²�檺�Ҥl�J
���]�A���@�i���J
<FORM ACTION="/cgi-bin/php.cgi/~userid/display.html" METHOD=POST>
<INPUT TYPE="text" name="name">
<INPUT TYPE="text" name="age">
<INPUT TYPE="submit">
<FORM>
�A�� display.html �K�i�]�A������F��J
< ?echo "Hi $ name, you are $ age years old!<p>" >
�N�O�o��²��IPHP/FI �۰ʬ��C�Ӫ���J��첣�ͤ@���ܼơC����A�K�i�b
ACTION URL �ɤ��ϥγo���ܼơC
�b�A��X�p��ϥ��ܼƤ��᪺�B�J�N�O�b����եΤ@����y�{���ҡC�Ҧp�A
�p�G�A�Q�ھڥΪ̿�J��ܤ��P�T���A�A�i�ϥ� if/else ��C�b�W�����Ҥl�A
�ڭ̥i���� display.html�A�ϱo���P�F��|�ھڥΤ��J��ܥX�ӡJ
<?
if($age>50);
echo "Hi $name, you are ancient!<p>";
elseif($age>30);
echo "Hi $name, you are very old!<p>";
else;
echo "Hi $name.";
endif;
>
PHP/FI ���Ѥ@�ثD�`�j�l���R�O�Z�y���A�వ�쪺�Ƥ�H�W²�檺�Ҥl�h�ܦh�C
�����Ա��A�аѾ\��� PHP/FI Script Language �����`�C
�A�]�i�ϥ� PHP/FI �ӳ]�w������H��ݨ�A����C�o�i�ϥΤ@�Ӥ��ت��]�w
�e������C�Ҧp�A�y�ۥ��A�i���w�u���Y�Ǻ�쪺�H�i�ݨ�A����A�Ϋإߤ@
�dzW�h�ӥαK�X�O�@�Y�Ǻ�C�����Ա��A�аѾ\��� Access Control �����`
�C
PHP/FI �]����O�������̷� RFC-1867 �W�w���s����W�Ǫ��ɮסC�o�S��ϥ�
�̯�W�Ǥ�r�ΤG���ɡC�y�� PHP/FI ���s������M��\��A�A�i��������a
�\�֤W�ǤΤW�ǫᰵ����C�����Ա��A�аѾ\��� File Upload �����`�C
PHP/FI �䴩 PostgreSQL ��Ʈw�M��C���䴩�b .HTML �ɤ��O�J SQL �d�ߡC��
���Ա��A�аѾ\��� PostgreSQL Support �����`�C
PHP/FI �䴩 mysql ��Ʈw�M��C���䴩�b .HTML �ɤ��O�J SQL �d�ߡC������
���A�аѾ\��� mysql Support �����`�C
16.6 CGI ��V (CGI Redirection)
Apache 1.0.x �K�n
�ϥ� Apache ���A���� cgi ��V�ҲլO���� PHP/FI ���@�Ӧn��k�C�Ъ`�N�A�L
����ߧ�V�ҲաA�p�G�A�ϥ� PHP/FI �� Apache �Ҳժ��� (Apache module
version)�C����ӳo���V�ҲաC�@�ӬO Dave Andersen �}�o���J
* [173]
[email protected]
���i�b�H�U�a����
* [174]
ftp://ftp.aros.net/pub/util/apache/mod_cgi_redirect.c
�t�@�Ӥw�]�A�b Apache ���A�W�� mod_actions.c�C�o�ǼҲշ����ۦ��A�u�O�b
�Ϊk�W���ֳ\�t�O�C��ӳ����չL�A��M PHP/FI ���Q�X�@�C
�d�� Apache ��������p��[�J�@�ӼҲաC�@��ӻ��A�A��ҲզW�٥[��@��
�W�� Configuration ���ɮפ��C�p�G�A�ϥ� mod_actions �ҲաA�A�n�[���@�y
�O�J
Module action_module mod_actions.o
�p�G�A�ϥ� mod_cgi_redirect �ҲաA�[�W�H�U�@�y�J
Module cgi_redirect_module mod_cgi_redirect.o
���s�sĶ�A�� httpd �Φw�˥��C�n�]�w cgi ��V�A�ݭn�b�A�� mime.types ��
���إ߷s�� mime ����A�Φb�A�� srm.conf �ɤ��ϥ� AddType ���O�ӥ[�W
mime ����C�ҥ[�W�� mime ���������J
application/x-httpd-php phtml
�p�G�A�ϥ� mod_actions.c �ҲաA�A�ݦb srm.conf �ɤ��[�W�H�U�@��J
Action application/x-httpd-php /cgi-bin/php.cgi
�p�G�A�ϥ� mod_cgi_redirect.c �ҲաA�A�ݦb srm.conf �ɤ��[�W�H�U�@��J
CgiRedirect application/x-httpd-php /cgi-bin/php.cgi
���n�P�ɨϥ� mod_actions.c �M mod_cgi_redirect.c�C
�w�ˤΥ��T�]�w�F�o�� cgi ��V�Ҳի�A�A�u�ݧ⩵���ɦW�w�� .phtml�A�K�i
�H���w�o�ɮץ� php/fi ���R�C���~�A�p�G�A�b srm.conf �ɪ�
DirectoryIndex �]�w��[�W index.phtml�A�̤W�h����K�|�۰ʥ� php ���R
�A�p�G�A�� index �ɦW�� index.phtml�C
Netscape HTTPD
�A�i�y Netscape Server CGI Redirection �Ҳըӫ��w�۰ʧ�Y�ǩ����ɦW����
�ת��n�D��V�� PHP/FI�C�o�Ҳեi�b PHP/FI ��� File Archieves �����C
�M�� README ���T�a����F�p��]�w���ӥΩ� PHP/FI�C
NCSA HTTPD
�ثe�ANCSA �ä��䴩�ҲաA�ҥH�A�n�ϥ� cgi ��V���ܡA�A�n�ק��A������
�{���X�C�@�ӹ� NCSA 1.5 ���o�u�@���O�ɦb�b PHP/FI File Archieves �����
�C
16.7 �b���O���� PHP/FI
�p�G�A�إߤF CGI ������ PHP/FI�A�A�u�ݦb���O���J php.cgi filename�A
��filename �O�A�Q���R���ɮסC�A�i�إ߿W�ߪ� PHP/FI �R�O�Z�A�u�ݧ��Z��
�Ĥ@��g������J
#!/usr/local/bin/php.cgi -q
��-q������L�X HTTP ��Y�C���w���ܡA�A�i���νп�ܡC
17. PostgreSQL �� Python ����
Python �O�@�Ӫ�Ķ������ɦV�R�O�Z�y���C���ϥ�²���]�������y�k�B²�檽��
���y�l�^�A���ܦh�Ω�إ� GUI �������B�U����������C�@�Ӧ����z���s���
�]��� HotJava�^���b�}�o���]�@�E�E���~�Q�@��^�A�o�|�����{���]�p���ܦh
���|�CPython �����v�����H��������i���S���� Stichting S Mathematisch
Centrum�A�i�ۥѴ��G�C���]�A����B��O (classes)�B�ҲաB�M�ҥ~
(exceptions) ���ʺA���J�C�ϥ� C �y���ӱN�䤶���[�J�s�t�Ψ禡�w�O������
�u�@�A�� Python �b�ۦ�]�w�ɮe���ϥΡCPython �O�@�Ӿ֦� X �����������R
�O�Z�y���C�b Linux ���Ф��� Python �M��]�A�j�����з� Python �ҲաA�H��
�Χ@ Tk ������ Tix widget �ҲաC
PyGreSQL �O�@�ӥΧ@ PostgreSQL ��Ʈw�������C���O�J�F PostgreSQL �d�ߨ�
���w�A�ϱo�b Python ��Z���ϥαj�l�� PostgreSQL �S�ʤQ��²��CPyGreSQL
�� by D'Arcy J.M. Cain and Pascal Andre �g���C
* PyGreSQL ���s�� [175]
http://www.druid.net/pygresql/
* D'Arcy �Һ��@�� [176]
http://www.druid.net/~darcy/
* �º�b
[177]
ftp://ftp.via.ecp.fr/pub/python/contrib/Database/PyGres95.REA
DME
* D'Arcy J.M. Cain [178]
[email protected]
* Pascal Andre [179]
[email protected]
* Pascal Andre [180]
[email protected]
17.1 �p��o PyGres�H
���P�M�D��b�J
* Python
[181]
ftp://ftp.python.org:/pub/www.python.org/1.5/python1.5b2.tar.
gz
* PyGreSQL [182]
ftp://ftp.druid.net/pub/distrib/PyGreSQL-2.1.tgz
* �º�
[183]
ftp://ftp.via.ecp.fr/pub/python/contrib/Database/PyGres95-1.0
b.tar.gz
�L�צp��A�A�����մM��̱���A���M�g���x�C�аѾ\��ƨӷ��ӧ�o�ǯ��x
�CPygreSQL �]�|�b Python �M PostgreSQL ���x�� contrib �ؿ����C
17.2 ��ƩM�䴩
�p�G�A�ݭn�o�ǮM��ơA�Ьd�ݥH�U��J
* Python : [184]
http://www.python.org/
* PostgreSQL :
[185]
http://epoch.cs.berkeley.edu:8000/postgres95/index.html
* PyGreSQL [186]
ftp://ftp.druid.net/pub/distrib/PyGreSQL-2.1.tgz
* PyGreSQL �º� :
[187]
http://www.via.ecp.fr/via/products/pygres.html
�䴩�J
* PyGreSQL ���q�H�¡C�n�ѥ[���ܡA�A�i�q�l�ܡJ
[188]
[email protected] �b���夤�g��subscribe pygresql name@domain��
�A�⡧name@domain�� �אּ�A�ۤv���q�l�a�}�C
* Python ���s�D�աJ newsgroup comp.lang.python
* PyGreSQL : �p�����γ��i�B�N���B�`��A�Ч� Andre
[189]
[email protected]
18. PostgreSQL �M�U����h�� (gateway) �XWDB-P95
18.1 ��� wdb-p95
WDB-P95 - �@�ӥ� J. Douglas Dunlop �}�o�� PostgreSQL ��Ʈw�U�����
���b�J
* J Rowe ���s WDB �b
[190]
http://www.lava.net/beowulf/programming/wdb
* �s������ WWW-WDB �b [191]
http://www.eol.ists.ca/~dunlop/wdb-p95/
* �����D�ηQ�[�J�q�H�� [192]
[email protected]
�o�O�@�ӭק�F�� wdb-1.3a2�A���Ѥ@�� PostgreSQL ��U����h��C�o����
�]�ݭn�@�ӯ�B�z HTML �C���s����C�쥻�� wdb �L���n�D�A���n�٭�]���
�C
�A�i���� CASI Tape and Image Query�C�A�i�ݬݨ� Form Definition File
(FDF)�A���]�Ω� CASI Tape and Image Query�A���]�t�F��ӦC���p��
(join)�C
�o�����]�t�Ҧ��ݭn�Ω�w�˩M����H WDB-P95 �� PostgreSQL �������ɮסC�n
��o�t�β��Ө��L��Ʈw���ᬰ²��X�p�G���䴩�зǪ� SQL �M�֦� Perl ��
���C
18.2 PostgreSQL ���A���Bpgperl �M httpd �O�_�ݦb�P�@�q���H
�_�XPostgreSQL ���ݦb�P�@�q���C�] WDB-P95 �� httpd �I�s�A���̭n�b�P�@��
�q���C�S�]�� WDB-P95 �ϥ� Pg.pm�Apgperl �]�n�b�P�@�q���CPgperl �O�H
libpq �禡�w�g���A�ҥH���i�s����W��� PostgreSQL ���A���A�N�p��L
PostgreSQL �Ȥ�C�p�U�ҭz�J
(�U����Ȥ� (Netscape)) => (HTTP ���A�� (NCSA's http) + WDB-P95 +
pgperl + libpq)=> (PostgreSQL ���A��)
�A�� () �N��q���C
�C���q���i�O���P����JNT�BSUN�BHP�K�K���A�ݭn�b�A������ WDB-P95 ���q
���� libpq �����禡�w�A�]���A�n�Υ��ӽsĶ pgperl�C�]�o�t�γ]�p���|�ϥ�
HTML �C��A�ҥH�̦n���@�s�̷s���U����Ȥ�C�^
19. "C", "C++", ESQL/C �y�������M PostgreSQL ���v��B�⤸ (Bitwise Operators)
19.1 "C" ����
���w�]�t�b���G���A�W����libpq���C�M Oracle OCI�BSybase DB-lib
�BInformix CLI�禡�w�ۦ��C
19.2 "C++" ����
���w�]�t�b���G���A�W����libpq++���C
19.3 ESQL/C
PostgreSQL ESQL/C 'Embedded C Pre-compiler' ��� Oracle Pro*C
�BInformix ESQL/C�CPostgreSQL ESQL/C �O�@�� SQL ���ε{������ (API)�A��
C �{�γ]�p�v��s�g�i�֦��z��Ʈw����O���۩w���ε{���CPostgreSQL
ESQL/C �e�\�A�ϥΧA�Ҽ�x���ĤT�N�q���y���ӤS��Q�Ψ쵲�c�Ƭd�y��
(SQL) ���u�I�C
ESQL/C �]�t�H�U�n��J
* ESQL/C �禡�w���Ѩ��Ʈw���A�����s����O�� C �禡�C
* ESQL/C ��Y�ɴ��ѹ� ESQL/C �{�����Ϊ���Ƶ��c�B�`�ƩM�������w�q�C
* ESQL/C �w�B�z���A�@�ӧ�]�t SQL �y�l�� C ���ഫ���i����ɪ����{���w
�B�z���C �]Ķ���J������t�O�J�� SQL �� C �ɮ��ഫ���зǪ� C �ɮסA
�åi�� gcc �sĶ���i����ɡC�t�~�APostgreSQL �� SQL API ���W�� egpc
�C�^
���b
* PostgreSQL �� ESQL/C �w�]�t�b���G���C
* �D�� [193]
ftp://ftp.lysator.liu.se/pub/linus
* �q�l�J [194]
[email protected]
19.4 PostgreSQL ���v�줸�B�⤸
�v�줸�B�⤸�� Nicolas Moldavsky �g��
* [195]
[email protected]
���v�줸�B��]AND�BOR�BXOR�B�줸�ɼ� (bitwise complement)�^�� pgsql
��C���禡�C�i�� anonymous FTP �o��J
* [196]
ftp://ftp.overnet.com.ar/pub/utils/linux/bitpgsql.tgz
�]�A�F Linux �� Makefile�C
20. PostgreSQL ����尲�W�X (Kanji Code)
���b�H�U��}�J
* [197]
ftp://ftp.sra.co.jp/pub/cmd/postgres/
21. ���� PostgreSQL ���� 95 / ���� NT
�����H�b���Ө��� 95 / ���� NT�C���Ӥu�@�ϥ� gcc�Bgmake �� ���� NT/95
���C�n�b win32 �sĶ���{���X�A�A�ݭn gnu-win32�CGNU gcc �� win32 ���w�X
�{�C�аѾ\�H�U��J
* [198]
http://www.cygnus.com/misc/gnu-win32
�b�o����o cdk.exe �ɡ]gnu-win32 ���ۧڸ���ɡ^ �]Ķ���J���u��w��W
�� cygwin�A��}�� [199]
http://sourceware.cygnus.com�C�^
���Ӥu�@�]�i�H�H�U����Unix-Emulator on NT���u��i��
* [200]
http://www.softway.com
22. �q�H��
22.1 ���o�K�O�q�l��f
�K�y�i�g�X�b�H�U�a���o�K�O�q�l
* �b Yahoo [201]
http://www.yahoo.com �w�� e-mail
* In Lycos [202]
http://www.lycos.com �w�� new e-mail accounts
* In hotmail [203]
http://www.hotmail.com �w�� new e-mail accounts
�q�\ PostgreSQL �q�H�¡A�� Yahoo ���@�Ӫ��[�S��A�|�� PostgreSQL �q�l
�إ߿W�ߪ��ؿ��A�K�P�Z�çA��L���q�l�C�ܿ�ؿ� Email- > Options- >
Filters �δz�� seperate folder for email�C�A�i�γo�ӹq�l��f�b�@�ɥ��
�a�覬�o�q�l�A�u�n�A��W��C
�p�G�A����L�q�l�A�A�i�Ρ�Mail Filters���Ӧ۰ʧ� PostgreSQL �l����W
�ߪ��ؿ��A�H�K�V�áC
22.2 �^��q�H��
�аѾ\�D��� Mailing Lists ���ءJ
* [204]
http://www.postgresql.org/
* ����D�q�l�ܡJ [205]
[email protected]
* �}�o�H�� [206]
[email protected]
* ������Ӫ����D [207]
[email protected]
* �����D [208]
[email protected]
�A�|�b�@�餧���q���쵪�שΦ^�СI
�A�]�i�q�\�q�T�¡C�аѾ\�H�W�����o�K�O�q�l��f���@�`�C�n�q�\�ΰ���q
�\�A�q�l��
* [209]
[email protected]
* [210]
[email protected]
* [211]
[email protected]
* [212]
[email protected]
�T��������u�i���@��
subscribe
�]�Ρ^
unsubscribe
22.3 �q�H�¦s�w
�q�H�¤]�H html �榡�s�w�b�H�U�a��J
* �g MHonarc �A�g WWW ���C��ؿ�
[213]
http://www.postgresql.org/mhonarc/pgsql-questions
* [214]
ftp://ftp.postgresql.org �ؿ� /pub/majordomo
22.4 ��Z����q�H��
�ثe���@�ӡu�D�x��v����Z���� PostgreSQL �q�H�¡C�аѾ\�H�W�������
�o�K�O�q�l��f���@�`�C�n�q�\���ܡA�Ϊ̻ݹq�l�ܡJ
* [215]
[email protected]
�T��������u�i���@��
inscripcion pgsql-ayuda
23. ���M�ѦҮ�
23.1 �Τ��ީM������
PostgreSQL ���G���w�]�A�H�U�U���� postscript�BHTML �榡 �M unix
man-pages�C�p�G�A��W��A�A�i�b�H�U�a����U�C���J
[216]
http://www.postgresql.org/docs
* "Installation Guide"
* "User Guide" for PostgreSQL
* "Implementation Guide" �Բӻ��� PostgreSQL ��Ʈw�������B�@
* �u�W������
* HTML �榡���u�W������
* Postscript �榡���u�W�����ѡA�ΥH�C�L
23.2 �u�W���
* ���ظ�ƫ��A�M�B�⤸���W��M�y�z
�o�O6.4 ���� PSQL ���O���@����
* �䴩�� SQL ���r�W��
�b /tools �ؿ������@�Ӥ�Z���o�u�@
* �䴩���y�y�W��
�ϥ� psql \h ���O
* PostgreSQL ������p����Ʈw�����]��I��k�^�M�ƭӽu�W�Ҥl�]�d��
�^
�� src/test ���� regression ���աC�A�|��� regress/sql �M suite/*.sql �ؿ��C
* PostgreSQL ����
SQL ���ɽZ��b src/tutorial �ؿ���
�]�аѾ\�������A [217]Appendix B ������Ǫ� SQL ���ɡ��C
23.3 ���Ϊ��ѦҮ�
* "Understanding the New SQL: A Complete Guide" - Jim Melton Alan
R.Simon ��
Morgan Kaufman Publisher �O�䤤�@���̦n�� SQL �ѡC�o���ѥH SQL92 ���ǡC
* "A Guide to THE SQL STANDARD" - C.J.Date ��
Addison-Wesley Publishing company �]�O�@���n�ѡC��� SQL ���W�@�C
* SQL - The Standard Handbook, �@�E�E�G�~�Q�@��
Stephen Cannan and Gerard Otten
McGraw-Hill Book Company Europe , Berkshire, SL6 2QL, England
* SQL Instant Reference, 1993
Martin Gruber, Technical Editor: Joe Celko
SYBEX Inc. 2021 Challenger Drive Alameda, CA 94501
* C.J.Date, "An introduction to Database Systems" (�Ĥ���),
Addison-Wesley, 1995, ISBN 0-201-82458-2
�o���O��Ʈw�z�t�Ϊ��t�g�C�o���ѸԲӻ������W�� (normalization)�BSQL�B��_ (re
covery)�B�æ�� (concurrency)�B�O�w�B��X�� (integrity)�B��쥻����p�Ҧ�������
�B�{�O���D�p�D�q�t�ΩM����ɦV�ҫ��C�]�]�A�j�q�ѦҸ�ƥH
�Ѳ`�J��s�C�V�j�����Τ��ˡC
* Stefan Stanczyk, "Theory and Practice of Relational Databases",
UCL Press Ltd, 1990, ISBN 1-857-28232-9
�o���ѸԲӻ�����p����Ʈw�B��Y�N�� (relational algebra)�B��Y�t�� (calculus)
�M���W�ƪ��z�סC�������]�t�{��@�ɪ����D�M��������Ҥl�C�V�j�����Τ��ˡC
* "The Practical SQL Handbook" �ĤT���A Addison Wesley Developers
Press ISBN 0-201-44787-8
�V�j�����Τ��ˡC
* Michael Stonebraker, "Readings in Database Systems", Morgan
Kaufmann, 1988, ISBN 0-934613-65-6
�o�O�L�h�Ʀ~�����Ʈw���פ嶰�C�����O���@��Ϊ̬ݡA�ӬO�i�����ǥ͡]��s�͡^�θ�
�Ʈw�}�o�H���C
* C.J.Date, "Relational Database - Selected Readings",
Addison-Wesley, 1986, ISBN 0-201-14196-5
�o�O�L�h�Ʀ~�����Ʈw���פ嶰�C�����O���@��Ϊ̬ݡA�ӬO�i�����ǥ͡]��s�͡^�θ�
�Ʈw�}�o�H���C
* Nick Ryan �M Dan Smith, "Database Systems Engineering",
International Thomson Computer Press, 1995, ISBN 1-85032-115-9
�o���Ѳ`�J�����s����k�M�x�s�ަҡC
* Bipin C. Desai, "An introduction to Database Systems", West
Publishing Co., 1990, ISBN 0-314-66771-7
�����O���@��Ϊ̬ݡA�ӬO�i�����ǥ͡]��s�͡^�θ�Ʈw�}�o�H���C
* Joe Celko "INSTANT SQL Programming"
Wrox Press Ltd.
Unit 16, 20 James Road, Tyseley
Birmingham, B11 2BA, England
1995
* Michael Gorman "Database Management Systems: Understanding and
Applying Database"
Technology
QED and John Wiley
1991
* Michael Gorman "Enterprise Database for a Client/Server
Environment" QED and John Wiley
�����إ߸g�� repository metamodels ���D�q��Ʈw���ε{�����n�D�M ANSI
�з� SQL 1993 �����ΡC
�٦��ƥH�ʭp��� SQL ���ѡI��ѩ��ݬݧa�C
23.4 ANSI/ISO SQL �W����XSQL 1992, SQL 1998
ANSI/ISO SQL �W����i�b�U�C����J
* [218]
http://www.naiua.org/std-orgs.html
* [219]
http://www.ansi.org/docs �w��ɮ� cat_c.html �δM�䡧Database
SQL���C
* SQL92 �з� [220]
http://www.jcc.com �w��ɮ� sql_stnd.html�C
* ANSI/ISO SQL �W��
[221]
http://www.contrib.andrew.cmu.edu/~shadow/sql.html �A�|�b����
�� SQL ���ѦҸ�ơC
23.5 ANSI/ISO SQL 1992 ���y�k
�аѾ\��������� [222]Appendix A
23.6 ANSI/ISO SQL 1998 ���y�k
SQL 1998 (SQL 3) �W�椴�b�}�o���C�Ѭݥ�����q�l�~�|���o SQL3 ��ס�
[223]SQL 1998
23.7 ��Ǫ� SQL �ɤ�
�Ѭݥ������A [224]Appendix B
23.8 SQL92 ���ɺA���� (Temporal Extension)
* SQL92 ���ɺA��������� [225]
ftp://FTP.cs.arizona.edu/tsql/tsql2/
* �ɺA SQL-3 �W�� [226]
ftp://FTP.cs.arizona.edu/tsql/tsql2/sql3/
�o�ؿ����]�A�@�� SQL-92 �y���W�檺�ɺA�����C�o�طs�y���Q�W�� TSQL2�C
�o�̪��y���W��O�o�y�����̲ת����C
�i�����p�� TSQL2 ���D�u�J Design Committee, Richard T.Snodgrass,
Department of Computer Science, University of Arizona, Tucson, AZ
85721,
* [227]
[email protected]
�J�|�Ա��M TSQL2 Language Design Committee ���q�l�a�}�i�b�y���W��̫᪺
�@�����C
�o�ؿ��������e�p�U�C
spec.dvi,.ps TSQL2 �y���W��A�@�E�E�|�~�E��X��
bookspec.ps TSQL2 �y���W��A���e�p�b TSQL2 ���ѯ�A�@�E�E���~�Q�� �X��
�]�аѾ\�U��^
sql3 ���浹 ANSI �M ISO SQL3 �w�e�|���q��ij
�M�y���W��@�_�A�o��٦����F�@�Ǧ���]�p�W���M�w�����סB���ѨҤl�B�M��
�s�p����o�y�������סC�o�ǵ��쥻�O�� TSQL2 Language Design
Committee ����ij�C���̲{�b���t�@�ӥγB�J���Ѧ�� TSQL2 �c�y���Ҥl�B����
�]�p�ɧ@�X���j�q�M�w�B�� TSQL2 �M�L�h�Q���~���H��ij�L���j�q�y���C����
�j�աA�Шǵ��ץثe���O TSQL2 �y���W�檺�@�����A�ӬO�復���ɥR�M�o�i�C�o
�y���W��w�O TSQL2 ���̲רM�w�C
�o�ǵ��סA�[�W�y���W��B�ƭӯ��ީM��L�䴩���ơA�w�g�������ѡJ
Snodgrass, R.T., editor, The TSQL2 Temporal Query Language, Kluwer
Academic Publishers, 1995, 674+xxiv ���C
�Ѥ����@�Ӹ`���F�������A���㪺�����b���ؿ����� eval.ps ���ѡC
tl2tsql2.pl �ɬO�@�ӧ�����ɺA�� (temporal logic) ½Ķ�� TSQL2 ��
prolog �{���C�o�{���� Michael Boehlen �g���C
* [228]
[email protected]
�U��i��IJ�L�H���o�@������o½Ķ�L�{���פ�C�o�O�o�{�����ª����C�s����
�b
* [229]
http://www.cs.auc.dk/general/DBS/tdb/TimeCenter/Software
(the TimeDB and Tiger systems).
23.9 �Ĺs�����X���o ISO/ANSI SQL ���
�o�峹�����p��]�X�k�a�^���o�@�� SQL-92 �зǩM��˨��o�@�����{�ɪ�
��SQL3 ��סC
�o�зǪ��v�Ҧ��A ANSI �зǪ������H�� ANSI�AISO �зǪ������H�� ISO�C
�{�ɦ���]2�^�� SQL �зǡA���O�� ANSI �M ISO �X���C�o���зǨC�Ӧr���@
�� �@�ˡA���F�@�Ǥp�`�A�p�����D�B�����B�u�y��International Standard��
�M ��American Standard������C
�ʶR SQL-92 �з�
The ISO standard, ISO/IEC 9075:1992, Information Technology - Database
Languages - SQL�A�ثe�]�@�E�E�T�~�T��^�b ANSI ���s�f�Υi�o��J
American National Standards Institute
1430 Broadway
New York, NY 10018 (USA)
Phone (sales): +1.212.642.4900
���� US$230.00�CANSI ���AANSI X3.135-1992, American National Standard
for Information Systems - Database Language SQL�A�ثe�õL�s�f�A�����ӥi
�b�@�E�E�T�~�T��U���ܤ���W�����o��C��p���������O US$225.00�C
�p�G�A�q ANSI �ʶR���@�����A�A�ݭn�� 7% ������O�]�Y�j�� US$9.10�^
�C���~�l�H�֩w�|��Q�CANSI �n�D�Ҧ���ڳ���H�@�����q�q�檺�ƦL���A�Ϊ�
�A�i�H�����H�@�i���ꪺ�Ȧ檺�䲼�A�L�̷|�b���F���H���A�C�]�ҥ~���p�J
�p�G�A����´�O ANSI �����q�|�� (corporate member)�AANSI �|����H���A
�ӦV���q�����C�^
�b�����~�AISO �зǤ]�i�q�@�� ISO (International Organization for
Standardization) �� IEC (International Electrotechnical Commission) �|
�������g����c�]��w���зDz�´�^�ʶR�C����c�Ψ�a�}���W��i�q
ANSI �Ψ�L����c���o�C���̤]�i�q ISO �o��J
International Organization for Standardization
Central Secretariat
1, rue de Varembi
CH-1211 Genhve 20
Switzerland
�p�G�A�Q�H���K�ֱ�����k�q�ʳo�зǡA�A�ݭn���X�N���C�A�i�q�H�U��´�H
US$308.00 �q�� ISO/IEC 9075:1992, Information Technology - Database
Languages - SQL�J
Global Engineering Documents
2805 McGaw Ave
Irvine, CA 92714 (USA)
USA
Phone (works from anywhere): +1.714.261.1455
Phone (only in the USA): (800)854-7179
�ڤ����D�o�O�_�]�A�f�B�O�A���ڦ�p�]�_�X�^��ڳf�B�|�B�~���O�C�L�̷|��
���ֱ��a����H���A�A�Ʀܷ|�������D�n���H�Υd���CGlobal �٨S�� ANSI ��
�A�ΥL�̨S�������Φ�p�ɶ��]���ڹw�p���|�b ANSI �X����ƶg�����X�{�A��
������ US$300.00�^�C
�ʶR�@�� SQL3 ��� (Working Draft)
�A�i�q ANSI X3 Secretariat, CBEMA (Computer and Business Equipment
Manufacturers Association) �ʶR�@�� SQL3 ��ת��ƦL���C�L�̷N�ϽT�O�ണ
�ѡ��̪����� SQL3 ��סA�åH US$60.00 �� US$65.00 �X��C�A�i�H�H�U
�~�|��IJ CBEMA�C
CBEMA, X3 Secretariat
Attn: Lynn Barra
1250 Eye St.
Suite 200
Washington, DC 20005 (USA)
Lynn Barra �]�i�H�q�ܸ��X +1.202.626.5738 ��IJ�H�n�D�@���A���L�l�H���G
����§���C
�q�l�|���o SQL3 ���
�̷s�����]�H�g����ɬ��ǡ^�� SQL3�]ANSI �M ISO�^��ס]�M�Ҧ�����^�i�b
�H�U���x�H��anonymous ftp����ftpmail���o��J
gatekeeper.dec.com
�b
/pub/standards/sql/
�o�ؿ������h��ɮסA�]�A PostScript �ɩM�¤�r�ɡ]�榡���ܬ��[�A���i�b
�ù��W�L���S�O�n��\Ū�^�C
�@��ӻ��A�A�i�������W�٪��ɮסJ
sql-bindings-mar94.ps
sql-bindings-mar94.txt
sql-cli-mar94.ps
sql-cli-mar94.txt
sql-foundation-mar94.ps
sql-foundation-mar94.txt
sql-framework-mar94.ps
sql-framework-mar94.txt
sql-psm-mar94.ps
sql-psm-mar94.txt
�����s����������A��mar94���|���ܨӻ����s���X�����]�Ҧp��aug94���O
��p�b��mar94�����᪺�����^�C
�t�~�A�����U����q FTP ���o�ɮצW�檺Ū�̡A�ڭ̦b�ؿ�����m�F�@�ӦW��
ls
���ɮסC�o�ɮס]���_�I�^�]�A�F�ؿ������ɮצW��C
�q Ftp ������o�ɮ�
�o�O�ϥ� FTP ���Ҥl�C���S�O�����p��s���� gatekeeper.dec.com�A��F��m
�o��ɮת��ؿ��A�Χ�ɮǰe��A���q���C�n�`�N�����q���n���W��\��C�n
�J�W�٬O��ftp���A�K�X�h�O�A���q�l�a�}�]�Y�ҿס�anonymous ftp���^�C���O
��type binary���O�ΨӽT�O���쪺�ɮפ��S���줸�Q�I�h�C��get���@�����o�@
��ɮסC�b�R�O�Z�����`�ѷ|�b���A���� < �Y�O�p�� >�C
% ftp gatekeeper.dec.com
Connected to gatekeeper.dec.com.
220- *** /etc/motd.ftp ***
Gatekeeper.DEC.COM is an unsupported service of DEC Corporate Research.
<...this goes on for a while...>
220 gatekeeper.dec.com FTP server (Version 5.83 Sat ... 1992) ready.
Name (gatekeeper.dec.com:<�A���n�J�W��>): ftp <anonymous �]��>
331 Guest login ok, send ident as password.
Password: <��J�A���q�l�a�}>
230 Guest login ok, access restrictions apply.
Remote system type is UNIX. <or whatever>
Using binary mode to transfer files.
ftp> cd pub/standards/sql
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 9529
-r--r--r-- 1 root system 357782 Feb 25 10:18 x3h2-93-081.ps
-r--r--r-- 1 root system 158782 Feb 25 10:19 x3h2-93-081.txt
-r--r--r-- 1 root system 195202 Feb 25 10:20 x3h2-93-082.ps
-r--r--r-- 1 root system 90900 Feb 25 10:20 x3h2-93-082.txt
-r--r--r-- 1 root system 5856284 Feb 25 09:55 x3h2-93-091.ps
-r--r--r-- 1 root system 3043687 Feb 25 09:57 x3h2-93-091.txt
226 Transfer complete.
ftp> type binary
200 Type set to I.
ftp> get x3h2-93-082.txt
200 PORT command successful.
150 Opening BINARY mode data connection for x3h2-93-082.txt (90900 bytes).
226 Transfer complete.
90900 bytes received in 0.53 seconds (166.11 Kbytes/s)
ftp> quit
% <�o�ɮפw�����A���q������ x3h2-93-082.txt>
�S�� ftp �䴩�����p�U���o�ɮ�
Digital Equipment Corporation �M�ƶ���L���q�ۦ��A���� ftp email �A�ȡC
���i��ݭn�ƤѤ~���^���A���������ઽ���W��H���ѤF�M ftp �۵����A�ȡC
���A�����a�}���J
[email protected]
�H�U�R�O�Z�|���o�̷s������ SQL3 ��� PostScript ���J
reply
[email protected]
connect gatekeeper.dec.com anonymous
binary
compress
�]Ķ���J�H�W�u�O�T�O�ɮ|�Q���Y�ΥH�G���榡�ǰe�A���S�U�ǥ���ơC�t
�~ �}�N�h�w�Q�d�f (Compaq) ���ʡC�^ �H�U�R�O�Z�|���o�̷s������ SQL3 ��
�� PostScript ���J
reply
[email protected]
connect gatekeeper.dec.com anonymous
binary
compress
uuencode
chdir /pub/standards/sql
get x3h2-93-091.ps
quit
�Ĥ@�y���O�i�D���A���n��ɮǵ��A�A�A�ݭn��
��
[email protected]�������A���q�l�a�}�C�o�Ҥl�����ɮ�
x3h2-93-091.ps �|�H uuencode �F�� compress �ɮ榡�A�����T�Q�|�ʹq�l�^��
�C�p�G�A����ҨS�����ѭ���ɮת��u��A�A�ݭn�ΤU�C�R�O�Z�H�¤�r�Ҧ���
�o�ɮסJ
reply
[email protected]
connect gatekeeper.dec.com anonymous
chdir /pub/standards/sql
get x3h2-93-091.ps
quit
���Ъ`�N�A�o .ps �ɤj���|�Q�����W�L�C�Q���Ӧ^�СI
�n���o��O x3h2-93-091.ps ���ɮסA�u�ݧ⡧x3h2-93-091.ps�������A�Q
�n���ɮת��W�١C�n���o�Ҧ��ɮת��W��A�⡧x3h2-93-091.ps��������dir���C
23.10 �Ĥ@�����XISO/ANSI SQL ��e���p
�o���O��� SQL �зǩM���e���p����ƨӷ��C
��e���p�J
�ثe���b�i��}�o�u�@�A�H��i SQL ���A�ϥ������p��W���㪺�y��
(computationally complete language)�A�H�i��[�B���������C�o�]�A�J
�@��ƩM�M���Ƶ��� (generalization and specialization hierarchies)�B�h
���~�� (multiple inheritance)�B�ۭq��ƧκA�B�E�o (triggers) �M�P�_
(assertions)�B���Ѯw�t�Τ䴩 (support for knowledge based systems)�B�j
���d�ߦ� (recursive query expression) �M���[��ƺz�u��C���]�]�A��H
��ƫ��A (ADTs)�B�����ѧO�r (object identifiers)�B��k (methods)�B�~��
(inheritance)�B�h�� (polymorphism)�B�]�� (encapsulation) �B�M�Ҧ���L�P
�����ƺz������\��W��C
�@�E�E���~��u�ASQL3 �ƭӳ����i��F�@�� ISO CD ���O�W�벼�C�o�Ƴ���
�OSQL/Framework�BSQL/Foundation �M SQL/Bindings�C�@�p�ҮơA�벼���G�O�b
�����E�ʭӵ��פU�D�_�M�C�@��U���|��F�@�� ISO DBL �s��|ij (editing
meeting)�A�B�z�F�j�q�b���פ����ΩΥt�~���檺���D�ѨM��k�C�ѩ�Ӧ��|ij
����B�z�Ҧ����סA�|ij�N�|�����C�s��|ij�������w��@�E�E�C�~�C��A�a�I
�b�۴��C
�ڦ�p�A�b�C�몺�s��|ij����A�|�A���X�靈����dz����� SQL �i��̫᪺
CD �벼�C�̫� CD �L�{�|��j�����Ӥ�A����|�� DBL �s��|ij�BDIS �벼�M
�ֱ��� IS �벼�C
ISO ���{�Ǧb SQL/92 ������ܤF�A�ҥH SQL �e���|���b�N���o�L�{���Ա��C
�p�G�ƨƶ��Q�ASQL3 ���o�dz����|�b 1998 �~�������x�� ISO/IEC �зǡA��
�L�ɶ��D�`�C
�b�@�E�E�T�~�AANSI �M ISO �}�o�e���|�M�w�⤧�᪺ SQL �o�i�����h��������
�ǡC�o�dz����]�A�J
* Part 1: Framework A non-technical description of how the document
is structured.
* Part 2: Foundation The core specification, including all of the
new ADT features.
* Part 3: SQL/CLI The Call Level Interface.
* Part 4: SQL/PSM The stored procedures specification, including
computational completeness.
* Part 5: SQL/Bindings The Dynamic SQL and Embedded SQL bindings
taken from SQL-92.
* Part 6: SQL/XA An SQL specialization of the popular XA Interface
developed by X/Open
* Part 7:SQL/TemporalAdds time related capabilities to the SQL
standards.
�b����ASQL3 ������P�ɷ�@ ANSI ���g (Domestic, "D") �M�שM ISO �M�׳B
�z�C�ثe��p�����ɶ��O�@�E�E�E�~�C
SQL/CLI �M SQL/PSM �{���H�̰��t�׳B�z�A�H�@�� SQL-92 ���q�C�b����A��
�̥u�Q��@��� (International, "I") �M�׳B�z�C SQL/CLI �b�@�E�E���~����
�F�CSQL/PSM ���ӷ|�b 1996 �~���q�����C
���F SQL3 �~�A�٦��@�Ǫ��[���p���J
* SQL/MM An ongoing effort to define standard multi-media packages
using the SQL3 ADT capabilities.
* Remote Data Access (RDA)
�зǩe���|�M�L�{ (Standards Committee and Process)
�ƹ�W�A�@�W���h�� SQL �зǩe���|�CISO ���@�����O�@�Ӱ�� SQL �зǤp��
�C�h�Ӱ�a�����H SQL �����I���e���|�C�o�ǰ�a�]�q�`�^���X�N��ѻP
ISO/IEC JTC1/SC 21/WG3 DBL �|ij�C�D�ʰѻP ISO SQL �зǨ�w����a�O�J
* �D�w
* �ڦ�
* �[���j
* �k��
* �w��
* �饻
* ����
* ���
* �^��
* ����
NIST �T�{ (NIST Validation)
�b����ASQL ���T�{�u�@���� National Institute of Standards and
Testing (NIST) �i��CNIST �ثe���@�M�J���� (entry level) SQL-92 ������
�M��CNIST �T�{�n�D���Ա��Q�w�q���@�� Federal Information Processing
Standard (FIPS)�C�ثe�� SQL ���n�D�w�q�� FIPS 127-2�C�����
Postscript �M��r�Ҧ��i�q NIST ���o�C�ثe�q�L SQL �T�{�����~�W��]�i�b
NIST ���o�C
�з� SQL �Z���M��� (Standard SQL Publications and Articles)
����Ӫ����� SQL �зǡC��ӳ��i�q ANSI ���o�J
* ISO/IEC 9075:1992, "Information Technology --- Database Languages
--- SQL"
* ANSI X3.135-1992, "Database Language SQL"
���ʭ��M���L�зǪ��Ѧҥ~�ASQL �зǪ���Ӫ��������@�ˡC��Ӫ������i�q
�H�U �a���o�J
American National Standards Institute
1430 Broadway
New York, NY 10018
USA
Phone (sales): +1.212.642.4900
�� SQL-92 �зǥ~�A�{�b�٦��@���N���~�� (Technical Corrigendum) �]����
�^�J
* Technical Corrigendum 1:1994 to ISO/IEC 9075:1992
TC 1 ���ӥi�q ANSI ���o�CTC 1 �u�� ISO �����X�X���A�Ω� ISO �M ANSI ��
���� SQL-92�C
���зǥ~�A�]����� 1992 SQL �зǪ��ѡC�o�ǮѴ��Ѥ@�Ӥ��ڼзǩ��z�Ѫ�
�y�z�C
������з� (Related Standards)
SQL ���s�]��h�Ө�L�зǦ�����C�o�`�]�A�@�Ǧ���o�ǧV�O�����w�C���h
��Ʀb��W�X�{��A�o�ӦW��]�|��C
* SQL Environments (FIPS 193)
* Next Generation Repository Systems (X3H4) - �@���I�~�ѻP
"Developing Standards for the Next Generation Repository Systems"
���s�D�Z�C
23.11 �ĤG�����XISO/ANSI SQL �� (ISO/ANSI SQL Foundation)
SQL3 �V�O���@�ӭ��n�����b SQL ���J
* �� SQL/PSM ��O�]�Ӧ� SQL/PSM-92�^
* �s����ƫ��A
* �E�o (Triggers)
* �l�C�� (Subtables)
* ���ƫ��A (Abstract Data Types, ADT)
* ����ɦV��O
�磌��ɦV��O���ƭӥ��M�n�D�J
* �w�q����B�@����O
* �������B�@�x�s�b��Ʈw��
* �I�s�~���{�ǡ@���Ǥ���� SQL ���쪺�B�@�A�λݭn�M�~�����q
�o�ǯ�O�w�w�q�� SQL/PSM ���@����
�{�b���j�q�u�@�b�һs SQL ����ҫ��A�ϥ��M ODMG ���X������ҫ��ݻ�C�o�V
�O�b X3H2 �M ISO DBL �峹���y�z�L�J�e�� SQL3 �M ODMG�C�b SQL3/OQL
Merger �̪�s���]�i�o��C
SQL3 �ɶ���
��� SQL3 ���u�@���b�i��A���̲з�٦��ݼƤ��~�X�{�C
* ��کʧ벼�� SQL3 ��¦�q��״��ɬ��e����� (Committee Draft, CD) �b
�@�E�E�����u�i��C
* ��p�벼�|�a�Ӥj�q����
* �N�|�ݭn�ĤG�� CD �벼
* Draft International Standard �벼�h�b�|�b 1998 �~���i��
* ��ڼзǥi�b�@�E�E�E�~������
ANSI �����зǪ��s�Ƥ]�t���h�C
23.12 �ĤT�����XISO/ANSI SQL �I�s�Ť��� (Call Level Interface)
SQL/CLI �O�@�ع� SQL ��Ʈw���I�s�Ť����C���]�p���䴩�]�q
(shrink-wrapped) �����ε{���CCLI �쥻�� SQL Access Group (SAG) ���@�Ӥp
�թe���|�гy�C SAG/CLI �W��b 1992 �~�H�L�n Open DataBase Connectivity
(ODBC) �W�椽�G�C�@�E�E�T�~�ASAG �� CLI ����� ANSI �M ISO SQL �e���|��
�C(SQL Access Group �{�w���X�� X/Open consortium ���C)
SQL/CLI ���ѤF�H�U�ƶ�����ڼзǡJ
* �W�ߩ����k�� CLI �Ӧs�� SQL ��Ʈw
* �D�q�u�� (Client-server tools) �i�����y�ʺA�쵲�禡�w�s����Ʈw
* �䴩�ι��y�״I���D�q�u��
SQL/CLI �ɶ���
��зǪ��}�o�L�{�ASQL/CLI ���H��H���t�׳B�z���C
* SQL/CLI �O�� 1992 SQL �зǡ]SQL-92�^���ɿ�
* �@�E�E���~�����A���� ISO �з�
* ISO/IEC 9075-3:1995 Information technology -- Database languages
-- SQL -- Part 3: Call-Level Interface (SQL/CLI)
* �ثe SQL/CLI ���V�O�[�W SQL3 �\��
23.13 �ĥ|�����X ISO/ANSI SQL ���[�x�s�Ҳ� (Persistent Stored Modules)
SQL/PSM �y�H�U�\���X�R SQL�J
* �{�ǻy�� (Procedural language) ����
* �ƥy (Multi-statement) �M�x�s�{��
* �~����ƻP�{�ǩI�s (External function and procedure calls)
���@�������Ȫ����ε{���}�o�u��ASQL/PSM �� SQL3 ���ѤF����ɦV��O����
¦�䴩�C
�ƥy�M�x�s�{��
�ƥy�M�x�s�{�Ǭ��D�q��Ҵ��Ѧh�ئn�B�J
* ��{�X�ѩ�x�s�{�ǥi����h�y SQL �y�y�A�P�Ȥ�g������q�i��֡C
* �O�w�X�Ϊ̥i�H���v�Q�g�x�s�{�ǧ�s�@�өΦh�ӦC��A���S�v������s�C
* ���ɵ{���X�X���ݨC�Ӧs����Ʈw�Ȥ�u�㳣���g�M����x�s�{�Ǫ��{���X
�C
* ����X�����ε{�������洣�ѳ�@���w�q�M����C
�{�ǻy������
�{�ǻy���y�y�V����M��L�s�{�ޥ��� SQL �[�W�Dzε{���y�����\��C
�y�V����y�y
* If-then-else
* �j�鵲�c (Looping constructs)
* �ҥ~�B�z (Exception handling)
* Case �y�y
* Begin-End �϶�
�{�ǻy�������٥]�A��L�s�{�ޥ��J
* �ܼƫŧi
* Set �y�y�A���� (assignment)
* ���o�{�ǩM���A�����
���~�A�Ҧ��Dz� SQL �y�����i�]�t�b�h�y���{�Ǥ��C
�~����ƻP�{�ǩI�s
�@�Ӹg�`�b�j�q��Ʈw���~�� wish lists ���X�{�A�Ӧ��������쪺�S��A�O
�I�s�Ϊ̩Ҽg�A�b��Ʈw�n��~���{�ǡC
* �e�\�Y�ӹq�������ε{���[�W�ۤv����Ʈw���
* �i�b��Ӹ�Ʈw���ε{���ϥ�
�o�\��n�B�O�����Ʈw�]�]���]�A��Ʈw���ε{���^�ϥ��״I���{�ǩM���
�A�� �q�h�o����Ѥ@�ӼзDz�´�w�X�C
SQL/PSM �ɶ���
SQL/PSM �o�i���t�J
* SQL/PSM �O SQL-92 ���ɿ�
* ����� SQL/PSM �q��ڼзǪ�����ܬ���ڼзǪ���ڧ벼�b�@�E�E���~�@
�맹���C
* �@�E�E���~���몺�s��|ij����ѨM�Ҧ�����
* PSM �s��|ij�w�Ʃ�@�E�E���~�E��T�Q��ܤQ��|�������}
* �w�ƺA�� PSM ���i��b�@�E�E���~���X��
* �x���R���J ISO/IEC DIS 9075-4:199? Information technology --
Database languages -- SQL -- Part 4: SQL Persistent Stored Modules
(SQL/PSM)
* �{���� SQL3 �[�W SQL/PSM �䴩�u�@�C
23.14 �Ĥ������X ISO/ANSI SQL/���X (Bindings)
����K�ѦҡA�{���y�������X�Q��X���W�ߪ����C�ثe�������Y�O SQL-92 ��
�ʺA�M�O�J���X (dynamic and embedded bindings) ���`���C
�{���y�����X�������P�����D���ݸѨM�C
��Dzε{���y���ӻ��A��ƫ��A�M SQL-92 ���i�H���۹��C���L�A SQL ����
�M�{���y���ܼƤ������������w�q�C
�磌��ɦV�y���ӻ��A�ثe�� SQL ��ƫ��A�BSQL ����ҫ��M����ɦV�{���y��
���� ������Y�����w�q�C
����ҫ��ݦb���}�o�Ǥ��eí�w�U�ӡC
�y�����X�����ɷ|���� SQL3 ���@�����C
23.15 �Ĥ������XISO/ANSI SQL XA �����W�� �]SQL/XA�^
�o�W��|���`���z�� (global Transaction Manager) �M SQL �귽�z��
(SQL Resource Manager) �������ε{������ (API) ���ѼзǡC���|�ھ�
ISO/IEC 10026 �����e�A���������B�z (Distributed Transaction
Processing�^���зǤƨ�ƩI�s�ASQL �귽�z���|�ΥH�䴩���G���q���T�w
(two-phase commit)�C��¦�����O�۸g X/Open ��ǦӨӦۤ@�� X/Open �X��
���A���M�������� xa_close, xa_commit, xa_complete, xa_end, xa_forget,
xa_open, xa_prepare, xa_recover, xa_rollback �M xa_start ���h�Ө�ơA�H
SQL ��ƫ��A����J�M��X�Ѽƪ��y�k�C
ISO �ثe�����պɧְl�W (fast-tract) X/Open XA �W��C�o�ӹL�{���g���ܱ�
�Τ@�ӥثe���~�ɳW��C�H ISO SC21�AJTC 1 ���Ū� XA �ɧְl�W�벼�b�@�E�E
���~�|��G�Q�C��}�l�A�@�E�E���~�Q��G�Q�C�鵲��C�p�G XA �W��g 75% ��
�ƩM 2/3 �� JTC 1 p-members ��ǡA���|�����@�Ӱ�ڼзǡC�p�G�g�ɧְl�W
�벼��ǡASQL/XA �i�b 1996 �~�����зǡC
23.16 �ĤC�����X�ɺA ISO/ANSI SQL
�ɺA SQL �B�z�M�ɶ��������ơC�䷧���O�d�߸�ƦӪ��D���b�@�ӯS�w�ɶ���
���p�O���Ϊ��C�ɺA SQL �O�@���� Rick Snodgrass �b�@�E�E�|�~�Q�G��Ҽg�A
�y�z�o���������C
X3 �ŧG�T�{�@�ӷs�p���AISO/IEC 9075 Part 7: SQL/Temporal �O�@�����
SQL/Temporal ���s�D�Z
----------------------------------------------------------------------------
Temporal SQL
************
Rick Snodgrass�]TSQL2 �e���|�D�u�^
31-Dec-1994
���h�H�ݹL��� SQL 3 ���[�ɶ��䴩�����D�]�p�b DBL R10-75 ��ij�A�n�D
SQL ���s�������ӳB�z�ɶ��ʪ���Ʈw�^�C����I�O��H��ƧκA (ADT's) ���H
�䴩�ɺA�C�b�o��T�ʪ����ءA�ڨϥΨ���Ҥl�ӽ��Ҿ֦���H��ƧκA�����
����B�z�ɺA�d�ߡC�S�O�ӻ��A�ܦh�ɶ��ʪ��d�ߤ��O����� SQL ����A�N�O��
�b�L�{�y�����ϥδO�J�� SQL�C��L��ܦb TSQL2�A�@�ӹ� SQL-92 ���ɺA����
�����X�F�C
�ɨ�
���Įɶ� (Valid-time) ���䴩�W�X�@�ӮɺA ADT ����O�C�ϥΫ�̡A�@�����
�Q���w���ɺA���A�p DATE �� INTERVAL�]�y��|���Ҥl�^�C�y�ۦ��Įɶ��A��
�檺�C��H�ۮɶ����ܡA �]����ڤW���ܤF�C�pô��@�Ӧ��Įɶ���檺�Y�檺
�ɶ��W�O (timestamp)�A�|�Q�d�y���z�Ѭ��Ӧ椤�U��ƭȪ��զX���Ī��ɶ�
�C�o�ӵL���������ɶ��W�O�ϱo�d�ߥi�H²�����a��F�X�ӡC
�Ӯ�s�X�x�s�{�ɸ��
The University of Arizona �� Office of Appointed Personnel �b��Ʈw����
�Ǹ�ơA�]�A�����W�r�B�ثe�~���M�ثe¾��C�o�ǥi�Τ@��²�檺����F�X
�ӡC
Employee(Name, Salary, Title)
�ϥγo�Ӫ��M��@�ӹ������~���Q��²��C
SELECT Salary
FROM Employee
WHERE Name = 'Bob'
�{�b OAP �Q�A�O���X�ͤ��C���ǡA�b��椤�[�F�@��A���ͥH�U����
(schema)�J
Employee(Name, Salary, Title, DateofBirth DATE)
��M�@�W�������X�ͤ��ӴM��~������C
SELECT DateofBirth
FROM Employee
WHERE Name = 'Bob'
�Ӯ�s�X�x�s���v���
OAP �Q�������v�q���ơC�����A�L�̥[�W����A�@���X��ܦ��檺��Ʀ��
�}�l���ġA �t�@���X��Ʀ�ɥ��ġC
Employee (Name, Salary, Title, DateofBirth, Start DATE, Stop DATE)
�H��Ƽҫ� (data model) ���A�o�Ƿs���M DateofBirth �@�L���O�C���L�A��
�̪� �s�b���ͦh�ص��G�C
�Ӯ�s�X��M (Projection)
�n��X�����ثe���~���|�����x��C
SELECT Salary
FROM Employee
WHERE Name = 'Bob' AND Start <= CURRENT_DATE AND CURRENT_DATE <= Stop
�o�y�d�ߤe������C�����ܩ���O�s�W������COAP �Q�o�X�~�����v���U��
�u�C�S�O�a�A���ݭn��X�C�@�W�����b�����@��~�S���̪��ɶ��C�����a�A��
SQL ���వ��C�@�W�����b�~�S�վ���¾�Υi���h���ܧ�C
Name Salary Title DateofBirth Start Stop
---- ------ ----- ----------- ----- ----
Bob 60000 Assistant Provost 1945-04-09 1993-01-01 1993-05-30
Bob 70000 Assistant Provost 1945-04-09 1993-06-01 1993-09-30
Bob 70000 Provost 1945-04-09 1993-10-01 1994-01-31
Bob 70000 Professor 1945-04-09 1994-02-01 1994-12-31
�� 1
�n�`�N���T�� Bob ���~�����d�b $70,000�C�ҥH�A���G���ӬO Bob �����C
Name Salary Start Stop
---- ------ ----- ----
Bob 60000 1993-01-01 1993-05-30
Bob 70000 1993-06-01 1994-12-31
�t�@��k�O��~���M¾�Ÿ�ƦL���Ϊ̡A�ӥѥΪ̧�X�L���~�S����ܧ�C�o��
�k�J���l�ޡA�礣��ڡC�t�@��k�O�ɶq�ϥ� SQL�C
CREATE TABLE Temp(Salary, Start, Stop)
AS SELECT Salary, Start, Stop
FROM Employee;
����
UPDATE Temp T1
SET (T1.Stop) = (SELECT MAX(T2.Stop)
FROM Temp AS T2
WHERE T1.Salary = T2.Salary AND T1.Start < T2.Start
AND T1.Stop >= T2.Start AND T1.Stop < T2.Stop)
WHERE EXISTS (SELECT *
FROM Temp AS T2
WHERE T1.Salary = T2.Salary AND T1.Start < T2.Start
AND T1.Stop >= T2.Start AND T1.Stop < T2.Stop)
until no rows updated;
DELETE FROM Temp T1
WHERE EXISTS (SELECT *
FROM Temp AS T2
WHERE T1.Salary = T2.Salary
AND ((T1.Start > T2.Start AND T1.Stop <= T2.Stop)
OR (T1.Start >= T2.Start AND T1.Stop < T2.Stop))
�j�餤��X���|�ά۾F�ӻݭn�X�֪��ɬq�C�b���a�����p�A�j��|���� log N ��
�AN ���@�s�꭫�|�ά۾F���P�~���������ƶq�CŪ�̥i�ۦ����d�ߦb�H�W�Ҥl
����������ҥ������T�ʡC
�ĤT�ؤ�k�O�ϥ� SQL �����}�Ҥ@�Ӵ�� (cursor)�C���C��~���z�@�ӦU
�q������� (linked list)�C�o���}�l�ɻݬ��ťաC
DECLARE emp_cursor CURSOR FOR
SELECT Salary, Title, Start, Stop
FROM Employee;
OPEN emp_cursor;
loop:
FETCH emp_cursor INTO :salary, :start, :stop;
if no-data returned then goto finished;
find position in linked list to insert this information;
goto loop;
finished:
CLOSE emp_cursor;
���������A�L�X���M�~���C
�p�G��ЬO ORDER BY Start�A���ëD���n�C
�L�צp��A�@�y²�檺�d�߬O������ SQL-92 ���\���F�X�o�ت��C�ϥ� TSQL2
�� �ܳo�d�߷|��²��C
SELECT Salary
FROM Employee
�רҬ�s�X�s�� (JOIN)
�@�ӧ�E�i����k�O���ح���A��~���B¾�šB�X�ͤ���Ƥ��}�A�q��}
�� �~�S���v�ɹJ�쪺���D�C�]����K�p�A�ڭ̥H�᪺�Q�פ����A�Ҽ{�X�ͤ�
�C�^
Employee1 (Name, Salary, Start DATE, Stop DATE)
Employee2 (Name, Title, Start DATE, Stop DATE)
Employee1 ���p�U�J
Name Salary Start Stop
---- ------ ----- ----
Bob 60000 1993-01-01 1993-05-30
Bob 70000 1993-06-01 1993-12-31
�o�O Employee2 ���C
Name Title Start Stop
---- ------ ----- ----
Bob Assistant Provost 1993-01-01 1993-09-30
Bob Provost 1993-10-01 1994-01-31
Bob Professor 1994-02-01 1994-12-31
���ܤ���A���o�����~������ܱo²��C
SELECT Salary, Start, Stop
FROM Employee1
WHERE Name = 'Bob'
���p�G OAP �Q�@�Ӫ�椤�]�A�~���B¾�쪺�ɬq�]�Y OAP �Q�@�ӹ��� 1 �Φ���
���^�H�@�Ӥ�k�O�L�X��Ӫ��A����Ϊ̧�X����զX�C�t�@��k�O������
�� SQL�C�����a�A�o�d�߭n���R Employee1 �C��M Employee2 �����|���p�A��
�|�إi��X�{�C
SELECT Employee1.Name, Salary, Dept, Employee1.Start, Employee1.Stop
FROM Employee1, Employee2
WHERE Employee1.Name = Employee2.Name
AND Employee2.Start <= Employee1.Start AND Employee1.Stop < Employee2.Stop
UNION
SELECT Employee1.Name, Salary, Dept, Employee1.Start, Employee2.Stop
FROM Employee1, Employee2
WHERE Employee1.Name = Employee2.Name
AND Employee1.Start >= Employee2.Start AND Employee2.Stop < Employee1.Stop
AND Employee1.Start < Employee2.Stop
UNION
SELECT Employee1.Name, Salary, Dept, Employee2.Start, Employee1.Stop
FROM Employee1, Employee2
WHERE Employee1.Name = Employee2.Name
AND Employee2.Start > Employee1.Start AND Employee1.Stop < Employee2.Stop
AND Employee2.Start < Employee1.Stop
UNION
SELECT Employee1.Name, Salary, Dept, Employee2.Start, Employee2.Stop
FROM Employee1, Employee2
WHERE Employee1.Name = Employee2.Name
AND Employee2.Start > Employee1.Start AND Employee2.Stop < Employee1.Stop
���T��X�Ҧ����άO�@���D�ԩʪ��u�@�C�ϥ� TSQL2�A�i��@�Ө�ɺA���s��
�N�p�H�̩Ҵ���C
SELECT Employee1.Name, Salary, Dept
FROM Employee1, Employee2
WHERE Employee1.Name = Employee2.Name
�Ӯ�s�X�E�� (AGGREGATES)
�{�b OAP �Q�ݤγ̰��~�S�O����H�[�W�ɶ��e�A�o��²��C
SELECT MAX(Salary)
FROM Employee
�{�b�[�W�F�~�����v�A�ڭ̭n��X���P�ɶ��̰��~�������v�C���D��M�O SQL ��
�����Ѩ�ɺA���E���C²�檺��k�O�L�X�����ơA�ΤH���X�̤j�ȡC�t�@��
��k�O�����A��@�ӷ�ɪ� (snapshot) �E���d����Ƭ����ϥλE�����d�ߡA�A
��Ƭ��ɺA�E���C���Ӥ��ϥλE�����d�ߥΩ��X���j�����ƭȪ��~���C
SELECT Salary
FROM Employee AS E1
WHERE NOT EXISTS (SELECT *
FROM Employee AS E2
WHERE E2.Salary > E1.Salary)
��o�Ӭd���ܬ��ɺA�d�ߨä���L�C�H�U�O�@�ؤ�k�C
CREATE TABLE Temp (Salary, Start, Stop)
AS SELECT Salary, Start, Stop
FROM Employee;
INSERT INTO Temp
SELECT T.Salary, T.Start, E.Start
FROM Temp AS T, Employee AS E
WHERE E.Start >= T.Start AND E.Start < T.Stop AND E.Salary > T.Salary;
INSERT INTO Temp
SELECT T.Salary, T.Stop, E.Stop
FROM Temp AS T, Employee AS E
WHERE E.Stop > T.Start AND E.Stop <= T.Stop AND E.Salary > T.Salary;
DELETE FROM Temp T
WHERE EXISTS (SELECT *
FROM Employee AS E
WHERE ((T.Start => E.Start AND T.Start < E.Stop)
OR (E.Start >= T.Start AND E.Start < T.Stop))
AND E.Salary > T.Salary;
�o��k�إ��U���C�ڭ̦b�o�Ӫ�椤�[�W��Ӯɬq�����|�������W�B�U����
�C����ڭ̧�Ҧ��l�d�ߤ���X�������R���A�]���v�T�� NOT EXISTS�C�̫�ڭ�
�q���U��椤��X�̪����ɬq�A�����e�ڭ̧�X�~����T��C�p�j�a�ҮơA�o��
�� SQL �y�l����ɮIJv�D�`�C�A�]�����ǽ�����_�������d�ߡC
�ĤT�Ӥ�k�O�ɶq�֥� SQL�A�Ӧb�D���W�ҥΪ��y�����δ�Ч�X�̪������v�C
�ϥ� TSQL2 �A��²�檽���C
SELECT MAX(Salary)
FROM Employee
�K�n
�j������Ʈw���ε{�����ݭn�B�z�H�ɶ����ܪ���ơC���Įɶ��b SQL �ä��䴩
�C�ܦh�ɺA�d�ߤ��O�ܥH SQL ����A�N�O�ݭn�� SQL �O�J��{�ǻy�����A�]��
SQL �b��Ƽҫ��M�d�y�����c���ʥF�靈�Įɶ����䴩�C
�t�@�譱�A�ڭ̥ܽd�X�[�W���Įɶ��䴩�ݭn�� DBMS �I��@�X�@�ǧ��ܡA����
���@�ʦa²��@�Ǭd�ߡA�èϨ�L�d���ܱo���i��C�N�Ӥ]�i��x�s���c�B����
��k���̨Τ� (optimization)�C�ӳ̨Τƪ������i�ɭP��{�j�T���ɡC
�H�� SQL3 ���@�ӷs�����䴩�H�ɶ����ܪ���ơA�ڭ̥i�H�}��B�z�o����ΡA
��} SQL3 �B�z�ɺA��ƪ���O�C
----------------------------------------------------------------------------
Accredited Standards Committee* X3, Information Technology
NEWS RELEASE
���s���J PR/96-0002
�^�СJ Barbara Bennett at
[email protected]
X3 �ŧG�{�i�@�ӳo�M��, ISO/IEC 9075 Part 7: SQL/Temporal
Washington D.C., 1996 �~�@��
----------------------------------------------------------------------------
-- Accredited Standards Committee X3, Information Technology �ŧG�{�i�@
�Ӧ�� SQL/Temporal �䴩���s�M�סAISO/IEC 9075 Part 7�A�ç⦳��u�@�椩
Technical Committee X3H2, Database�C�o�ӫ�ij�����зǭq���N�X�{�� SQL3
�зǪ��@�ӷs�����A�p�ĤC���� Temporal SQL �� SQL ���@�ө����A�b SQL ��
�Ʈw��Ҥ䴩�s���M�B�z��ɺA����ơC�U�� X3H2 �|ij�w��@�E�E���~�T��Q
�@�ܤQ�|��b���Ĵ� (Kansas) �|��C
�p���d�ߡA�i�l�H���J
Chairman of X3H2,
Dr. Donald R. Deutsch,
Sybase, Inc., Suite 800,
6550 Rock Spring
Drive, Bethesda, MD 20817.
Email:
[email protected].
�{���M�D�i��M�Q�M��L����ƶ��]���v�B�ӼС^�C�o�⦳���ƱH��J
X3 Secretariat at
1250 Eye Street
NW, Suite 200,
Washington DC 20005.
Email:
[email protected]
FAX: (202)638-4922.
23.17 �ĤK�����XISO/ANSI SQL MULTIMEDIA (SQL/MM)
�@�Ӭ��إߥΩ�h�C���ε{���� SQL ����禡�w���s ISO/IEC ��ڼзǤƭp
���b�@�E�E�T�~�����Ƕi��C�o�ӷs�зǤƦ�ʦW�� SQL Multimedia
(SQL/MM)�A���|�ί���� SQL3 �W�椤����H��ƫ��A�]ADT�^�W��M�ؼЫ��w
SQL ADT �w�q�M�ˡC SQL/MM �ؼЬ��зǤƬ�ǩM�u�{�B����M���B�z�B�z
�h�C�骫��A�p�v���B�n���B�ʵe�B���֩M�����������Ʈw�C���h�Ʒ|���X�@
�إΩ��L JTC1 �зDz�´�]�p������ SC18�B�v���� SC24�B�Ӥ��M�ʧ@��
���� SC29�^�w�q������ SQL �y�����X (binding)�C
SQL/MM ���M�p�����X���|�����@���h�����зǡA�]�t���w�ƶq�������C�Ĥ@��
���|�O��L�����p��ئ����ج[�C��L�C�ӳ����|�M�`��@�ӯS�w�� SQL ���ε{
���M��C�H�U���@�E�E�|�~�K��s�b�� SQL/MM �����J
* Part 1: Framework A non-technical description of how the document
is structured.
* Part 2: Full Text Methods and ADTs for text data processing. About
45 pages.
* Part 3: Spatial Methods and ADTs for spatial data management.
About 200 pages with active contributions from Spatial Data
experts from 3 national bodies.
* Part 4: General Purpose Methods and ADTs for complex numbers,
Facilities include trig and exponential functions, vectors, sets,
etc. Currently about 90 pages.
���h�Ӧ���Ŷ��M�a�z��ƪ��зǤƪ��u�@�b�i�椤�J
* ANSI X3L1 - Geographic Information Systems. Unisys �� Mark
Ashworth of Unisys �O X3L1 �M ANSI X3H2 �����p���H�C �L�]�O SQL/MM
��Z�Ĥ@�B�T�M�|�������s��C
* ISO TC 211 - Geographic information/Geomatics
24. PostgreSQL ���N�䴩
�p�G�A�����N�W�����D���J��x��A�A�i�q�l�ܡJ
* [230]
[email protected]
�ιw���b�@�餺����^�СC�]�����p��~���Τ�d��ܼs�A�Τ�S������U�A
���p��i�������ƥH�ʸU�p�Τᴣ�ѧN�䴩�C�q�l�䴩��q�ܤ䴩��K�o�h�A
�]���A�i�ŤU�M�K�W���~�T���B�{����X�����A�S�i�����ǰe��q�H�� / �s�D
�աC
�b���[���N�ӡAPostgreSQL ��´�|�V�j�p�����q�X��N�䴩�A�ұo���q�|�Ω�
���@�@�ɦU�a���h�ӬM�g���x�]�U���� �M ftp�^�C�]�|�ΨӦL�s���B���ީM��
�y�H���U�U�ȡC
�A�]�i�b Anderson�BWGS�]Work Group Solutions�^���M�~�U�ݦ�o���U�C�A
�i��L����U�A�]���L�̦��ܦn�� C�BC++ �M�a�] PostgreSQL �H C �g���^�C
* Work Group Solutions [231]
http://www.wgs.com
* Anderson Consulting [232]
http://www.ac.com
25. �g�٩M�ӷ~�譱
�ӷ~��Ʈwú��ܦh�|���p�p���B�{�B�P��B���ΡB���|�O�١B���O�I�|�B��
�u���d�O�١B��L�U�{���u�֧Q�B�������s�M�s�i�O�C�Ҧ��o�ǶO�γ���������
���Ʈw���}�o�C��A�ʶR�@�Ӱӷ~��Ʈw�A�@���������B���O��|�ڡB��s�}
�o�������a��C
�ӥB�A�ӷ~��Ʈw�ݤ�I�����M�ʶR Unix �����A��˩M���@�C�Ҧ��o�Ǧ�����
������C
�M�ӷ~��Ʈw�ۤ�APostgreSQL �֦��L�ݪ����|�����u�I�A�]�����O���p��s�y
�C�@�j�s�H�� PostgreSQL ���}�o�@�X���m�C�Ҧp�A�H�@�Ӱ��]���Ҥl�A�p�G�b
���꦳�@�ʸU�����q�A�ӨC�������Q�����]�� PostgreSQL �ӻ����W�ҭȡ^�A�C
���K�o��@�d�U���I�I�o�N�O���p��W�n��}�o���]�N�C
�ثe�APostgreSQL ���{�����j�� 200,000 �� C�BC++ �{���C�p�G�C�� C �{���X
�ȤG�����A���Ѿ�� PostgreSQL �K�ȥ|�Q�U�����I
�ܦh���q�w�}�o�j�q C�BC++ �{���H�@�ۥΡC�]���A�ޤJ PostgreSQL ���{���X
�M�P���p��W��L���q�X�@�|�綠�q�a�Ӥj�q�Q�q�A�`�ٮɶ��M�H�O�C
26. ��L��Ʈw���W��
�H�U�C�X��L Unix�BLinux �� SQL ��Ʈw�C
* �I���F Applications->databases.
[233]
http://www.caldera.com/tech-ref/linuxapps/linapps.html
* �I���F Applications->databases.
[234]
http://www.xnet.com/~blatura/linapps.shtml
* ��Ʈw�귽 [235]
http://linas.org/linux/db.html �o�O�� Linas
Vepstas �g�����C [236]
[email protected]
* �ۥѸ�Ʈw�W��
[237]
http://cuiwww.unige.ch:80/~scg/FreeDB/FreeDB.list.html
* Browne �� RDBMS �W�� [238]
http://www.hex.net/~cbbrowne/rdbms.html
�� Christopher B. Browne �g���C [239]
[email protected]
* SAL ��p�� RDBMS �W�� [240]
http://SAL.KachinaTech.COM/H/1/
* SAL ��������p�� DBMS �W�� [241]
http://SAL.KachinaTech.COM/H/2/
* SAL's ���u��M��L��Ʈw�W�� [242]
http://SAL.KachinaTech.COM/H/3/
* ACM SIGMOD �����i���o����Ʈw�n���
[243]
http://bunny.cs.uiuc.edu/sigmod/databaseSoftware/
27. �U����j�M����
���p��D�`�s��A�֦��j�q�n��M�U�観�@�Ӹ�T���v�C���b���@�ɥH�C�~�ʤ�
���T�ʪ��t�W���C�ڦ�p�A���y���j���@�d�U�Ӻ�I
�n�j�M��ơA�A�ݭn����B��BLycos ���j�M����C�h�춮��A�I�� search�C
�ϥιL�o�ﶵ (filtering options) �Ӧ����A���j�M�n�D�C�w�]���j�M�ʥ�O
��Intelligent search���A�o��@��ƤΦC�X�Ҧ��i��ʡC�I�Options����
�ܡ�EXACT phrase���j�M�B��AND���j�M�B��OR���j�M�����C�o�˧A�i��֧��A
�Q�n���T���C���~�A�b search �ؿ��U�A�� radio buttons �ΥH��ܷj�M�s�D��
�B���p�����C
28. ����
�b��s�L�Ҧ��ۥѩM�i���o���{���X����Ʈw��A�o�{��u PostgreSQL �O�@�W
�̦���B�̦h�H�ϥΩM�������ۥ� SQL RDMS�]������p���^�C
PostgreSQL �D�`�l�ޡA�]�����ܦh�u�@�w�����C���� ODBC �M JDBC �X�ʵ{���A
�y�۳o�ǡA�s�g�W�ߩ��Ʈw�����ε{�����i��ʫܰ��C�� ODBC �� JDBC �X��
�{���g�� PostgreSQL ���ε{���ܮe�����Ө��L��Ʈw�A�p Oracle�BSybase
�M Informix�A�Ϥ���M�C
�A�i��|�ݡu������� PostgreSQL�H�v���O�]���ѹs�}�l�}�o�@�Ӹ�Ʈw����
�j�q�ɶ��A��ܤ@�Ӻ����H�U����Ʈw�t�ΦX�G�`�ѡJ
�@��
* �i���o���{���X�X�����O�}��{���X�t��
* �S�����[���v�r�y (license string)�B�S���֦��v�r�y�]Ķ��
�JPostgreSQL �O GPL�A�ëD�L�� �v��ij�C�p�G�S�����v�r�y�A�ϥΥ��K�H
�k�F�I�^
* �i�b���p��G
* �w�}�o�h�~
* ���� ISO/ANSI SQL 92�]�M SQL 89�^���з�
* �i�������Ӫ��ݭn�A�p SQL 3�]SQL 98�^
* �֦����i�\��
����Ʈw�t�ΡA �ӥu�� PostgreSQL �����Ҧ��o�DZ���A�b�o���p�U�O�@�M�A��
���n��C
29. FAQ�X��� PostgreSQL �����D
�аѾ\�@��ʡBLinux �M Irix ���̷s�� FAQ�J
* [244]
http://www.postgresql.org/docs/faq-english.shtml
30. ���v�q��
Copyright (c) 1997 Al Dev (Alavoor Vasudevan). All rights reserved.
NO LIABILITY FOR CONSEQUENTIAL DAMAGES. In no event shall the author
of this document be liable for any damages whatsoever (including
without limitation, special, incidental, consequential, or
direct/indirect damages for personal injury, loss of business profits,
business interruption, loss of business information, or any other
pecuniary loss) arising out of the use of this document.
Author offers no warranties or guarantees on fitness, usability,
merchantability of this document. Brands, companies and product names
mentioned in this document are trademarks or registered trademarks of
their respective holders. Please refer to individual copyright notices
of brands, companies and products mentioned in this document. It is
your responsibility to read and understand the copyright notices of
the organisations/companies/products/authors mentioned in this
document before using their respective information.
Appendix
31. �����ҡXANSI/ISO SQL 1992 �y�k
�o�ɮפ��]�A�o�y���� BNF �H�`�������𪬼ұ� (depth-first tree traversal)�A�j��
�b 27-AUG-1992 11:03:41.64 �����C�o�ӯS�w�����ҥΪ� BNF �O�u�� ANSI �M SQL2 ���C
<SQL terminal character> ::=
<SQL language character>
| <SQL embedded language character>
<SQL language character> ::=
<simple Latin letter>
| <digit>
| <SQL special character>
<simple Latin letter> ::=
<simple Latin upper case letter>
| <simple Latin lower case letter>
<simple Latin upper case letter> ::=
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O
| P | Q | R | S | T | U | V | W | X | Y | Z
<simple Latin lower case letter> ::=
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o
| p | q | r | s | t | u | v | w | x | y | z
<digit> ::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<SQL special character> ::=
<space>
| <double quote>
| <percent>
| <ampersand>
| <quote>
| <left paren>
| <right paren>
| <asterisk>
| <plus sign>
| <comma>
| <minus sign>
| <period>
| <solidus>
| <colon>
| <semicolon>
| <less than operator>
| <equals operator>
| <greater than operator>
| <question mark>
| <underscore>
| <vertical bar>
<space> ::= !! <EMPHASIS>(space character in character set in use)
<double quote> ::= "
<percent> ::= %
<ampersand> ::= &
<quote> ::= '
<left paren> ::= (
<right paren> ::= )
<asterisk> ::= *
<plus sign> ::= +
<comma> ::= ,
<minus sign> ::= -
<period> ::= .
<solidus> ::= /
<colon> ::= :
<semicolon> ::= ;
<less than operator> ::= <
<equals operator> ::= =
<greater than operator> ::= >
<question mark> ::= ?
<underscore> ::= _
<vertical bar> ::= |
<SQL embedded language character> ::=
<left bracket>
| <right bracket>
<left bracket> ::= [
<right bracket> ::= ]
<token> ::=
<nondelimiter token>
| <delimiter token>
<nondelimiter token> ::=
<regular identifier>
| <key word>
| <unsigned numeric literal>
| <national character string literal>
| <bit string literal>
| <hex string literal>
<regular identifier> ::= <identifier body>
<identifier body> ::=
<identifier start> [ ( <underscore> | <identifier part> )... ]
<identifier start> ::= <EMPHASIS>(!! See the Syntax Rules)
<identifier part> ::=
<identifier start>
| <digit>
<key word> ::=
<reserved word>
| <non-reserved word>
<reserved word> ::=
ABSOLUTE | ACTION | ADD | ALL
| ALLOCATE | ALTER | AND
| ANY | ARE
| AS | ASC
| ASSERTION | AT
| AUTHORIZATION | AVG
| BEGIN | BETWEEN | BIT | BIT_LENGTH
| BOTH | BY
| CASCADE | CASCADED | CASE | CAST
| CATALOG
| CHAR | CHARACTER | CHAR_LENGTH
| CHARACTER_LENGTH | CHECK | CLOSE | COALESCE
| COLLATE | COLLATION
| COLUMN | COMMIT
| CONNECT
| CONNECTION | CONSTRAINT
| CONSTRAINTS | CONTINUE
| CONVERT | CORRESPONDING | COUNT | CREATE | CROSS
| CURRENT
| CURRENT_DATE | CURRENT_TIME
| CURRENT_TIMESTAMP | CURRENT_USER | CURSOR
| DATE | DAY | DEALLOCATE | DEC
| DECIMAL | DECLARE | DEFAULT | DEFERRABLE
| DEFERRED | DELETE | DESC | DESCRIBE | DESCRIPTOR
| DIAGNOSTICS
| DISCONNECT | DISTINCT | DOMAIN | DOUBLE | DROP
| ELSE | END | END-EXEC | ESCAPE
| EXCEPT | EXCEPTION
| EXEC | EXECUTE | EXISTS
| EXTERNAL | EXTRACT
| FALSE | FETCH | FIRST | FLOAT | FOR
| FOREIGN | FOUND | FROM | FULL
| GET | GLOBAL | GO | GOTO
| GRANT | GROUP
| HAVING | HOUR
| IDENTITY | IMMEDIATE | IN | INDICATOR
| INITIALLY | INNER | INPUT
| INSENSITIVE | INSERT | INT | INTEGER | INTERSECT
| INTERVAL | INTO | IS
| ISOLATION
| JOIN
| KEY
| LANGUAGE | LAST | LEADING | LEFT
| LEVEL | LIKE | LOCAL | LOWER
| MATCH | MAX | MIN | MINUTE | MODULE
| MONTH
| NAMES | NATIONAL | NATURAL | NCHAR | NEXT | NO
| NOT | NULL
| NULLIF | NUMERIC
| OCTET_LENGTH | OF
| ON | ONLY | OPEN | OPTION | OR
| ORDER | OUTER
| OUTPUT | OVERLAPS
| PAD | PARTIAL | POSITION | PRECISION | PREPARE
| PRESERVE | PRIMARY
| PRIOR | PRIVILEGES | PROCEDURE | PUBLIC
| READ | REAL | REFERENCES | RELATIVE | RESTRICT
| REVOKE | RIGHT
| ROLLBACK | ROWS
| SCHEMA | SCROLL | SECOND | SECTION
| SELECT
| SESSION | SESSION_USER | SET
| SIZE | SMALLINT | SOME | SPACE | SQL | SQLCODE
| SQLERROR | SQLSTATE
| SUBSTRING | SUM | SYSTEM_USER
| TABLE | TEMPORARY
| THEN | TIME | TIMESTAMP
| TIMEZONE_HOUR | TIMEZONE_MINUTE
| TO | TRAILING | TRANSACTION
| TRANSLATE | TRANSLATION | TRIM | TRUE
| UNION | UNIQUE | UNKNOWN | UPDATE | UPPER | USAGE
| USER | USING
| VALUE | VALUES | VARCHAR | VARYING | VIEW
| WHEN | WHENEVER | WHERE | WITH | WORK | WRITE
| YEAR
| ZONE
<non-reserved word> ::=
ADA
| C | CATALOG_NAME
| CHARACTER_SET_CATALOG | CHARACTER_SET_NAME
| CHARACTER_SET_SCHEMA | CLASS_ORIGIN | COBOL | COLLATION_CATALOG
| COLLATION_NAME | COLLATION_SCHEMA | COLUMN_NAME | COMMAND_FUNCTION
| COMMITTED
| CONDITION_NUMBER | CONNECTION_NAME | CONSTRAINT_CATALOG | CONSTRAINT_NAME
| CONSTRAINT_SCHEMA | CURSOR_NAME
| DATA | DATETIME_INTERVAL_CODE
| DATETIME_INTERVAL_PRECISION | DYNAMIC_FUNCTION
| FORTRAN
| LENGTH
| MESSAGE_LENGTH | MESSAGE_OCTET_LENGTH | MESSAGE_TEXT | MORE | MUMPS
| NAME | NULLABLE | NUMBER
| PASCAL | PLI
| REPEATABLE | RETURNED_LENGTH | RETURNED_OCTET_LENGTH | RETURNED_SQLSTATE
| ROW_COUNT
| SCALE | SCHEMA_NAME | SERIALIZABLE | SERVER_NAME | SUBCLASS_ORIGIN
| TABLE_NAME | TYPE
| UNCOMMITTED | UNNAMED
<unsigned numeric literal> ::=
<exact numeric literal>
| <approximate numeric literal>
<exact numeric literal> ::=
<unsigned integer> [ <period> [ <unsigned integer> ] ]
| <period> <unsigned integer>
<unsigned integer> ::= <digit>...
<approximate numeric literal> ::= <mantissa> E <exponent>
<mantissa> ::= <exact numeric literal>
<exponent> ::= <signed integer>
<signed integer> ::= [ <sign> ] <unsigned integer>
<sign> ::= <plus sign> | <minus sign>
<national character string literal> ::=
N <quote> [ <character representation>... ] <quote>
[ ( <separator>... <quote> [ <character representation>... ] <quote> )...
]
<character representation> ::=
<nonquote character>
| <quote symbol>
<nonquote character> ::= !! <EMPHASIS>(See the Syntax Rules.)
<quote symbol> ::= <quote><quote>
<separator> ::= ( <comment> | <space> | <newline> )...
<comment> ::=
<comment introducer> [ <comment character>... ] <newline>
<comment introducer> ::= <minus sign><minus sign>[<minus sign>...]
<comment character> ::=
<nonquote character>
| <quote>
<newline> ::= !! <EMPHASIS>(implementation-defined end-of-line indicator)
<bit string literal> ::=
B <quote> [ <bit>... ] <quote>
[ ( <separator>... <quote> [ <bit>... ] <quote> )... ]
<bit> ::= 0 | 1
<hex string literal> ::=
X <quote> [ <hexit>... ] <quote>
[ ( <separator>... <quote> [ <hexit>... ] <quote> )... ]
<hexit> ::= <digit> | A | B | C | D | E | F | a | b | c | d | e | f
<delimiter token> ::=
<character string literal>
| <date string>
| <time string>
| <timestamp string>
| <interval string>
| <delimited identifier>
| <SQL special character>
| <not equals operator>
| <greater than or equals operator>
| <less than or equals operator>
| <concatenation operator>
| <double period>
| <left bracket>
| <right bracket>
<character string literal> ::=
[ <introducer><character set specification> ]
<quote> [ <character representation>... ] <quote>
[ ( <separator>... <quote> [ <character representation>... ] <quote> )...
]
<introducer> ::= <underscore>
<character set specification> ::=
<standard character repertoire name>
| <implementation-defined character repertoire name>
| <user-defined character repertoire name>
| <standard universal character form-of-use name>
| <implementation-defined universal character form-of-use name>
<standard character repertoire name> ::= <character set name>
<character set name> ::= [ <schema name> <period> ]
<SQL language identifier>
<schema name> ::=
[ <catalog name> <period> ] <unqualified schema name>
<catalog name> ::= <identifier>
<identifier> ::=
[ <introducer><character set specification> ] <actual identifier>
<actual identifier> ::=
<regular identifier>
| <delimited identifier>
<delimited identifier> ::=
<double quote> <delimited identifier body> <double quote>
<delimited identifier body> ::= <delimited identifier part>...
<delimited identifier part> ::=
<nondoublequote character>
| <doublequote symbol>
<nondoublequote character> ::= <EMPHASIS>(!! See the Syntax Rules)
<doublequote symbol> ::= <double quote><double quote>
<unqualified schema name> ::= <identifier>
<SQL language identifier> ::=
<SQL language identifier start>
[ ( <underscore> | <SQL language identifier part> )... ]
<SQL language identifier start> ::= <simple Latin letter>
<SQL language identifier part> ::=
<simple Latin letter>
| <digit>
<implementation-defined character repertoire name> ::=
<character set name>
<user-defined character repertoire name> ::= <character set name>
<standard universal character form-of-use name> ::=
<character set name>
<implementation-defined universal character form-of-use name> ::=
<character set name>
<date string> ::=
<quote> <date value> <quote>
<date value> ::=
<years value> <minus sign> <months value>
<minus sign> <days value>
<years value> ::= <datetime value>
<datetime value> ::= <unsigned integer>
<months value> ::= <datetime value>
<days value> ::= <datetime value>
<time string> ::=
<quote> <time value> [ <time zone interval> ] <quote>
<time value> ::=
<hours value> <colon> <minutes value> <colon> <seconds value>
<hours value> ::= <datetime value>
<minutes value> ::= <datetime value>
<seconds value> ::=
<seconds integer value> [ <period> [ <seconds fraction> ] ]
<seconds integer value> ::= <unsigned integer>
<seconds fraction> ::= <unsigned integer>
<time zone interval> ::=
<sign> <hours value> <colon> <minutes value>
<timestamp string> ::=
<quote> <date value> <space> <time value>
[ <time zone interval> ] <quote>
<interval string> ::=
<quote> ( <year-month literal> | <day-time literal> ) <quote>
<year-month literal> ::=
<years value>
| [ <years value> <minus sign> ] <months value>
<day-time literal> ::=
<day-time interval>
| <time interval>
<day-time interval> ::=
<days value>
[ <space> <hours value> [ <colon> <minutes value>
[ <colon> <seconds value> ] ] ]
<time interval> ::=
<hours value> [ <colon> <minutes value> [ <colon> <seconds value> ] ]
| <minutes value> [ <colon> <seconds value> ]
| <seconds value>
<not equals operator> ::= <>
<greater than or equals operator> ::= >=
<less than or equals operator> ::= <=
<concatenation operator> ::= ||
<double period> ::= ..
<module> ::=
<module name clause>
<language clause>
<module authorization clause>
[ <temporary table declaration>... ]
<module contents>...
<module name clause> ::=
MODULE [ <module name> ]
[ <module character set specification> ]
<module name> ::= <identifier>
<module character set specification> ::=
NAMES ARE <character set specification>
<language clause> ::=
LANGUAGE <language name>
<language name> ::=
ADA | C | COBOL | FORTRAN | MUMPS | PASCAL | PLI
<module authorization clause> ::=
SCHEMA <schema name>
| AUTHORIZATION <module authorization identifier>
| SCHEMA <schema name>
AUTHORIZATION <module authorization identifier>
<module authorization identifier> ::=
<authorization identifier>
<authorization identifier> ::= <identifier>
<temporary table declaration> ::=
DECLARE LOCAL TEMPORARY TABLE
<qualified local table name>
<table element list>
[ ON COMMIT ( PRESERVE | DELETE ) ROWS ]
<qualified local table name> ::=
MODULE <period> <local table name>
<local table name> ::= <qualified identifier>
<qualified identifier> ::= <identifier>
<table element list> ::=
<left paren> <table element> [ ( <comma> <table element> )... ] <right pa
ren>
<table element> ::=
<column definition>
| <table constraint definition>
<column definition> ::=
<column name> ( <data type> | <domain name> )
[ <default clause> ]
[ <column constraint definition>... ]
[ <collate clause> ]
<column name> ::= <identifier>
<data type> ::=
<character string type>
[ CHARACTER SET <character set specification> ]
| <national character string type>
| <bit string type>
| <numeric type>
| <datetime type>
| <interval type>
<character string type> ::=
CHARACTER [ <left paren> <length> <right paren> ]
| CHAR [ <left paren> <length> <right paren> ]
| CHARACTER VARYING <left paren> <length> <right paren>
| CHAR VARYING <left paren> <length> <right paren>
| VARCHAR <left paren> <length> <right paren>
<length> ::= <unsigned integer>
<national character string type> ::=
NATIONAL CHARACTER [ <left paren> <length> <right paren> ]
| NATIONAL CHAR [ <left paren> <length> <right paren> ]
| NCHAR [ <left paren> <length> <right paren> ]
| NATIONAL CHARACTER VARYING <left paren> <length> <right paren>
| NATIONAL CHAR VARYING <left paren> <length> <right paren>
| NCHAR VARYING <left paren> <length> <right paren>
<bit string type> ::=
BIT [ <left paren> <length> <right paren> ]
| BIT VARYING <left paren> <length> <right paren>
<numeric type> ::=
<exact numeric type>
| <approximate numeric type>
<exact numeric type> ::=
NUMERIC [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| DECIMAL [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| DEC [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| INTEGER
| INT
| SMALLINT
<precision> ::= <unsigned integer>
<scale> ::= <unsigned integer>
<approximate numeric type> ::=
FLOAT [ <left paren> <precision> <right paren> ]
| REAL
| DOUBLE PRECISION
<datetime type> ::=
DATE
| TIME [ <left paren> <time precision> <right paren> ]
[ WITH TIME ZONE ]
| TIMESTAMP [ <left paren> <timestamp precision> <right paren> ]
[ WITH TIME ZONE ]
<time precision> ::= <time fractional seconds precision>
<time fractional seconds precision> ::= <unsigned integer>
<timestamp precision> ::= <time fractional seconds precision>
<interval type> ::= INTERVAL <interval qualifier>
<interval qualifier> ::=
<start field> TO <end field>
| <single datetime field>
<start field> ::=
<non-second datetime field>
[ <left paren> <interval leading field precision> <right paren> ]
<non-second datetime field> ::= YEAR | MONTH | DAY | HOUR
| MINUTE
<interval leading field precision> ::= <unsigned integer>
<end field> ::=
<non-second datetime field>
| SECOND [ <left paren> <interval fractional seconds precision> <right pare
n> ]
<interval fractional seconds precision> ::= <unsigned integer>
<single datetime field> ::=
<non-second datetime field>
[ <left paren> <interval leading field precision> <right paren> ]
| SECOND [ <left paren> <interval leading field precision>
[ <comma> <interval fractional seconds precision> ] <right paren> ]
<domain name> ::= <qualified name>
<qualified name> ::=
[ <schema name> <period> ] <qualified identifier>
<default clause> ::=
DEFAULT <default option>
<default option> ::=
<literal>
| <datetime value function>
| USER
| CURRENT_USER
| SESSION_USER
| SYSTEM_USER
| NULL
<literal> ::=
<signed numeric literal>
| <general literal>
<signed numeric literal> ::=
[ <sign> ] <unsigned numeric literal>
<general literal> ::=
<character string literal>
| <national character string literal>
| <bit string literal>
| <hex string literal>
| <datetime literal>
| <interval literal>
<datetime literal> ::=
<date literal>
| <time literal>
| <timestamp literal>
<date literal> ::=
DATE <date string>
<time literal> ::=
TIME <time string>
<timestamp literal> ::=
TIMESTAMP <timestamp string>
<interval literal> ::=
INTERVAL [ <sign> ] <interval string> <interval qualifier>
<datetime value function> ::=
<current date value function>
| <current time value function>
| <current timestamp value function>
<current date value function> ::= CURRENT_DATE
<current time value function> ::=
CURRENT_TIME [ <left paren> <time precision> <right paren> ]
<current timestamp value function> ::=
CURRENT_TIMESTAMP [ <left paren> <timestamp precision> <right paren> ]
<column constraint definition> ::=
[ <constraint name definition> ]
<column constraint>
[ <constraint attributes> ]
<constraint name definition> ::= CONSTRAINT <constraint name>
<constraint name> ::= <qualified name>
<column constraint> ::=
NOT NULL
| <unique specification>
| <references specification>
| <check constraint definition>
<unique specification> ::=
UNIQUE | PRIMARY KEY
<references specification> ::=
REFERENCES <referenced table and columns>
[ MATCH <match type> ]
[ <referential triggered action> ]
<referenced table and columns> ::=
<table name> [ <left paren> <reference column list> <right paren> ]
<table name> ::=
<qualified name>
| <qualified local table name>
<reference column list> ::= <column name list>
<column name list> ::=
<column name> [ ( <comma> <column name> )... ]
<match type> ::=
FULL
| PARTIAL
<referential triggered action> ::=
<update rule> [ <delete rule> ]
| <delete rule> [ <update rule> ]
<update rule> ::= ON UPDATE <referential action>
<referential action> ::=
CASCADE
| SET NULL
| SET DEFAULT
| NO ACTION
<delete rule> ::= ON DELETE <referential action>
<check constraint definition> ::=
CHECK
<left paren> <search condition> <right paren>
<search condition> ::=
<boolean term>
| <search condition> OR <boolean term>
<boolean term> ::=
<boolean factor>
| <boolean term> AND <boolean factor>
<boolean factor> ::=
[ NOT ] <boolean test>
<boolean test> ::=
<boolean primary> [ IS [ NOT ]
<truth value> ]
<boolean primary> ::=
<predicate>
| <left paren> <search condition> <right paren>
<predicate> ::=
<comparison predicate>
| <between predicate>
| <in predicate>
| <like predicate>
| <null predicate>
| <quantified comparison predicate>
| <exists predicate>
| <unique predicate>
| <match predicate>
| <overlaps predicate>
<comparison predicate> ::=
<row value constructor> <comp op>
<row value constructor>
<row value constructor> ::=
<row value constructor element>
| <left paren> <row value constructor list> <right paren>
| <row subquery>
<row value constructor element> ::=
<value expression>
| <null specification>
| <default specification>
<value expression> ::=
<numeric value expression>
| <string value expression>
| <datetime value expression>
| <interval value expression>
<numeric value expression> ::=
<term>
| <numeric value expression> <plus sign> <term>
| <numeric value expression> <minus sign> <term>
<term> ::=
<factor>
| <term> <asterisk> <factor>
| <term> <solidus> <factor>
<factor> ::=
[ <sign> ] <numeric primary>
<numeric primary> ::=
<value expression primary>
| <numeric value function>
<value expression primary> ::=
<unsigned value specification>
| <column reference>
| <set function specification>
| <scalar subquery>
| <case expression>
| <left paren> <value expression> <right paren>
| <cast specification>
<unsigned value specification> ::=
<unsigned literal>
| <general value specification>
<unsigned literal> ::=
<unsigned numeric literal>
| <general literal>
<general value specification> ::=
<parameter specification>
| <dynamic parameter specification>
| <variable specification>
| USER
| CURRENT_USER
| SESSION_USER
| SYSTEM_USER
| VALUE
<parameter specification> ::=
<parameter name> [ <indicator parameter> ]
<parameter name> ::= <colon> <identifier>
<indicator parameter> ::=
[ INDICATOR ] <parameter name>
<dynamic parameter specification> ::= <question mark>
<variable specification> ::=
<embedded variable name> [ <indicator variable> ]
<embedded variable name> ::=
<colon><host identifier>
<host identifier> ::=
<Ada host identifier>
| <C host identifier>
| <COBOL host identifier>
| <Fortran host identifier>
| <MUMPS host identifier>
| <Pascal host identifier>
| <PL/I host identifier>
<Ada host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<C host identifier> ::=
!! <EMPHASIS>(See the Syntax Rules.)
<COBOL host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<Fortran host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<MUMPS host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<Pascal host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<PL/I host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<indicator variable> ::=
[ INDICATOR ] <embedded variable name>
<column reference> ::= [ <qualifier> <period> ] <column name>
<qualifier> ::=
<table name>
| <correlation name>
<correlation name> ::= <identifier>
<set function specification> ::=
COUNT <left paren> <asterisk> <right paren>
| <general set function>
<general set function> ::=
<set function type>
<left paren> [ <set quantifier> ] <value expression> <right paren>
<set function type> ::=
AVG | MAX | MIN | SUM | COUNT
<set quantifier> ::= DISTINCT | ALL
<scalar subquery> ::= <subquery>
<subquery> ::= <left paren> <query expression> <right paren>
<query expression> ::=
<non-join query expression>
| <joined table>
<non-join query expression> ::=
<non-join query term>
| <query expression> UNION [ ALL ]
[ <corresponding spec> ] <query term>
| <query expression> EXCEPT [ ALL ]
[ <corresponding spec> ] <query term>
<non-join query term> ::=
<non-join query primary>
| <query term> INTERSECT [ ALL ]
[ <corresponding spec> ] <query primary>
<non-join query primary> ::=
<simple table>
| <left paren> <non-join query expression> <right paren>
<simple table> ::=
<query specification>
| <table value constructor>
| <explicit table>
<query specification> ::=
SELECT [ <set quantifier> ] <select list> <table expression>
<select list> ::=
<asterisk>
| <select sublist> [ ( <comma> <select sublist> )... ]
<select sublist> ::=
<derived column>
| <qualifier> <period> <asterisk>
<derived column> ::= <value expression> [ <as clause> ]
<as clause> ::= [ AS ] <column name>
<table expression> ::=
<from clause>
[ <where clause> ]
[ <group by clause> ]
[ <having clause> ]
<from clause> ::= FROM <table reference>
[ ( <comma> <table reference> )... ]
<table reference> ::=
<table name> [ [ AS ] <correlation name>
[ <left paren> <derived column list> <right paren> ] ]
| <derived table> [ AS ] <correlation name>
[ <left paren> <derived column list> <right paren> ]
| <joined table>
<derived column list> ::= <column name list>
<derived table> ::= <table subquery>
<table subquery> ::= <subquery>
<joined table> ::=
<cross join>
| <qualified join>
| <left paren> <joined table> <right paren>
<cross join> ::=
<table reference> CROSS JOIN <table reference>
<qualified join> ::=
<table reference> [ NATURAL ] [ <join type> ] JOIN
<table reference> [ <join specification> ]
<join type> ::=
INNER
| <outer join type> [ OUTER ]
| UNION
<outer join type> ::=
LEFT
| RIGHT
| FULL
<join specification> ::=
<join condition>
| <named columns join>
<join condition> ::= ON <search condition>
<named columns join> ::=
USING <left paren> <join column list> <right paren>
<join column list> ::= <column name list>
<where clause> ::= WHERE <search condition>
<group by clause> ::=
GROUP BY <grouping column reference list>
<grouping column reference list> ::=
<grouping column reference>
[ ( <comma> <grouping column reference> )... ]
<grouping column reference> ::=
<column reference> [ <collate clause> ]
<collate clause> ::= COLLATE <collation name>
<collation name> ::= <qualified name>
<having clause> ::= HAVING <search condition>
<table value constructor> ::=
VALUES <table value constructor list>
<table value constructor list> ::=
<row value constructor> [ ( <comma> <row value constructor> )... ]
<explicit table> ::= TABLE <table name>
<query term> ::=
<non-join query term>
| <joined table>
<corresponding spec> ::=
CORRESPONDING [ BY <left paren> <corresponding column list> <right paren> ]
<corresponding column list> ::= <column name list>
<query primary> ::=
<non-join query primary>
| <joined table>
<case expression> ::=
<case abbreviation>
| <case specification>
<case abbreviation> ::=
NULLIF <left paren> <value expression> <comma>
<value expression> <right paren>
| COALESCE <left paren> <value expression>
( <comma> <value expression> )... <right paren>
<case specification> ::=
<simple case>
| <searched case>
<simple case> ::=
CASE <case operand>
<simple when clause>...
[ <else clause> ]
END
<case operand> ::= <value expression>
<simple when clause> ::= WHEN <when operand> THEN <result>
<when operand> ::= <value expression>
<result> ::= <result expression> | NULL
<result expression> ::= <value expression>
<else clause> ::= ELSE <result>
<searched case> ::=
CASE
<searched when clause>...
[ <else clause> ]
END
<searched when clause> ::= WHEN <search condition> THEN <result>
<cast specification> ::=
CAST <left paren> <cast operand> AS
<cast target> <right paren>
<cast operand> ::=
<value expression>
| NULL
<cast target> ::=
<domain name>
| <data type>
<numeric value function> ::=
<position expression>
| <extract expression>
| <length expression>
<position expression> ::=
POSITION <left paren> <character value expression>
IN <character value expression> <right paren>
<character value expression> ::=
<concatenation>
| <character factor>
<concatenation> ::=
<character value expression> <concatenation operator>
<character factor>
<character factor> ::=
<character primary> [ <collate clause> ]
<character primary> ::=
<value expression primary>
| <string value function>
<string value function> ::=
<character value function>
| <bit value function>
<character value function> ::=
<character substring function>
| <fold>
| <form-of-use conversion>
| <character translation>
| <trim function>
<character substring function> ::=
SUBSTRING <left paren> <character value expression> FROM <start position>
[ FOR <string length> ] <right paren>
<start position> ::= <numeric value expression>
<string length> ::= <numeric value expression>
<fold> ::= ( UPPER | LOWER )
<left paren> <character value expression> <right paren>
<form-of-use conversion> ::=
CONVERT <left paren> <character value expression>
USING <form-of-use conversion name> <right paren>
<form-of-use conversion name> ::= <qualified name>
<character translation> ::=
TRANSLATE <left paren> <character value expression>
USING <translation name> <right paren>
<translation name> ::= <qualified name>
<trim function> ::=
TRIM <left paren> <trim operands> <right paren>
<trim operands> ::=
[ [ <trim specification> ] [ <trim character> ] FROM ] <trim source>
<trim specification> ::=
LEADING
| TRAILING
| BOTH
<trim character> ::= <character value expression>
<trim source> ::= <character value expression>
<bit value function> ::=
<bit substring function>
<bit substring function> ::=
SUBSTRING <left paren> <bit value expression> FROM <start position>
[ FOR <string length> ] <right paren>
<bit value expression> ::=
<bit concatenation>
| <bit factor>
<bit concatenation> ::=
<bit value expression> <concatenation operator> <bit factor>
<bit factor> ::= <bit primary>
<bit primary> ::=
<value expression primary>
| <string value function>
<extract expression> ::=
EXTRACT <left paren> <extract field>
FROM <extract source> <right paren>
<extract field> ::=
<datetime field>
| <time zone field>
<datetime field> ::=
<non-second datetime field>
| SECOND
<time zone field> ::=
TIMEZONE_HOUR
| TIMEZONE_MINUTE
<extract source> ::=
<datetime value expression>
| <interval value expression>
<datetime value expression> ::=
<datetime term>
| <interval value expression> <plus sign> <datetime term>
| <datetime value expression> <plus sign> <interval term>
| <datetime value expression> <minus sign> <interval term>
<interval term> ::=
<interval factor>
| <interval term 2> <asterisk> <factor>
| <interval term 2> <solidus> <factor>
| <term> <asterisk> <interval factor>
<interval factor> ::=
[ <sign> ] <interval primary>
<interval primary> ::=
<value expression primary> [ <interval qualifier> ]
<interval term 2> ::= <interval term>
<interval value expression> ::=
<interval term>
| <interval value expression 1> <plus sign> <interval term 1>
| <interval value expression 1> <minus sign> <interval term 1>
| <left paren> <datetime value expression> <minus sign>
<datetime term> <right paren> <interval qualifier>
<interval value expression 1> ::= <interval value expression>
<interval term 1> ::= <interval term>
<datetime term> ::=
<datetime factor>
<datetime factor> ::=
<datetime primary> [ <time zone> ]
<datetime primary> ::=
<value expression primary>
| <datetime value function>
<time zone> ::=
AT <time zone specifier>
<time zone specifier> ::=
LOCAL
| TIME ZONE <interval value expression>
<length expression> ::=
<char length expression>
| <octet length expression>
| <bit length expression>
<char length expression> ::=
( CHAR_LENGTH | CHARACTER_LENGTH )
<left paren> <string value expression> <right paren>
<string value expression> ::=
<character value expression>
| <bit value expression>
<octet length expression> ::=
OCTET_LENGTH <left paren> <string value expression> <right paren>
<bit length expression> ::=
BIT_LENGTH <left paren> <string value expression> <right paren>
<null specification> ::=
NULL
<default specification> ::=
DEFAULT
<row value constructor list> ::=
<row value constructor element>
[ ( <comma> <row value constructor element> )... ]
<row subquery> ::= <subquery>
<comp op> ::=
<equals operator>
| <not equals operator>
| <less than operator>
| <greater than operator>
| <less than or equals operator>
| <greater than or equals operator>
<between predicate> ::=
<row value constructor> [ NOT ] BETWEEN
<row value constructor> AND <row value constructor>
<in predicate> ::=
<row value constructor>
[ NOT ] IN <in predicate value>
<in predicate value> ::=
<table subquery>
| <left paren> <in value list> <right paren>
<in value list> ::=
<value expression> ( <comma> <value expression> )...
<like predicate> ::=
<match value> [ NOT ] LIKE <pattern>
[ ESCAPE <escape character> ]
<match value> ::= <character value expression>
<pattern> ::= <character value expression>
<escape character> ::= <character value expression>
<null predicate> ::= <row value constructor>
IS [ NOT ] NULL
<quantified comparison predicate> ::=
<row value constructor> <comp op> <quantifier> <table subquery>
<quantifier> ::= <all> | <some>
<all> ::= ALL
<some> ::= SOME | ANY
<exists predicate> ::= EXISTS <table subquery>
<unique predicate> ::= UNIQUE <table subquery>
<match predicate> ::=
<row value constructor> MATCH [ UNIQUE ]
[ PARTIAL | FULL ] <table subquery>
<overlaps predicate> ::=
<row value constructor 1> OVERLAPS <row value constructor 2>
<row value constructor 1> ::= <row value constructor>
<row value constructor 2> ::= <row value constructor>
<truth value> ::=
TRUE
| FALSE
| UNKNOWN
<constraint attributes> ::=
<constraint check time> [ [ NOT ] DEFERRABLE ]
| [ NOT ] DEFERRABLE [ <constraint check time> ]
<constraint check time> ::=
INITIALLY DEFERRED
| INITIALLY IMMEDIATE
<table constraint definition> ::=
[ <constraint name definition> ]
<table constraint> [ <constraint attributes> ]
<table constraint> ::=
<unique constraint definition>
| <referential constraint definition>
| <check constraint definition>
<unique constraint definition> ::=
<unique specification> even in SQL3)
<unique specification>
<left paren> <unique column list> <right paren>
<unique column list> ::= <column name list>
<referential constraint definition> ::=
FOREIGN KEY
<left paren> <referencing columns> <right paren>
<references specification>
<referencing columns> ::=
<reference column list>
<module contents> ::=
<declare cursor>
| <dynamic declare cursor>
| <procedure>
<declare cursor> ::=
DECLARE <cursor name> [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR <cursor specification>
<cursor name> ::= <identifier>
<cursor specification> ::=
<query expression> [ <order by clause> ]
[ <updatability clause> ]
<order by clause> ::=
ORDER BY <sort specification list>
<sort specification list> ::=
<sort specification> [ ( <comma> <sort specification> )... ]
<sort specification> ::=
<sort key> [ <collate clause> ] [ <ordering specification> ]
<sort key> ::=
<column name>
| <unsigned integer>
<ordering specification> ::= ASC | DESC
<updatability clause> ::=
FOR
( READ ONLY |
UPDATE [ OF <column name list> ] )
<dynamic declare cursor> ::=
DECLARE <cursor name> [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR <statement name>
<statement name> ::= <identifier>
<procedure> ::=
PROCEDURE <procedure name>
<parameter declaration list> <semicolon>
<SQL procedure statement> <semicolon>
<procedure name> ::= <identifier>
<parameter declaration list> ::=
<left paren> <parameter declaration>
[ ( <comma> <parameter declaration> )... ] <right paren>
| <parameter declaration>...
<parameter declaration> ::=
<parameter name> <data type>
| <status parameter>
<status parameter> ::=
SQLCODE | SQLSTATE
<SQL procedure statement> ::=
<SQL schema statement>
| <SQL data statement>
| <SQL transaction statement>
| <SQL connection statement>
| <SQL session statement>
| <SQL dynamic statement>
| <SQL diagnostics statement>
<SQL schema statement> ::=
<SQL schema definition statement>
| <SQL schema manipulation statement>
<SQL schema definition statement> ::=
<schema definition>
| <table definition>
| <view definition>
| <grant statement>
| <domain definition>
| <character set definition>
| <collation definition>
| <translation definition>
| <assertion definition>
<schema definition> ::=
CREATE SCHEMA <schema name clause>
[ <schema character set specification> ]
[ <schema element>... ]
<schema name clause> ::=
<schema name>
| AUTHORIZATION <schema authorization identifier>
| <schema name> AUTHORIZATION
<schema authorization identifier>
<schema authorization identifier> ::=
<authorization identifier>
<schema character set specification> ::=
DEFAULT CHARACTER
SET <character set specification>
<schema element> ::=
<domain definition>
| <table definition>
| <view definition>
| <grant statement>
| <assertion definition>
| <character set definition>
| <collation definition>
| <translation definition>
<domain definition> ::=
CREATE DOMAIN <domain name>
[ AS ] <data type>
[ <default clause> ]
[ <domain constraint>... ]
[ <collate clause> ]
<domain constraint> ::=
[ <constraint name definition> ]
<check constraint definition> [ <constraint attributes> ]
<table definition> ::=
CREATE [ ( GLOBAL | LOCAL ) TEMPORARY ] TABLE
<table name>
<table element list>
[ ON COMMIT ( DELETE | PRESERVE ) ROWS ]
<view definition> ::=
CREATE VIEW <table name> [ <left paren> <view column list>
<right paren> ]
AS <query expression>
[ WITH [ <levels clause> ] CHECK OPTION ]
<view column list> ::= <column name list>
<levels clause> ::=
CASCADED | LOCAL
<grant statement> ::=
GRANT <privileges> ON <object name>
TO <grantee> [ ( <comma> <grantee> )... ]
[ WITH GRANT OPTION ]
<privileges> ::=
ALL PRIVILEGES
| <action list>
<action list> ::= <action> [ ( <comma> <action> )... ]
<action> ::=
SELECT
| DELETE
| INSERT [ <left paren> <privilege column list> <right paren> ]
| UPDATE [ <left paren> <privilege column list> <right paren> ]
| REFERENCES [ <left paren> <privilege column list> <right paren> ]
| USAGE
<privilege column list> ::= <column name list>
<object name> ::=
[ TABLE ] <table name>
| DOMAIN <domain name>
| COLLATION <collation name>
| CHARACTER SET <character set name>
| TRANSLATION <translation name>
<grantee> ::=
PUBLIC
| <authorization identifier>
<assertion definition> ::=
CREATE ASSERTION <constraint name> <assertion check>
[ <constraint attributes> ]
<assertion check> ::=
CHECK
<left paren> <search condition> <right paren>
<character set definition> ::=
CREATE CHARACTER SET <character set name>
[ AS ]
<character set source>
[ <collate clause> | <limited collation definition> ]
<character set source> ::=
GET <existing character set name>
<existing character set name> ::=
<standard character repertoire name>
| <implementation-defined character repertoire name>
| <schema character set name>
<schema character set name> ::= <character set name>
<limited collation definition> ::=
COLLATION FROM <collation source>
<collation source> ::=
<collating sequence definition>
| <translation collation>
<collating sequence definition> ::=
<external collation>
| <schema collation name>
| DESC <left paren> <collation name> <right paren>
| DEFAULT
<external collation> ::=
EXTERNAL <left paren> <quote> <external collation name> <quote> <right pare
n>
<external collation name> ::=
<standard collation name>
| <implementation-defined collation name>
<standard collation name> ::= <collation name>
<implementation-defined collation name> ::= <collation name>
<schema collation name> ::= <collation name>
<translation collation> ::=
TRANSLATION <translation name>
[ THEN COLLATION <collation name> ]
<collation definition> ::=
CREATE COLLATION <collation name> FOR
<character set specification>
FROM <collation source>
[ <pad attribute> ]
<pad attribute> ::=
NO PAD
| PAD SPACE
<translation definition> ::=
CREATE TRANSLATION <translation name>
FOR <source character set specification>
TO <target character set specification>
FROM <translation source>
<source character set specification> ::= <character set specification>
<target character set specification> ::= <character set specification>
<translation source> ::=
<translation specification>
<translation specification> ::=
<external translation>
| IDENTITY
| <schema translation name>
<external translation> ::=
EXTERNAL <left paren> <quote> <external translation name> <quote> <right pa
ren>
<external translation name> ::=
<standard translation name>
| <implementation-defined translation name>
<standard translation name> ::= <translation name>
<implementation-defined translation name> ::= <translation name>
<schema translation name> ::= <translation name>
<SQL schema manipulation statement> ::=
<drop schema statement>
| <alter table statement>
| <drop table statement>
| <drop view statement>
| <revoke statement>
| <alter domain statement>
| <drop domain statement>
| <drop character set statement>
| <drop collation statement>
| <drop translation statement>
| <drop assertion statement>
<drop schema statement> ::=
DROP SCHEMA <schema name> <drop behavior>
<drop behavior> ::= CASCADE | RESTRICT
<alter table statement> ::=
ALTER TABLE <table name> <alter table action>
<alter table action> ::=
<add column definition>
| <alter column definition>
| <drop column definition>
| <add table constraint definition>
| <drop table constraint definition>
<add column definition> ::=
ADD [ COLUMN ] <column definition>
<alter column definition> ::=
ALTER [ COLUMN ] <column name> <alter column action>
<alter column action> ::=
<set column default clause>
| <drop column default clause>
<set column default clause> ::=
SET <default clause>
<drop column default clause> ::=
DROP DEFAULT
<drop column definition> ::=
DROP [ COLUMN ] <column name> <drop behavior>
<add table constraint definition> ::=
ADD <table constraint definition>
<drop table constraint definition> ::=
DROP CONSTRAINT <constraint name> <drop behavior>
<drop table statement> ::=
DROP TABLE <table name> <drop behavior>
<drop view statement> ::=
DROP VIEW <table name> <drop behavior>
<revoke statement> ::=
REVOKE [ GRANT OPTION FOR ]
<privileges>
ON <object name>
FROM <grantee> [ ( <comma> <grantee> )... ] <drop behavior>
<alter domain statement> ::=
ALTER DOMAIN <domain name> <alter domain action>
<alter domain action> ::=
<set domain default clause>
| <drop domain default clause>
| <add domain constraint definition>
| <drop domain constraint definition>
<set domain default clause> ::= SET <default clause>
<drop domain default clause> ::= DROP DEFAULT
<add domain constraint definition> ::=
ADD <domain constraint>
<drop domain constraint definition> ::=
DROP CONSTRAINT <constraint name>
<drop domain statement> ::=
DROP DOMAIN <domain name> <drop behavior>
<drop character set statement> ::=
DROP CHARACTER SET <character set name>
<drop collation statement> ::=
DROP COLLATION <collation name>
<drop translation statement> ::=
DROP TRANSLATION <translation name>
<drop assertion statement> ::=
DROP ASSERTION <constraint name>
<SQL data statement> ::=
<open statement>
| <fetch statement>
| <close statement>
| <select statement: single row>
| <SQL data change statement>
<open statement> ::=
OPEN <cursor name>
<fetch statement> ::=
FETCH [ [ <fetch orientation> ] FROM ]
<cursor name> INTO <fetch target list>
<fetch orientation> ::=
NEXT
| PRIOR
| FIRST
| LAST
| ( ABSOLUTE | RELATIVE ) <simple value specification>
<simple value specification> ::=
<parameter name>
| <embedded variable name>
| <literal>
<fetch target list> ::=
<target specification> [ ( <comma> <target specification> )... ]
<target specification> ::=
<parameter specification>
| <variable specification>
<close statement> ::=
CLOSE <cursor name>
<select statement: single row> ::=
SELECT [ <set quantifier> ] <select list>
INTO <select target list>
<table expression>
<select target list> ::=
<target specification> [ ( <comma> <target specification> )... ]
<SQL data change statement> ::=
<delete statement: positioned>
| <delete statement: searched>
| <insert statement>
| <update statement: positioned>
| <update statement: searched>
<delete statement: positioned> ::=
DELETE FROM <table name>
WHERE CURRENT OF <cursor name>
<delete statement: searched> ::=
DELETE FROM <table name>
[ WHERE <search condition> ]
<insert statement> ::=
INSERT INTO <table name>
<insert columns and source>
<insert columns and source> ::=
[ <left paren> <insert column list> <right paren> ]
<query expression>
| DEFAULT VALUES
<insert column list> ::= <column name list>
<update statement: positioned> ::=
UPDATE <table name>
SET <set clause list>
WHERE CURRENT OF <cursor name>
<set clause list> ::=
<set clause> [ ( <comma> <set clause> )... ]
<set clause> ::=
<object column> <equals operator> <update source>
<object column> ::= <column name>
<update source> ::=
<value expression>
| <null specification>
| DEFAULT
<update statement: searched> ::=
UPDATE <table name>
SET <set clause list>
[ WHERE <search condition> ]
<SQL transaction statement> ::=
<set transaction statement>
| <set constraints mode statement>
| <commit statement>
| <rollback statement>
<set transaction statement> ::=
SET TRANSACTION <transaction mode>
[ ( <comma> <transaction mode> )... ]
<transaction mode> ::=
<isolation level>
| <transaction access mode>
| <diagnostics size>
<isolation level> ::=
ISOLATION LEVEL <level of isolation>
<level of isolation> ::=
READ UNCOMMITTED
| READ COMMITTED
| REPEATABLE READ
| SERIALIZABLE
<transaction access mode> ::=
READ ONLY
| READ WRITE
<diagnostics size> ::=
DIAGNOSTICS SIZE <number of conditions>
<number of conditions> ::= <simple value specification>
<set constraints mode statement> ::=
SET CONSTRAINTS <constraint name list>
( DEFERRED | IMMEDIATE )
<constraint name list> ::=
ALL
| <constraint name> [ ( <comma> <constraint name> )... ]
<commit statement> ::=
COMMIT [ WORK ]
<rollback statement> ::=
ROLLBACK [ WORK ]
<SQL connection statement> ::=
<connect statement>
| <set connection statement>
| <disconnect statement>
<connect statement> ::=
CONNECT TO <connection target>
<connection target> ::=
<SQL-server name>
[ AS <connection name> ]
correspondence with Tony Gordon)
[ USER <user name> ]
| DEFAULT
<SQL-server name> ::= <simple value specification>
<connection name> ::= <simple value specification>
<user name> ::= <simple value specification>
<set connection statement> ::=
SET CONNECTION <connection object>
<connection object> ::=
DEFAULT
| <connection name>
<disconnect statement> ::=
DISCONNECT <disconnect object>
<disconnect object> ::=
<connection object>
| ALL
| CURRENT
<SQL session statement> ::=
<set catalog statement>
| <set schema statement>
| <set names statement>
| <set session authorization identifier statement>
| <set local time zone statement>
<set catalog statement> ::=
SET CATALOG <value specification>
<value specification> ::=
<literal>
| <general value specification>
<set schema statement> ::=
SET SCHEMA <value specification>
<set names statement> ::=
SET NAMES <value specification>
<set session authorization identifier statement> ::=
SET SESSION AUTHORIZATION
<value specification>
<set local time zone statement> ::=
SET TIME ZONE
<set time zone value>
<set time zone value> ::=
<interval value expression>
| LOCAL
<SQL dynamic statement> ::=
<system descriptor statement>
| <prepare statement>
| <deallocate prepared statement>
| <describe statement>
| <execute statement>
| <execute immediate statement>
| <SQL dynamic data statement>
<system descriptor statement> ::=
<allocate descriptor statement>
| <deallocate descriptor statement>
| <set descriptor statement>
| <get descriptor statement>
<allocate descriptor statement> ::=
ALLOCATE DESCRIPTOR <descriptor name>
[ WITH MAX <occurrences> ]
<descriptor name> ::=
[ <scope option> ] <simple value specification>
<scope option> ::=
GLOBAL
| LOCAL
<occurrences> ::= <simple value specification>
<deallocate descriptor statement> ::=
DEALLOCATE DESCRIPTOR <descriptor name>
<set descriptor statement> ::=
SET DESCRIPTOR <descriptor name>
<set descriptor information>
<set descriptor information> ::=
<set count>
| VALUE <item number>
<set item information> [ ( <comma> <set item information> )... ]
<set count> ::=
COUNT <equals operator> <simple value specification 1>
<simple value specification 1> ::= <simple value specification>
<item number> ::= <simple value specification>
<set item information> ::=
<descriptor item name> <equals operator> <simple value specification 2>
<descriptor item name> ::=
TYPE
| LENGTH
| OCTET_LENGTH
| RETURNED_LENGTH
| RETURNED_OCTET_LENGTH
| PRECISION
| SCALE
| DATETIME_INTERVAL_CODE
| DATETIME_INTERVAL_PRECISION
| NULLABLE
| INDICATOR
| DATA
| NAME
| UNNAMED
| COLLATION_CATALOG
| COLLATION_SCHEMA
| COLLATION_NAME
| CHARACTER_SET_CATALOG
| CHARACTER_SET_SCHEMA
| CHARACTER_SET_NAME
<simple value specification 2> ::= <simple value specification>
<item number> ::= <simple value specification>
<get descriptor statement> ::=
GET DESCRIPTOR <descriptor name> <get descriptor information>
<get descriptor information> ::=
<get count>
| VALUE <item number>
<get item information> [ ( <comma> <get item information> )... ]
<get count> ::=
<simple target specification 1> <equals operator>
COUNT
<simple target specification 1> ::= <simple target specification>
<simple target specification> ::=
<parameter name>
| <embedded variable name>
<get item information> ::=
<simple target specification 2> <equals operator> <descriptor item name>>
<simple target specification 2> ::= <simple target specification>
<prepare statement> ::=
PREPARE <SQL statement name> FROM <SQL statement variable>
<SQL statement name> ::=
<statement name>
| <extended statement name>
<extended statement name> ::=
[ <scope option> ] <simple value specification>
<SQL statement variable> ::= <simple value specification>
<deallocate prepared statement> ::=
DEALLOCATE PREPARE <SQL statement name>
<describe statement> ::=
<describe input statement>
| <describe output statement>
<describe input statement> ::=
DESCRIBE INPUT <SQL statement name> <using descriptor>
<using descriptor> ::=
( USING | INTO ) SQL DESCRIPTOR <descriptor name>
<describe output statement> ::=
DESCRIBE [ OUTPUT ] <SQL statement name> <using descriptor>
<execute statement> ::=
EXECUTE <SQL statement name>
[ <result using clause> ]
[ <parameter using clause> ]
<result using clause> ::= <using clause>
<using clause> ::=
<using arguments>
| <using descriptor>
<using arguments> ::=
( USING | INTO ) <argument> [ ( <comma> <argument> )... ]
<argument> ::= <target specification>
<parameter using clause> ::= <using clause>
<execute immediate statement> ::=
EXECUTE IMMEDIATE <SQL statement variable>
<SQL dynamic data statement> ::=
<allocate cursor statement>
| <dynamic open statement>
| <dynamic fetch statement>
| <dynamic close statement>
| <dynamic delete statement: positioned>
| <dynamic update statement: positioned>
<allocate cursor statement> ::=
ALLOCATE <extended cursor name> [ INSENSITIVE ]
[ SCROLL ] CURSOR
FOR <extended statement name>
<extended cursor name> ::=
[ <scope option> ] <simple value specification>
<dynamic open statement> ::=
OPEN <dynamic cursor name> [ <using clause> ]
<dynamic cursor name> ::=
<cursor name>
| <extended cursor name>
<dynamic fetch statement> ::=
FETCH [ [ <fetch orientation> ] FROM ] <dynamic cursor name>
<using clause>
<dynamic close statement> ::=
CLOSE <dynamic cursor name>
<dynamic delete statement: positioned> ::=
DELETE FROM <table name>
WHERE CURRENT OF
<dynamic cursor name>
<dynamic update statement: positioned> ::=
UPDATE <table name>
SET <set clause>
[ ( <comma> <set clause> )... ]
WHERE CURRENT OF
<dynamic cursor name>
<SQL diagnostics statement> ::=
<get diagnostics statement>
<get diagnostics statement> ::=
GET DIAGNOSTICS <sql diagnostics information>
<sql diagnostics information> ::=
<statement information>
| <condition information>
<statement information> ::=
<statement information item> [ ( <comma> <statement information item> )...
]
<statement information item> ::=
<simple target specification> <equals operator> <statement information item
name>
<statement information item name> ::=
NUMBER
| MORE
| COMMAND_FUNCTION
| DYNAMIC_FUNCTION
| ROW_COUNT
<condition information> ::=
EXCEPTION <condition number>
<condition information item> [ ( <comma> <condition information item> )..
]
<condition number> ::= <simple value specification>
<condition information item> ::=
<simple target specification> <equals operator> <condition information item
name>
<condition information item name> ::=
CONDITION_NUMBER
| RETURNED_SQLSTATE
| CLASS_ORIGIN
| SUBCLASS_ORIGIN
| SERVER_NAME
| CONNECTION_NAME
| CONSTRAINT_CATALOG
| CONSTRAINT_SCHEMA
| CONSTRAINT_NAME
| CATALOG_NAME
| SCHEMA_NAME
| TABLE_NAME
| COLUMN_NAME
| CURSOR_NAME
| MESSAGE_TEXT
| MESSAGE_LENGTH
| MESSAGE_OCTET_LENGTH
<embedded SQL host program> ::=
<embedded SQL Ada program>
| <embedded SQL C program>
| <embedded SQL COBOL program>
| <embedded SQL Fortran program>
| <embedded SQL MUMPS program>
| <embedded SQL Pascal program>
| <embedded SQL PL/I program>
<embedded SQL Ada program> ::= !! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL C program> ::=
!! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL COBOL program> ::= !! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL Fortran program> ::=
!! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL MUMPS program> ::= !! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL Pascal program> ::=
!! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL PL/I program> ::= !! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL declare section> ::=
<embedded SQL begin declare>
[ <embedded character set declaration> ]
[ <host variable definition>... ]
<embedded SQL end declare>
| <embedded SQL MUMPS declare>
<embedded SQL begin declare> ::=
<SQL prefix> BEGIN DECLARE SECTION
[ <SQL terminator> ]
<SQL prefix> ::=
EXEC SQL
| <ampersand>SQL<left paren>
<SQL terminator> ::=
END-EXEC
| <semicolon>
| <right paren>
<embedded character set declaration> ::=
SQL NAMES ARE <character set specification>
<host variable definition> ::=
<Ada variable definition>
| <C variable definition>
| <COBOL variable definition>
| <Fortran variable definition>
| <MUMPS variable definition>
| <Pascal variable definition>
| <PL/I variable definition>
<Ada variable definition> ::=
<Ada host identifier> [ ( <comma> <Ada host identifier> )... ] :
<Ada type specification> [ <Ada initial value> ]
<Ada type specification> ::=
<Ada qualified type specification>
| <Ada unqualified type specification>
<Ada qualified type specification> ::=
SQL_STANDARD.CHAR [ CHARACTER SET
[ IS ] <character set specification> ]
<left paren> 1 <double period> <length> <right paren>
| SQL_STANDARD.BIT
<left paren> 1 <double period> <length> <right paren>
| SQL_STANDARD.SMALLINT
| SQL_STANDARD.INT
| SQL_STANDARD.REAL
| SQL_STANDARD.DOUBLE_PRECISION
| SQL_STANDARD.SQLCODE_TYPE
| SQL_STANDARD.SQLSTATE_TYPE
| SQL_STANDARD.INDICATOR_TYPE
<Ada unqualified type specification> ::=
CHAR
<left paren> 1 <double period> <length> <right paren>
| BIT
<left paren> 1 <double period> <length> <right paren>
| SMALLINT
| INT
| REAL
| DOUBLE_PRECISION
| SQLCODE_TYPE
| SQLSTATE_TYPE
| INDICATOR_TYPE
<Ada initial value> ::=
<Ada assignment operator> <character representation>...
<Ada assignment operator> ::= <colon><equals operator>
<C variable definition> ::=
[ <C storage class> ]
[ <C class modifier> ]
<C variable specification>
<semicolon>
<C storage class> ::=
auto
| extern
| static
<C class modifier> ::= const | volatile
<C variable specification> ::=
<C numeric variable>
| <C character variable>
| <C derived variable>
<C numeric variable> ::=
( long | short | float | double )
<C host identifier> [ <C initial value> ]
[ ( <comma> <C host identifier> [ <C initial value> ] )... ]
<C initial value> ::=
<equals operator> <character representation>...
<C character variable> ::=
char [ CHARACTER SET
[ IS ] <character set specification> ]
<C host identifier>
<C array specification> [ <C initial value> ]
[ ( <comma> <C host identifier>
<C array specification>
[ <C initial value> ] )... ]
<C array specification> ::=
<left bracket> <length> <right bracket>
<C derived variable> ::=
<C VARCHAR variable>
| <C bit variable>
<C VARCHAR variable> ::=
VARCHAR [ CHARACTER SET [ IS ]
<character set specification> ]
<C host identifier>
<C array specification> [ <C initial value> ]
[ ( <comma> <C host identifier>
<C array specification>
[ <C initial value> ] )... ]
<C bit variable> ::=
BIT <C host identifier>
<C array specification> [ <C initial value> ]
[ ( <comma> <C host identifier>
<C array specification>
[ <C initial value> ] )... ]
<COBOL variable definition> ::=
(01|77) <COBOL host identifier> <COBOL type specification>
[ <character representation>... ] <period>
<COBOL type specification> ::=
<COBOL character type>
| <COBOL bit type>
| <COBOL numeric type>
| <COBOL integer type>
<COBOL character type> ::=
[ CHARACTER SET [ IS ]
<character set specification> ]
( PIC | PICTURE ) [ IS ] ( X [ <left paren> <length> <right paren> ] )...
<COBOL bit type> ::=
( PIC | PICTURE ) [ IS ]
( B [ <left paren> <length> <right paren> ] )...
<COBOL numeric type> ::=
( PIC | PICTURE ) [ IS ]
S <COBOL nines specification>
[ USAGE [ IS ] ] DISPLAY SIGN LEADING SEPARATE
<COBOL nines specification> ::=
<COBOL nines> [ V [ <COBOL nines> ] ]
| V <COBOL nines>
<COBOL nines> ::= ( 9 [ <left paren> <length> <right paren> ] )...
<COBOL integer type> ::=
<COBOL computational integer>
| <COBOL binary integer>
<COBOL computational integer> ::=
( PIC | PICTURE ) [ IS ] S<COBOL nines>
[ USAGE [ IS ] ] ( COMP | COMPUTATIONAL )
<COBOL binary integer> ::=
( PIC | PICTURE ) [ IS ] S<COBOL nines>
[ USAGE [ IS ] ] BINARY
<Fortran variable definition> ::=
<Fortran type specification>
<Fortran host identifier>
[ ( <comma> <Fortran host identifier> )... ]
<Fortran type specification> ::=
CHARACTER [ <asterisk> <length> ]
[ CHARACTER SET [ IS ]
<character set specification> ]
| BIT [ <asterisk> <length> ]
| INTEGER
| REAL
| DOUBLE PRECISION
<MUMPS variable definition> ::=
( <MUMPS numeric variable> | <MUMPS character variable> )
<semicolon>
<MUMPS numeric variable> ::=
<MUMPS type specification>
<MUMPS host identifier> [ ( <comma> <MUMPS host identifier> )... ]
<MUMPS type specification> ::=
INT
| DEC
[ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| REAL
<MUMPS character variable> ::=
VARCHAR <MUMPS host identifier> <MUMPS length specification>
[ ( <comma> <MUMPS host identifier> <MUMPS length specification> )... ]
<MUMPS length specification> ::=
<left paren> <length> <right paren>
<Pascal variable definition> ::=
<Pascal host identifier> [ ( <comma> <Pascal host identifier> )... ] <colon
>
<Pascal type specification> <semicolon>
<Pascal type specification> ::=
PACKED ARRAY
<left bracket> 1 <double period> <length> <right bracket>
OF CHAR
[ CHARACTER SET [ IS ]
<character set specification> ]
| PACKED ARRAY
<left bracket> 1 <double period> <length> <right bracket>
OF BIT
| INTEGER
| REAL
| CHAR [ CHARACTER SET
[ IS ] <character set specification> ]
| BIT
<PL/I variable definition> ::=
(DCL | DECLARE)
( <PL/I host identifier>
| <left paren> <PL/I host identifier>
[ ( <comma> <PL/I host identifier> )... ] <right paren> )
<PL/I type specification>
[ <character representation>... ] <semicolon>
<PL/I type specification> ::=
( CHAR | CHARACTER ) [ VARYING ]
<left paren><length><right paren>
[ CHARACTER SET
[ IS ] <character set specification> ]
| BIT [ VARYING ] <left paren><length><right paren>
| <PL/I type fixed decimal> <left paren> <precision>
[ <comma> <scale> ] <right paren>
| <PL/I type fixed binary> [ <left paren> <precision> <right paren> ]
| <PL/I type float binary> <left paren> <precision> <right paren>
<PL/I type fixed decimal> ::=
( DEC | DECIMAL ) FIXED
| FIXED ( DEC | DECIMAL )
<PL/I type fixed binary> ::=
( BIN | BINARY ) FIXED
| FIXED ( BIN | BINARY )
<PL/I type float binary> ::=
( BIN | BINARY ) FLOAT
| FLOAT ( BIN | BINARY )
<embedded SQL end declare> ::=
<SQL prefix> END DECLARE SECTION
[ <SQL terminator> ]
<embedded SQL MUMPS declare> ::=
<SQL prefix>
BEGIN DECLARE SECTION
[ <embedded character set declaration> ]
[ <host variable definition>... ]
END DECLARE SECTION
<SQL terminator>
<embedded SQL statement> ::=
<SQL prefix>
<statement or declaration>
[ <SQL terminator> ]
<statement or declaration> ::=
<declare cursor>
| <dynamic declare cursor>
| <temporary table declaration>
| <embedded exception declaration>
| <SQL procedure statement>
<embedded exception declaration> ::=
WHENEVER <condition> <condition action>
<condition> ::=
SQLERROR | NOT FOUND
<condition action> ::=
CONTINUE | <go to>
<go to> ::=
( GOTO | GO TO ) <goto target>
<goto target> ::=
<host label identifier>
| <unsigned integer>
| <host PL/I label variable>
<host label identifier> ::= !!<EMPHASIS>(See the Syntax Rules.)
<host PL/I label variable> ::= !!<EMPHASIS>(See the Syntax Rules.)
<preparable statement> ::=
<preparable SQL data statement>
| <preparable SQL schema statement>
| <preparable SQL transaction statement>
| <preparable SQL session statement>
| <preparable implementation-defined statement>
<preparable SQL data statement> ::=
<delete statement: searched>
| <dynamic single row select statement>
| <insert statement>
| <dynamic select statement>
| <update statement: searched>
| <preparable dynamic delete statement: positioned>
| <preparable dynamic update statement: positioned>
<dynamic single row select statement> ::= <query specification>
<dynamic select statement> ::= <cursor specification>
<preparable dynamic delete statement: positioned> ::=
DELETE [ FROM <table name> ]
WHERE CURRENT OF <cursor name>
<preparable dynamic update statement: positioned> ::=
UPDATE [ <table name> ]
SET <set clause list>
WHERE CURRENT OF <cursor name>
<preparable SQL schema statement> ::=
<SQL schema statement>
<preparable SQL transaction statement> ::=
<SQL transaction statement>
<preparable SQL session statement> ::=
<SQL session statement>
<preparable implementation-defined statement> ::=
!! <EMPHASIS>(See the Syntax Rules.)
<direct SQL statement> ::=
<directly executable statement> <semicolon>
<directly executable statement> ::=
<direct SQL data statement>
| <SQL schema statement>
| <SQL transaction statement>
| <SQL connection statement>
| <SQL session statement>
| <direct implementation-defined statement>
<direct SQL data statement> ::=
<delete statement: searched>
| <direct select statement: multiple rows>
| <insert statement>
| <update statement: searched>
| <temporary table declaration>
<direct select statement: multiple rows> ::=
<query expression> [ <order by clause> ]
<direct implementation-defined statement> ::=
!!<EMPHASIS>(See the Syntax Rules)
<SQL object identifier> ::=
<SQL provenance> <SQL variant>
<SQL provenance> ::= <arc1> <arc2> <arc3>
<arc1> ::= iso | 1 | iso <left paren> 1 <right paren>
<arc2> ::= standard | 0 | standard <left paren> 0 <right paren>
<arc3> ::= 9075
<SQL variant> ::= <SQL edition> <SQL conformance>
<SQL edition> ::= <1987> | <1989> | <1992>
<1987> ::= 0 | edition1987 <left paren> 0 <right paren>
<1989> ::= <1989 base> <1989 package>
<1989 base> ::= 1 | edition1989 <left paren> 1 <right paren>
<1989 package> ::= <integrity no> | <integrity yes>
<integrity no> ::= 0 | IntegrityNo <left paren> 0 <right paren>
<integrity yes> ::= 1 | IntegrityYes <left paren> 1 <right paren>
<1992> ::= 2 | edition1992 <left paren> 2 <right paren>
<SQL conformance> ::= <low> | <intermediate> | <high>
<low> ::= 0 | Low <left paren> 0 <right paren>
<intermediate> ::= 1 | Intermediate <left paren> 1 <right paren>
<high> ::= 2 | High <left paren> 2 <right paren>
32. �����A�X��Ǫ� SQL �ɤ�
32.1 PostgreSQL �ɤ�
SQL �ɤޤ]�]�t�b PostgreSQL �����G�CSQL �ɤޤ�Z�b src/tutorial �ؿ���
�C
32.2 ���p�� URL ����
��Ǫ̪� SQL �ɤޥi�b�H�U�a����
* [245]
http://w3.one.net/~jhoffman/sqltut.htm
���N�����H�q�l��
* Jim Hoffman [246]
[email protected]
John Hoffman �]���˥H�U��}�J
* SQL Reference
[247]
http://www.contrib.andrew.cmu.edu/~shadow/sql.html
* Ask the SQL Pro [248]
http://www.inquiry.com/techtips/thesqlpro/
* SQL Pro's Relational DB Useful Sites
[249]
http://www.inquiry.com/techtips/thesqlpro/usefulsites.html
* Programmer's Source
[250]
http://infoweb.magi.com/~steve/develop.html
* DBMS Sites [251]
http://info.itu.ch/special/wwwfiles Go here and
see file comp_db.html
* DB Ingredients [252]
http://www.compapp.dcu.ie/databases/f017.html
* Web Authoring [253]
http://www.stars.com/Tutorial/CGI/
* Computing Dictionary
[254]
http://wfn-shop.princeton.edu/cgi-bin/foldoc
* DBMS Lab/Links [255]
http://www-ccs.cs.umass.edu/db.html
* SQL FAQ
[256]
http://epoch.CS.Berkeley.EDU:8000/sequoia/dba/montage/FAQ Go
here and see file SQL_TOC.html
* SQL Databases
[257]
http://chaos.mur.csu.edu.au/itc125/cgi/sqldb.html
* RIT Database Design Page
[258]
http://www.it.rit.edu/~wjs/IT/199602/icsa720/icsa720postings.
html
* Database Jump Site [259]
http://www.pcslink.com/~ej/dbweb.html
* Programming Tutorials on the Web
[260]
http://www.eng.uc.edu/~jtilley/tutorial.html
* Development Resources
[261]
http://www.ndev.com/ndc2/support/resources.htp
* Query List [262]
http://ashok.pair.com/sql.htm
* IMAGE SQL Miscellaneous
[263]
http://jazz.external.hp.com/training/sqltables/main.html
* Internet Resource List
[264]
http://www.eit.com/web/netservices.html
33. �������XLinux �ֳt�w�˫���
�p�G�A�p���b Linux �w�� PostgreSQL�A�Ӧb�w�� Linux �ɻݭn���U�A�аѦҦb
�o���������ܪ��a��C���̥]�t�H�U�D�D�J
* Salient Features of Linux - Why Linux is better as a database
server when compared with Windows 95/NT
* 10 minutes Linux Quick Install Instructions
* Microsoft-Linux Analogy List
* Quick Steps to Recompile the Linux Kernel
* Main Site is at [265]
http://members.spree.com/technology/aldev/
* Mirror site [266]
http://aldev.8m.com
* Mirror site [267]
http://aldev.webjump.com
* Mirror site [268]
http://homepages.infoseek.com/~aldev1/index.html
* Mirror site [269]
http://www3.bcity.com/aldev/
References
1. mailto:
[email protected]
2. mailto:
[email protected]
3.
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats/
4.
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
5.
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
6.
http://www.xs4all.nl/~cg/sgmltools/
7.
http://sunsite.unc.edu/LDP/HOWTO/PostgreSQL-HOWTO.html
8.
http://www.caldera.com/LDP/HOWTO/PostgreSQL-HOWTO.html
9.
http://www.WGS.com/LDP/HOWTO/PostgreSQL-HOWTO.html
10.
http://www.cc.gatech.edu/linux/LDP/HOWTO/PostgreSQL-HOWTO.html
11.
http://www.redhat.com/linux-info/ldp/HOWTO/PostgreSQL-HOWTO.html
12.
http://sunsite.unc.edu/LDP/hmirrors.html
13.
http://www.linux.org.tw/CLDP/HOWTO/
14.
http://www.linux.org.tw/CLDP/
15.
http://www.cs.wisc.edu/~ghost
16.
ftp://ftp.postgresql.org/pub/patches
17. mailto:
[email protected]
18.
http://www.lsl.com/
19.
http://www.cheapbytes.com/
20.
http://www.debian.org/vendors.html
21.
http://www.postgresql.org/
22.
ftp://www.redhat.com/pub/contrib/i386/
23.
ftp://ftp.postgresql.org/pub/bindist
24.
ftp://ftp.redhat.com/pub/contrib/i386/
25.
http://www.postgresql.org/
26.
http://logical.thought.net/postgres95/
27.
http://www.itm.tu-clausthal.de/mirrors/postgres95/
28.
http://s2k-ftp.cs.berkeley.edu:8000/postgres95/
29.
http://xenium.pdi.net/PostgreSQL/
30.
http://s2k-ftp.cs.berkeley.edu:8000/postgres95/
31.
ftp://ftp.postgresql.org/pub
32.
ftp://ftp.chicks.net/pub/postgresql
33.
ftp://ftp.emsi.priv.at/pub/postgres/
34.
ftp://ftp.itm.tu-clausthal.de/pub/mirrors/postgres95
35.
ftp://rocker.sch.bme.hu/pub/mirrors/postgreSQL
36.
ftp://ftp.jaist.ac.jp/pub/dbms/postgres95
37.
ftp://ftp.luga.or.at/pub/postgres95
38.
ftp://postgres95.vnet.net/pub/postgres95
39.
ftp://ftpza.co.za/mirrors/postgres
40.
ftp://sunsite.auc.dk/pub/databases/postgresql
41.
ftp://ftp.task.gda.pl/pub/software/postgresql
42.
ftp://xenium.pdi.net/pub/PostgreSQL
43.
ftp://sunsite.unc.edu/
44. file://localhost/tmp/zh-sgmltools.3630/PostgreSQL-HOWTO.txt.html#Perl Database Interface
45.
http://www.scriptics.com/
46.
http://www.tcltk.com/
47.
http://www.neuron.com/
48.
ftp://ftp.redhat.com/pub/contrib/i386/visualtcl*.rpm
49.
http://sunscript.sun.com/
50.
http://sunscript.sun.com/TclTkCore/
51.
ftp://ftp.sunlabs.com/pub/tcl/tcl8.0a2.tar.Z
52.
http://www.LinuxMall.com/products/00487.html
53.
http://www.troll.no/
54.
ftp://ftp.troll.no/
55. file://localhost/tmp/zh-sgmltools.3630/PostgreSQL-HOWTO.txt.html#Perl Database Interface
56.
ftp://ftp.redhat.com/pub/contrib/i386/lesstiff*.rpm
57.
ftp://ftp.redhat.com/pub/contrib/i386/free*.rpm
58.
ftp://ftp.redhat.com/pub/contrib/i386/spec*.rpm
59.
ftp://ftp.redhat.com/pub/contrib/i386/jcc*.rpm
60.
http://www.man.ac.uk/~whaley/kj/kanch.html
61.
http://www.redhat.com/
62.
http://www.rpi.edu/~payned/xwpe/
63.
ftp://ftp.redhat.com/pub/contrib/i386/xwpe*.rpm
64.
ftp://ftp.redhat.com/pub/contrib/i386/xwb*.rpm
65.
ftp://ftp.redhat.com/pub/contrib/i386/nedit*.rpm
66.
http://www.postgresql.org/
67.
http://www.openlinksw.com/
68.
http://www.insightdist.com/psqlodbc
69.
http://www.ids.net/~bjepson/freeODBC/
70.
http://www.openlinksw.com/
71.
http://www.demon.co.uk/finder/postgres/index.html
72.
ftp://ftp.ai.mit.edu/people/rst/rst-jdbc.tar.gz
73.
http://www.openlinksw.com/
74.
http://www.retep.org.uk/postgres
75.
http://eagle.eku.edu/tools/jdbc/faq.html
76.
http://splash.javasoft.com/jdbc
77.
http://www.javasoft.com/products/jdk/1.1/docs/guide/jdbc
78.
http://javanese.yoyoweb.com/JDBC/FAQ.txt
79.
ftp://ftp.redhat.com/pub/contrib/i386
80.
http://www.blackdown.org/
81. mailto:
[email protected]
82.
ftp://ftp.kciLink.com/pub/PostgresPerl-1.3.tar.gz
83.
http://www.perl.com/perl/index.html
84.
http://reference.perl.com/
85.
http://www.yahoo.com/Computers_and_Internet/Programming_Languages/Perl/
86.
ftp://ftp.redhat.com/pub/contrib/i386
87.
http://www.accessone.com/~jql/perlqt.html
88.
ftp://ftp.redhat.com/pub/contrib/i386
89.
ftp://ftp.redhat.com/pub/contrib/i386
90.
http://reference.perl.com/query.cgi?ui
91.
http://reference.perl.com/query.cgi?database
92.
http://www.perl.com/CPAN-local/modules/by-module/B/
93.
http://www.perl.com/CPAN/authors/id/MERLYN/sh2perl-0.02.tar.gz
94. mailto:
[email protected]
95.
http://www.perl.com/CPAN/modules/by-module/DBD/
96.
http://www.perl.com/CPAN
97.
http://www.hermetica.com/technologia/perl/DBI
98.
http://www.fugue.com/dbi/
99.
ftp://ftp.demon.co.uk/pub/perl/db
100.
http://www-ccs.cs.umass.edu/db.html
101.
http://www.odmg.org/odmg93/updates_dbarry.html
102.
http://www.jcc.com/sql_stnd.html
103.
http://www.postgresql.org/
104. mailto:
[email protected]
105.
http://www.perl.com/cgi-bin/cpan_mod?module=Msqlperl
106.
http://www.hermetica.com/technologia/perl/DBI/doc/dbispec
107.
http://www.hermetica.com/technologia/perl/DBI/tidbits
108.
http://www.tpj.com/
109.
http://www.fugue.com/dbi
110. mailto:
[email protected]
111. mailto:
[email protected]
112. mailto:
[email protected]
113.
http://outside.organic.com/mail-archives/dbi-users/
114.
http://www.rosat.mpe-garching.mpg.de/mailing-lists/PerlDB-Interest
115.
http://www.perl.com/cgi-bin/cpan_mod?module=Devel::CoreStack
116.
http://www.hermetica.com/technologia/perl/DBI/win32
117.
http://www.roth.net/
118.
http://www.apache.org/
119.
http://www.perl.com/cgi-bin/cpan_mod?module=mod_perl
120.
http://www.perl.com/cgi-bin/cpan_mod?module=Apache::DBI
121.
http://www.perl.com/perl/faq/index.html
122.
http://www.hermetica.com/technologia/oracle/oci/orathreads.tar.gz
123.
http://www.perl.co.uk/tpc
124.
http://www.flex.ro/pgaccess
125. mailto:
[email protected]
126. mailto:
[email protected]
127.
http://www.troubador.com/~keidav/index.html
128. mailto:
[email protected]
129.
http://www.ucolick.org/~de/
130.
http://www.troubador.com/~keidav/index.html
131. mailto:
[email protected]
132.
http://www.mutinybaysoftware.com/
133. mailto:
[email protected]
134.
http://www.troubador.com/~keidav/index.html
135. mailto:
[email protected]
136.
http://www.ucolick.org/~de
137.
http://www.ucolick.org/~de/Tcl/pictures
138. mailto:
[email protected]
139.
http://www.warehouse.com/
140.
http://www.networktechinc.com/servswt.html
141.
http://www.scene.demon.co.uk/qswitch.htm
142.
http://www.cybex.com/
143.
http://www.raritan.com/
144.
http://www.real-star.com/kvm.htm
145.
http://www.belkin.com/
146.
http://www.betterbox.com/info.html
147.
http://www.lsl.com/
148.
http://www.cheapbytes.com/
149.
http://www.man.ac.uk/~whaley/ag/appgen.html
150.
ftp://ftp.mcc.ac.uk/pub/linux/ALPHA/AppGEN
151. mailto:
[email protected]
152.
http://www.cis-computer.com/dbengine/
153.
http://www.neosoft.com/neowebscript/
154. mailto:
[email protected]
155.
http://www.heitml.com/
156.
http://www.h-e-i.deom/
157.
http://www.aolserver.com/
158.
http://www.homeport.org/~shevett/pts/
159.
ftp://ftp.nerosworld.com/pub/SQL/dbf2sql/
160.
ftp://ftp.postgresql.org/pub/incoming/dbf2pg-3.0.tar.gz
161. mailto:
[email protected]
162.
http://www.python.org/
163.
http://www.oswego.edu/Earp
164.
ftp://ftp.oswego.edu/
165.
ftp://ftp.oswego.edu/
166.
http://www.php.net/
167.
http://www.vex.net/php
168.
http://www.fe.de.php.net/
169.
http://www.sk.php.net/
170.
http://php.iquest.net/
171. mailto:
[email protected]
172. mailto:
[email protected]
173. mailto:
[email protected]
174.
ftp://ftp.aros.net/pub/util/apache/mod_cgi_redirect.c
175.
http://www.druid.net/pygresql/
176.
http://www.druid.net/~darcy/
177.
ftp://ftp.via.ecp.fr/pub/python/contrib/Database/PyGres95.README
178. mailto:
[email protected]
179. mailto:
[email protected]
180. mailto:
[email protected]
181.
ftp://ftp.python.org/pub/www.python.org/1.5/python1.5b2.tar.gz
182.
ftp://ftp.druid.net/pub/distrib/PyGreSQL-2.1.tgz
183.
ftp://ftp.via.ecp.fr/pub/python/contrib/Database/PyGres95-1.0b.tar.gz
184.
http://www.python.org/
185.
http://epoch.cs.berkeley.edu:8000/postgres95/index.html
186.
ftp://ftp.druid.net/pub/distrib/PyGreSQL-2.1.tgz
187.
http://www.via.ecp.fr/via/products/pygres.html
188. mailto:
[email protected]
189. mailto:
[email protected]
190.
http://www.lava.net/beowulf/programming/wdb
191.
http://www.eol.ists.ca/~dunlop/wdb-p95/
192. mailto:
[email protected]
193.
ftp://ftp.lysator.liu.se/pub/linus
194. mailto:
[email protected]
195. mailto:
[email protected]
196.
ftp://ftp.overnet.com.ar/pub/utils/linux/bitpgsql.tgz
197.
ftp://ftp.sra.co.jp/pub/cmd/postgres/
198.
http://www.cygnus.com/misc/gnu-win32
199.
http://sourceware.cygnus.com/
200.
http://www.softway.com/
201.
http://www.yahoo.com/
202.
http://www.lycos.com/
203.
http://www.hotmail.com/
204.
http://www.postgresql.org/
205. mailto:
[email protected]
206. mailto:
[email protected]
207. mailto:
[email protected]
208. mailto:
[email protected]
209. mailto:
[email protected]
210. mailto:
[email protected]
211. mailto:
[email protected]
212. mailto:
[email protected]
213.
http://www.postgresql.org/mhonarc/pgsql-questions
214.
ftp://ftp.postgresql.org/
215. mailto:
[email protected]
216.
http://www.postgresql.org/docs
217. file://localhost/tmp/zh-sgmltools.3630/PostgreSQL-HOWTO.txt.html#Appendix B
218.
http://www.naiua.org/std-orgs.html
219.
http://www.ansi.org/docs
220.
http://www.jcc.com/
221.
http://www.contrib.andrew.cmu.edu/~shadow/sql.html
222. file://localhost/tmp/zh-sgmltools.3630/PostgreSQL-HOWTO.txt.html#Appendix A
223. file://localhost/tmp/zh-sgmltools.3630/PostgreSQL-HOWTO.txt.html#SQL 1998
224. file://localhost/tmp/zh-sgmltools.3630/PostgreSQL-HOWTO.txt.html#Appendix B
225.
ftp://FTP.cs.arizona.edu/tsql/tsql2/
226.
ftp://FTP.cs.arizona.edu/tsql/tsql2/sql3/
227. mailto:
[email protected]
228. mailto:
[email protected]
229.
http://www.cs.auc.dk/general/DBS/tdb/TimeCenter/Software
230. mailto:
[email protected]
231.
http://www.wgs.com/
232.
http://www.ac.com/
233.
http://www.caldera.com/tech-ref/linuxapps/linapps.html
234.
http://www.xnet.com/~blatura/linapps.shtml
235.
http://linas.org/linux/db.html
236. mailto:
[email protected]
237.
http://cuiwww.unige.ch/~scg/FreeDB/FreeDB.list.html
238.
http://www.hex.net/~cbbrowne/rdbms.html
239. mailto:
[email protected]
240.
http://SAL.KachinaTech.COM/H/1/
241.
http://SAL.KachinaTech.COM/H/2/
242.
http://SAL.KachinaTech.COM/H/3/
243.
http://bunny.cs.uiuc.edu/sigmod/databaseSoftware/
244.
http://www.postgresql.org/docs/faq-english.shtml
245.
http://w3.one.net/~jhoffman/sqltut.htm
246. mailto:
[email protected]
247.
http://www.contrib.andrew.cmu.edu/~shadow/sql.html
248.
http://www.inquiry.com/techtips/thesqlpro/
249.
http://www.inquiry.com/techtips/thesqlpro/usefulsites.html
250.
http://infoweb.magi.com/~steve/develop.html
251.
http://info.itu.ch/special/wwwfiles
252.
http://www.compapp.dcu.ie/databases/f017.html
253.
http://www.stars.com/Tutorial/CGI/
254.
http://wfn-shop.princeton.edu/cgi-bin/foldoc
255.
http://www-ccs.cs.umass.edu/db.html
256.
http://epoch.CS.Berkeley.EDU:8000/sequoia/dba/montage/FAQ
257.
http://chaos.mur.csu.edu.au/itc125/cgi/sqldb.html
258.
http://www.it.rit.edu/~wjs/IT/199602/icsa720/icsa720postings.html
259.
http://www.pcslink.com/~ej/dbweb.html
260.
http://www.eng.uc.edu/~jtilley/tutorial.html
261.
http://www.ndev.com/ndc2/support/resources.htp
262.
http://ashok.pair.com/sql.htm
263.
http://jazz.external.hp.com/training/sqltables/main.html
264.
http://www.eit.com/web/netservices.html
265.
http://members.spree.com/technology/aldev/
266.
http://aldev.8m.com/
267.
http://aldev.webjump.com/
268.
http://homepages.infoseek.com/~aldev1/index.html
269.
http://www3.bcity.com/aldev/