【PostgreSQL】データ型ガイド

PostgreSQLは、非常に豊富なデータ型をサポートしており、効率的にデータを管理できるように設計されています。この記事では、PostgreSQLの主要なデータ型について解説し、どのような場面で使うべきか筆者の経験も絡めた具体例とともに紹介します。

1. 数値型

数値型は、整数や少数など、数値データを扱うためのデータ型です。主な数値型には以下のものがあります。

1.1 INTEGER

数値型といえばこれ
概要:整数値を格納する
サイズ:4バイト
有効範囲:-2,147,483,648 から 2,147,483,647
使用例: 商品の在庫数やカウントデータなど

1.2 SMALLINT

少しでもサイズを抑えたいときに使います
概要:範囲が狭い整数を格納する
サイズ:2バイト
有効範囲:-32,768 から 32,767
使用例:年齢、通し番号など ※実際はINTEGERの方を使ってる印象

1.3 BIGINT

少数が入らないことを忘れがち
概要:大きな範囲の整数を格納する
サイズ:8バイト
範囲:-9,223,372,036,854,775,808 から 9,223,372,036,854,775,807
使用例:金額、グローバルIDなど

1.4 DECIMAL / NUMERIC

何気にINTEGERよりも使ってます。
DECIMALとNUMERICが同じことを最近知りました。
概要:高精度な少数を扱うデータ型。小数点を指定できる
サイズ:可変
使用例:金額(小数点が発生する単価など)、身長、体重など

1.5 REAL / DOUBLE PRECISION

書籍ではよく見かけるが、現場で見たことがないデータ型。DECIMALを使ってます
概要:浮動小数点を格納する
サイズ:REALは4バイト、DOUBLE PRECISIONは8バイト
使用例:測定データや科学計算

2. 文字列型

文字列データを扱うためのデータ型です。主にテキスト情報の保存に使われます。

2.1 VARCHAR

基本的にはVARHCARを使ってます。それ以外の文字列型のデータ型はめったに見かけません。
概要:可変長の文字列を格納する。最大長を指定可能
最大長を50文字とする文字列を定義する際は、下記のように書きます。
username VARCHAR(50);
使用例:ユーザ名は電子メールアドレスなど

2.2 CHAR

一昔前のコードで見かけるデータ型という印象です。
概要:固定長の文字列を格納する。指定した長さに満たない場合、空白で埋められる。
使用例:固定フォーマットのコードやID

2.3 TEXT

非常に長い文章を格納する際に使うことがあります。
概要:制限なしの文字列を格納する。
使用例:長い説明文やブログ記事の本文

3. 日時型

日時を扱うためのデータ型で、日時情報の管理や計算に役立ちます。

3.1 DATE

日付のみ格納したいときに使います。
概要:日付(年、月、日)を格納する。
使用例:誕生日や登録日など

3.2 TIME

時間のみ格納したいときに使います。
概要:時間(時、分、秒)を格納する
使用例:取引やイベントの時間など

3.3 TIMESTAMP

日付と時間を両方格納します。日付型の中では最もよく使っています。
概要:日付と時間の両方を格納する。タイムゾーンを含むことも可能
使用例:ユーザのログイン日時や投稿日時など

4. 真偽値型

4.1 BOOLEAN

いわずもがな。
概要:真偽値(TRUE、FALSE)を格納する
使用例:ユーザがアクティブであるか、フラグ情報など

最後に

PostgreSQLは非常に多くのデータ型をサポートしており、それぞれに適した用途があります。この記事で紹介したデータ型を理解することで、データベース設計のお役に立てればと思います。

コメント