mdb-sql - SQL interface to MDB Tools
mdb-sql [-HFp] [-d char] [-i file] [-o file] [database]
mdb-sql -h|--help
mdb-sql --version
mdb-sql is a utility program distributed with MDB Tools.
mdb-sql allows querying of an MDB database using a
limited SQL subset language.
- -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.
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.
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
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.
- 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)
mdb-sql first appeared in MDB Tools 0.3.
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)
The mdb-sql utility was written by Brian Bruns.
The supported SQL syntax is a very limited subset and deficient in several ways.