Sign up ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

If I go to mysql shell and type SELECT * FROM users I get -

|    137 | X              |                        | #        | ADMIN     |                166 |                110 |
|    138 | Kshitiz        |                 | asdf     | ADMIN     |                167 |                111 |

Oracle sqlplus shows -

---------- ----- ---------- ---------- ---------- ------------------ ------------------
137        X   #          ADMIN                     166                110
137        X   #          ADMIN                     166                110

Sqlite shell shows -

  1. Is there a way to beautify the output from sqlite shell?
  2. Is there an alternative shell that is more functional than default distribution? (CLI clients only)
share|improve this question
re 2: you might try henplus or SQL Workbench/J. Both are Java/JDBC based and should work with SQLite. – a_horse_with_no_name Apr 23 '13 at 7:16

2 Answers 2

up vote 9 down vote accepted

For "human readable" output, you can use column mode, and turn header output on. That will get you something similar to the sqlplus output in your examples:

sqlite> select * from foo;
sqlite> .mode column
sqlite> select * from foo;
234         kshitiz
sqlite> .headers on
sqlite> select * from foo;
bar         baz         baf
----------  ----------  ----------
234         kshitiz
share|improve this answer
Beautiful, thanks! The content did not fit (horizontally), and there doesn't seem to be a built-in pager, so I had to use echo -e '.mode column\n.headers on\nselect * from sip_foo;\n' | sqlite3 database.sqlite | less -S to get one row per line without word-wrap. – Rob W Aug 7 at 15:32
Note, however, that you may need to use the .width command to make you columns wider. Else your content will be truncated visually. – mlissner Sep 25 at 23:30

As I can't comment yet... In addition to the great answers already provided by Mat and mlissner, if in any case the content of a column is truncated, after giving the right format to the sqlite shell (using .mode column and .headers on as stated above), there is also the possibility to use .explain so the full content of a column is shown.

The only downside to this command is that the columns headers shrink, thus not reading them properly and the output can be quite messy (in a visual scenario), then you can use .explain off to return to the previous format and view it with a more "human readable" format once more.

This approach can be used in conjunction with output formatters commands, and as a temporary solution to view full data of a database/column, as with the use of .width you always have to give the precise number of characters in order to get the full output of a column's data.

For more info on changing output formats, a quick reference to the default CLI documentation:

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.