はじめに
この記事では、PostgreSQLでテーブルを作成、削除する複数の方法を記載します。
開発環境
開発環境は以下の通りです。
- Windows11
- PostgreSQL 17.5
- pgAdmin4 8.7
また、事前準備として、PostgreSQLをインストールしておきます。
方法1. CLI - Powershell で psql
シェルに入る
psql
はPostgreSQLに付属しているコマンドラインツールです。
1. PostgreSQLに接続する
PowerShellから psql
コマンドを実行して、PostgreSQLサーバーに接続します。
psql -U postgres -d postgres
-
-U
: 接続するユーザー名 -
-d
: 接続するデータベース名
このコマンドを実行すると、パスワードを尋ねられます。
Password for user postgres:
PostgreSQLのインストール時に設定したパスワードを入力し、Enterキーを押します。
パスワードが正しければ、プロンプトがpostgres=#に変わり、psqlシェルに入ります。
psql (17.5, server 16.3)
Type "help" for help.
postgres=#
2. テーブルを作成する
CREATE TABLE
コマンドを使用してテーブルを作成します。
今回は従業員の情報を格納する employees
テーブルを作成します。employee_id
(主キー)、first_name
、last_name
、hire_date
の4つのカラムを含めます。
CREATE TABLE employees (
employee_id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
hire_date DATE
);
コマンド実行後、CREATE TABLE
という応答が返ります。
以下のコマンドでテーブルが作成されたか確認できます。
\dt
List of relations
Schema | Name | Type | Owner
--------+-----------+-------+----------
public | employees | table | postgres
(1 row)
また、以下のコマンドでは、カラムを確認できます。
\d employees
Table "public.employees"
Column | Type | Collation | Nullable | Default
-------------+-----------------------+-----------+----------+------------------------------------------------
employee_id | integer | | not null | nextval('employees_employee_id_seq'::regclass)
first_name | character varying(50) | | not null |
last_name | character varying(50) | | not null |
hire_date | date | | |
Indexes:
"employees_pkey" PRIMARY KEY, btree (employee_id)
3. テーブルを削除する
テーブルを削除するには、DROP TABLE
コマンドを使用します。
DROP TABLE employees;
コマンド実行後、DROP TABLE
という応答が返ります。
\dt
コマンドでテーブルが削除されたか確認します。
\dt
Did not find any relations
4. PostgreSQLから切断する
psqlシェルを終了するには、\q
コマンドを使用します。
\q
方法2. CLI - Powershell で qsal
シェルに入らない
psql
コマンドは、シェルを起動せずにSQLコマンドを直接実行することもできます。この方法は、スクリプトなどからコマンドを実行する場合に便利です。
1. テーブルを作成する
psql -U postgres -d postgres -c CREATE TABLE employees (employee_id SERIAL PRIMARY KEY,first_name VARCHAR(50) NOT NULL,last_name VARCHAR(50) NOT NULL,hire_date DATE);"
パスワードを尋ねられるので入力します。
2. テーブルを削除する
psql -U postgres -d postgres -c "DROP TABLE employees;"
パスワードを尋ねられるので入力します。
この方法の場合、コマンドのたびにパスワードを入力する必要があります。パスワードを環境変数に設定しておくことで、入力の手間を省くことも可能ですが、セキュリティ上のリスクもあるため、取り扱いには注意が必要です。
方法3. CLI - SQL Shell (psql)
PostgreSQLのインストール時に同梱されている「SQL Shell (psql)」を使う方法です。
SQL Shell (psql) を起動すると、以下の情報を聞かれます。
Server [localhost]: # そのままEnter
Database [postgres]: # そのままEnter
Port [5432]: # そのままEnter
Username [postgres]: # そのままEnter
Client Encoding [SJIS]: # そのままEnter
Password for user postgres: # パスワードを入力してEnter
パスワードを正しく入力すると、以下のようなプロンプトに変わります。
postgres=#
これで、PostgreSQLに接続されます。
テーブルの作成・削除自体の手順は、方法1. と同じです。
方法4. GUI - pgAdminを利用する
pgAdminは、PostgreSQLをGUI(グラフィカルユーザーインターフェース)で操作できるツールです。
1. サーバーに接続する
pgAdminを起動して左側のツリービューにある Servers
の下の PostgreSQL17
をクリックします。パスワードの入力を求められた場合は、PostgreSQLインストール時に設定したパスワードを入力します。
2. テーブルを作成する
- 左側の「Browser」パネルで、目的のデータベース(
postgres
)を展開します - Schemas -> public -> Tables を右クリックし、「Create」->「Table...」を選択します
- 「Create - Table」ウィンドウが開きます
- Generalタブの
Name
フィールドにテーブル名(employees
)を入力します - Columnsタブのテーブル右側の「+」ボタンをクリックして、必要なカラムを追加します
- 画面右下の「Save」ボタンをクリックして、テーブルを作成します
3. テーブルを削除する
- 左側の「Browser」パネルで、削除したいテーブル(
employees
)を右クリックします - 「Delete」を選択します
- 確認ダイアログが表示されるので、テーブル名を確認して「OK」をクリックします
まとめ
この記事では、Windows 11環境でPostgreSQLのテーブルを操作する4つの方法を解説しました。
用途に合わせてCLIとGUIを使い分けることで、効率的にデータベースを操作できるようにしたいですね。