更新履歴 [2021年01月10日]「PostgreSQL にデータベースとテーブルをコマンドで作成する方法」を更新。
トップページ > 基礎知識 > PostgreSQL にデータベースとテーブルをコマンドで作成する方法
PostgreSQL にデータベースとテーブルをコマンドで作成する方法
ホスティングなどではサーバにインストールされているデータベースを作成したり、その中にあるテーブルを作成・削除する管理画面が用意されていることが多いが、独自に管理するサーバであればコマンド操作でそれらを行う必要があり、今回は PostgreSQL にコマンドでデータベースとテーブルを作成する方法を紹介する。
このページの目次
postgres ユーザに切り替えて postgreSQL を実行する
PostgreSQL をサーバにインストールすると自動的にユーザ「postgres」も作成され、PostgreSQL を実行する際にはユーザ「postgres」に切り替える必要がある。
サーバに root 権限でログインしている状態で下記のコマンドで postgres ユーザに切り替えた後に psql コマンドを実行すると PostgreSQL をコマンドで操作できるようになる。
# su - postgres $ psql パスワード: → postgres を入力
データベースの一覧を確認する
psql コマンドを実行して PostgreSQL を操作できるようになれば、下記のコマンドで現在登録されているデータベースの一覧が表示される。
この一覧にあるデータベースを操作したい場合はデータベース名を指定して、psql コマンドを実行するとテーブル作成やレコードの登録・更新・削除ができるようになる。
postgres=# \l データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権限 -----------+----------+------------------+-------------+-------------------+----------------------- postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 行)
PostgreSQL にデータベースを作成する
まだ PostgreSQL にデータベースを作成していない場合は、下記のコマンドでデータベースを作成することができる。
今回はデータベース名を「db_001」として新規登録する。
postgres=# CREATE DATABASE db_001; CREATE DATABASE
データベースが問題無く作成されると「CREATE DATABASE」が画面に表示される。
次いで、作成したデータベースを操作する場合は一度、psql を終了させるため次のコマンドを実行する。
postgres=# \q
作成したデータベースに接続する
上記で作成したデータベース「db_001」を操作するためには次のように psql に操作したいデータベース名を指定して実行する。
-U でデータベースに接続するユーザを postgres にしているため、postgres ユーザのパスワードを合わせて入力する必要がある。
$ psql -U postgres -d db_001 ユーザー postgres のパスワード: psql (10.6) "help" でヘルプを表示します。 db_001=#
PostgreSQL の DB にテーブルを作成する
データベース「db_001」に接続できればレコードを登録していくが、その前にレコードを格納する器となるテーブルを作成する必要がある。
下記のコマンドはテーブル名を t_products とし、id と name の2つのカラムを持つテーブルを作成する内容となっている。
問題無くテーブルが作成できれば画面に「CREATE TABLE」が表示される。
db_001=# CREATE TABLE t_products ( id serial NOT NULL, name text NOT NULL, PRIMARY KEY (id) ); CREATE TABLE
テーブルの一覧を確認する
作成したテーブルを一覧で確認するためには下記のコマンドを実行すると一覧表示される。
db_001=# \dt リレーション一覧 スキーマ | 名前 | 型 | 所有者 ----------+------------+----------+---------- public | t_products | テーブル | postgres (1 行)