SQL の大文字・小文字の区別は、データベース製品ごとに扱いが異なります。同じ CREATE TABLE でも、MySQL では同じ名前として通るのに PostgreSQL では別物になる——そんな罠を避けられるよう、テーブル名・カラム名の大文字・小文字の扱いを DB 別(MySQL / PostgreSQL / Oracle / SQL Server / SQLite)の一覧表に整理しました。
目次
DB別:テーブル名・カラム名の大文字・小文字の扱い一覧
比較
| データベース | 引用符無し | 引用符有り |
| MySQL | データベース名, テーブル名, トリガー名は OS 依存(Windowsでは区別なし、Unixでは区別あり)。カラム名などは常に区別なし | データベース名, テーブル名, トリガー名は OS 依存(Windowsでは区別なし、Unixでは区別あり)。カラム名などは常に区別なし |
| PostgreSQL | 小文字に正規化(名前の比較は大文字小文字を区別) | 大文字小文字を区別 |
| Oracle | 大文字に正規化(名前の比較は大文字小文字を区別) | 大文字小文字を区別 |
| SQL Server | 照合順序依存(CIの場合は区別なし、CSの場合は区別あり) | 照合順序依存(CIの場合は区別なし、CSの場合は区別あり) |
| SQLite | 大文字、小文字は区別しない | 大文字、小文字は区別しない |
実務のコツ:小文字スネークケースで統一する
表のとおり、引用符の有無・OS・照合順序で挙動が変わります。トラブルを避ける最も確実な方法は、識別子を最初から小文字スネークケース(例:user_id、order_items)で統一しておくことです。DB の移植時はもちろん、ORM(Entity Framework や Dapper)とのマッピングでも迷いがなくなります。
Beginners!Entity を書くときに気になったので調べてみました。
※ ORM まわりは Dapper入門|C#の軽量ORMの使い方(/archives/402)で詳しく解説しています。DB 設計を任される C#/.NET エンジニアの「適正時給」は、適正時給・単価 逆算ツール(無料・登録不要)で試算できます。







