0Pricing
SQL Academy · レッスン

配列型カラムの基本

配列の値を作成して読み取ります。

「配列型カラムの基本」はCoddyKit上の無料SQL Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSQL Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 SQL Academyコースには全4レッスンが含まれています。

配列カラムとは

PostgreSQL は配列カラムをサポートしており、1つのセルに同じ型の複数の値を格納できます。カンマ区切りのテキストとして保存する代わりに、クエリ、インデックス作成、組み込み関数による操作が可能な、型付きの適切なリストとして扱えます。

配列には、整数、テキスト、真偽値、日付、その他あらゆる PostgreSQL の型を格納できます。構文は integer[] や text[] のようになります。

配列カラムの宣言

CREATE TABLE 文で配列カラムを宣言するには、任意の型名の後に [] を付けます。次のテーブルでは、各記事のタグのリストを格納しています。

CREATE TABLE articles (
  id      serial PRIMARY KEY,
  title   text NOT NULL,
  tags    text[]
);

配列値の挿入

配列データを挿入するには、波括弧リテラルを単一引用符で囲んで使用します。波括弧内では各要素をコンマで区切ります。'{"sql","database"}' のように記述します。

別の方法として、2行目に示す ARRAY[...] コンストラクター構文も使用できます。

INSERT INTO articles (title, tags) VALUES
  ('Intro to SQL',    '{"sql","beginner"}'),
  ('Advanced Joins',  ARRAY['sql','joins','performance']),
  ('NULL Handling',   '{"sql","nulls","tips"}');

配列全体の読み取り

配列カラムの選択方法は、他のカラムの場合と同じです。PostgreSQL は結果セット内で配列全体を1つの値として返し、波括弧形式で表示します。

SELECT id, title, tags
FROM   articles;

単一の要素へのアクセス

PostgreSQL の配列の添字は1始まりです(最初の要素はインデックス 0 ではなく 1 です)。カラム名の後に角括弧を付けると、特定の要素にアクセスできます。

SELECT title,
       tags[1] AS first_tag,
       tags[2] AS second_tag
FROM   articles;

配列のスライス

角括弧内で lower:upper スライス構文を使用すると、要素の範囲を取り出せます。下限と上限の両方が範囲に含まれます。

SELECT title,
       tags[1:2] AS first_two_tags
FROM   articles;

ANY による絞り込み

配列に特定の値が含まれる行を検索するには、= ANY(column) 式を使用します。これにより、配列の少なくとも1つの要素が指定した値と一致する行が返されます。

SELECT id, title, tags
FROM   articles
WHERE  'joins' = ANY(tags);

@> 演算子による絞り込み

包含演算子 @> は、左側の配列に右側の配列のすべての要素が含まれているかどうかを確認します。必要なタグの集合を含む行を検索したい場合に便利です。

SELECT id, title, tags
FROM   articles
WHERE  tags @> ARRAY['sql','tips'];

配列の長さの取得

array_length(arr, dimension) 関数は、指定した次元に沿った要素数を返します。1次元配列の場合は、第2引数に 1 を指定します。

SELECT title,
       array_length(tags, 1) AS tag_count
FROM   articles
ORDER  BY tag_count DESC;

要素の追加

array_append(array, element) 関数または連結演算子 || を使用すると、既存の配列カラムの末尾に新しい要素を追加できます。

UPDATE articles
SET    tags = array_append(tags, 'featured')
WHERE  title = 'Intro to SQL';

SELECT title, tags FROM articles WHERE title = 'Intro to SQL';

配列を行に展開する

unnest(array) 関数は、配列を複数の行の集合に展開します。要素ごとに1行が生成されます。集計、結合、または各要素を個別に扱う必要がある処理に便利です。

SELECT title, unnest(tags) AS tag
FROM   articles
ORDER  BY title, tag;

理解度チェック

PostgreSQL の配列カラムについての理解度を確認しましょう。

まとめ:配列カラムの基本

このレッスンでは、PostgreSQL の配列カラムの仕組みを一通り学びました。

  • CREATE TABLE で type[] 構文を使用して配列を宣言する
  • 波括弧リテラルまたは ARRAY[...] を使用して値を挿入する
  • 1始まりのインデックスで要素にアクセスし、lower:upper でスライスを取得する
  • 単一の値には = ANY(col)、部分集合には @> を使用して絞り込む
  • array_length(col, 1) で長さを測定する
  • array_append() または || を使用して要素を追加する
  • unnest() で配列を行に展開する

配列は PostgreSQL の強力な機能です。1つのエンティティに値のリストが属する場合、スキーマを簡潔にできます。

よくある質問

「配列型カラムの基本」レッスンは無料ですか?

はい。「配列型カラムの基本」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、SQL Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 SQL Academyコースには全4レッスンが含まれています。

「配列型カラムの基本」で何を学びますか?

配列の値を作成して読み取ります。 ブラウザで直接実行するハンズオンコードでSQL Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

SQL Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSQL Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「配列型カラムの基本」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSQL Academyレッスンでコードを書いて実行できますか?

はい。すべてのSQL Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 配列型カラムの基本
  2. 配列内部を検索する
  3. UNNESTと集約
  4. 配列と正規化テーブル
← SQL Academyに戻る