こんにちは,ちゆりです。
僕は普段MySQLでDBをゴリゴリ操作していく,いわゆる"マイエスキューエラー"なんですけど(完全に造語)...訳あってシステムをPostgreSQLで走らせることになった。
DBの操作なんて同じSQLを扱って操作するんだから 基本みんな一緒でしょって余裕をかましていたら全然動かない!!
と,いうわけで今回は自分の備忘録的な要素強めでMySQLとPostgreSQLの基本的なコマンドをまとめておきます。
目次
MySQLとPostgreSQLの比較
ログイン
MySQL
$ mysql -u <ユーザー名> -p #Enter後Password入力
$ mysql -u root #root権限でログイン
$ mysql -h xxx.xxx.xxx.xxx -u <ユーザー名> -p #リモートで(IPアドレス)接続
PostgreSQL
$ psql -d <DB名> #DB指定でログイン
$ psql -U <ユーザー名> #ユーザー指定でログイン
$ psql -h <ホスト名> #ホスト名でログイン
#もちろん組み合わせて書ける
$ psql -h ホスト名 -p ポート番号 -U ユーザ名 DB名
DB・テーブル操作
MySQLとPostgreSQLの比較
ログイン後はDBを操作していきましょう。
わかっていると思いますが「DB名」とは「データベース名(任意)」です。バカにしてすみません。。
MySQL | PostgreSQL | |
DB一覧 | show databases; | \l |
DB作成 | create database DB名 | createdb DB名 |
DB切り替え | use DB名 | \c DB名 |
テーブル一覧 | show tables; | \d |
テーブルカラム一覧 | DESC table_name; | \d テーブル名 |
DB削除 | drop database DB名; | dropdb DB名 |
ログアウト | exit; | \q または「exit」 |
「\」は「¥」に置き換えても大丈夫です。
PostgreSQLはMySQLに比べ淡白なコマンドで動きますね。
SELECT文での操作
SQLの醍醐味であるSELECT,FROM,WHEREを扱ってDBを操作していきます。
MySQL | PostgreSQL | |
SQL文 | select * from テーブル名 where user = 'tiyuri'; | select * from テーブル名 where user = 'tiyuri'; |
MySQLもPostgreSQLも同じSQL文で動きます。ここの書き方はどのDBも同じようですね。
SQL文の終了コード「;」を忘れずに
ログとして記録を残す
データベースを操作していると何が原因でつまづいているのか,どこまで処理を行ったのかがわからなくなります。(僕だけでしょうか..)
ログを残すといろいろと便利なので少しマニアックではありますが,ログの出力コマンドを最後に書き残しておく。
MySQL | PostgreSQL | |
ログの出力開始 | \T log.txt | \o log.txt |
ログの出力終了 | \t | \o |
log.txtという形式で操作ログが出力されます。
以上MySQLとPostgreSQLの基本操作のまとめでした。
本当はSQLiteもやりたかったのですが,あまり触れる機会がないので今回はスルーです。また,時間があれば...
コメント