RyoGIFT | Web developer blog

Web開発者のブログです。

PostgreSQLの基本操作の備忘録

よく忘れるので、改めてPostgreSQLの基本操作をまとめることにしました。ノートにメモっても、どこに記載したかが分からなくなるのでブログに投稿しておくことにします。

PostgreSQLとは

PostgreSQLは、カリフォルニア大学バークレイ校のコンピュータサイエンス学科で開発されたPOSTGRES, Version 4.2をベースにしたオブジェクトリレーショナルデータベース管理システム(ORDBMS)です。

引用元: 1. PostgreSQLとは?

psqlとは

PostgreSQL対話式端末プログラムのことです。

PostgreSQLのバージョン確認

psqlコマンドで確認する。

$ psql --version
psql (PostgreSQL) 11.5

SQLで確認する。

example=# SELECT version();
                                                    version
------------------------------------------------------------------------------------------------------------------
PostgreSQL 11.5 on x86_64-apple-darwin19.0.0, compiled by Apple clang version 11.0.0 (clang-1100.0.33.8), 64-bit
(1 row)
データベースの作成
$ createdb sample
$ psql -l
                                          List of databases
              Name               |   Owner   | Encoding |   Collate   |    Ctype    | Access privileges
---------------------------------+-----------+----------+-------------+-------------+-------------------
postgres                         | xxx       | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
sample                           | xxx       | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
template0                        | xxx       | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/xxx           +
                                 |           |          |             |             | xxx=CTc/xxx
template1                        | xxx       | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/xxx           +
                                 |           |          |             |             | xxx=CTc/xxx
(10 rows)
データベースの削除
$ dropdb sample
$ psql -l
                                          List of databases
              Name               |   Owner   | Encoding |   Collate   |    Ctype    | Access privileges
---------------------------------+-----------+----------+-------------+-------------+-------------------
postgres                         | xxx       | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
template0                        | xxx       | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/xxx           +
                                 |           |          |             |             | xxx=CTc/xxx
template1                        | xxx       | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/xxx           +
                                 |           |          |             |             | xxx=CTc/xxx
(9 rows)
テーブルの作成(インクリメント付き)
sample=# CREATE SEQUENCE accounts_id_seq
    INCREMENT 1
    START 1
    MINVALUE 1
    MAXVALUE 9223372036854775807
    CACHE 1;
CREATE SEQUENCE

sample=# CREATE TABLE accounts
(
    id bigint NOT NULL DEFAULT nextval('accounts_id_seq'::regclass),
    code character varying,
    name text,
    created_at timestamp(6) without time zone NOT NULL,
    updated_at timestamp(6) without time zone NOT NULL,
    CONSTRAINT accounts_pkey PRIMARY KEY (id)
);
CREATE TABLE
データの追加
sample=# INSERT INTO accounts (code, name, created_at, updated_at) VALUES ('nakamura', '中村', '2020-04-27 08:00:00', '2020-04-27 08:00:00');
INSERT 0 1
データの参照
sample=# SELECT * FROM accounts;
id  |   code   | name |     created_at      |     updated_at
----+----------+------+---------------------+---------------------
  1 | nakamura | 中村 | 2020-04-27 08:00:00 | 2020-04-27 08:00:00
(1 row)
データの更新
sample=# UPDATE accounts SET code = 'kimura', name = '木村' WHERE code = 'nakamura';
UPDATE 1
データの削除
sample=# DELETE FROM accounts WHERE code = 'kimura';
DELETE 1
テーブルの削除(インクリメント付き)
sample=# DROP TABLE accounts;
DROP TABLE
sample=# DROP SEQUENCE accounts_id_seq;
DROP SEQUENCE