---
name: "mdb-sql"
section: "1"
platform: "linux"
package: "mdbtools"
version: "1.0.1-0.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mdb-sql"
---

# mdb-sql(1)

SQL interface to MDB Tools

## 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)](/locale/1.md).**

- **MDB\_JET3\_CHARSET**

  **Defines the charset of the input JET3 (access 97)** *file***. Default is CP1252. See [iconv(1)](/iconv/1.md).**

- **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-array/1.md) [mdb-count(1)](/mdb-count/1.md) [mdb-export(1)](/mdb-export/1.md) [mdb-header(1)](/mdb-header/1.md) [mdb-hexdump(1)](/mdb-hexdump/1.md)** **[mdb-import(1)](/mdb-import/1.md) [mdb-json(1)](/mdb-json/1.md) [mdb-parsecsv(1)](/mdb-parsecsv/1.md) [mdb-prop(1)](/mdb-prop/1.md) [mdb-queries(1)](/mdb-queries/1.md)** **[mdb-schema(1)](/mdb-schema/1.md) [mdb-tables(1)](/mdb-tables/1.md) [mdb-ver(1)](/mdb-ver/1.md)** **[isql(1)](/isql/1.md)**

## 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.**
