Manpages

NAME

mdb-sql - SQL interface to MDB Tools

SYNOPSIS

mdb-sql [-HFp] [-d char] [-i file] [-o file] [database]
mdb-sql -h
|--help
mdb-sql --version

DESCRIPTION

mdb-sql is a utility program distributed with MDB Tools.

mdb-sql allows querying of an MDB database using a limited SQL subset language.

OPTIONS

-H, --no-header

Suppress header row.

-F, --no-footer

Suppress footer row.

-p, --no-pretty-print

Turn off pretty printing. By default results are printed in an ascii table format which looks nice but is not conducive to manipulating the output with unix tools. This option prints output plainly in a tab separated format.

-d, --delimiter char

Specify an alternative column delimiter. If no delimiter is specified, columns will be delimited by a tab character if pretty printing (-p) is turned off. If pretty printing is enabled this option is meaningless.

-i, --input file

Specify an input file. This option allows an input file containing the SQL to be passed to mdb-sql. See Notes.

-o, --output file

Specify an output file. This option allows the name of an output file to be used instead of stdout.

--version

Print the mdbtools version and exit.

COMMANDS

mdb-sql in interactive mode takes some special commands.
connect to
database

If no database was specified on the command line this command is necessary before any querys are issued. It also allows the switching of databases once in the tool.

disconnect

Will disconnect from the current database.

go

Each batch is sent to the parser using the ’go’ command.

reset

A batch can be cleared using the ’reset’ command.

list tables

The list tables command will display a list of available tables in this database, similar to the mdb-tables utility on the command line.

describe table <table>

Will display the column information for the specified table.

quit

Will exit the tool.

SQL LANGUAGE

The currently implemented SQL subset is quite small, supporting only single table queries, no aggregates, and limited support for WHERE clauses. Here is a brief synopsis of the supported language.
select:

SELECT <top clause> [* | <column list>] FROM <table> WHERE <where clause> <limit clause>

top clause:

TOP <integer> [ PERCENT ]

column list:

<column> [, <column list>]

where clause: <column> <operator> <literal> [AND <where clause>]

limit clause: LIMIT <integer>
operator:

=, =>, =<, <>, like, ilike, <, >

literal:

integers, floating point numbers, or string literal in single quotes

NOTES

When passing a file (-i) or piping output to mdb-sql the final ’go’ is optional. This allow constructs like

echo "Select * from Table1" | mdb-sql mydb.mdb

to work correctly.

The -i command can be passed the string ’stdin’ to test entering text as if using a pipe.

The ’like’ operator performs a case-sensitive pattern match, with ANSI-style wildcards. An underscore in the pattern will match any single character, and a percent sign will match any run of characters.

The ’ilike’ operator is similar, but performs a case-insensitive pattern match.

ENVIRONMENT

LC_COLLATE

Defines the locale for string-comparison operations. See locale(1).

MDB_JET3_CHARSET

Defines the charset of the input JET3 (access 97) file. Default is CP1252. See iconv(1).

MDBICONV

Defines the output charset. Default is UTF-8. mdbtools must have been compiled with iconv.

MDBOPTS

Colon-separated list of options:

debug_like

debug_write

debug_usage

debug_ole

debug_row

debug_props

debug_all is a shortcut for all debug_* options

no_memo (deprecated; has no effect)

use_index (experimental; requires libmswstr)

HISTORY

mdb-sql first appeared in MDB Tools 0.3.

SEE ALSO

mdb-array(1) mdb-count(1) mdb-export(1) mdb-header(1) mdb-hexdump(1) mdb-import(1) mdb-json(1) mdb-parsecsv(1) mdb-prop(1) mdb-queries(1) mdb-schema(1) mdb-tables(1) mdb-ver(1) isql(1)

AUTHORS

The mdb-sql utility was written by Brian Bruns.

BUGS

The supported SQL syntax is a very limited subset and deficient in several ways.