PostgreSQL

PostgreSQLテーブル入門|テーブルの作成と基本操作

PostgreSQL テーブル CREATE TABLE

PostgreSQLテーブル入門
テーブルの作成と基本操作

PostgreSQLでのテーブル作成、データ型、制約、テーブルの変更方法を解説します。

こんな人向けの記事です

  • PostgreSQLでテーブルを作成したい人
  • データ型や制約の種類を知りたい人
  • 既存テーブルの構造変更方法を学びたい人

Step 1テーブルの作成

SQL
CREATE TABLE users (
    user_id SERIAL PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password VARCHAR(100) NOT NULL,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    is_active BOOLEAN DEFAULT TRUE
);

Step 2主要なデータ型

データ型説明
INTEGER / BIGINT整数型1, 100, -50
SERIAL / BIGSERIAL自動増分整数自動採番
NUMERIC(p,s)精度指定の数値99999.99
VARCHAR(n) / TEXT可変長文字列文字列データ
BOOLEAN真偽値TRUE / FALSE
DATE / TIMESTAMP日付・日時2024-01-01
JSON / JSONBJSON形式データ{"key": "value"}
UUID汎用一意識別子550e8400-e29b-...

Step 3制約の種類

制約説明
PRIMARY KEY主キー(一意 + NOT NULL)
FOREIGN KEY他テーブルの主キーを参照
UNIQUE一意性の保証
NOT NULLNULL値を禁止
CHECK条件チェック
DEFAULTデフォルト値
SQL
CREATE TABLE products (
    product_id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price NUMERIC(10, 2) NOT NULL CHECK (price >= 0),
    stock INTEGER NOT NULL DEFAULT 0,
    category_id INTEGER REFERENCES categories(category_id)
);

Step 4テーブルの変更(ALTER TABLE)

SQL
-- カラムの追加
ALTER TABLE users ADD COLUMN last_login TIMESTAMP;

-- カラムの削除
ALTER TABLE users DROP COLUMN last_login;

-- カラムの型変更
ALTER TABLE users ALTER COLUMN username TYPE VARCHAR(100);

-- カラム名の変更
ALTER TABLE users RENAME COLUMN username TO user_name;

-- NOT NULL制約の追加
ALTER TABLE users ALTER COLUMN email SET NOT NULL;

-- テーブル名の変更
ALTER TABLE users RENAME TO app_users;

Step 5テーブルの削除

SQL
-- テーブルの削除
DROP TABLE users;

-- 存在する場合のみ削除
DROP TABLE IF EXISTS users;

-- 依存オブジェクトも含めて削除
DROP TABLE users CASCADE;

注意: DROP TABLEはテーブルとデータを完全に削除します。元に戻せないので十分注意してください。