1SQL::Statement(3) User Contributed Perl Documentation SQL::Statement(3)
2
3
4
6 SQL::Statement - SQL parsing and processing engine
7
9 # ... depends on what you want to do, see below
10
12 The SQL::Statement module implements a pure Perl SQL parsing and execu‐
13 tion engine. While it by no means implements full ANSI standard, it
14 does support many features including column and table aliases, built-in
15 and user-defined functions, implicit and explicit joins, complexly
16 nested search conditions, and other features.
17
18 SQL::Statement is a small embeddable Database Management System (DBMS),
19 This means that it provides all of the services of a simple DBMS except
20 that instead of a persistant storage mechanism, it has two things: 1)
21 an in-memory storage mechanism that allows you to prepare, execute, and
22 fetch from SQL statements using temporary tables and 2) a set of soft‐
23 ware sockets where any author can plug in any storage mechanism.
24
25 There are three main uses for SQL::Statement. One or another (hopefully
26 not all) may be irrelevant for your needs: 1) to access and manipulate
27 data in CSV, XML, and other formats 2) to build your own DBD for a new
28 data source 3) to parse and examine the structure of SQL statements.
29
31 There are no prerequisites for using this as a standalone parser. If
32 you want to access persistant stored data, you either need to write a
33 subclass or use one of the DBI DBD drivers. You can install this mod‐
34 ule using CPAN.pm, CPANPLUS.pm, PPM, apt-get, or other packaging tools.
35 Or you can download the tar.gz file form CPAN and use the standard perl
36 mantra
37
38 perl Makefile.PL
39 make
40 make test
41 make install
42
43 It works fine on all platforms it's been tested on. On Windows, you
44 can use ppm or with the mantra use nmake, dmake, or make depending on
45 which is available.
46
48 How can I use SQL::Statement to access and modify data?
49
50 SQL::Statement provides the SQL engine for a number of existing DBI
51 drivers including DBD::CSV, DBD::DBM, DBD::AnyData, DBD::Excel,
52 DBD::Amazon, and others.
53
54 These modules provide access to Comma Separated Values, Fixed Length,
55 XML, HTML and many other kinds of text files, to Excel Spreadsheets, to
56 BerkeleyDB and other DBM formats, and to non-traditional data sources
57 like on-the-fly Amazon searches.
58
59 If your interest is in actually accessing and manipulating persistent
60 data, you don't really want to use SQL::Statement directly. Instead,
61 use DBI along with one of the DBDs mentioned above. You'll be using
62 SQL::Statement, but under the hood of the DBD. See
63 <http://dbi.perl.org> for help with DBI and see SQL::Statement::Syntax
64 for a description of the SQL syntax that SQL::Statement provides for
65 these modules and see the documentation for whichever DBD you are using
66 for additional details.
67
68 How can I use it to parse and examine the structure of SQL statements?
69
70 SQL::Statement can be used stand-alone (without a subclass, without
71 DBI) to parse and examine the structure of SQL statements. See
72 SQL::Statement::Structure for details.
73
74 How can I use it to embed a SQL engine in a DBD or other module?
75
76 SQL::Statement is designed to be easily embedded in other modules and
77 is especially suited for developing new DBI drivers (DBDs). See
78 SQL::Statement::Embed.
79
80 What SQL Syntax is supported?
81
82 SQL::Statement supports a small but powerful subset of SQL commands.
83 See SQL::Statement::Syntax.
84
85 How can I extend the supported SQL syntax?
86
87 You can modify and extend the SQL syntax either by issuing SQL commands
88 or by subclassing SQL::Statement. See SQL::Statement::Syntax.
89
91 SQL::Statement is a large module with many potential future directions.
92 You are invited to help plan, code, test, document, or kibbitz about
93 these directions. A sourceforge site will be available soon. If you
94 want to join the development team, or just hear more about the develop‐
95 ment, write Jeff a note (<jzuckerATcpan.org>.
96
98 For questions about installation or usage, please ask on the
99 dbi-users@perl.org mailing list or post a question on PerlMonks
100 (<http://www.perlmonks.org/>, where Jeff is known as jZed). If you
101 have a bug report, a patch, a suggestion, write Jeff at the email shown
102 below.
103
105 Jochen Wiedmann created the original module as an XS (C) extension in
106 1998. Jeff Zucker took over the maintenance in 2001 and rewrote all of
107 the C portions in perl and began extending the SQL support. More
108 recently Ilya Sterin provided help with SQL::Parser, Tim Bunce provided
109 both general and specific support, Dan Wright and Dean Arnold have con‐
110 tributed extensively to the code, and dozens of people from around the
111 world have submitted patches, bug reports, and suggestions. Thanks to
112 all!
113
114 If you're interested in helping develop SQL::Statement or want to use
115 it with your own modules, feel free to contact Jeff.
116
118 Copyright (c) 2001,2005 by Jeff Zucker: jzuckerATcpan.org
119
120 Portions Copyright (C) 1998 by Jochen Wiedmann: jwiedATcpan.org
121
122 All rights reserved.
123
124 You may distribute this module under the terms of either the GNU Gen‐
125 eral Public License or the Artistic License, as specified in the Perl
126 README file.
127
128
129
130perl v5.8.8 2005-04-18 SQL::Statement(3)