gda-sql

The gda-sql tool is an interactive command line tool to run SQL commands and work with dictionaries. This tool has got several options, use the --help option to list them all, or consult the man page (man gda-sql)

For example to list the installed providers, do:

[prompt]> gda-sql -L
                                     Installed providers list
Provider       | Description                                                                        
---------------+------------------------------------------------------------------------------------
Berkeley-DB    | Provider for Berkeley databases                                                    
Firebird       | Provider for Firebird databases                                                    
FirebirdEmbed  | Provider for embedded Firebird databases                                           
Ldap           | Provider for database where tables are based on data contained in an LDAP directory
MSAccess       | Provider for Microsoft Access files
[...]
	

To list the configured data sources (DSN):

[prompt]> gda-sql -l
                                                    List of defined data sources
DSN       | Provider | Description                          | Connection string            | Username | Global
----------+----------+--------------------------------------+------------------------------+----------+-------
SalesTest | SQLite   | Test database for a sales department | DB_DIR=/adir;DB_NAME=data.db |          | FALSE
[...]
	

To run an interactive session, just specify a DSN or a connection string using the "<provider>://<connection string>" format (such as for example "Firebird://DATABASE=/path/to/dbfile.fdb"), or set the GDA_SQL_CNC environment variable to contain that string, and run the command without any argument, for example:

[prompt]> gda-sql PostgreSQL://DB_NAME=sales
Welcome to the GDA SQL console, version 3.99.3

Type: .copyright to show usage and distribution terms
      .? for help with internal commands
      .q (or CTRL-D) to quit
      (the '.' can be replaced by a '\')
      or any query terminated by a semicolon

Opening connection 'c0' for: PostgreSQL://DB_NAME=sales
        Getting database schema information, this may take some time... Done.
c0>
	

Note that the "c0" is the prompt for the first opened connection.

Several connections can be opened at once (with only one "active" at any given time), by specifying all of them on the command line, or by using the \c and \close to manage (open, change, close) the connections; the prompt contains the name of the current connection used. The following example opens two connections, one for the "pgsales" DSN, and one for the "PostgreSQL://DB_NAME=sales" connection string, and shows the usage of the ".c" command to list the opened connections:

[prompt]> gda-sql-5.0 pgsales PostgreSQL://DB_NAME=sales
Welcome to the GDA SQL console, version 3.99.3

Type: .copyright to show usage and distribution terms
      .? for help with internal commands
      .q (or CTRL-D) to quit
      (the '.' can be replaced by a '\')
      or any query terminated by a semicolon

Opening connection 'pgsales' for: pgsales
Opening connection 'c1' for: PostgreSQL://DB_NAME=sales
        Getting database schema information, this may take some time... Done.
c1> .c
             List of opened connections
Name    | Provider   | DSN or connection string | Username
--------+------------+--------------------------+---------
pgsales | PostgreSQL | pgsales                  |         
c1      | PostgreSQL | DB_NAME=sales            |         
(2 rows)

c1>
	

Here is another sample session showing how to use variables in statements:

[prompt]> gda-sql-5.0 -p SQLite -c "DB_DIR=.;DB_NAME=sales_test"
Welcome to the GDA SQL console, version 3.1.2

Type: \copyright to show usage and distribution terms
      \? for help with internal commands
      \q (or CTRL-D) to quit
      or any query terminated by a semicolon

c0> select * from customers;
id | name            | default_served_by | country | city
---+-----------------+-------------------+---------+-----
 2 | Ed Lamton       |                 4 | SP      | MDR 
 3 | Lew Bonito      |                 1 | FR      | TLS 
 4 | Mark Lawrencep  |              NULL | SP      | MDR 
 9 | Greg Popoff     |                 2 | SP      | MDR 
10 | Vladimir Zirkov |                 4 | NULL    | NULL
c0> \set the_id 9
c0> select * from customers where id= ##the_id;
id | name        | default_served_by | country | city
---+-------------+-------------------+---------+-----
 9 | Greg Popoff |                 2 | SP      | MDR 
c0> 
	

See the Gda SQL console tool manual section for more information.