各データベースでテーブル定義を見る
テーブルのスキーマをたしかめる際は,たいがい CSE か phpMyAdmin や phpPgAdmin を使っています。ですが,コマンドラインで確かめようと思って,あれ〜覚えてない〜困った〜となったので,自分がよく使うデータベースシステムについて調べてみました。
SQLite | MySQL | PostgreSQL | |
---|---|---|---|
invoke | sqlite3 <db_file> | mysql [-u <user>] [-h <host>] [<db_name>] | psql [-U <user>] [-h <host;>] [<db_name>] |
help | .h(elp) | \? or \h or help; | \h |
quit | .q(uit) | \q | \q |
tables | .tables (?pattern?) | SHOW TABLES; | \dt (?pattern?) |
schema | .schema table_name | DESCRIBE table_name; | \d table_name |
MySQL は長いこと使っていないので間違っていたらご容赦を。
- PostgreSQL でテーブル定義を表示しようと思って \dt <table_name> とやってうまく表示されないのであせった。正解は↑の表の通り \d <table_name>
- PostgreSQL はテーブル一覧を見たいならとりあえず引数なしで \d とやっておけば OK。出力が多すぎで困ったら,\dt(テーブル一覧),\di(インデクス一覧),\dv(ビュー一覧),\ds(シーケンス一覧)で絞るか名称で絞る。
- MySQL はテーブル一覧やテーブル定義は通常の SQL と同じように末尾の「;」セミコロンがいる。と思う。