カテゴリ: データベース 更新日: 2026/02/15

PostgreSQLのデータ型を完全解説!初心者でも失敗しないデータベース入門

PostgreSQLのデータ型の特徴をわかりやすく解説
PostgreSQLのデータ型の特徴をわかりやすく解説

先生と生徒の会話形式で理解しよう

生徒

「PostgreSQL(ポストグレスキューエル)を勉強し始めたのですが、データ型ってなんですか?種類がたくさんあって難しそうです…。」

先生

「データ型というのは、箱に入れる中身の種類のことです。例えば、お弁当箱に飲み物を入れる人はいないですよね?同じように、名前を入れる箱、数字を入れる箱という風に、あらかじめ役割を決めておくんです。」

生徒

「なるほど!役割を決めないと、データベースが混乱してしまうんですね。パソコンに詳しくなくても覚えられますか?」

先生

「もちろんです。普段私たちが書く文字や数字、日付をどう整理するのかをイメージすれば簡単ですよ。基本をしっかり学んでいきましょう!」

1. データベースの「データ型」とは何のこと?

1. データベースの「データ型」とは何のこと?
1. データベースの「データ型」とは何のこと?

データベース、特にPostgreSQL(ポストグレスキューエル)というシステムを使う上で、最も大切な概念の一つが「データ型」です。 データ型とは、簡単に言うと「情報の種類」のことです。

例えば、スーパーのレジを想像してみてください。 レジでは「商品の名前(文字)」と「商品の値段(数字)」を扱いますよね。 データベースもこれと同じで、あらかじめ「ここには文字を入れますよ」「ここには計算できる数字を入れますよ」と宣言しておく必要があります。

なぜそんな面倒なことをするのでしょうか?それは、データの正確さを守るためです。 もし年齢を入力する場所に「あいうえお」という文字が入ってしまったら、後で平均年齢を計算することができなくなってしまいます。 データ型を正しく決めることで、このような間違いを未然に防ぐことができるのです。

2. 文字を保存する「文字列型」を学ぼう

2. 文字を保存する「文字列型」を学ぼう
2. 文字を保存する「文字列型」を学ぼう

まずは、名前や住所、メールアドレスなどを保存するときに使う「文字列型」です。 PostgreSQLでは、主に以下の3つの型がよく使われます。

  • VARCHAR(n):最大n文字まで入る、長さが変わる文字の箱。
  • CHAR(n):必ずn文字分確保される、固定された長さの箱。
  • TEXT:文字数の制限がない、大きな箱。

一番よく使われるのは「VARCHAR(バーキャラ)」です。 例えば VARCHAR(100) と設定すれば、100文字までの名前を自由に保存できます。

では、実際に会員名簿をイメージしたテーブル(表)を作ってみましょう。 以下の例では、名前に VARCHAR、メールアドレスに TEXT を使っています。


id | name      | age | email
---+-----------+-----+-------------------------
1  | 山田太郎  | 25  | taro@example.com
2  | 佐藤花子  | 19  | hanako@example.com
3  | 鈴木一郎  | 30  | ichiro@example.com
4  | 田中愛子  | 22  | aiko@example.com
5  | 伊藤健太  | 35  | kenta@example.com

ここから、名前を更新するSQLを実行してみます。


UPDATE users
SET name = '山田たろう'
WHERE id = 1;

実行後のデータは以下のようになります。


id | name        | age | email
---+-------------+-----+-------------------------
1  | 山田たろう  | 25  | taro@example.com
2  | 佐藤花子    | 19  | hanako@example.com
3  | 鈴木一郎    | 30  | ichiro@example.com
4  | 田中愛子    | 22  | aiko@example.com
5  | 伊藤健太    | 35  | kenta@example.com

3. 数値を扱う「数値型」の種類

3. 数値を扱う「数値型」の種類
3. 数値を扱う「数値型」の種類

次に、年齢や金額、商品の個数などを扱う「数値型」です。 数値型には「整数」と「小数」の大きく分けて二つのグループがあります。

  • INTEGER(インテジャー):一般的な整数(-21億〜21億くらいまで)。年齢や個数に最適。
  • BIGINT(ビッグイント):非常に大きな整数。世界中の人口や大きなお金を扱うときに使います。
  • NUMERIC(ヌメリック):正確な小数を扱う型。消費税の計算などに使われます。

PostgreSQLの面白い特徴として、「連番(自動で増える数字)」を簡単に作れる SERIAL という型もあります。 これを使うと、データを追加するたびに ID が 1, 2, 3... と自動で振られるので、管理がとても楽になります。

以下のテーブルでは、商品の在庫管理をしています。 INTEGER を使って個数を管理してみましょう。


id | product_name | price | stock
---+--------------+-------+-------
1  | りんご       | 150   | 50
2  | みかん       | 100   | 100
3  | バナナ       | 200   | 30
4  | メロン       | 1500  | 5
5  | ブドウ       | 800   | 15

在庫が減ったので、引き算をするSQLを実行します。


UPDATE products
SET stock = stock - 10
WHERE product_name = 'りんご';

実行後のデータはこちらです。


id | product_name | price | stock
---+--------------+-------+-------
1  | りんご       | 150   | 40
2  | みかん       | 100   | 100
3  | バナナ       | 200   | 30
4  | メロン       | 1500  | 5
5  | ブドウ       | 800   | 15

4. 日付と時間を記録する「日付・時刻型」

4. 日付と時間を記録する「日付・時刻型」
4. 日付と時間を記録する「日付・時刻型」

ブログの投稿日や、予約システムの時間などを管理するには「日付・時刻型」を使います。

  • DATE(デイト):日付のみ(2025-01-01 など)。
  • TIME(タイム):時刻のみ(14:30:00 など)。
  • TIMESTAMP(タイムスタンプ):日付と時刻の両方。

特に TIMESTAMP は、いつデータが登録されたかを記録する「作成日時」カラムによく使われます。 PostgreSQLは日付の計算も得意で、「今日から1週間後のデータだけを表示する」といった命令も簡単に出せます。

5. はい・いいえを管理する「論理値型」

5. はい・いいえを管理する「論理値型」
5. はい・いいえを管理する「論理値型」

「会員登録を完了しているか?」「メールマガジンを受け取るか?」といった、二択の情報を管理するのが BOOLEAN(ブーリアン) 型です。

  • TRUE(トゥルー):はい、正しい、有効。
  • FALSE(フォルス):いいえ、間違い、無効。

この型を使うことで、データが非常にシンプルに整理されます。 「0か1か」というデジタルな判断をそのままデータベースに保存できる便利な型です。


id | username | is_active | last_login
---+----------+-----------+--------------------
1  | userA    | TRUE      | 2025-10-01 10:00:00
2  | userB    | FALSE     | 2025-09-15 12:30:00
3  | userC    | TRUE      | 2025-10-05 08:45:00
4  | userD    | TRUE      | 2025-10-06 15:20:00

活動を停止しているユーザーを表示してみましょう。


SELECT username, last_login
FROM accounts
WHERE is_active = FALSE;

実行結果(出力結果)は以下の通りです。


username | last_login
---------+--------------------
userB    | 2025-09-15 12:30:00

6. PostgreSQL特有の便利なデータ型

6. PostgreSQL特有の便利なデータ型
6. PostgreSQL特有の便利なデータ型

PostgreSQLが他のデータベースよりも強力だと言われる理由の一つに、非常に豊富な「特殊型」があります。 初心者の方は「こんなのもあるんだ!」と知っておくだけで大丈夫です。

  • JSON / JSONB:複雑なデータ構造をそのまま保存できる形式。スマートフォンのアプリなどでよく使われます。
  • ARRAY(配列):一つの箱の中に、複数の値(例えば、好きな食べ物リストなど)を詰め込めます。
  • UUID:世界中で重複しないことが保証された、特別な長いID。

これらの特殊な型があるおかげで、PostgreSQLは初心者からプロフェッショナルまで、幅広い開発者に愛用されています。

7. 適切なデータ型を選ぶコツ

7. 適切なデータ型を選ぶコツ
7. 適切なデータ型を選ぶコツ

データ型を選ぶときは、以下の3つのポイントを意識しましょう。

  1. 「何」を保存するか決める:文字ならVARCHAR、数字ならINTEGER。
  2. 「大きさ」を考える:短文か、長文か。小さな数字か、大きな数字か。
  3. 「計算」をするか考える:数字として足し算をしたいなら、必ず数値型を選びます。

もし迷ったら、名前には VARCHAR(255)、数字には INTEGER、日付には TIMESTAMP を使っておけば、多くの場面で問題ありません。 後から型を変更することもできますが、最初から丁寧に決めておくことで、スムーズなシステム作りができますよ。

データベースは、最初は難しく感じるかもしれませんが、要は「整理整頓」の道具です。 データ型は、その整理を助けてくれる「ラベル」のようなものだと考えて、少しずつ慣れていきましょう。

カテゴリの一覧へ
新着記事
New1
Ruby
Rubyプログラムの実行方法まとめ:スクリプト・REPL・Shebang・実行権限の基本
New2
Rails
アセットの全体像をやさしく解説!importmap・jsbundling・cssbundlingの選び方
New3
Rails
Rails Action Cable入門|チャネル・接続・サブスクライブの基本を図解でやさしく解説
New4
Rails
RailsのScaffoldは使うべき?初心者向けにメリット・デメリット・安全な使い方と代替案を解説!
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyのreduceとinject入門!合計計算や集計を初心者向けに分かりやすく解説
No.2
Java&Spring記事人気No2
Ruby
Rubyの文字列エンコーディング完全ガイド!Encoding・force_encoding・encodeを初心者向け解説
No.3
Java&Spring記事人気No3
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.4
Java&Spring記事人気No4
Rails
Rails認可をやさしく理解!CanCanCan入門:ability.rbの定義とload_and_authorize_resource実例
No.5
Java&Spring記事人気No5
Ruby
Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け
No.6
Java&Spring記事人気No6
Ruby
OpenSSL関連エラーの直し方を完全解説!証明書・ビルドオプション・brew対策まとめ
No.7
Java&Spring記事人気No7
データベース
MySQLとは?初心者向けにデータベースの特徴とできることをやさしく解説
No.8
Java&Spring記事人気No8
データベース
PostgreSQLのCTE(WITH句)完全解説!複雑なSQLを整理して読みやすくする書き方