MySQLとPostgreSQLコマンド比較表

機能MySQLPostgreSQL
起動$ 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;
SQLファイル実行\.\i
SQLダンプmysqldumppg_dump
TSVダンプmysqldump -u USER –password=PASS DATABASE_NAME TABLE_NAME -T /tmp???
TSVインポートLOAD DATA LOCAL INFILE ‘$FILE_NAME’ REPLACE INTO TABLE $TABLE_NAME IGNORE 1 LINES;copy table_name from ‘/absolute_path/to/data.tsv’ ( delimiter ‘ ‘, format csv, header true ); ※1
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
接続を確認show processlist;select * from pg_stat_activity;
連番IDカラム名 int auto_incrementカラム名 serial
今日の日付curdate()current_date
現在時刻now()now()
ヘルプ\h または \?\?
設定ファイル~/.my.cnf~/.psqlrc
目次


UPDATE文で更新

eventsテーブルのserviceカラムを更新しました。

PostgreSQLMySQL
UPDATEupdate events set service = ‘pugiemonn’ where id = 112;UPDATE events SET service = ‘pugiemonn’ WHERE id = 112;

PostgreSQLのほうは文字列を'(シングルクオート)で囲うと動いたものの、"(ダブルクオート)で囲うと動かない。

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 = 'table_name'
ORDER  BY table_name
          ,ordinal_position;
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる