LoginSignup
462

posted at

updated at

Organization

MySQLとPostgreSQLコマンド比較表

機能 MySQL PostgreSQL
起動 $ mysql -p -h ホスト名 -P ポート番号 -u ユーザ名 DB名 $ psql -h ホスト名 -p ポート番号 -U ユーザ名 DB名
データベース一覧 show databases; \l
データベース切替 use DB名
\u DB名
\c DB名
テーブル一覧 show tables; \d、\dt、\d+、\dt+
テーブル定義確認 desc テーブル名; \d テーブル名
テーブルCREATE文確認 show create table テーブル名 pg_dump DB名 -U ユーザ名 -s -t テーブル名
インデックス一覧 SHOW INDEX FROM tbl_name; \d table_name
行表示の切り替え select * from t \G \x
select * from t;
※mysql同様、1回のクエリだけ\xしたい場合は
select * from t \gx
psql 9以前の場合はこちら
SQLファイル実行 \. \i
SQLダンプ mysqldump pg_dump
TSVダンプ mysqldump -u USER --password=PASS DATABASE_NAME TABLE_NAME -T /tmp \copy テーブル名 to 'data.tsv' csv delimiter E'\t' header;
または
\copy (select * from テーブル名) to 'data.tsv' csv delimiter E'\t' header;
TSVインポート LOAD DATA LOCAL INFILE ファイル名 REPLACE INTO TABLE テーブル名 IGNORE 1 LINES; copy テーブル名 from '/absolute_path/to/data.tsv' ( delimiter E'\t', format csv, header true );
SQL時間計測 デフォルトで表示される \timing on
ログ出力開始 \T log.txt \o log.txt
ログ出力終了 \t \o
定義をコピーしてテーブル作成 create table t2 like t1; create table t2 (like t1);
実行計画 SQLの先頭にEXPLAINをつける SQLの先頭にEXPLAINをつける
接続先サーバ確認 \s \conninfo
SELECT version();
接続を確認 show processlist; select * from pg_stat_activity;
連番ID カラム名 int auto_increment カラム名 serial
今日の日付 curdate() current_date
現在時刻 now() now()
ヘルプ \h または \? \h または \? (内容が異なる)
設定ファイル ~/.my.cnf ~/.psqlrc

information_schemaは両方に共通

information_schemaはSQL標準なので、どちらでも同じSQLが使える。

テーブル一覧を表示

SELECT table_catalog
       ,table_schema
       ,table_name
       ,table_type
FROM   information_schema.tables;

カラム一覧を表示

SELECT table_schema
       ,table_name
       ,column_name
       ,data_type
       ,character_maximum_length
       ,numeric_precision
       ,column_default
FROM   information_schema.columns
WHERE  table_name = 't1'
ORDER  BY table_name
          ,ordinal_position;

デフォルト接続先

PostgreSQL:環境変数で設定

export PGDATABASE=DB名
export PGHOST=ホスト
export PGPORT=ポート番号
export PGUSER=ユーザー名
export PGPASSWORD=パスワード

パスワードは~/.pgpassでも設定できる。

MySQL:~/.my.cnfで設定

[client]
database=DB名
user=ユーザー名
password=パスワード

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
462