6
5

More than 5 years have passed since last update.

PostgreSQL を初めて使ってみる

Last updated at Posted at 2017-12-20

インストール

For mac

$ brew install postgresql

以下のように出力されれば成功

~/M/p/postgres ❯❯❯❯❯  postgres --version
postgres (PostgreSQL) 10.1

For CentOS

For Ubuntu


使ってみる

サーバの起動

$ postgres -D /usr/local/var/postgres

サーバのデーモン起動 & 停止

  • 起動
$ pg_ctl start -D /usr/local/var/postgres
  • 停止
$ pg_ctl stop -D /usr/local/var/postgres

データベースの一覧

$ psql -l

データベースへの接続

$ psql -d database -U user -h host
  • -d: データベース名(未指定の場合、ログインユーザー名のデータベースに接続)
  • -U: ユーザ名(未指定の場合、ログインユーザー名)
  • -h: ホスト名(未指定の場合、localhost)


データベース接続時に使うコマンド

⚠️ psql -d postgres で接続したとする

psqlから抜け出す

postgres=# \q

ユーザー一覧の表示

postgres=# \du

ユーザーの作成

postgres=# create user <username>
postgres=# CREATE ROLE <ロール名> WITH LOGIN PASSWORD '<パスワード>';

ユーザーにパスワードを持たせる

postgres=# \password <username>
...
Enter new password:
Enter it again:

データベース一覧の表示

postgres=# \l

他のデータベースに接続

postgres=# \c <dbname>

データベースの作成

postgres=# create database <dbname>;

テーブルの作成

以下をpsql内で実行する

CREATE TABLE Staff
(
id    CHAR(4)    NOT NULL,
name   TEXT       NOT NULL,
age    INTEGER    ,
PRIMARY KEY (id)
);
  • MySQLで自動的な連番を格納するカラム(シリアル)を作りたいとき、AUTO_INCREMENTを対象カラムに設定する。 PostgreSQLでは、設定やオプションではなくserial型としてデータ型が準備されている。

以下のように書く

create table sample (
  id SERIAL,
  valeu integer
) ;

もしくはこれを.sqlファイルにかき、ファイルからコマンドを実行できる。
また、ファイルを作成し、creatdbというコマンドがあるのでそれでもいいと思われる
createdbについては以下に詳細をかく

テーブル一覧の表示

postgres=# \z

テーブル定義の表示

postgres=# \d <tablename>

ファイルからコマンド実行

postgres=# \i filename.sql

権限付与

postgres=# GRANT 権限名 ON DATABASE データベース名 TO ユーザ名;

postgres=# GRANT <権限の種類> ON <テーブル名> TO <ロール名>;

postgres=# GRANT 権限名 ON スキーマ名.テーブル名 TO ユーザ名;

履歴の表示

postgres=# \s


テーブル操作一覧

テーブル内のデータ一覧

select * from <tablename>;

指定したカラムの内容を小さい順に表示

select * from <tablename> order by <column>;

指定したカラムの内容を大きい順に表示

select * from <tablename> order by <column> desc;

表示数指定

select * from <tablename> limit <num>;

表示の開始位置指定

select * from <tablename> offset <num>;

データ更新

update <tablename> set <contents of update>;

カラムの追加

alter table <tablename> add <columnname> <datatype>;

カラムの削除

alter table <tablename> drop <columnname>;

カラムの型変更

alter table <tablename> alter column <columnname> type <datatype>

カラムの変更

alter table テーブル名 rename <old_column_name> to <new_column_name>;


createdb

createdbは、新しいPostgreSQLデータベースを作成できる

通常、このコマンドを実行したデータベースユーザが、新しいデータベースの所有者になる。 ただ、コマンドを実行するユーザが適切な権限を持っている場合、-Oオプションを使用して別のユーザを所有者に指定することができる。

createdbはCREATE DATABASEというSQLコマンドのラッパです。 したがって、このユーティリティでデータベースを作成しても、これ以外の方法でサーバにアクセスしてデータベースを作成しても何も違いはない。

オプション

dbname

  • 作成するデータベースの名前を指定します。 この名前はクラスタ内の全てのPostgreSQLデータベースの中で一意でなければならない

-O owner

  • 新しいデータベースの所有者となるデータベースユーザを指定する

以上以外のオプションが知りたい場合は以下を参照してください

https://www.postgresql.jp/document/9.4/html/app-createdb.html


リファレンス

6
5
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
6
5