PostgreSQL のデータ型を調査する
このステップでは、PostgreSQL で利用可能な基本的なデータ型をいくつか探ります。データ型を理解することは、テーブル構造を定義し、データの整合性を確保するために非常に重要です。整数型、テキスト型、日付型、ブール型などの一般的な型について説明します。
まず、PostgreSQL データベースに接続しましょう。ターミナルを開き、psql コマンドを使用して、postgres ユーザーとして postgres データベースに接続します。postgres ユーザーはデフォルトのスーパーユーザーであるため、最初に sudo を使用してそのユーザーに切り替える必要がある場合があります。
sudo -u postgres psql
これで、PostgreSQL のインタラクティブターミナルに入ります。postgres=# のようなプロンプトが表示されます。
次に、いくつかの基本的なデータ型を探ります。
1. 整数型 (Integer Types):
PostgreSQL は、さまざまな範囲の整数型を提供します。最も一般的なのは、INTEGER (または INT) と SMALLINT です。
INTEGER: ほとんどの整数値の典型的な選択肢です。
SMALLINT: より小さい整数値を格納してスペースを節約するために使用されます。
これらの型を示す簡単なテーブルを作成しましょう。
CREATE TABLE integer_example (
id SERIAL PRIMARY KEY,
quantity INTEGER,
small_quantity SMALLINT
);
ここで、SERIAL は整数のシーケンスを自動的に生成する特別な型であり、主キーに適しています。
次に、いくつかのデータを挿入します。
INSERT INTO integer_example (quantity, small_quantity) VALUES (100, 10);
INSERT INTO integer_example (quantity, small_quantity) VALUES (2000000, 32767);
次のコマンドを使用してデータを表示できます。
SELECT * FROM integer_example;
出力:
id | quantity | small_quantity
----+----------+----------------
1 | 100 | 10
2 | 2000000 | 32767
(2 rows)
2. テキスト型 (Text Types):
PostgreSQL は、テキストを格納するために TEXT、VARCHAR(n)、および CHAR(n) を提供します。
TEXT: 無制限の長さの可変長文字列を格納します。
VARCHAR(n): 最大長が n の可変長文字列を格納します。
CHAR(n): 長さ n の固定長文字列を格納します。文字列が短い場合は、スペースで埋められます。
別のテーブルを作成しましょう。
CREATE TABLE text_example (
id SERIAL PRIMARY KEY,
name TEXT,
short_name VARCHAR(50),
code CHAR(5)
);
いくつかのデータを挿入します。
INSERT INTO text_example (name, short_name, code) VALUES ('PostgreSQL Database', 'PostgreSQL', 'PG001');
INSERT INTO text_example (name, short_name, code) VALUES ('Another Database', 'Another', 'AD002');
データを表示します。
SELECT * FROM text_example;
出力:
id | name | short_name | code
----+--------------------+------------+-------
1 | PostgreSQL Database | PostgreSQL | PG001
2 | Another Database | Another | AD002
(2 rows)
3. 日付と時刻型 (Date and Time Types):
PostgreSQL は、日付と時刻の値を処理するために DATE、TIME、TIMESTAMP、および TIMESTAMPTZ を提供します。
DATE: 日付 (年、月、日) のみを格納します。
TIME: 時刻 (時、分、秒) のみを格納します。
TIMESTAMP: タイムゾーン情報なしで日付と時刻の両方を格納します。
TIMESTAMPTZ: タイムゾーン情報付きで日付と時刻の両方を格納します。
テーブルを作成します。
CREATE TABLE datetime_example (
id SERIAL PRIMARY KEY,
event_date DATE,
event_time TIME,
event_timestamp TIMESTAMP,
event_timestamptz TIMESTAMPTZ
);
データを挿入します。
INSERT INTO datetime_example (event_date, event_time, event_timestamp, event_timestamptz)
VALUES ('2023-10-27', '10:30:00', '2023-10-27 10:30:00', '2023-10-27 10:30:00+00');
データを表示します。
SELECT * FROM datetime_example;
出力:
id | event_date | event_time | event_timestamp | event_timestamptz
----+------------+------------+---------------------+----------------------------
1 | 2023-10-27 | 10:30:00 | 2023-10-27 10:30:00 | 2023-10-27 10:30:00+00
(1 row)
4. ブール型 (Boolean Type):
BOOLEAN 型は、true/false の値を格納します。
テーブルを作成します。
CREATE TABLE boolean_example (
id SERIAL PRIMARY KEY,
is_active BOOLEAN
);
データを挿入します。
INSERT INTO boolean_example (is_active) VALUES (TRUE);
INSERT INTO boolean_example (is_active) VALUES (FALSE);
データを表示します。
SELECT * FROM boolean_example;
出力:
id | is_active
----+-----------
1 | t
2 | f
(2 rows)
最後に、psql ターミナルを終了します。
\q
これで、PostgreSQL の基本的なデータ型をいくつか調べました。これらのデータ型は、堅牢で適切に定義されたデータベーススキーマを作成するための構成要素となります。