KDOC 723: Postgres の単一引用符は文字列定数、二重引用符は識別子を囲む
この文書のステータス
- 作成
- 2026-11-02 貴島
- レビュー
- 2026-11-02 貴島
概要
PostgreSQL では、単一引用符と二重引用符の使い分けがある。すぐ忘れるので、定義を見る。
- 単一引用符
'は文字列定数を囲む - 二重引用符
"は識別子(テーブル名や列名)を囲む
SELECT "name" FROM "users" WHERE "name" = 'alice';
SQLにおける文字列定数は、単一引用符(’)で括られた任意の文字の並びです。 例えば、’This is a string’です。 文字列定数内に単一引用符を含めるには、2つ続けて単一引用符を記述します。 例えば、’Dianne’’s horse’です。 二重引用符(")とは同一ではない点に注意してください。
二重引用符で囲んだ名前は、キーワードではなく常に識別子として扱われる。引用符のない名前は小文字に読み替えられるが、二重引用符で囲んだ名前は大文字と小文字が区別される。
識別子には副次的な種類もあります。 区切り識別子あるいは引用符付き識別子です。 任意の文字の連なりを二重引用符(")で囲んだものです。 区切り識別子は常に識別子であって、キーワードではありません。
引用符が付かない名前は常に小文字に解釈されますが、識別子を引用符で囲むことによって大文字と小文字が区別されます。
関連
抽象。
- 囲む記号の種類で、中身を値として読むか名前として読むかが決まる
関連。
- 類推: KDOC 381: 識別子の先頭に数値が使えないのは区別がつかなくなるから。識別子とほかの字句を見分ける決まりという点で共通する。あちらは先頭の文字で、こちらは囲む記号で見分ける