SQL::Statement

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
SQL::Statement(3)    User Contributed Perl Documentation    SQL::Statement(3)



NAME
       SQL::Statement - SQL parsing and processing engine

SYNOPSIS
	 # ... depends on what you want to do, see below

DESCRIPTION
       The SQL::Statement module implements a pure Perl SQL parsing and exe-
       cution engine.  While it by no means implements full ANSI standard, it
       does support many features including column and table aliases, built-
       in and user-defined functions, implicit and explicit joins, complexly
       nested search conditions, and other features.

       SQL::Statement is a small embeddable Database Management System
       (DBMS),	This means that it provides all of the services of a simple
       DBMS except that instead of a persistant storage mechanism, it has two
       things: 1) an in-memory storage mechanism that allows you to prepare,
       execute, and fetch from SQL statements using temporary tables and 2) a
       set of software sockets where any author can plug in any storage mech-
       anism.

       There are three main uses for SQL::Statement. One or another (hope-
       fully not all) may be irrelevant for your needs: 1) to access and
       manipulate data in CSV, XML, and other formats 2) to build your own
       DBD for a new data source 3) to parse and examine the structure of SQL
       statements.

INSTALLATION
       There are no prerequisites for using this as a standalone parser.  If
       you want to access persistant stored data, you either need to write a
       subclass or use one of the DBI DBD drivers.  You can install this mod-
       ule using CPAN.pm, CPANPLUS.pm, PPM, apt-get, or other packaging
       tools.  Or you can download the tar.gz file form CPAN and use the
       standard perl mantra

	perl Makefile.PL
	make
	make test
	make install

       It works fine on all platforms it’s been tested on.  On Windows, you
       can use ppm or with the mantra use nmake, dmake, or make depending on
       which is available.

USAGE
       How can I use SQL::Statement to access and modify data?

       SQL::Statement provides the SQL engine for a number of existing DBI
       drivers including DBD::CSV, DBD::DBM, DBD::AnyData, DBD::Excel,
       DBD::Amazon, and others.

       These modules provide access to Comma Separated Values, Fixed Length,
       XML, HTML and many other kinds of text files, to Excel Spreadsheets,
       to BerkeleyDB and other DBM formats, and to non-traditional data
       sources like on-the-fly Amazon searches.

       If your interest is in actually accessing and manipulating persistent
       data, you don’t really want to use SQL::Statement directly.  Instead,
       use DBI along with one of the DBDs mentioned above.  You’ll be using
       SQL::Statement, but under the hood of the DBD.	See
       <http://dbi.perl.org> for help with DBI and see SQL::Statement::Syntax
       for a description of the SQL syntax that SQL::Statement provides for
       these modules and see the documentation for whichever DBD you are
       using for additional details.

       How can I use it to parse and examine the structure of SQL statements?

       SQL::Statement can be used stand-alone (without a subclass, without
       DBI) to parse and examine the structure of SQL statements.  See
       SQL::Statement::Structure for details.

       How can I use it to embed a SQL engine in a DBD or other module?

       SQL::Statement is designed to be easily embedded in other modules and
       is especially suited for developing new DBI drivers (DBDs).  See
       SQL::Statement::Embed.

       What SQL Syntax is supported?

       SQL::Statement supports a small but powerful subset of SQL commands.
       See SQL::Statement::Syntax.

       How can I extend the supported SQL syntax?

       You can modify and extend the SQL syntax either by issuing SQL com-
       mands or by subclassing SQL::Statement.	See SQL::Statement::Syntax.

How can I participate in ongoing development?
       SQL::Statement is a large module with many potential future direc-
       tions.  You are invited to help plan, code, test, document, or kibbitz
       about these directions.	A sourceforge site will be available soon.
       If you want to join the development team, or just hear more about the
       development, write Jeff a note (<jzuckerATcpan.org>.

Where can I go for more help?
       For questions about installation or usage, please ask on the
       dbi-users@perl.org mailing list or post a question on PerlMonks
       (<http://www.perlmonks.org/>, where Jeff is known as jZed).  If you
       have a bug report, a patch, a suggestion, write Jeff at the email
       shown below.

ACKNOWLEDGEMENTS
       Jochen Wiedmann created the original module as an XS (C) extension in
       1998. Jeff Zucker took over the maintenance in 2001 and rewrote all of
       the C portions in perl and began extending the SQL support.  More
       recently Ilya Sterin provided help with SQL::Parser, Tim Bunce pro-
       vided both general and specific support, Dan Wright and Dean Arnold
       have contributed extensively to the code, and dozens of people from
       around the world have submitted patches, bug reports, and suggestions.
       Thanks to all!

       If you’re interested in helping develop SQL::Statement or want to use
       it with your own modules, feel free to contact Jeff.

BUGS AND LIMITATIONS
       ·   currently we treat NULL and ’’ as the same - eventually fix

       ·   No nested C-style comments allowed as SQL99 says

AUTHOR AND COPYRIGHT
       Copyright (c) 2001,2005 by Jeff Zucker: jzuckerATcpan.org

       Portions Copyright (C) 1998 by Jochen Wiedmann: jwiedATcpan.org

       All rights reserved.

       You may distribute this module under the terms of either the GNU Gen-
       eral Public License or the Artistic License, as specified in the Perl
       README file.



perl v5.8.8			  2009-03-05		    SQL::Statement(3)