🔖
PostgreSQLで「カラム名」をシングルクオートで囲むとどうなるか試してみた
※自分用のメモです
カラム名にシングルクオートを使ってみた
PostgreSQLで文字列リテラルを囲むときにシングルクオート('
)を使うことを前回書きました。
今回は試しに「カラム名にシングルクオートを使ったらどうなるか」を確認してみました。
クエリ例
select 'user_id' from users;
このクエリ、エラーにはなりません。
けれど、期待した結果にはなりませんでした。
実際の返り値
?column?
user_id
(1 row)
これは文字列の "user_id" を出力していることを意味します。
つまり、カラム名ではなく「文字列リテラル」として扱われているということになります。
カラムを参照したい場合
select user_id from users;
通常はダブルクオートなしで認識されます。
select "user_id" from users;
識別子として明示的に指定するなら、ダブルクオート("
)を使います。
実際の返り値(カラム参照)
user_id
----------
00000001
(1 row)
※ 環境によっては、列の型(例:varchar)が一緒に表示されることもあります
補足
表記 | 意味 |
---|---|
'user_id' |
文字列リテラル |
"user_id" |
識別子(カラム名) |
user_id |
識別子(通常の書き方) |
PostgreSQLのクオートの使い方は少し独特ですが、
文法の違いを知っておくことで、意図しないクエリ結果を避けることができます。
おわりに
前回の文字列リテラルに続き、
今回は 「カラム名にもシングルクオート使ってみたらどうなるか?」 を確認しました。
偶然気付いたことですが、SQLの理解を深めてくれます。
こうした小さな発見を積み重ねていくことが、力になると感じました。
Discussion