LoginSignup
1
3

More than 5 years have passed since last update.

MySQL と PostgreSQL の記法が地味にややこしいので整理する

Posted at

概要

MySQLに触れた経験はあるものの、仕事ではPostgreSQLを使用していたので、
久しぶりにMySQLを使うとどっちゃねんややこしいなあ〜ってなったのでまとめまーす。

よく使うものだけに絞ってまとめていくので、サーバー起動とかユーザー登録とかは避けまーす。

データベースへのアクセス

MySQL

$ mysql -u ユーザー名
(mysql> USE データベース名;)⇦データベースを指定した場合、以下のデータベース名.テーブル名のデータベース名は不要

PostgreSQL

$ psql -U ユーザー名 -d データベース名

DB一覧

MySQL

mysql> SHOW DATABASES;

PostgreSQL

$ psql -l -U ユーザー名

テーブル一覧

MySQL

mysql> SHOW TABLES FROM データベース名;

PostgreSQL

データベース名> \dt

テーブルカラム一覧

MySQL

mysql> SHOW COLUMNS FROM データベース名.テーブル名;
または
mysql> DESCRIBE データベース名.テーブル名;

PostgreSQL

テーブル名 > \d テーブル名

テーブル作成

MySQL

mysql> CREATE TABLE データベース名.テーブル名 (カラム名1 カラム型1, カラム名2 カラム型2, ,,, );

PostgreSQL

データベース名> CREATE TABLE テーブル名 (カラム名1 カラム型1, カラム名2 カラム型2, ,,, );

テーブル変更

MySQL

mysql> ALTER TABLE データベース名.テーブル名 ADD [COLUMN] カラム名;

PostgreSQL

データベース名> ALTER TABLE テーブル名 ADD [COLUMN] カラム名;

テーブル削除

MySQL

mysql> DROP TABLE データベース名.テーブル名;

PostgreSQL

データベース名> DROP TABLE テーブル名;

行追加

MySQL

mysql> INSERT INTO データベース名.テーブル名 (カラム名1, カラム名2, ...) VALUES (要素1, 要素2, ...);

PostgreSQL

データベース名> INSERT INTO テーブル名 (カラム名1, カラム名2, ...) VALUES (要素1, 要素2, ...);

行検索

MySQL

mysql> SELECT * FROM データベース名.テーブル名 WHERE 条件1 AND 条件2 AND ... ;

PostgreSQL

データベース名> SELECT * FROM テーブル名 WHERE 条件1 AND 条件2 AND ... ;

行指定変更

MySQL

mysql> UPDATE データベース名.テーブル名 SET 変更するカラム名 = 変更後の数値等 WHERE 条件1 AND 条件2 AND ... ;

PostgreSQL

データベース名> UPDATE テーブル名 SET 変更するカラム名 = 変更後の数値等 WHERE 条件1 AND 条件2 AND ... ;

行削除

MySQL

mysql> DELETE FROM データベース名.テーブル名 WHERE 条件1 AND 条件2 AND ... ; 

PostgreSQL

DELETE FROM テーブル名 WHERE 条件1 AND 条件2 AND ... ; 

まとめ

よく使うのはこんなもんでしょうか。
一覧表示するときと、データベースへのアクセスだけ違う感じで、それ以外はほぼ一緒なんですね〜。
ではでは。

1
3
0

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
  3. You can use dark theme
What you can do with signing up
1
3