PostgreSQLメモ

データベース作成

PostgreSQLのスーパーユーザー(サーバーのスーパーユーザーではない)は、postgresなので、新たなユーザーやデータベースを作るときには、postgresになる。

% sudo su
% su postgres
% exit (rootに戻るとき)
% exit (元のユーザーに戻るとき)

自分のログインアカウント(仮にhogehogeとする)をPostgreSQLのユーザーとして加えたい場合は以下のようにする。

% sudo su
% su postgres
% createuser hogehoge
(スーパーユーザー権限、データベース作成権限、ロール作成権限について聞かれる。)
% exit (rootに戻るとき)
% exit (元のユーザーに戻るとき)

Railsプロジェクトからアクセスするためのユーザーとデータベースを作成する。

  • ユーザー名: hogehoge_rails
  • ログインパスワード: 12345
  • データベース名: hogehoge_rails_db

コマンドは以下のとおり。

% sudo su
% su postgres
% createdb --encoding="utf-8" -T template0 hogehoge_rails_db
% psql hogehoge_rails_db
> \l (データベースの一覧を確認)
> CREATE ROLE hogehoge_rails WITH LOGIN PASSWORD '12345';
> GRANT ALL ON DATABASE hogehoge_rails_db to "hogehoge_rails";
> \q (psqlの終了)
% exit
% exit

そのユーザーでデータベースを操作する場合。

% psql --username=hogehoge_rails -h localhost hogehoge_rails_db

SQL

  • UPDATE
> UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';
  • カラムの削除
> ALTER TABLE テーブル名 DROP COLUMN カラム名;
  • NOT NULLの削除・追加
> ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL;
> ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET NOT NULL;
  • defaultの削除
> ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP DEFAULT;

バックスラッシュコマンド

開始

% psql データベース名
  • データベース一覧表示: \l
  • テーブル一覧表示: \d
  • テーブル表示: \d テーブル名
  • psql終了: \q