   Database-SQL-RDBMS HOW-TO  Linux (PostgreSQL
  -    )
  Al Dev (Alavoor Vasudevan)        aldev@hotmail.com
  v8.0, 29  1998

       " "   
    SQL Database engine   front end    
   Unix.        (International
  Standard language) ANSI/ISO SQL      SQL
  database engine      world-wide internet 
    "  ".      (HOW-TO)
       SQL  
   "PostgreSQL"    Unix    
    Application Database Server   Web Database
  Server.  PostgreSQL      o ISO
   ANSI SQL 1998,92,89.       
          Front End GUIs, 
   RAD (Rapid Application Development),  interfaces 
   ("C", "C++", Java, Perl), ODBC, JDBC  
       Web   
  .         
   Unix          
        ,   SQL   PostgreSQL.
          SQL,    SQL
       .     
        .   , 
            
         PostgreSQL, ' 
         SQL  .
  ______________________________________________________________________

  Table of Contents


































  1. 

  2.     

  3.       !

  4.     PostgreSQL ;

  5.      ;

  6.  PostgreSQL    ,   200 Gig

  7.      PostgreSQL ;   Regression        

  8. GUI FrontEnd Tool  PostgreSQL (Graphical User Interface)

  9.       PostgreSQL (GUI IDE)

  10. Kanchenjunga - Java RAD Tool   PostgreSQL

  11.     PostgreSQL

     11.1 ODBC Drivers   PostgreSQL
     11.2 UDBC Drivers   PostgreSQL
     11.3 JDBC Drivers   PostgreSQL
     11.4 Java  PostgreSQL

  12. Perl Database Interface (DBI) Driver  PostgreSQL

     12.1  Perl 5  PostgreSQL
     12.2 Perl Database Interface DBI
        12.2.1    DBI ;
        12.2.2  DBI   PostgreSQL - DBD-Pg-0.63
        12.2.3     DBI
        12.2.4    DBI, DBperl, Oraperl  *perl;
        12.2.5  DBI
        12.2.6     "  !"
        12.2.7   DBI    Windows 95 / NT ;
        12.2.8    DBM;        DBI   ;
        12.2.9   [lt    ]    [gt    ]  DBI;
        12.2.10    DBI    CGI;
        12.2.11       DBD Oracle  CGI;
        12.2.12    (persistent)   DBI  CGI
        12.2.13 ``   perl script    , ,        httpd, !'' ;
        12.2.14    multi-threading   DBI;
        12.2.15     stored procedures   DBI;
        12.2.16           stored procedures   DBI;
        12.2.17             DBI;
        12.2.18    DBI   NULL ;
        12.2.19      func (func methods);
        12.2.20    

  13.    PostgreSQL

     13.1 PGACCESS -        PostgreSQL
     13.2 Windows Interactive Query Tool  PostgreSQL (WISQL  MPSQL)
     13.3 Interactive Query Tool(ISQL)   PostgreSQL -  PSQL
     13.4 MPMGR -     PostgresSQL

  14.    PostgreSQL   

  15.      PostgreSQL

     15.1  4  (4GL) PostgreSQL    web    -   AppGEN
     15.2 WWW Web interface  PostgresSQL - DBENGINE
     15.3 Apache Webserver Module  PostgreSQL - NeoSoft NeoWebScript
     15.4  HEITML   HTML  server    4    PostgreSQL
     15.5 America On-line AOL Web server  PostgreSQL
     15.6 Problem/Project Tracking System Application Tool  PostgreSQL
     15.7   dbase dbf  PostgreSQL

  16.   / Web     PostgreSQL - EARP

     16.1    EARP ;
     16.2 
     16.3       EARP
     16.4   ;
     16.5     ;

  17. PHP/FI,  scripting    PostgreSQL     html    Server

     17.1  
     17.2 /
     17.3 PHP/FI  2.0 -  
     17.4    , ,   PHP/FI ;
     17.5   
     17.6 CGI Redirection
        17.6.1    Apache 1.0.x
        17.6.2 Netscape HTTPD
        17.6.3 NCSA HTTPD
     17.7   PHP/FI    

  18.   PostgreSQL  Python

     18.1      PyGres ;
     18.2   

  19.   PostgreSQL  WWW - WDB-P95

     19.1    wdb-p95
     19.2      PostgreSQL,  pgperl,   httpd     host;

  20.     "C", "C++", ESQL/C       PostgreSQL

     20.1   "C"   PostgreSQL
     20.2 Interface  "C++"    PostgreSQL
     20.3 ESQL/C  PostgreSQL
     20.4     PostgreSQL

  21. Japanese Kanji    PostgreSQL

  22.   PostgreSQL  Windows 95/Windows NT

  23.    Newsgroups

     23.1 Newsgroups
     23.2     e-mail
     23.3   
     23.4    
     23.5   

  24.   

     24.1    
     24.2 Online 
     24.3   
     24.4   ANSI/ISO SQL  - SQL 1992, SQL 1998
     24.5  ANSI/ISO SQL 1992
     24.6  ANSI/ISO SQL 1998
     24.7   SQL  
     24.8   (extension)  SQL92
     24.9  0 -    ISO/ANSI SQL
     24.10  1 -    ISO/ANSI SQL
     24.11  2 - ISO/ANSI SQL Foundation
     24.12  3 - ISO/ANSI SQL Call Level Interface
     24.13  4 - ISO/ANSI SQL Persistent Stored Modules
     24.14  5 -  -  ISO/ANSI SQL/ ISO/ANSI SQL/Bindings
     24.15  6 - ISO/ANSI SQL XA Interface Specialization (SQL/XA)
     24.16 Part 7 - ISO/ANSI SQL Temporal
        24.16.1 
        24.16.2  -  / 
        24.16.3  -   
        24.16.4  -  (PROJECTION)
        24.16.5  -  (JOIN)
        24.16.6  -   (AGGREGATES)
        24.16.7 
     24.17  8 - ISO/ANSI  SQL (SQL MULTIMEDIA - SQL/MM)

  25.     PostgreSQL

  26.    

  27.    

  28.      Internet World Wide Web

  29. 

  30.       PostgreSQL

  31.   

  32.  A -   ANSI/ISO SQL 1992

  33.  B -   SQL  

     33.1    PostgreSQL
     33.2  Internet 


  ______________________________________________________________________

  11..  

           /URLs
       PostgreSQL     
        (Open Source
  Code)   PostgreSQL.

           
    / .   ,  
     .       
      ,    
           ,
    .  ,     
  , ,       .   
        SQL 
      ISO (International Standard
  Organisation)        o o ANSI
  SQL (o).      
     ANSI SQL 92  ANSI SQL 89.   o
    SQL 1998/99    SQL-3.     
  Oracle,  Sybase  Informix      
       .

       ,    20
     , / 
  internet,         
      .      
  ANSI/ISO SQL,          
              
  .         
    ISO SQL, ODBC, JDBC      
          
  .

      ,     ISO
  SQL, ANSI SQL/98, SQL/92  ANSI SQL/89 RDBMS   PostgreSQL. 
  PostgreSQL     SQL  
       ANSI SQL   SQL 1998 (SQL-3) 
          
     A (Object data types).   PostgreSQL
      RDBMS    
     SQL.        
     , ,      ,
     Web database, application database, 
      (front end GUIs  
  interface).         
    100 %     ISO/ANSI SQL, ODBC,
  JDBC,           
    PostgreSQL, Oracle, Sybase, Informix .

    PostgreSQL,        
       '   
  ' (Open Source Code development).     
             
   ,      internet  
     .       
        
  " " (Information Super-Highway)  
    .    ,    internet 
             
    PostgreSQL   .

       (, ,
  ),        
  ,        
  '   '   PostgreSQL  
          
     .     
      ' ,     
    .       
           ,   
         ,    
          
       .    
      ,      
   .           
    .     21 ,   
         .    
         PostgreSQL.


      ______    .   
     (hardware),      
       internet.     
           .  To 
              .
           6   180
           
    / .    
   chips    .   
    , ,    
           0.18
  micron.     chip   /
    .    AMD, Intel, Cyrix,
  Hitachi, IBM        
          (Micro-
  electronics)    (Nano-electronics).  Micro 
  (-   10^-6), Nano  
  (-   10^-9).    
      0.35 micron 
   ,    0.25 micron  
    .       
    0.10 micron      
    .     
     chips  ,     
    .  ,  
    ,      
         0.15 micron.

           
    chips  .




                              chips
                       **************************************************

       +---------------------------+---------+---------+---------+---------+--------+
       | /              | 1997    | 1999    | 2001    | 2003    | 2012   |
       +---------------------------+---------+---------+---------+---------+--------+
       |  (micron)| 0.25    | 0.18    | 0.15    | 0.13    | 0.05   |
       +---------------------------+---------+---------+---------+---------+--------+
       |  Wafer (mm)        | 200     | 300     | 300     | 300     | 450    |
       +---------------------------+---------+---------+---------+---------+--------+
       | .      | 1.8-2.5 | 1.5-1.8 | 1.2-1.5 | 1.2-1.5 | 0.5-0.6|
       +---------------------------+---------+---------+---------+---------+--------+
       |       | 70      | 90      | 110     | 130     | 175    |
       +---------------------------+---------+---------+---------+---------+--------+
       | On-chip   (MHz)  | 750     | 1,250   | 1,500   | 2,100   | 10,000 |
       +---------------------------+---------+---------+---------+---------+--------+
       | DRAM          | 256 MB  | 1 GB    | 2 GB    | 4 GB    | 256 GB |
       +---------------------------+---------+---------+---------+---------+--------+




   ,         
      .  ,  
  /-       !
     Compaq, Dell, Sun Microsystems, HP, IBM 
        
        !!

    ,      /
  .   ,      
  PC -       
     Oracle .     10  (
    Oracle   10 - ).  
  -          
   .  10    10   
   10 -.

     Oracle, Informix, Sybase, IBM DB2 (Unix)  
  100%   "C"    
         .


         PostgreSQL   12
  ,          
       ANSI/ISO SQL.    
         
        PostgreSQL  
      .

   PostgreSQL          
  ' Internet'.       "Made By
  Internet"          
  ,  ,       
   .        
  'Made By Internet'     " World-wide
  Internet"         .   
      "Internet"     
      !

  22..      

        10  ,  -
  DVI, Postscript, Latex, LyX, GNU-info, HTML, RTF (Rich Text Format),
  Plain-text,   Unix (Unix man pages)  SGML.

          HOWTO    tar 
      HTML, DVI, Postscript  SGML   -
     <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats/>

        :
     <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO>


     , , ,   
         HOWTO,  email  
      : voulariba@hellug.gr     :
     evris@hellug.gr   : ep@rocketmail.com


         , , ,
     ,   
     <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO>  
           .

          " SGML"   
        - <http://www.xs4all.nl/~cg/sgmltools/> 
           

    sgml2html databasehowto.sgml     (    html)

    sgml2rtf  databasehowto.sgml     (    RTF)

    sgml2latex databasehowto.sgml    (   
     latex)

      -

    <http://sunsite.unc.edu/LDP/HOWTO/PostgreSQL-HOWTO.html>

          mirrors sites -

    <http://www.caldera.com/LDP/HOWTO/PostgreSQL-HOWTO.html>

    <http://www.WGS.com/LDP/HOWTO/PostgreSQL-HOWTO.html>

    <http://www.cc.gatech.edu/linux/LDP/HOWTO/PostgreSQL-HOWTO.html>


    <http://www.redhat.com/linux-info/ldp/HOWTO/PostgreSQL-HOWTO.html>

     mirror sites   (network-address-wise)  
       <http://sunsite.unc.edu/LDP/hmirrors.html>  
     site     /LDP/HOWTO/PostgreSQL-HOWTO.html


         dvi,   
  xdvi.   xdvi    tetex-xdvi*.rpm 
  Redhat Linux      ControlPanel |
  Applications | Publishing | TeX menu.


                   dvi    -
                       xdvi -geometry 80x90 howto.dvi
                       .       xdvi.
                    ,   Page Up, Page Down,       'f', 'd', 'u', 'c', 'l', 'r', 'p', 'n'      , ,  ,   ,    .
                   expert   'x'.




      postscript   'gv'
  (ghostview)  'ghostscript'.    ghostscript  
   ghostscript*.rpm    gv   gv*.rpm 
  Redhat Linux        ControlPanel |
  Applications | Graphics.    gv     
     ghostscript.   ghostscript   gv  
         OS/2, Windows 95  NT,
           .


                   postscript     -
                       gv howto.ps

                   ghostscript   -
                       ghostscript howto.ps




  ::     ,     (
  postscript)      124    (
       ).

         HTML 
  Netscape Navigator, Microsoft Internet explorer, Redhat Baron Web
  browser      10 web browsers.

         latex, LyX  
  LyX,  X-Windows     latex.

  33..        !!

     ()  , ,  ,
            .
         ( ), 
  (    ),     
  .  /     
          
  , ,    .
         "Introductory/Basic"
      .     ,  
            
   100 %   .

       ,       
       .  
  /    ' 100   
    '  ,      
           
      ,    
  .            4
  ,        
     '' ''   
               
   !

       ,  ,
   chip         
    ,  ,   !    
          ( ),
  ,  ,  !      
  .


           
    internet        
   . ,       
   ,      , 
            
        .

         
   ( )    
    .         ,
           
  . '     !   
           
  !        , 
        .  
          
   (  )     
         .  
       .     
      ""    .  
       .     
    'PostgreSQL'  .      
  internet       , 
     internet      
           
     Microsoft, IBM  .     
     Microsoft,      
          
  !

     -         
          
       " Internet"   PostgreSQL, 
  Linux, .

  44..      PPoossttggrreeSSQQLL ;;

   PostgreSQL  6.3.2  patch level 2    , 
             
  -     
  (   )   ANSI SQL1998,92,89   
    hardware   .




                ,  (patches)  
              GA PostgreSQL.      patches
                .   
               patches -
                  postgresql
                  cd /usr/src/postgresql6.3.1
                  patch -p0 < patchfile
                  make clean
                  make
                'man patch'




     patch  

    PostgreSQL patches :  <ftp://ftp.postgresql.org/pub/patches>

          PostgreSQL   100
  %    ANSI/ISO SQL       
      .  PostgreSQL   ,
  , ,      
  ANSI/ISO SQL.   ,       
   PostgreSQL     ANSI/ISO SQL.

   Informix Universal server (  1997)  
     PostgreSQL   Informix  
  Illustra Inc.     Informix.    Illustra 
     Postgres (   PostgreSQL).

   PostgreSQL        
   POSTGRES,      DBMS.  
  PostgreSQL        
     POSTGRES,    
  PostQuel      SQL.

     PostgreSQL      
  Internet        
   PostgreSQL.       Marc G. Fournier

    scrappy@postgreSQL.org

               
       PostgreSQL.  ,     
           PostgreSQL!   
             
       internet.

     PostgreSQL 1.01   Andrew Yu  Jolly Chen.
        ,  , 
       .    
  Postgres, '    PostgreSQL,    
   , ,   
          Michael Stonebraker
     ,  Berkeley.

        Berkeley  Postgres. 
      SQL  1995,    
  Postgres95.        1996  PostgreSQL.

   PostgreSQL     
  , Web database servers  Application data servers. 
   ,      
  (ORDBMS).


  H PostgreSQL       
       integer, characters, . -
         ,
  ,  .   PostgreSQL   Solaris,
  SunOS, HPUX, AIX, Linux, Irix, Digital Unix, BSDi,NetBSD, FreeBSD, SCO
  unix, NEXTSTEP, Unixware     Unix.   
   Windows 95/NT   .

    :             PostgreSQL SQL RDBMS Database (
         )

     :   6.3.1 patch level 1

    :       PostgreSQL  12 .   
     1985

    :        
     //  internet    12
     

      PostgreSQL        
       .


       PostgreSQL    

         (c)    California

         , , ,       
           ,  ,    
       ,         
                  .

         ,         
        , , , ,   ,   
                  
        ,          
           .

              , ,
            ,    ,  
          .         " "
                 , ,
       ,  .




  55..       ;;

      Redhat 5.0 Linux CDROM, Debian Linux CDROM 
   Slackware Linux CDROM     Postgresql  
   (      )   :

    Linux System Labs Web site:   <http://www.lsl.com/>  7 (U.S.
     )

    Cheap Bytes Inc Web site:   <http://www.cheapbytes.com/> 7 (U.S.
     )

    Debian  Web site :  <http://www.debian.org/vendors.html>

    PostgreSQL    'PostgreSQL CDROM' 
           
   Unix   .

     CDROM  PostgreSQL       Web site 
      : <http://www.postgresql.org>  29 ( )

    PostgreSQL   :

        PostgreSQL    
     .      Intel-Linux   
     <ftp://www.redhat.com/pub/contrib/i386/> postgresql-6.2-3.i386.rpm.
        redhat 'rpm'       
         PostgreSQL.

    Site    Solaris, HPUX, AIX, IRIX, Linux :
     <ftp://ftp.postgresql.org/pub/bindist>    
       ,      site,  
         .

    ftp site :     Intel-Linux   
     <ftp://ftp.redhat.com/pub/contrib/i386/> postgresql-6.2-3.i386.rpm.
        redhat 'rpm'       
         PostgreSQL.


  WWW Web sites:

     Web site: <http://www.postgresql.org/>

     Web site: <http://logical.thought.net/postgres95/>

    <http://www.itm.tu-clausthal.de/mirrors/postgres95/>

    <http://s2k-ftp.cs.berkeley.edu:8000/postgres95/>

    <http://xenium.pdi.net/PostgreSQL/>

    <http://s2k-ftp.cs.berkeley.edu:8000/postgres95/>


   ftp sites   :-

    Primary FTP: <ftp://ftp.postgresql.org/pub>

    Secondary FTP: <ftp://ftp.chicks.net/pub/postgresql>

    <ftp://ftp.emsi.priv.at/pub/postgres/>

    <ftp://ftp.itm.tu-clausthal.de/pub/mirrors/postgres95>

    <ftp://rocker.sch.bme.hu/pub/mirrors/postgreSQL>

    <ftp://ftp.jaist.ac.jp/pub/dbms/postgres95>

    <ftp://ftp.luga.or.at/pub/postgres95>

    <ftp://postgres95.vnet.net:/pub/postgres95>

    <ftp://ftpza.co.za/mirrors/postgres>

    <ftp://sunsite.auc.dk/pub/databases/postgresql>

    <ftp://ftp.task.gda.pl/pub/software/postgresql>

    <ftp://xenium.pdi.net/pub/PostgreSQL>


      PostgreSQL      
  mirror sites  sunsite unc (  1000 sites   
  ).      Red Hat Linux  
  /pub/contrib/i386/postgresql.rpm .

        mirror sites  
     <ftp://sunsite.unc.edu>

  66..   PPoossttggrreeSSQQLL    ,, 
   220000 GGiigg

     32-bit  cpu       
     5 gig.      30 gig  
  32-bit cpu         .  
          RAM ( 2
  gig ),         
     .

        
  (  5 gigabytes),    
    64-bit  Digital Alpha cpu, Sun Ultra-sparc 64-bit cpu,
  Silicon graphics 64-bit cpu,   Intel Merced IA-64 cpu,
   HPUX 64bit, IBM 64-bit.   PostgreSQL  
  64-bit cpu         
  queries.    PostgreSQL     
           PostgreSQL 
    cpu 32-bit.     64-bit   
           
        , 
      ,    
  (RAM),    .

  77..          
    PPoossttggrreeSSQQLL ;;   RReeggrreessssiioonn  

    Regression   (src/test/regress)  
           
   SQL      PostgreSQL.  
          
    SQL    .     
       regression    
        .   
          zillion 
      !  ,   
          
          
  .

         SQL  .
      regression     
            
  .

            ,
         web site  PostgreSQL 
          internet.   
  Regression        
  PostgreSQL       PostgreSQL 
   .

    Regression        "
  "      
      .   
  PostgreSQL     regression   
             
        .


  88..  GGUUII FFrroonnttEEnndd TTooooll  PPoossttggrreeSSQQLL ((GGrraapphhiiccaall UUsseerr IInntteerrffaaccee))

   PostgreSQL   Tcl/Tk interface    
   'pgTcl'.  Tcl/Tk      
       scripting .    
          NT, Win 95, Linux, OS/2 
     unix.  Tcl     'Tool Command
  Language'  Tk  'Tool Kit'.    
   (IDE - integrated development environment)   Tcl/Tk
    SpecTcl.     rpm    Redhat
  linux   sunscript site   .

     Tcl/Tk      .  
         Perl-Tk  Perl-Qt
   C++ QtEZ  C++ Lesstiff  Java.    
   Perl, C  Tk.

  PERL  C/C++      .   Perl
       90 %  internet scripts
   .         "Perl"    
   -      internet.    Perl Database
  Interface     ``''

   Tcl/TK     linux cdrom.    
    sites -

    Tcl/Tk  <http://www.scriptics.com>

     extension  Tcl   INCR 
     <http://www.tcltk.com>

    Visual TCL site  <http://www.neuron.com>

    Visual TCL Redhat rpm 
     <ftp://ftp.redhat.com/pub/contrib/i386/visualtcl*.rpm>

    <http://sunscript.sun.com/>

    <http://sunscript.sun.com/TclTkCore/>

    <ftp://ftp.sunlabs.com/pub/tcl/tcl8.0a2.tar.Z>

     :     TCL/TK  
     .


  99..        PPoossttggrreeSSQQLL
  ((GGUUII IIDDEE))

          
       ODBC/JDBC.   
    Borland C++ Builder, Borland JBuilder.

   Vibe  Java  C++ IDE (Integrated Development Environment)
     Unix     
    .

        Vibe 
     <http://www.LinuxMall.com/products/00487.html>

     'QT'       Windows95/NT
      Unix  <http://www.troll.no>   ftp site   
     <ftp://ftp.troll.no>

         Borland C++ Builder, Delphi,
     Borland JBuilder, PowerBuilder  Windows95    
      PostgreSQL    unix   ODBC/JDBC.

     PPEERRLL Database Interface      ``'' 
  Perl  C/C++       IDE.

    IDE -

    CDROM   redhat linux.

    Lesstiff Mottif Tool
     <ftp://ftp.redhat.com/pub/contrib/i386/lesstiff*.rpm>

    FreeBuilder  <ftp://ftp.redhat.com/pub/contrib/i386/free*.rpm>

    SpecTCL  <ftp://ftp.redhat.com/pub/contrib/i386/spec*.rpm>

    JccWarrior  <ftp://ftp.redhat.com/pub/contrib/i386/jcc*.rpm>

    Applixware Tool  <http://www.redhat.com>

    XWPE X Windows Programming Environment
     <http://www.rpi.edu/~payned/xwpe/>
     <ftp://ftp.redhat.com/pub/contrib/i386/xwpe*.rpm>

    XWB X Windows Work Bench
     <ftp://ftp.redhat.com/pub/contrib/i386/xwb*.rpm>

    NEdit  <ftp://ftp.redhat.com/pub/contrib/i386/nedit*.rpm>

  1100..  KKaanncchheennjjuunnggaa -- JJaavvaa RRAADD TTooooll   PPoossttggrreeSSQQLL

   Kanchenjunga        
  Java   PostgreSQL.       
        java   
  PostgreSQL.

    <http://www.man.ac.uk/~whaley/kj/kanch.html>

  1111..      PPoossttggrreeSSQQLL


  1111..11..  OODDBBCC DDrriivveerrss   PPoossttggrreeSSQQLL

  ODBC    'Open DataBase Connectivity',  
          
   .      
  ODBC drivers,        
  PostgreSQL, Oracle, Sybase, Informix .


    <http://www.openlinksw.com>  Open Link Software Corporation
      ODBC  PostgreSQL   .   Open Link 
       ODBC (  ) -  .

    Insight ODBC   PostgreSQL
     <http://www.insightdist.com/psqlodbc>     site
      PostODBC.

       FreeODBC Pack Package.  
  '    PostgreSQL,    .

    <http://www.ids.net/~bjepson/freeODBC/>     
      ODBC.



  1111..22..  UUDDBBCC DDrriivveerrss   PPoossttggrreeSSQQLL

   UDBC     ODBC   
   (driver managers)   DLL,   
         
  .

    <http://www.openlinksw.com>  Open Link Software  UDBC
       PostgreSQL   .   Open Link  
      UDBC (  ) -  .

  1111..33..  JJDDBBCC DDrriivveerrss   PPoossttggrreeSSQQLL

  JDBC    'Java DataBase Connectivity'.  Java 
         
   Sun Microsystems.   Java   
       JDBC  
         PostgreSQL,
  Oracle, informix, .     Java   
    JDBC  PostgreSQL    sites:

    JDBC      PostgreSQL.


    <http://www.demon.co.uk/finder/postgres/index.html>  Java
     ( Sun)  PostgreSQL

    <ftp://ftp.ai.mit.edu/people/rst/rst-jdbc.tar.gz>

    <http://www.openlinksw.com>   Open Link Software 
     JDBC  PostgreSQL   .   Open Link  
      JDBC (  ) -  .

    JDBC UK site  <http://www.retep.org.uk/postgres>

    JDBC FAQ site  <http://eagle.eku.edu/tools/jdbc/faq.html>

   JDBC home, guide  FAQ   -

    JDBC HOME  <http://splash.javasoft.com/jdbc>

    JDBC guide
     <http://www.javasoft.com/products/jdk/1.1/docs/guide/jdbc>

    JDBC FAQ  <http://javanese.yoyoweb.com/JDBC/FAQ.txt>


  1111..44..  JJaavvaa  PPoossttggrreeSSQQLL

    Java      sites 
     PostgreSQL.

    <ftp://ftp.redhat.com/pub/contrib/i386>    postgresql-
     jdbc-*.rpm

    <http://www.blackdown.org>

  1122..  PPeerrll DDaattaabbaassee IInntteerrffaaccee ((DDBBII)) DDrriivveerr  PPoossttggrreeSSQQLL


  1122..11..   PPeerrll 55  PPoossttggrreeSSQQLL

  PERL    'Practical Extraction  Report Language'.
   Perl        
  hardware.    Perl  Windows95/NT,   Unix
  (Solaris, HPUX, AIX, Linux, Irix, SCO .),  mainframe MVS, desktop
  OS/2, OS/400, Amdahl UTS   .  Perl  eevveenn  
   /     !!

    Perl  PostgreSQL    
  PostgreSQL.    src/pgsql_perl5.

     Email      Pgsql_perl5 :
     E.Mergl@bawue.de

        -
     <ftp://ftp.kciLink.com/pub/PostgresPerl-1.3.tar.gz>

    Perl Home page:  <http://www.perl.com/perl/index.html>

      Perl,    Tutorial  :
     <http://reference.perl.com/>

     Perl FAQ   :
     <http://www.yahoo.com/Computers_and_Internet/Programming_Languages/Perl/>

       Perl, Perl-Qt :
     <ftp://ftp.redhat.com/pub/contrib/i386>    
     PerlQt-1.06-1.i386.rpm

       Perl, Perl-Qt :
     <http://www.accessone.com/~jql/perlqt.html>

       Perl, Perl-XForms :
     <ftp://ftp.redhat.com/pub/contrib/i386>     
     Xforms4Perl-0.8.4-1.i386.rpm

       Perl, Perl-Tk :
     <ftp://ftp.redhat.com/pub/contrib/i386>

    Perl GUIkits :  <http://reference.perl.com/query.cgi?ui>

    Perl Database Interfaces :
     <http://reference.perl.com/query.cgi?database>

      Perl  "C" :  <http://www.perl.com/CPAN-
     local/modules/by-module/B/>     Compiler-a3.tar.gz

      Perl   Bourne :
     <http://www.perl.com/CPAN/authors/id/MERLYN/sh2perl-0.02.tar.gz>

     awk  perl a2p   sed  perl s2p   
       PERl.

       newsgroups  PERL  comp.lang.perl.*

  1122..22..  PPeerrll DDaattaabbaassee IInntteerrffaaccee DDBBII

  1122..22..11..     DDBBII ;;

           Perl DBI.

  To Perl Database Interface (DBI)     interface
  (API)  Perl     .   
   Perl DBI API     ,  
       interface  
        .  
       DBI     'DBI FAQ' 
      Alligator Descartes     
  .


         Alligator Descartes Hermetica 
     descarte@hermetica.com


  1122..22..22..   DDBBII   PPoossttggrreeSSQQLL -- DDBBDD--PPgg--00..6633

    DBD-Pg-0.63.tar.gz  

    Comprehensive Perl Archive Network CPAN  <http://www.perl.com/CPAN>

      DBI   DBI module
     <http://www.hermetica.com/technologia/perl/DBI>

       DBI     <http://www.fugue.com/dbi/>

     ftp site  <ftp://ftp.demon.co.uk/pub/perl/db>

     DBI link  <http://www-ccs.cs.umass.edu/db.html>

     DBI link  <http://www.odmg.org/odmg93/updates_dbarry.html>

     DBI link  <http://www.jcc.com/sql_stnd.html>

      PostgreSQL  <http://www.postgresql.org>

  :


    -  ,       Perl 5
     (  5.002)

    -  ,       module DBI
     (  0.89)

    -  ,       PostgreSQL
     (  6.2)



  1122..22..33..      DDBBII

          

    E.Mergl@bawue.de

    David R. Noble drnoble@engsci.sandia.gov

        perl -v,  perl -V, 
    PostgreSQL,    DBD-Pg,     DBI
    .



  1122..22..44..     DDBBII,, DDBBppeerrll,, OOrraappeerrll  **ppeerrll;;

      Tim Bunce,      DBI:

  `` DBI    interface (API)  Perl 
       .    DBI
  API     ,    
     interface     
     .''

    ,  DBI interface     
       . ,   
  Oracle, Informix, mSQL, Sybase    ,  
         3GL.  API
      DBI       .

           
         perl script,
  ,        Oracle   
      Informix    .   DBI
          .

  DBperl        interface.
        perl4 modules  
   , , oraperl, isqlperl, ingperl  .  
  interfaces    API    .

      DBperl modules,   DBI   
   .      
         DBI module   
  .  email        
         perl4 modules 
   .    DBI driver   
      dbi-users .


            Module                 DBI
           ------------ -----------------   ----------          ---
           Sybperl     Sybase              Michael Peppler     DBD::Sybase
                                           <mpeppler@datamig.com>
                                           http://www.mbay.net/~mpeppler
           Oraperl     Oracle 6 & 7        Kevin Stock         DBD::Oracle
                                           <dbi-users@fugue.com>
           Ingperl     Ingres              Tim Bunce &         DBD::Ingres
                                           Ted Lemon
                                           <dbi-users@fugue.com>
           Interperl   Interbase           Buzz Moschetti      DBD::Interbase
                                           <buzz@bear.com>
           Uniperl     Unify 5.0           Rick Wargo          
                                           <rickers@coe.drexel.edu>
           Pgperl      Postgres            Igor Metz           DBD::Pg
                                           <metz@iam.unibe.ch>
           Btreeperl   NDBM                John Conover        SDBM;
                                           <john@johncon.com>
           Ctreeperl   C-Tree              John Conover        
                                           <john@johncon.com>
           Cisamperl   Informix C-ISAM     Mathias Koerber     
                                           <mathias@unicorn.swi.com.sg>
           Duaperl     X.500 Directory     Eric Douglas        
                       User Agent




   ,  DBI modules    DBperl,
  ,  DBD::Oracle      Oraperl, 
       oraperl scripts  . 
        oraperl API  
  DBI      DBI switch.

           :








      Module                 
      ------          ---------------------     ------
      DBD::Oracle     Oraperl                   
      DBD::Informix   Isqlperl                   
      DBD::Sybase     Sybperl                   ; (  )
      DBD::mSQL       Msqlperl                     
                                                DBD::mSQL-0.61




    Msqlperl    .  Msqlperl 
    perl5  mSQL ,     
    DBI.        
  DBD::mSQL.     Msqlperl   CPAN  :

    <http://www.perl.com/cgi-bin/cpan_mod?module=Msqlperl>

  1122..22..55..   DDBBII

       DBI.

     DBI
     <http://www.hermetica.com/technologia/perl/DBI/doc/dbispec>

         link,  
   (Draft) DBI ,     
          interface,  
    DBperl      
   DBI interface.

            
         , 
      .  ,   
    .

   POD  PODs     
     perl     ``in place'',
         
  modules.  POD  DBI  drivers    
  ,       modules    
    .

   DBI  POD   DBI    
   :

  perldoc DBI

  Oraperl      Oraperl   
    DBD::Oracle,         
     Oraperl :

  perldoc Oraperl

           
  oraperl,     Kevin Stock  perl4.  API 
  oraperl     .

  DBD::mSQL    DBD::mSQL module    
   private functions      (driver)
  :

  perldoc DBD::mSQL

     (FAQ)

  To , Frequently Asked Questions    
    POD !        ,
  :

  perldoc DBI::FAQ

           
     ,  Internet.

   POD      POD,    
   POD ,    :

  perldoc perlpod

       Tk module    
       POD    Tk 
   tkpod,   POD      .

  ``'', ``''  

    <http://www.hermetica.com/technologia/perl/DBI/tidbits>

       ``''  
      DBI,     
     ,      
   .       , 
          interfaces.

  ``DBI -- The perl5 Database Interface''      
  Alligator Descartes   Tim Bunce     DBI.
     5  ``The Perl Journal''.  
  .     .    , 
    !  ``The Perl Journal''s WWW site is:

    <http://www.tpj.com>

  ``DBperl''   ,      
   1996 ``Dr.  Dobbs Journal''   DBperl.

  ``The Perl5 Database Interface''      
   Alligator Descartes     O'Reilly  Associates.

         DBI 
    Ted Lemon.       
     World Wide Web   :

       <http://www.fugue.com/dbi>

           :

  dbi-announce       . 
   .        WWW
    DBI.

           WWW ,
        :

    Email: dbi-announce-request@fugue.com

         (body)   'subscribe'

  dbi-dev          
   ,         DBI
  interface, API  driver.      ,  
    .       
     WWW ,       
  :

    Email: dbi-dev-request@fugue.com

         (body)   'subscribe'

  dbi-users        
       , 
     .  .

           WWW ,
        :

    Email: dbi-users-request@fugue.com

         (body)   'subscribe'

  /   


       
     <http://outside.organic.com/mail-archives/dbi-users/>

           <http://www.rosat.mpe-
     garching.mpg.de/mailing-lists/PerlDB-Interest>



  1122..22..66..      ""  !!""

    core dump,   module Devel::CoreStack  
    stack trace   core dump.   Devel::CoreStack
    CPAN :

    <http://www.perl.com/cgi-bin/cpan_mod?module=Devel::CoreStack>

   Email   dbi-users  stack trace,   
  modules,  perl,    ,    
       .  
   ,     
    .     ,  
      .


  -->

  1122..22..77..    DDBBII    WWiinnddoowwss 9955 // NNTT ;;

     DBI  DBD::Oracle Win32     
   DBI, ,     DBI   0.81 
      .      
  Microsoft Access  SQL-Server   DBI  ODBC.   
  DBI-0.79 ( )    DBI '
  '   module Win32::ODBC.  DBI::W32ODBC.  
    module Win32::ODBC.

    Win32 DBI    <http://www.hermetica.com/technologia/perl/DBI/win32>

    Win32 ODBC    <http://www.roth.net>







  1122..22..88..  ;;    DDBBMM;;       
  DDBBII  

   UNIX       ``''  
   ,    dbm.  dbm   
     ,      
  ,     .

    (File Locking)

    dbm      
   ,        
      [ ].

     (Arbitrary Data Structures)

    dbm      : 
  - (key-value pairs).       
   ,   [ C ] struct,     
   .       
   dbm.

  ,   dbm       
      ,    ,
      .  modules  Perl  
     dbm      ,
    module AnyDBM_File.''

  ,  DBM      ( )
  read-only ,      . , 
       ,    
      transactional locking,  
     DBI.

  1122..22..99..    <<    >>  DDBBII;;

          -,
      , ,  
    .

   DBI    API      
  ,        
     (database-specific functionality).

  ,     ,   , 
   hooks   /
        func    DBI
  API.   scripts      
        func   
     .


  1122..22..1100..     DDBBII    CCGGII;;

    , !  DBI     
   CGI!   ,       
   CGI        DBI.

  To DBI      CGI   
     WWW-fronted,      
         .
  ,     site      
  server      ,  DBI  
     server     ,
     cgi scripts.

  1122..22..1111..        DDBBDD OOrraaccllee 
  CCGGII;;


   Apache httpd    (pool)    (httpd
  children)       clients.

    module  Apache mod_perl  Doug MacEachern, 
    perl (perl interpreter)    
  httpd.   CGI, DBI,      modules  
        (child).   modules 
        .

        Apache,   Apache
  Project's WWW site:

    Apache Project WWW site  <http://www.apache.org>

    Mod_perl module  <http://www.perl.com/cgi-
     bin/cpan_mod?module=mod_perl>


  1122..22..1122..     ((ppeerrssiisstteenntt))   DDBBII 
  CCGGII

    module Apache::DBI module  Edmund Mergl, 
  logins        
  httpd child.           
   ,        child. 
  ,         
      httpd.

      Apache::DBI   CPAN :

    <http://www.perl.com/cgi-bin/cpan_mod?module=Apache::DBI>

  1122..22..1133..      hhttttppdd,, !!'''' ;; ```` 
   ppeerrll ssccrriipptt    ,, ,,  


  ,            
        script     
       ,   
  DBD::Oracle,   $ORACLE_HOME, $ORACLE_SID  TWO_TASK.

    httpd       nobody,  
         .  script
           
  .

       ,        
    BEGIN ( )    script .    
  .

  ,      logfile   httpd   
  ,    ``Idiot's Guide To Solving Perl / CGI
  Problems''  ``Perl CGI Programming FAQ''  
  .          DBI. .
        !


     ``Idiot's Guide To Solving Perl / CGI Problems''   
     : <http://www.perl.com/perl/faq/index.html>



  1122..22..1144..     mmuullttii--tthhrreeaaddiinngg   DDBBII;;

       FAQ, .   perl  
  multi-threading. ,  multi-threading   
        perl   5.005,  
    DBI     multi-threading  
   ' .

       OCI   Oracle   multi-
  threaded  SELECT,  :

    <http://www.hermetica.com/technologia/oracle/oci/orathreads.tar.gz>

  1122..22..1155..      ssttoorreedd pprroocceedduurreess   DDBBII;;

        stored procedure  
   , ,  Oracle,     $dbh->do
        (procedure).  ,

  $dbh->do( "BEGIN  END" );

  1122..22..1166..            ssttoorreedd
  pprroocceedduurreess   DDBBI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;




  1122..22..1177..           
    DDBBII;;


            
       DBI.  ,  Oracle
          !  Oracle
  ,      (database server) 
    ,   mSQL,     (server
  process)          
  .         .

  '   ,      
     private func methods.     
           .

  1122..22..1188..     DDBBII   NNUULLLL ;;

    NULL  DBI     undef.  
  NULL      NULL,  :


           $rv =
               $dbh->do( "INSERT INTO table VALUES( NULL )" );




    ,   NULL      
  undef.       .
  1122..22..1199..       ffuunncc ((ffuunncc mmeetthhooddss));;

    func   DBI     
      , ,   
      .     
       o  ,  ,
       createDatabase    , 
  :


           $rv =
               $dbh->func( 'argument', 'createDatabase' );




           func
       .

  1122..22..2200..     

   Interface  Perl5      . 
      .

  ,       
     DBI.

   PPeerrll CClliinniicc ::  Perl Clinic      
    Perl, DBI, DBD::Oracle  Oraperl.  
         Tim Bunce,   
  DBI.        , 
   :

    <http://www.perl.co.uk/tpc>


  1133..     PPoossttggrreeSSQQLL


  1133..11..  PPGGAACCCCEESSSS --        PPoosstt
  ggrreeSSQQLL

   PgAccess   Tcl/Tk interface   PostgreSQL.
       PostgreSQL.     
    web site   

    <http://www.flex.ro/pgaccess>

       ,   ,   
      e-mail  : teo@flex.ro

    PgAccess

    PgAccess :   ,   (table
  builder) ,   () (table(query) view),
     (visual query builder).

  


    -  ,  200  (   
     preferences)

    -   ,     ( 
             )

    - text wrap   -     

    - import/export    (SDF,CSV)

    -   (    price>3.14)

    -   (  ()  
     )

    - editing in place

    -      (table generator
     assistant)

    -    

      (Queries)

    - ,    "   
     "

    -    views

    -  

    -     select

    -     

    -      drag & drop.  
          Tcl/Tk plugin   Netscape Navigator,
            

     Sequences

    -  sequences,     

    - ,       SQL

   

    -   (  ,  , .)

    -  

    -  report

    -  scripting

     ,   ,   
   e-mail  :


    teo@flex.ro

       libgtcl

           
  PostgreSQL  Tcl   Tcl/Tk 'load'-able module. 
  libpgtcl         
  PostgreSQL /src/interfaces/libpgtcl.   , 
   libpgtcl        Tcl/Tk.  
       PostgreSQL loadable object ,
    libpgtcl     object .   Linux,
   libpgtcl.so.         
     Linux i386.   
  libpgtcl.so      (/usr/lib)
  .          
        libpgtcl.so    
  pgaccess.tcl   wish,   pgwish ( wishpg)   wish  
     link    libpgtcl.

  ,        .

  1133..22..  WWiinnddoowwss IInntteerraaccttiivvee QQuueerryy TTooooll  PPoossttggrreeSSQQLL ((WWIISSQQLL  MMPPSSQQLL))

   MPSQL      SQL interface  
  PostgresSQL.   MPSQL     SQL Worksheet  Oracle
       Microsoft SQL Server WISQL.   
   interface   .     cut
   paste         
  .

    <http://www.troubador.com/~keidav/index.html>

    Email: keidav@whidbey.com

    <http://www.ucolick.org/~de/>   tcl_syb/wisql.html

    <http://www.troubador.com/~keidav/index.html>

    Email: de@ucolick.org

  1133..33..  IInntteerraaccttiivvee QQuueerryy TTooooll((IISSQQLL))   PPoossttggrreeSSQQLL -- 
  PPSSQQLL

   ISQL     Character command line.  
   ,   PSQL.     ISQL  Sybase, 
   SQLplus  Oracle.  unix prompt    'psql'  
      psql> prompt.


        \h       .




         .    
       scripts  .

  1133..44..  MMPPMMGGRR --     PPoossttggrreessSSQQLL

   MPMGR    interface   PostgresSQL. 
    

    <http://www.troubador.com/~keidav/index.html>

    Email: keidav@whidbey.com

    <http://www.troubador.com/~keidav/index.html>

    <http://www.ucolick.org/~de> in file tcl_syb/wisql.html

    WISQL   PostgreSQL  <http://www.ucolick.org/~de/Tcl/pictures>

    Email: de@ucolick.org

  1144..     PPoossttggrreeSSQQLL   

      -cpu      
           host.  
        ,  
   (  100  500 US   ) 
      .

     ,     
  PostgreSQL servers ( , , ), Web servers, ftp
  servers, Intranet servers, Mail servers, News servers    
  .         
  Windows 95/NT  OS/2.

       sites:

    Network Technologies Inc
     <http://www.networktechinc.com/servswt.html> (120 /PC 8
     ports)      'Server Switches'  'switches
       Video '

    Scene Double Inc, 
     <http://www.scene.demon.co.uk/qswitch.htm>

    Cybex corporation  <http://www.cybex.com>

    Raritan Inc  <http://www.raritan.com>

    RealStar Solutions Inc  <http://www.real-star.com/kvm.htm>

    Belkin Inc  <http://www.belkin.com>

    DataComm Warehouse Inc    24 , 7 
        1-800-328-2261.     hardware
       <http://www.warehouse.com>

    Better Box Communications Ltd.
     <http://www.betterbox.com/info.html>

        hardware    "Server
     Switch"    "KVM Auto Switches".

      yahoo     
   "Server Switches"  "KVM Switches".

       unix box    
  PostgreSQL data-server   .  
  /        .  
   ""       
     intel, 13"   (  
  ).       hardware  Microsoft
  Windows/DOS (  $ 150).     
       ,    
    (remote administration)   
  .    RedHat (   ) Linux cdrom  
  -

    Linux System Labs Web site:   <http://www.lsl.com/>  7 (U.S.
     )

    Cheap Bytes Inc Web site:   <http://www.cheapbytes.com/> 7 (U.S.
     )

             
     Redhat Linux.   ftp site  Redhat   , 
      SCSI adapters,   .   $ 600 
           intel  Redhat Linux 
      PostgreSQL.   odbc/jdbc/perl/tcl  
        PostgreSQL  Windows95, OS/2, Unix Motif 
      web browser (.. Redbaron, Opera, Netscape, 20 ).  (
     Web browsers    standard client).
           cpu   
    !

         nneettwwoorrkktteecchhnniicc IInncc 
  "Server Switches"

     800-742-8324 (   )

          Email  :
  sales@networktechinc.com

      PC   ,  
         ,
       64 PC.  
     ,     
    PC 100%  .

    


    ,      

    9 pin D Serial  6 pin miniDIN   

    5 pin DIN  6 pin miniDIN  

    1600x1200  

      

     Desktop     rack

   - 


    1/4    

    5 pin DIN  6 pin miniDIN

          /

   -  


       /     

           
           SCAN, BROADCAST 
     COMMAND

     LEDs      

     CTRL+*      COMMAND

       SCAN, BROADCAST  COMMAND  

  

  *  9 pin D

    o  NTI       Microsoft

    o 9 pin D   

    o 9 pin D    /

  * 6 pin miniDIN

    o  NTI     IBM PS/2

    o 1/4    

   /


     --    

        " -  "

   

  *     MAN025

  -VGA


     150 MHz

    1600X1200   

    1/4    


  1155..       PPoossttggrreeSSQQLL

  1155..11..   44  ((44GGLL)) PPoossttggrreeSSQQLL    wweebb 
    --   AAppppGGEENN

   AppGEN      

    <http://www.man.ac.uk/~whaley/ag/appgen.html>

    <ftp://ftp.mcc.ac.uk/pub/linux/ALPHA/AppGEN>.

   AppGEN    ,    
         
   World Wide Web (WWW).     
   internet   intranet  .    AppGEN
    C scripts      Common Gateway
  Interface (CGI),       Web
  Servers.

      AppGEN     :-

   PostgresSQL,     

   web server    CGI   HTTPD  NSCA

    ansi C   GCC

   AppGEN       Unix (Linux) :-


    defgen,        (template
     application)     .  
       , ,    
             
        (referential integrity).


    appgen,   AppGEN    appgen 
      CGI C    HTML     
     web server.


    dbf2sql,        dBase III
     .dbf   SQL scripts.     
            DOS/Windows
         SQL server   PostgresSQL.

    ,  AppGEN      HTML , 
     GIF  Java applets     , 
     ,    ,    
      .

       , Andrew Whaley, 

    andrew@arthur.smuht.nwest.nhs.uk


  1155..22..  WWWWWW WWeebb iinntteerrffaaccee  PPoossttggrreessSSQQLL -- DDBBEENNGGIINNEE

   dbengine   plug 'n play Web interface   PostgreSQL
      Ingo Ciechowski.    :

    <http://www.cis-computer.com/dbengine/ >

     DDBBEENNGGIINNEE ::  dbengine   interface 
  WWW  Postgres95        
    .

   PHP-FI        Perl   ,
     Perl   AppGen   wdb-p95  
            
  --      '      
     .

      ,     
     scripting language    
     dbengine.      
    ,         .
   -          
    dbengine        
  Perl.

            
            
     .      virtual
  Fields         .

  

   dbengine          
   Perl.            
      .   ,   
         GNU  --   
       ""    dbengine  
          !



  1155..33..  AAppaacchhee WWeebbsseerrvveerr MMoodduullee  PPoossttggrreeSSQQLL -- NNeeooSSoofftt NNeeooWWeebbSSccrriipptt

   Apache     Web Server.  module 
  PostgreSQL   Apache Webserver   -

    <http://www.neosoft.com/neowebscript/>

   NeoWebScript       
          HTML.

      HTML    
  NeoWebScript,  webserver   NeoWebScript  ()
   script(s),    web   
        ,  
      .

   NeoWebScript   , ,    
   , server-based     HTML  web
  .    NeoWebScript,     
  (counters),   email,   , guest books 
       ,     
  .      NeoWebScript     
     PERL   JavaScript.

       NeoWebScript  webserver , 
  Webmaster      Sysop FAQ   .  
  "  " (Theory of Operations)   
    NeoWebScript,       
    .        
    server,      
   NeoWebScript        
   server.

          NeoWebScript-2.2  
  ISP ,  intranet    extranet .      
  ,      ,     
    99         
          server 
   (.. SSL).


   NeoWebScript   module   Apache webserver  
        Tcl/Tk  
       scripting.    Karl
  Lehenbauer,     NeoSoft,  ,
         
    NeoSoft.

   Apache webserver     webserver  ,
    42 %  1,044,163 sites   
    Web Servers    Netcraft    1997.  
          Microsoft servers,
       16 %,      270,000
  servers.

   Tcl/Tk   , ,   
  scripting,     . John Ousterhout,  
     Sun.    

  " Tcl/Tk       
         
  (toolkits)   C  C++.     
           
     Internet- "

        500,000 , 
    ,  Sun     
     SunScript,      
           
      Tcl   Web   Java.

   Karl Lehenbauer,       
  NeoSoft,      Tcl/Tk    
  .     Mark Diehkans,   Extended Tcl,
      TclX  NeoSoft Tcl,    
   .        Tcl   
  Extended Tcl,       Dr. Ousterhout  
    .

  NeoSoft Inc., 1770 St. James Place, Suite 500, Houston, TX 77056 USA


  1155..44..    PPoossttggrreeSSQQLL  HHEEIITTMMLL   HHTTMMLL  sseerrvveerr
     44 

    heitml        
  postgres   world wide web.    
    


                 Helmut Emmelmann H.E.I. Informationssyteme GmbH
                 Wimpfenerstrasse 23 . 49-621-795141
                 68259 Mannheim Germany . 49-621-795161





     email  . Helmut Emmelmann  emmel@h-e-i.de

        Heitml  <http://www.heitml.com>

        Heitml  <http://www.h-e-i.deom>

   heitml    HTML    server 
    4 .       web
    HTML  HTML- tags.

   heitml ( ""-)    HTML  
     4      Web 
        SQL ,  
     CGI scripts.

   heitml   HTML    server, 
    ".hei"  HTML       web
  browser.   ,   HTML  
    Tags      
      CGI.    XML,  heitml 
  tags    .   heitml     
  tags   HTML    browser.

   heitml     HTML   
  .   HTML    heitml
  Tags      web,   SQL
  ,      web. ,  
   ,  ,  email , 
  ,      
   HTML- Tags    
  .

    ,  heitml     4
    HTML


                 (.. <if>, <while>,  <let> Tags),




        ,
  , , , tuples .  Tuples
        
      (heap variable).   
  heitml,       ,
           
     Session Mode.      
    tags  tags        
  HTML-tags.

   heitml    

  - - -  Web Sites      , 
        .

  - - -     Web Sites, 
         .

  - - -    SQL     
           
   "dba" Tags.

  - - -       
     Session Variables

   heitml   Linux   Web Server  
  CGI interface,     ( 
    CGI)   APACHE Web Server  
  Apache API.      MSQL ( 1  2),
  PostgreSQL ( 6), mysql,   yard.  heitml   
  Linux, BSDi, Solaris  SunOS,    Windows NT  CGI 
  ISAPI  ODBC  Windows 95.

   heitml ( linux)    , - 
   .   Web Sites      
   .      heitml  
         . (,
  ,   Web  ".hei"     
            .  
   ,          
        .)

       1.2 

  - - - Component Libraries     ,  
    ,   email

  - - -  Session Mode      
      (   )
    .       
       session.     
      , ..    
                            session.

  - - -   ,    
          
  .

  - - -  tags       
  (shell commands)    emails

  - - -       debugging.  heitml
          browser  
     .      
   (runtime),   browser    
         
   .

  - - -      server 
    

  - - -  heitml        
     site   .


        heitml -

   heitml ( ""-)   
      HTML    tags 
    .     
          
   HTML,  CGI   scripting   
  .     ,   HTML,
       web  , 
     tags  CGI   .   
  ,       
       tag.  
     heitml      
  HTML      .   heitml 
   web server    HTML,    heitml 
        internet    web
  browser.          
       CGI.  heitml  
         
     (transaction).

    heitml      HTML,   text
  editor   HTML editor,    web server  
   . ,       
  heitml tags   tag    .   
     tags      , 
    ,   emails,  
          
   .

      HTML     
            
      Interactive Guestbook  
          CGI scripts,
            dba
   .

   heitml      tag ,  
   guestbooks,    , 
   ,   email     web site 
     .      ,
      tags  web site .

    ,      
  heitml   :  heitml    
  scripting    ,   
  ,      ,
          
      session  .



  1155..55..  AAmmeerriiccaa OOnn--lliinnee AAOOLL WWeebb sseerrvveerr  PPoossttggrreeSSQQLL

     webserver, AOLserver  2.3 
     PostgreSQL  6.2.1  .  
     
    AOL Web Server  <http://www.aolserver.com>



  1155..66..  PPrroobblleemm//PPrroojjeecctt TTrraacckkiinngg SSyysstteemm AApppplliiccaattiioonn TTooooll  PPoossttggrreeSSQQLL

    :

    <http://www.homeport.org/~shevett/pts/>


  1155..77..    ddbbaassee ddbbff  PPoossttggrreeSSQQLL

    dbf2msql    mSQL  PostgreSQL. 
     

    <ftp://ftp.nerosworld.com/pub/SQL/dbf2sql/>

    <ftp://ftp.postgresql.org/pub/incoming/dbf2pg-3.0.tar.gz>

        Maarten Boekhold, Faculty of
  Electrical Engineering TU Delft, NL Computer Architecture and Digital
  Technique section

    M.Boekhold@et.tudelft.nl

      python     dbf
          postgres.

       <http://www.python.org>


  1166..    // WWeebb    
  PPoossttggrreeSSQQLL -- EEAARRPP


    <http://www.oswego.edu/Earp>

    <ftp://ftp.oswego.edu>   'pub/unix/earp'.


  1166..11..     EEAARRPP ;;

   EARP     / Web , 
         PostgreSQL. 
    :


       .

     interface  sendmail. (     
      mail)

       .

      cgi.

  1166..22..  

      EARP    CGI   
     http       
  .         ,
         web.    
     browser,     
          ,
      .
  1166..33..        EEAARRPP

   EARP           
  .        :

    Solaris 2.5

    Linux 1.2.13+

    GNU C++

    PostgreSQL ( 1.01 / 1.02 )

    netsite server

    NCSA httpd


    GNU C++

    PostgreSQL ( 1.01 / 1.02 )

    NCSA httpd

    Apache httpd

        (1.3)  Earp     
     libpq     PostgreSQL v1.01/1.02.   
          Postgres,    
             . 
       (Earp 2.0),   libpq 
      module,        postgres 
           modules.   
              (97).



  1166..44..    ;;

        EARP   
       html   
    .      
   (objects).      
        ,   
             
    (page tool).     
     .     
  HTML,  (Querys),      , 
      ,    
       .  
       mail   multithreaded
   .

     EARP    .   
      EARP    
   .      ,  EARP
       ,     ids 
      agent.     
  ,         
      Earp. , ,   
        http server 
    ( ) user authentication.




  1166..55..      ;;

      EARP  anonymous ftp  

    <ftp://ftp.oswego.edu>   'pub/unix/earp'.


  1177..  PPHHPP//FFII,,  ssccrriippttiinngg    PPoossttggrreeSSQQLL  
    hhttmmll    SSeerrvveerr

      WWW

    <http://www.php.net>

    <http://www.vex.net/php>

         Professional Home Pages (PHP)    
      PHP Hypertext Pre-Processor

    <http://www.php.org>

     Mirror sites      
     www.country.php.org : <http://www.fe.de.php.org>
     <http://www.sk.php.org>

    <http://php.iquest.net/>

   ,  e-mail  :

    rasmus@lerdorf.on.ca

         PPHHPP//FFII :-

   PHP/FI   scripting    PostgreSQL  
    html    Server.    
    scripts   .HTML    JavaScript, 
      JavaScript,  PHP/FI    
  browser.   JavaScript        html
     client-   PHP/FI   Server. 
  PHP/FI         Netscape LiveWire
  Pro.     ,     Server
   Netscape       
  ,         LiveWire Pro.  
     ,      
           PHP/FI.

  1177..11..   

    CGI, FastCGI  Apache module.    
   CGI,  PHP/FI      
  Unix      Unix web server.    
     FastCGI,  PHP/FI     
         .   Apache module,
   PHP/FI       
     CGI.


       (Access Logging)   
         PHP/FI,    
             (hit
     counting and logging).       
        ,    
       .   Log Viewer Script   
              
     . ,         
     footer          
     .          
     .

        ,   web,
            . 
               web
          ,   
              
          .     
      ,    ,   
       (logging disabled)     
     domain  client, browser,  e-mail    
      .

      Postgres  Postgres    
     RDBMS.  PHP/FI    Postgres95 
     PostgresSQL SQL      .html.


     RFC-1867 /  (File Upload) 
     Upload       Netscape 2.0.
          (upload)     web
     server.  PHP/FI    Mime decoding   
                
           ,     server.

    HTTP-based authentication control  PHP/FI  
          authentication 
     ,   HTTP,   Apache web server.

    ,  (arrays),   (Associative
     Arrays)  PHP/FI    (typed variables),
         Perl-  
     (associative arrays).         web
            , GET 
     POST.

    Conditionals, While Loops  PHP/FI   
     scripting      C.    
      if/then/elseif/else/endif   while loops 
      switch/case         
       html .

    Extended Regular Expressions  Regular expressions
         (pattern matching),
       pattern    . 
     PHP/FI       .

    Raw HTTP Header Control      web  
         HTTP   
          web sites  .
       ,     : URL header 
              URL. 
            caching  
         .

     GIF   /  (On-the-fly)  PHP/FI
       GD    Thomas Boutell   
          GIF   .

     ISP "Safe Mode"  PHP/FI    "Safe
     Mode"           
     PHP scripts   server.

     !      .  
       .       GPL   
            ,
        .      
     GNU   .

  1177..22..  //

  *          
    .    Lee Oattes 
         
    .

  *     PostgreSQL    Adam Sussman

    asussman@vidya.com

  *  ,        
  .

  1177..33..  PPHHPP//FFII  22..00 --  

   PHP      cgi   (cgi wrapper)
    Perl.        
  .         Personal Home Page
  Tools,    Personal Home Page Construction Kit.

         SQL  web .
      CGI wrapper    SQL 
            
  .     FI (Form Interpreter).

   PHP/FI  2.0    , '
  ,        .
            
      HTML.   , PHP, .
      .  PHP/FI 
     web sites ,   
     (Personal Home Page).   ,
         Perl cgi ,
       scripts   HTML 
  .       web pages ,   
     (forking)  Perl    
  .       web sites
       web page    html .
      ,   
  ---- .   
          
       HTML  CGI.

       ,    PHP, FI  
  PHP/FI     .     PHP   FI
     .         
   . 1/4   ,   
         ,
      FI. 1/4      ,
    PHP.

  1177..44..     ,, ,,   PPHHPP//FFII ;;

             
  PHP/FI     footer     
       (    
    ).         
        PHP/FI.      
    cgi  ,     to FI  
  .  ,        
  web  ,        
    .           
   ,       cgi   
   . To PHP/FI       
          .

  1177..55..    

       :


       <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>




    display.html        :


       < ?echo "Hi $ name, you are $ age years old!<p>" >




    !  PHP/FI      
  input field   .      
     ACTION URL.

           
          tags  
    .   ,     
         ,  
    if/else.    ,   
            
    display.html  :


       <?
           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     scripting     
   '      .  
    "PHP/FI Script Language"   .

       PHP/FI    
     .      
   .         
       domains      
  ,          
      .    " " 
   .


   PHP/FI      uploads  
   web browser   RFC-1867.   
        text  binary .  
     PHP/FI    ,  
         (upload)   
          .    "File
  Upload"   .

   PHP/FI      PostgreSQL.
    SQL   .HTML  .  
     "  PostgreSQL"  
  .

   PHP/FI          mysql.
    SQL   .HTML  .  
     "  mysql"  
  .

  1177..66..  CCGGII RReeddiirreeccttiioonn


  1177..66..11..     AAppaacchhee 11..00..xx

        PHP/FI    cgi
  redirection module   Apache server.    
      modules   
     Apache module  PHP/FI.      
  modules  .      
  Dave Andersen

    angio@aros.net

        

    <ftp://ftp.aros.net/pub/util/apache/mod_cgi_redirect.c>

            Apache   mod_actions.c.
       modules   .   
      .         
     PHP/FI.      Apache     
       module.  ,     module 
         Configuration.      
           module mod_actions
     :

  Module action_module mod_actions.o

     module mod_cgi_redirect.c   
  :

  Module cgi_redirect_module mod_cgi_redirect.o

   ,   httpd   .  
    cgi redirection      
   mime    mime.types     
  AddType    srm.conf      mime . 
      mime        :


            application/x-httpd-php phtml




     module mod_actions.c,   
        srm.conf :
            Action application/x-httpd-php /cgi-bin/php.cgi




     mod_cgi_redirect.c     
      srm.conf :


            CgiRedirect application/x-httpd-php /cgi-bin/php.cgi




        mod_actions.c 
  mod_cgi_redirect.c.

        cgi redirection modules  
   ,         
   parsed   php/fi    extension   
  .phtml.  ,    index.phtml  
  DirectoryIndex    srm.conf,   top-level  
      parsed   php   index 
   index.phtml.

  1177..66..22..  NNeettssccaappee HHTTTTPPDD

          
           PHP/FI  
    Netscape Server CGI Redirection module.   module 
    "File Archives"    PHP/FI.   README
             
     PHP/FI.

  1177..66..33..  NNCCSSAA HHTTTTPPDD

   NCSA      modules,     
   cgi   server ,    
     server .   / (patch)   
    NCSA 1.5     site  PHP/FI.

  1177..77..    PPHHPP//FFII    

     CGI   PHP/FI,    
       : php.cgi filename  
  filename        parse.  
    standalone PHP/FI scripts   
    script   :


           #!/usr/local/bin/php.cgi -q




   "-q"     HTTP headers.   
       .

  1188..    PPoossttggrreeSSQQLL  PPyytthhoonn

   Python   scripting , ,  
   (interpreted).      ( , 
    )       
    (GUIs),    WWW, .  
  web browser ( HotJava)    (. 1995)
         .  python
      Stichting S Mathematisch Centrum,
  Amsterdam. The Neverlands    .

     , , modules, 
   (exceptions).       
      C,     Python 
     .

   Python    scripting     X interface.
   Python    Linux cdroms   
    Python modules,   modules   
    Tix widget   Tk.

  To PyGreSQL   python interface   PostgreSQL. 
     PostgreSQL      
      PostgresSQL   Python scripts.
  To PyGreSQL    D'Arcy J.M. Cain   Pascal Andre.


     site  PyGreSQL  <http://www.druid.net/pygresql/>

       D'Arcy at  <http://www.druid.net/~darcy/>

      site  
     <ftp://ftp.via.ecp.fr/pub/python/contrib/Database/PyGres95.README >

    D'Arcy J.M. Cain darcy@druid.net

    Pascal Andre andre@chimay.via.ecp.fr

    Pascal Andre andre@via.ecp.fr




  1188..11..       PPyyGGrreess ;;

   home sites    :

    Python
     <ftp://ftp.python.org:/pub/www.python.org/1.5/python1.5b2.tar.gz>

    PyGreSQL  <ftp://ftp.druid.net/pub/distrib/PyGreSQL-2.1.tgz>

    Old site
     <ftp://ftp.via.ecp.fr/pub/python/contrib/Database/PyGres95-1.0b.tar.gz
     >

            mirror site   
     .           
      sites.  PyGres95      
     contrib  sites  Python  PostgreSQL.

  1188..22..    

         ,
     web sites :


    Python :      <http://www.python.org/>

    PostgreSQL :
     <http://epoch.cs.berkeley.edu:8000/postgres95/index.html>

    PyGreSQL  <ftp://ftp.druid.net/pub/distrib/PyGreSQL-2.1.tgz>

    Old site PyGreSQL :
     <http://www.via.ecp.fr/via/products/pygres.html>

    :


       PyGreSQL.    
       majordomo@vex.net    "subscribe pygresql
     name@domain"      
     "name@domain"       .

    Newsgroup for Python :     newsgroup comp.lang.python

    PyGreSQL :      Andre  andre@via.ecp.fr 
      , , 

  1199..    PPoossttggrreeSSQQLL  WWWWWW -- WWDDBB--PP9955


  1199..11..     wwddbb--pp9955

  WDB-P95 -  Web interface   PostgreSQL   J. Douglas
  Dunlop  

       WWW-WDB   <http://www.eol.ists.ca/~dunlop/wdb-
     p95/>

           ,
        dunlop@eol.ists.ca

       wdb-1.3a2    
   WWW   PostgreSQL.       Browser
      HTML      (tabular
  output).       wdb   
        .

      CASI Tape  Image Query.  
       Form Definition File (FDF) 
       CASI Tape  Image Query , 
    JOIN 2 .

            
     WDB-P95     PostgreSQL  .
             
   -       SQL  
  interface  Perl.

  1199..22..       PPoossttggrreeSSQQLL,,  ppggppeerrll,, 
   hhttttppdd     hhoosstt;;

   -    PostgreSQL     
    host.  WDB-P95     http , 
      host -    WDB-P95   
    Pg.pm -  pgperl      host
  .   Pgperl     libpq, 
         PostgreSQL
    ,     PostgreSQL.
    

  (WWW Client (Netscape)) => (HTTP Server (NCSA's http) + WDB-P95 +
  pgperl + libpq)=> (PostgreSQL server)

    ()  .



         : NT, SUN, HP, ...
       libpq   
        WDB-P95,  
    pgperl. (     
  HTML  '      WWW client)

  2200..      ""CC"",, ""CC++++"",, EESSQQLL//CC 
       PPoossttggrreeSSQQLL





  2200..11..    ""CC""   PPoossttggrreeSSQQLL

       'libpq'.  
    Oracle OCI, Sybase DB-lib    Informix CLI .


  2200..22..  IInntteerrffaaccee  ""CC++++""    PPoossttggrreeSSQQLL

       'libpq++'.


  2200..33..  EESSQQLL//CC  PPoossttggrreeSSQQLL

  O '  C'   PostgreSQL, ESQL/C 
    Oracle Pro*C,   Informix ESQL/C: To PostgreSQL ESQL/C
        SQL, 
     C     
      .   
          
          
     (SQL).

  To ESQL/C      :

    <ftp://ftp.lysator.liu.se/pub/linus>

    Email : linus@epact.se

  To PostgreSQL ESQL/C   SQL interface   
  (API)        C  
         . To
  PostgreSQL ESQL/C       
            
    Structured Query Language (SQL).

  To ESQL/C       :

      ESQL/C   C    
          (database server).

        ESQL/C       
      ,  ,     
      ESQL/C.

      ESQL/C,     
        C     SQL  
      .

      

     ESQL/C   PostgreSQL    .


      site   <ftp://ftp.lysator.liu.se/pub/linus>

    Email : linus@epact.se



  2200..44..      PPoossttggrreeSSQQLL

        Nicolas Moldavsky

    nico@overnet.com.ar

   "C"       (AND, OR,
  XOR,    2)  pgsql.     
  anonymous FTP  


    <ftp://ftp.overnet.com.ar/pub/utils/linux/bitpgsql.tgz>

   Makefile  Linux.

  2211..  JJaappaanneessee KKaannjjii    PPoossttggrreeSSQQLL

     site

    <ftp://ftp.sra.co.jp/pub/cmd/postgres/>

  2222..    PPoossttggrreeSSQQLL  WWiinnddoowwss 9955//WWiinnddoowwss NNTT

     Windows 95/Windows NT   .   
     gcc   gmake  Win NT/95.  
       win32   
  gnu-win32.   GNU gcc    win32.   site -

    <http://www.cygnus.com/misc/gnu-win32>

         cdk.exe (-  
     gnu-win32)

           
  "Unix-Emulator on NT"  

    <http://www.softway.com>

  2233..     NNeewwssggrroouuppss


  2233..11..  NNeewwssggrroouuppss

    newsgroup   PostgreSQL  news.postgresql.org.
         


       1.    Window | Netscape News
       2.    File | Open News Host
       3.  news.postgresql.org  .
       4.    newsgroup  comp.databases.postgresql.questions.
           news.postgresql.org      ,     Add Newsgroup.
         newsgroup  .  newsgroup        .
       5.    newsgroup     .    
       newsgroup      .





  2233..22..      ee--mmaaiill

      -    e-mail
   

    Yahoo  <http://www.yahoo.com>   e-mail

    Lycos  <http://www.lycos.com>     e-
     mail (new email accounts)

    hotmail  <http://www.hotmail.com>   
      e-mail (new email accounts)

          PostgreSQL   Yahoo 
             
       e-mails  PostgreSQL,       
         e-mail.    Email- > Options- >
     Filters      email.    
      e-mail       mail 
            web .

      e-mail,     
  "Mail Filters"      mails  PostgreSQL 
   .      mails   
        o.

  2233..33..    

          web  :

    <http://www.postgresql.org/>


      Email : pgsql-questions@postgresql.org

    Developers pgsql-hackers@postgresql.org

    Port specific questions pgsql-ports@postgresql.org

    Documentation questions pgsql-docs@postgresql.org

         e-mail     !!

        .    
    '    e-mail'.   
        ,  mail 

    pgsql-questions-request@postgresql.org

    pgsql-hackers-request@postgresql.org

    pgsql-ports-request@postgresql.org

    pgsql-docs-request@postgresql.org

        (body)       
     

  subscribe

  ()

  unsubscribe



  2233..44..     

        html   
   -

           MHonarc  WWW 
     <http://www.postgresql.org/mhonarc/pgsql-questions>

    <ftp://ftp.postgresql.org>   /pub/majordomo

  2233..55..    

      ""    postgreSQL 
  .       '   
    e-mails  PostgreSQL' .    ,  
     :

    majordomo@tlali.iztacala.unam.mx

        (body)       
     :

  inscripcion pgsql-ayuda

  2244..    


  2244..11..     

        PostgreSQL  
  postscript   unix   (man-pages).   
    internet,       
     <http://www.postgresql.org/docs>


    " "

    " "   PostgreSQL

    " -"     
       PostgreSQL.

    Online .

    Online   HTML .

    ,    Postscript  .

  2244..22..  OOnnlliinnee 


           
     


           PSQL   6.3.




       SQL   (keywords)


         script   /tools     


        -


          psql \h




          PostgreSQL
     ()   online  () -


         regression tests  src/test.     
       regress/sql  suite/*.sql.




        PostgreSQL.


         SQL scripts    SQL   src/tutorial




     "  SQL  "  Appendix B
     ``''

  2244..33..    


    "Understanding the New SQL: A Complete Guide" -   Jim Melton
      Alan R.Simon


        Morgan Kaufman Publisher        SQL.    SQL92.




    "A Guide to THE SQL STANDARD" -   C.J.Date


         Addison-Wesley Publishing     .     SQL.




    SQL - The Standard Handbook,   1992


       Stephen Cannan  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 " (6th Edition),
     Addison-Wesley, 1995, ISBN 0-201-82458-2


                 .
          , SQL, recovery, concurrency, ,
       integrity,  extensions    ,  
        client/server    . 
              .     .




    Stefan Stanczyk, "Theory  Practice of Relational Databases", UCL
     Press Ltd, 1990, ISBN 1-857-28232-9


            ,  , calculus
        .           .     .




    "The Practical SQL Handbook"  , Addison Wesley
     Developers Press ISBN 0-201-44787-8


           .




    Michael Stonebraker, "Readings in Database Systems", Morgan
     Kaufmann, 1988, ISBN 0-934613-65-6


                      .              ()      .




    C.J.Date, "Relational Database - Selected Readings", Addison-
     Wesley, 1986, ISBN 0-201-14196-5


                      .              ()      .




    Nick Ryan  Dan Smith, "Database Systems Engineering",
     International Thomson Computer Press, 1995, ISBN 1-85032-115-9


              ,   .




    Bipin C. Desai, "An introduction to Database Systems", West
     Publishing Co., 1990, ISBN 0-314-66771-7


                    ()      .


    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 
     Applying Database"


       Technology
       QED  John Wiley
       1991




    Michael Gorman "Enterprise Database for a Client/Server
     Environment" QED  John Wiley


             client/server  
        repository      ANSI  SQL
       1993




        SQL !  
  .

  2244..44..    AANNSSII//IISSOO SSQQLL  -- SSQQLL 11999922,, SSQQLL 11999988

       ANSI/ISO SQL   
  sites -

    <http://www.naiua.org/std-orgs.html>

    <http://www.ansi.org/docs>     cat_c.html 
       "Database SQL"

    SQL92 standard  <http://www.jcc.com>    
     sql_stnd.html

    ANSI/ISO SQL 
     <http://www.contrib.andrew.cmu.edu/~shadow/sql.html>   
       SQL.

  2244..55..   AANNSSII//IISSOO SSQQLL 11999922

    Appendix A    ``''

  2244..66..   AANNSSII//IISSOO SSQQLL 11999988

    SQL 1998 (SQL 3)    .   
  'Electronic Access to the SQL3 Working Draft'    
  ``''




  2244..77..    SSQQLL  

     Appendix B    ``''

  2244..88..    ((eexxtteennssiioonn))  SSQQLL9922


        SQL-92
     <ftp://FTP.cs.arizona.edu/tsql/tsql2/>

      SQL-3
     <ftp://FTP.cs.arizona.edu/tsql/tsql2/sql3/>

           
      SQL-92.     
  TSQL2.

           
    .

          TSQL2 Language Design
  Committee, Richard T.Snodgrass, Department of Computer Science,
  University of Arizona, Tucson, AZ 85721,

    rts@cs.arizona.edu

          e-mail    TSQL2
     Language Design Committee       
         .

          .

  spec.dvi,.ps      TSQL2,    
  1994

  bookspec.ps        TSQL2,   
   TSQL2,      1995 ( ).

  sql3                  
  ANSI  ISO SQL3.

            
       ,  , 
          .    
       TSQL2 Language Design. 
     :     
   ,        
    ,     TSQL2   
           .
              
  

    TSQL2,        .
           
  TSQL2.

   ,       ,  
  (indexes),    ,     :

  Snodgrass, R.T., editor, The TSQL2 Temporal Query Language, Kluwer
  Academic Publishers, 1995, 674+xxiv .

          . 
          eval.ps


    tl2tsql2.pl     prolog   
      TSQL2.     
   Michael Boehlen

    boehlen@iesd.auc.dk

            paper  
       .      dated  
     .     

    <http://www.cs.auc.dk/general/DBS/tdb/TimeCenter/Software>

     (  TimeDB  Tiger).

  2244..99..   00 --    IISSOO//AANNSSII SSQQLL

           ()  
    SQL-92   "" SQL3 Working Draft.

   ANSI      ANSI,   ISO 
  ISO.

    (2)   SQL,   ANSI  
   ISO.          
         ,  
   ,        "International Standard"   "American
  Standard",  .

     SQL-92

    ISO standard, ISO/IEC 9075:1992, Information Technology -
  Database Languages - SQL,   (, 1993)  ANSI :


            American National Standards Institute
            1430 Broadway
            New York, NY 10018 (USA)
            Phone (sales): +1.212.642.4900




    US$230.00. H ANSI , ANSI X3.135-1992, American
  National Standard    - Database Language SQL,
           , 
           ,
  1993).       US$225.00.

          ANSI,    
     7%  (,  US$9.10). 
          
  .  ANSI       
     . ,    
        ,   
        . (  : 
         ANSI,   ANSI  
          .)

    ISO        
   (   )      ISO
  (   - International Organization for
  Standardization)   IEC (   -
  International Electrotechnical Commission).

            
     ANSI     .  
     ISO:


            International Organization for Standardization
            Central Secretariat
            1, rue de Varembi
            CH-1211 Genhve 20
            Switzerland




            
  ,          . 
     ISO/IEC 9075:1992, Information Technology -
  Database Languages - SQL,  :


            Global Engineering Documents
            2805 McGaw Ave
            Irvine, CA 92714 (USA)
            USA
             (  ): +1.714.261.1455
             (  ): (800)854-7179




    US$308.00.        
      ,       
  ()   .     
         "  
  ".   Global     ANSI     
     (      
       ANSI     
  US$300.00).

      SQL3 Working Draft

        SQL3 working draft   ANSI
  X3 Secretariat, CBEMA (Computer  Business Equipment Manufacturers
  Association).    "  "  SQL3
  working draft     US$60.00  US$65.00.   
     CBEMA :


            CBEMA, X3 Secretariat
            Attn: Lynn Barra
            1250 Eye St.
            Suite 200
            Washington, DC 20005 (USA)




       Lynn Barra  
  +1.202.626.5738     ,    mail 
  .

     SQL3 Working Draft

      (     )  SQL3
  (  ANSI  ISO) working draft (    ) 
    "anonymous ftp"   "ftpmail"  :


       gatekeeper.dec.com

     

       /pub/standards/sql/




        .   
  PostScript  "plain text" (  , 
        ).

  ,       :


            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




       ,  "mar94"   
         (.., "aug94"  
         "mar94").

  ,           
    FTP,        
   :


            ls




     (!)     .

        ftp

            FTP.
  ,         gatekeeper.dec.com, 
         ,  
       .     
       Internet     .  login
   'ftp'      email   ( 
      ftp 'anonymous ftp').   'type binary'
           bits 
  () ()   . H 'get'     .
      script    angle brackets <  
  > .







    % 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 ( 5.83 Sat ... 1992) ready.
    Name (gatekeeper.dec.com:<yourlogin here>): ftp  <anonymous also works>
    331 Guest login ok, send ident as password.
    Password: <enter your email address here >
    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
    % <        x3h2-93-082.txt>




        ftp

   Digital Equipment Corporation,     ,
    ftp email.       
    ,        ftp
        ftp   Internet. 
    server :

  ftpmail@decwrl.dec.com

    script    PostScript   
    SQL3 :


            reply joe.programmer@imaginary-corp.com
            connect gatekeeper.dec.com anonymous
            binary
            compress




    script    PostScript   
    SQL3 :




       reply joe.programmer@imaginary-corp.com
       connect gatekeeper.dec.com anonymous
       binary
       compress
       uuencode
       chdir /pub/standards/sql
       get x3h2-93-091.ps
       quit




         script    
  (server)      .   
    "joe.programmer@imaginary-corp.com"  
     Internet.      ,
  x3h2-93-091.ps,    "compress"ed "uuencode"d  34
    email.        
     ,     
    plain text    script:


            reply joe.programmer@imaginary-corp.com
            connect gatekeeper.dec.com anonymous
            chdir /pub/standards/sql
            get x3h2-93-091.ps
            quit




    ,   .ps     
    70 !

        ,  
  x3h2-93-091.ps,    "x3h2-93-091.ps"   
     .        
     ,   "get
  x3h2-93-091.ps"   "dir".

  2244..1100..   11 --    IISSOO//AANNSSII SSQQLL

            
   SQL     .

   :

            SQL  
         
  persistent,  .    : generalization
   specialization hierarchies,  , 
      , triggers  assertions,
     ,  ,  
    .    
      (abstract data types -ADTs), object
  identifiers, , , , encapsulation,
            
  .

     1996,    SQL3   
  ISO CD.     SQL/Framework, SQL/Foundation,  SQL/Bindings.
      (  )  900   
  .   ,      ISO
  DBL         
           
     papers.        DBL
        ,   
  .       
    , 1997,  .

       ,    
          SQL.    
      6      
    DBL,        DIS  
      IS .

    ISO      SQL/92,    
   SQL         
  .

     ,     SQL3    
   ISO/IEC    1998,     
  .

   1993,    ANSI  ISO    
     SQL    .   
  :


     1: Framework        
       .

     2: Foundation    ,
          ADT.

     3: SQL/CLI  Call Level Interface.

     4: SQL/PSM    stored procedures,
       .

     5: SQL/Bindings  Dynamic SQL  Embedded SQL bindings 
        SQL-92.

     6: SQL/XA   SQL   XA Interface 
        X/Open

     7:SQL/Temporal    SQL  
       .

   ,   SQL3    ANSI Domestic
  ("D") project   ISO project.     
     SQL3   1999.

   SQL/CLI  SQL/PSM     
  addendums  SQL-92.  ,    
    (International - "I").  SQL/CLI   1995. 
  SQL/PSM        1996.

    SQL3 ,     are
  persued:


    SQL/MM       
         SQL3 ADT.

        - Remote Data Access (RDA)

         
    SQL    .     
    SQL    ISO.     
     SQL.    () 
     ISO/IEC JTC1/SC 21/WG3 DBL.  
         ISO SQL  :


    

    

    

    

    

    

    

    

    

    

  NIST 

     SQL  ( )   
      (NIST).  NIST     
        entry level SQL-92.  
       NIST   
      - Federal Information
  Processing Standard (FIPS).       SQL
    FIPS 127-2.      Postscript
   Text        NIST.    
    SQL      
  NIST.

          SQL

         SQL.   
     ANSI:


    ISO/IEC 9075:1992, "Information Technology --- Database Languages
     --- SQL"

    ANSI X3.135-1992, "Database Language SQL"

       SQL      
       .       :


            American National Standards Institute
            1430 Broadway
            New York, NY 10018
            USA
            Phone (sales): +1.212.642.4900




     SQL-92,   Technical Corrigendum
  ( bug):


          * Technical Corrigendum 1:1994 to ISO/IEC 9075:1992

   TC 1       ANSI.    ISO
    TC 1 --    ISO  ANSI  
  SQL-92.

  ,         1992
  SQL.         
        .

   

       SQL .   
         .  
          web.


     SQL (FIPS 193)

    Repository    (X3H4) -  News Release 
        "   Repository 
      ."

  2244..1111..   22 -- IISSOO//AANNSSII SSQQLL FFoouunnddaattiioonn

      SQL3     SQL
  Foundation :


      SQL/PSM (moved form SQL/PSM-92)

      

    Triggers

    

       - Abstract Data Types (ADT)

     

       :


        

        

            
       SQL,      

         SQL/PSM

          
   SQL-3       
      ODMG.      X3H2 
  ISO DBL paper: Accomodating SQL3 and ODMG.    
     SQL3/OQL Merger.

  SQL3 Timing

      SQL3   ,    
        .


          SQL3 Foundation  
             (Committee
     Draft - CD)      1996.
          

           CD

     Draft         
      1998

             1999.

   ANSI      .

  2244..1122..   33 -- IISSOO//AANNSSII SSQQLL CCaallll LLeevveell IInntteerrffaaccee

   SQL/CLI    interface   
  SQL .         
  shrink-wrapped .  CLI    
    SQL Access Group (SAG).     SAG/CLI
       Microsoft Open DataBase
  Connectivity (ODBC)  1992.  1993,  SAG   CLI 
   ANSI  ISO SQL. (  SQL Access  
     X/Open consortium.)

   SQL/CLI      :


    CLI  ,     SQL

    Client-Server         
       

           Client-server

  SQL/CLI Timing

      ,  SQL/CLI  
   .


     SQL/CLI      1992 SQL (SQL-92)

       ISO  1995

    ISO/IEC 9075-3:1995 Information technology -- Database languages --
     SQL -- Part 3: Call-Level Interface (SQL/CLI)

      SQL/CLI      
         SQL3

  2244..1133..   44 -- IISSOO//AANNSSII SSQQLL PPeerrssiisstteenntt SSttoorreedd MMoodduulleess

   SQL/PSM   SQL :


    / 

    Multi-statement  Stored Procedures

        

          , 
  SQL/PSM      
    SQL3.

  Multi-statement  Stored Procedures


   Multi-statement  stored procedures   
      client/server:


    -    stored procedure    
     SQL ,       (client).

     -         
      stored procedure        
              

      -     stored procedure
              client
          .

     -         
      .

  / 

          
    SQL       
    .

    


    If-then-else

    Looping constructs

    Exception handling

    Case statement

    Begin-End blocks

        
  :


     

     Set   

           

  ,    SQL    
    multi-statement.

         
           
    ,      ,  
        
            
  .


        site     
          

           

            (
     )      
  .
    SQL/PSM

   SQL/PSM   :


     SQL/PSM     SQL-92

          SQL/PSM   Draft 
             1996.

          1996     

         PSM   
     30    4   1996

            
       PSM   1996.

        : ISO/IEC DIS 9075-4:199?
     Information technology -- Database languages -- SQL -- Part 4: SQL
     Persistent Stored Modules (SQL/PSM)

            SQL/PSM 
       SQL3.

  2244..1144..   55 --  --  IISSOO//AANNSSII SSQQLL// IISSOO//AANNSSII
  SSQQLL//BBiinnddiinnggss

    ,  ,   
        . 
           
  SQL-92( (dynamic)   (embedded)).

         .

     ,    
     SQL-92.   ,      
       SQL    
   ..

     ,     
       SQL     
   SQL       .

           
       .

           
  SQL3.

  2244..1155..   66 -- IISSOO//AANNSSII SSQQLL XXAA IInntteerrffaaccee SSppeecciiaalliizzaattiioonn ((SSQQLL//XXAA))

         interface
  (API)      (Transaction
  Manager)     (Resource Manager) SQL.  
     ,    
  ISO/IEC 10026, "Distributed Transaction Processing",  
    SQL    ,    commit
    (two-phase commit)      
     X/Open,     X/Open,  
          
  (semantics),    : xa_close, xa_commit,
  xa_complete, xa_end, xa_forget,xa_open, xa_prepare, xa_recover,
  xa_rollback,  xa_start.


   ISO       X/Open XA. 
       
  .      XA  ISO SC21, JTC  1, 
   27 , 1995    27 , 1995.   75
        XA,    2/3 
  p-  JTC 1,     .   
   ,  SQL/XA         1996.

  2244..1166..  PPaarrtt 77 -- IISSOO//AANNSSII SSQQLL TTeemmppoorraall

   Temporal SQL     .   
             
     .   Temporal SQL   paper 
    1994   Rick Snodgrass    
  .

   X3      , ISO/IEC 9075  7: 
  SQL/Temporal        SQL/Temporal.


       ----------------------------------------------------------------------------
                                       Temporal SQL
                                       ************
       Rick Snodgrass (   TSQL2)
       31--1994




          SQL3
  (     DBL RIO-75,      
   SQL     (temporal) ).  
          (abstract data
  types -ADT's)    .    
  , , ,   ,
          
      . ,   
  ,       SQL,  
    SQL    (procedural) .  
      TSQL2,    
  SQL-92.

  2244..1166..11..  

      (Valid-time)    
      (ADT).  ,  
      ,   DATE   INTERVAL
  (   ).     ,  
         , 
     .    (timestamp)
           (valid-time
  table)          
            
  .         
       .

  2244..1166..22..   --  // 

          
      ,       
  ,    ,     . 
        .


               Employee(Name, Salary, Title)

     ,       
  .


               SELECT Salary
               FROM Employee
               WHERE Name = 'Bob'




           
  .     ,     ,  
     .


               Employee(Name, Salary, Title, DateofBirth DATE)




              
   .


               SELECT DateofBirth
               FROM Employee
               WHERE Name = 'Bob'




  2244..1166..33..   --   

          
     .    ,  
  ,         
  ,        .

  Employee (Name, Salary, Title, DateofBirth, Start DATE, Stop DATE)

    ,        
  DateofBirth.  ,      
  .

  2244..1166..44..   --  ((PPRROOJJEECCTTIIOONN))

         ,   
   .


               SELECT Salary
               FROM Employee
               WHERE Name = 'Bob'  Start <= CURRENT_DATE  CURRENT_DATE <= Stop




           .  
       .     
         . , 
   ,         .
  ,      SQL.     
       .


  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




           Bob 
    $70,000.         
     Bob.


       Name    Salary  Start           Stop
       ----    ------  -----           ----
       Bob     60000   1993-01-01      1993-05-30
       Bob     70000   1993-06-01      1994-12-31




           
     ,       
      .        
  .  ,       SQL
  .


       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  T1.Start < T2.Start
                                        T1.Stop >= T2.Start  T1.Stop < T2.Stop)
               WHERE EXISTS (SELECT *
                             FROM Temp AS T2
                             WHERE T1.Salary = T2.Salary  T1.Start < T2.Start
                                        T1.Stop >= T2.Start  T1.Stop < T2.Stop)
                    ;

       DELETE FROM Temp T1

       WHERE EXISTS (SELECT *
                     FROM Temp AS T2
                     WHERE T1.Salary = T2.Salary
                                ((T1.Start > T2.Start  T1.Stop <= T2.Stop)
                               OR (T1.Start >= T2.Start  T1.Stop < T2.Stop))




           
        .    N
     ,   N     
           . 
          
          .

        SQL   
     (cursor)  .   
     ,      . 
     .


       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;




        

            
      ORDER BY Start.

    ,  ,    ,   
        SQL-92.   
    TSQL2.


               SELECT Salary
               FROM Employee




  2244..1166..55..   --  ((JJOOIINN))

           
          
     ,      
  (,    ,  ).


               Employee1 (Name, Salary, Start DATE, Stop DATE)
               Employee2 (Name, Title, Start DATE, Stop DATE)




    Employee1   .


       Name    Salary  Start           Stop
       ----    ------  -----           ----
       Bob     60000   1993-01-01      1993-05-30
       Bob     70000   1993-06-01      1993-12-31



       Employee2  .


       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




     ,        
     .


               SELECT Salary, Start, Stop
               FROM Employee1
               WHERE Name = 'Bob'




             ,
    (,     ..   
      1);      
            
  .    ,    
  SQL. ,         
       Employee1    Employee2.
     .


       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
                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




           
   .   TSQL2,      
  (temporal join)     .





          SELECT Employee1.Name, Salary, Dept
          FROM Employee1, Employee2
          WHERE Employee1.Name = Employee2.Name




  2244..1166..66..   --   ((AAGGGGRREEGGAATTEESS))

    .. ,     ;  
    ,   .


               SELECT MAX(Salary)
               FROM Employee




        ,   
        .    ,
    SQL     .  
      ,       
       . ,  
           
     ,     .     
           
  .


               SELECT Salary
               FROM Employee AS E1
               WHERE NOT EXISTS (SELECT *
                                 FROM Employee AS E2
                                 WHERE E2.Salary > E1.Salary)




            
  .     .


       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))
                            E.Salary > T.Salary;




        .  
           
         . 
           
     - (subquery),    NOT EXISTS.
  ,        ,
           . 
    ,   SQL  
     ,   
   (nested)      
   .

     ,    SQL  
  ,        
         .

     TSQL2  .


               SELECT MAX(Salary)
               FROM Employee




  2244..1166..77..  

          
           . 
   -    SQL.  
           SQL,
      SQL    /  
  (procedural),      - 
         SQL.

    ,     -  
      DBMS,     
   ,    ,    
         
      .

       SQL3     
  ,        ,
    SQL3      .



       ----------------------------------------------------------------------------
                    * X3,  
        

       . :       PR/96-0002

        :       Barbara Bennett  bbennett@itic.nw.dc.us

                    X3      , ISO/IEC

                                9075  7:  SQL/Temporal

       Washington D.C.,  1996
       ----------------------------------------------------------------------------




  --    X3,   
          SQL
  (SQL/Temporal), ISO/IEC 9075  7.     
          SQL3, ..,
    7,  SQL,     SQL 
     ,      
    SQL  .     X3H2
     11-14   1996  .

           


               Chairman of X3H2,
               Dr. Donald R. Deutsch,
               Sybase, Inc., Suite 800,
               6550 Rock Spring
               Drive, Bethesda, MD  20817.
               Email: deutsch@sybase.com.




          (
  ,  ) (copyrights, trademarks)  
   .        


               X3 Secretariat at
               1250 Eye Street
               NW, Suite 200,
               Washington DC  20005.
               Email: x3sec@itic.nw.dc.us
               FAX:  (202)638-4922.




  2244..1177..   88 -- IISSOO//AANNSSII  SSQQLL ((SSQQLL MMUULLTTIIMMEEDDIIAA -- SSQQLL//MMMM))

       ISO/IEC    
    SQL (SQL class library)   
       1993.     
  ,  SQL Multimedia (SQL/MM),   
       SQL (abstract data type- ADT)
         ADT  
         SQL3. 
  SQL/MM          
    ,  full-text  ,  
        , ,
  animation, ,  .      SQL language
  binding     JTC1  
  (.. SC18  , SC24  ,  SC29   
   ).

         SQL/MM     
          
  .    1     (Framework)  
        .    
   ,        SQL
  .       SQL/MM   
    1994:


     1: .        .

     2:    ADTs   
     .   45 .

     3:    ADTs    .
       200       
     ,   3 .

     4:     ADTs   .
          
     , , , .       90
     .

           
   :


    ANSI X3L1 - Geographic Information Systems.  Mark Ashworth of
     Unisys is the liason between X3L1  ANSI X3H2. He is also the
     editor for parts 1, 3,  4 of the SQL/MM draft.

    ISO TC 211 - Geographic information/Geomatics

  2255..      PPoossttggrreeSSQQLL

         
      e-mail :

    pgsql-questions@postgresql.org

          e-mail     .
           internet  ,  
         ,  internet  
             .
        Email       
          cut  paste  
     ,     .     
       /newsgroup.

    ,    PostgreSQL   
    / ,      
       mirror sites (web  ftp) 
    .        
  , ,      .

          
  Anderson, WGS (Work Group Solutions).    
   -

    Work Group Solutions  <http://www.wgs.com>

    Anderson Consulting  <http://www.ac.com>

  2266..     

       ,   :
  , , , , 
  ,   ,   
  ,   marketing  .     
        .   
   ,        ,
          R&D.

    , ,     /
      Unix,      
  .         .

   PostgreSQL        
        internet.  
        PostgreSQL. 
  ,    ,    
         10 $ ( 
   PostgreSQL)       
  !!          internet.

   ,     PostgreSQL   2,00,000
     "C", "C++".       "C"
   $ 2      PostgreSQL    $
  4,00,000 (  !).

         "C",
  "C++". ,        PostgreSQL  
       internet    
      .

  2277..     

      SQL    Unix, Linux.

        Applications->databases.
     <http://www.caldera.com/tech-ref/linuxapps/linapps.html>

        Applications->databases.
     <http://www.xnet.com/~blatura/linapps.shtml>

         <http://linas.org/linux/db.html>
        Linas Vepstas: linas@fc.net

      
     <http://cuiwww.unige.ch:80/~scg/FreeDB/FreeDB.list.html>

     RDBMS  Browne <http://www.hex.net/~cbbrowne/rdbms.html>
        Christopher B. Browne cbbrowne@hex.net

      DBMS  SAL <http://SAL.KachinaTech.COM/H/1/>

      DBMS  SAL
     <http://SAL.KachinaTech.COM/H/2/>

           SAL
     <http://SAL.KachinaTech.COM/H/3/>

    ACM SIGMOD.      
      <http://bunny.cs.uiuc.edu/sigmod/databaseSoftware/>

  2288..       IInntteerrnneett WWoorrlldd WWiiddee WWeebb

   Internet  ,     
         .  
   300%     .    
  10  Web sites    !

          
    "Yahoo", "Netscape", "Lycos" .   Yahoo 
    search.       
     .  default 
     " " ("Intelligent search")  
        .   ""
  ("Options")      " "("EXACT
  phrase"),   "AND",  "OR", .      
        .

  2299..  

              
      ,    
  PostgreSQL    ,   
   ,   RDBMS SQL (-), 
  .

   PostgreSQL         
  ,    ODBC, JDBC      
     .     
  PostgreSQL    ODBC, JDBC    
   ,  Oracle, Sybase  Informix.  ,  
     Oracle, Sybase  Informix    ODBC,
  JDBC     PostgreSQL.

     "  PostgreSQL ;"    
            
      ,      
         -

     

          

          ,   
       

        internet

          .

           SQL 3 (SQL 98)

        

           'PostgreSQL'   
                
     .

  3300..        PPoossttggrreeSSQQLL

       FAQ  General, Linux  Irix
  

    <http://www.postgresql.org/docs/faq-english.shtml>

  3311..    

    (c) 1997  Al Dev (Alavoor Vasudevan).  
    .

      .    
          
  (  ,  , ,
  ,  /  ,  , 
   ,  ,  
  ,    )     
    .

       , ,  
  .   ,       
           
  .       
           
  .          
       //
  /         
    .

  AAFF..   AA --   AANNSSII//IISSOO SSQQLL 11999922

































































            (depth-first tree traversal)  BNF
    ,    27--1992 11:03:41.64.
      BNF     :  ANSI-only, SQL2-only.


  <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 | 
      | 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 paren>

  <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 paren> ]

  <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  columns>
        [ MATCH <match type> ]
        [ <referential triggered action> ]

  <referenced table  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>  <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>  <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 paren>

  <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 paren>

  <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  source>

  <insert columns  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>




  AAGG..   BB --   SSQQLL  


  AAGG..11..     PPoossttggrreeSSQQLL

       PostgreSQL    SQL.
   scripts    SQL   
  src/tutorial

  AAGG..22..   IInntteerrnneett 

         SQL 

    <http://w3.one.net/~jhoffman/sqltut.htm>

       ;  mail 

    jhoffman@one.net

             

    <http://w3.one.net/~jhoffman/index.html>

         Jim Hoffman  jhoffman@one.net

       sites    John Hoffman:

     SQL
     <http://www.contrib.andrew.cmu.edu/~shadow/sql.html>

       SQL Pro
     <http://www.inquiry.com/techtips/thesqlpro/>

     Sites      SQL Pro
     <http://www.inquiry.com/techtips/thesqlpro/usefulsites.html>

      
     <http://infoweb.magi.com/~steve/develop.html>

    DBMS Sites  <http://info.itu.ch/special/wwwfiles>   
        comp_db.html

    DB Ingredients <http://www.compapp.dcu.ie/databases/f017.html>

    Web Authoring  <http://www.stars.com/Tutorial/CGI/>

    Computing Dictionary   <http://wfn-shop.princeton.edu/cgi-
     bin/foldoc>

    DBMS Lab/Links  <http://www-ccs.cs.umass.edu/db.html>

    SQL FAQ
     <http://epoch.CS.Berkeley.EDU:8000/sequoia/dba/montage/FAQ>
           SQL_TOC.html

     SQL  <http://chaos.mur.csu.edu.au/itc125/cgi/sqldb.html>

    RIT    
     <http://www.it.rit.edu/~wjs/IT/199602/icsa720/icsa720postings.html>

    Database Jump Site  <http://www.pcslink.com/~ej/dbweb.html>

       Web
     <http://www.eng.uc.edu/~jtilley/tutorial.html>

      
     <http://www.ndev.com/ndc2/support/resources.htp>

       <http://ashok.pair.com/sql.htm>

     IMAGE SQL
     <http://jazz.external.hp.com/training/sqltables/main.html>

    Internet Resource List  <http://www.eit.com/web/netservices.html>









































