各データベースでテーブル定義を見る

テーブルのスキーマをたしかめる際は,たいがい CSEphpMyAdminphpPgAdmin を使っています。ですが,コマンドラインで確かめようと思って,あれ〜覚えてない〜困った〜となったので,自分がよく使うデータベースシステムについて調べてみました。

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 と同じように末尾の「;セミコロンがいる。と思う。