概要
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 ... ;
まとめ
よく使うのはこんなもんでしょうか。
一覧表示するときと、データベースへのアクセスだけ違う感じで、それ以外はほぼ一緒なんですね〜。
ではでは。