Metadata-Version: 1.0
Name: HTSQL
Version: 2.3.0
Summary: A Database Query Language (core & SQLite backend)
Home-page: http://htsql.org/
Author: Clark C. Evans and Kirill Simonov; Prometheus Research, LLC
Author-email: cce@clarkevans.com, xi@resolvent.net
License: AGPLv3 or Permissive for use with Open Source databases
Description: **************************************
          HTSQL -- A Database Query Language
        **************************************
        
        HTSQL is a comprehensive navigational query language for relational
        databases.  HTSQL is designed for data analysts and other *accidental
        programmers* who have complex business inquiries to solve and need a
        productive tool to write and share database queries.  HTSQL is *free
        and open source* software.  For more detail, visit http://htsql.org/.
        
        This package provides HTSQL core and *SQLite* backend.
        
        
        Installation Instructions
        =========================
        
        To install HTSQL using ``pip`` package manager, run::
        
            # pip install HTSQL
        
        HTSQL works out of the box with SQLite databases.  To run HTSQL
        on top of other database servers, you need to install additional
        database backends.
        
        To install a PostgreSQL backend, run::
        
            # pip install HTSQL-PGSQL
        
        To install a MySQL backend, run::
        
            # pip install HTSQL-MYSQL
        
        To install an Oracle backend, run::
        
            # pip install HTSQL-ORACLE
        
        To install a backend for Microsoft SQL Server, run::
        
            # pip install HTSQL-MSSQL
        
        Alternatively, you may download binary packages for various
        Linux distributions from http://htsql.org/download/.
        
        
        Quick Start
        ===========
        
        To verify that HTSQL is installed correctly, run::
        
            $ htsql-ctl --version
        
        You can use HTSQL on top of any relational database.  In our examples,
        we use the HTSQL Demo database, which can be downloaded from
        http://dist.htsql.org/misc/htsql_demo.sqlite.
        
        To start a command-line shell where you can type and execute HTSQL
        queries, run::
        
            $ htsql-ctl shell sqlite:htsql_demo.sqlite
            Type 'help' for more information, 'exit' to quit the shell.
        
        The parameter ``sqlite:htsql_demo.sqlite`` is a database connection
        URI, which has the general form::
        
            <engine>://<user>:<pass>@<host>:<port>/<database>
        
        For example, the following are valid connection URI::
        
            sqlite:htsql_demo.sqlite
            pgsql://localhost/htsql_demo
            mysql://root@localhost:3306/htsql_demo
        
        Use option ``--password`` to make ``htsql-ctl`` ask you to type
        the password.
        
        In the shell, you can type and execute HTSQL queries::
        
            htsql_demo$ /school
             | school                                        |
             +-----------------------------------------------+
             | code | name                          | campus |
            -+------+-------------------------------+--------+-
             | art  | School of Art & Design        | old    |
             | bus  | School of Business            | south  |
             | edu  | College of Education          | old    |
            ...
        
        The ``htsql-ctl`` script also provides a built-in web server.  It could
        be started as follows::
        
            $ htsql-ctl serve sqlite:htsql_demo.sqlite
            Starting an HTSQL server on localhost:8080 over htsql_demo.sqlite
        
        You could then access HTSQL using your browser or any other HTTP user
        agent.
        
        For more information on using and configuring HTSQL, see
        http://htsql.org/doc/handbook.html.
        
        
        Using HTSQL from Python
        =======================
        
        Create an HTSQL instance::
        
            >>> from htsql import HTSQL
            >>> demo = HTSQL("sqlite:htsql_demo")
        
        Use the instance to execute HTSQL queries.  For example, to
        find all school records matching the given pattern, write::
        
            >>> query = "/school?name~$pattern"
            >>> for row in demo.produce(query, pattern='art'):
            ...     print row
            ...
            school(code=u'art', name=u'School of Art & Design', campus=u'old')
            school(code=u'la', name=u'School of Arts and Humanities', campus=u'old')
        
        In the next example, for all schools in the old campus, we get the
        number of associated programs and departments::
        
            >>> query = "/school{name, count(program), count(department)}?campus='old'"
            >>> for row in demo.produce(query):
            ...     print "%s: %d programs, %d departments" % row
            ...
            School of Art & Design: 3 programs, 2 departments
            College of Education: 7 programs, 2 departments
            School of Arts and Humanities: 9 programs, 5 departments
            School of Natural Sciences: 6 programs, 4 departments
        
        For detailed instructions on use of HTSQL with Python, see
        http://htsql.org/doc/embed.html.
        
        
        Acknowledgements
        ================
        
        HTSQL is copyright by Prometheus Research, LLC.  HTSQL is written by
        Clark C. Evans <cce@clarkevans.com> and Kirill Simonov <xi@resolvent.net>.
        
        Generous support for HTSQL was provided by the Simons Foundation.
        This material is also based upon work supported by the National
        Science Foundation under Grant #0944460.
        
        
Keywords: sql relational database query language
Platform: Any
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: License :: Free To Use But Restricted
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.5
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: SQL
Classifier: Topic :: Database :: Front-Ends
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
Classifier: Topic :: Software Development :: Libraries
