【入門編】 配列型 (Array Types) – PostgreSQL

こんにちは!データベースの世界へようこそ。
普段、私たちがアプリケーションを作るとき、「これ、ひとつの枠にまとめて入れられたら楽なのになぁ」って思うこと、ありませんか?

例えば、ブログの「タグ」や、ユーザーの「趣味」、あるいは「一週間の予定」なんてデータです。普通なら別のテーブルを作って「紐付け」をするのが王道ですが、PostgreSQLには「配列型(Array Types)」という、ちょっと気の利いた道具があるんです。

今日は、この「配列型」について、難しい専門用語は抜きにして、楽しく見ていきましょう!

—

1. 配列型って、何に例えられる?

簡単に言うと、配列型は「お弁当箱の仕切り」のようなものです。

普通、データベースのひとつの枠(カラム)には、ひとつのデータしか入りません。「名前」なら「山田太郎」さん一人だけ、という具合ですね。でも、配列型を使えば、ひとつの枠の中に「おにぎり、唐揚げ、卵焼き」をまとめてポンと入れることができるんです。

PostgreSQLでは、どんな型でも配列にできます。数字のリストも、文字のリストも、お手のものですよ。

2. どうやって使うの?(基本の書き方)

使い方は驚くほどシンプルです。型名の後ろに `[]` をつけるだけ。

例えば、「ユーザーが好きなフルーツ」を記録するなら、こんな感じです。

— 果物の名前を配列で保存!
CREATE TABLE users (
name TEXT,
favorite_fruits TEXT[]
);

データを登録するときは、波括弧 `{ }` で囲んであげればOK。

INSERT INTO users VALUES (‘佐藤さん’, ‘{“りんご”, “バナナ”, “ぶどう”}’);

これだけで、「佐藤さん」という行の中に、3つのフルーツが仲良く収まります。便利ですよね!

3. 「多次元配列」は「本棚」をイメージしよう

配列の中に、さらに配列を入れることもできます。これが「多次元配列」。
難しそうに聞こえますが、「本棚」をイメージしてください。

  • 「一段目」に何が入っているか
  • 「その中の何冊目」の本か

という二段構えで指定するだけです。
(実際には2次元くらいまでにしておくと、頭がこんがらがらなくて済みますよ!)

4. 配列をいじってみよう(魔法の演算子)

PostgreSQLのすごいところは、配列の中身をあとから自由自在に操れるところです。いくつか便利な「魔法の杖(演算子)」を紹介しますね。

  • 「どれか入ってる?」を調べる (`@>`)

「この中に『りんご』が入っているユーザーを探したい!」というとき、`favorite_fruits @> ‘{“りんご”}’` と書けば、バシッと見つけてくれます。

  • 「何番目?」を取り出す (`[n]`)

`favorite_fruits[1]` と書けば、一番最初に入れたデータが取り出せます。お弁当の最初のおかずを摘み食いするような感覚ですね。

  • 「合体!」させる (`||`)

「あとから『みかん』も追加したいな」と思ったら、`favorite_fruits || ‘{“みかん”}’` とやるだけで、配列が成長します。

—

最後に:使いすぎには注意!

ここまで読んで「わーい、全部配列にすればテーブル設計が楽ちんじゃん!」と思ったあなた、ちょっと待ってくださいね。

実は、データベースの世界には「正規化」という、データを綺麗に分けるための大事なルールがあります。配列型を使いすぎると、あとで「特定のデータだけ集計したい!」というときに、計算がものすごく大変になってしまうんです。

  • 配列に入れていいもの: 順番が変わってもいいもの、そこまで複雑な検索をしないもの(タグや、履歴の記録など)
  • 別テーブルに分けるべきもの: 重要な情報で、あとから検索や分析をガッツリしたいもの

このバランス感覚こそが、一流のエンジニアへの第一歩です。

まずは、小さな実験テーブルを作って、`{ }` の中身をいじって遊んでみてください。「お、こんなに簡単にデータが管理できるんだ!」という感動が、きっとあるはずですよ。

それでは、また次回のブログでお会いしましょう!Happy Coding!

コメント

タイトルとURLをコピーしました