SQLの大文字・小文字は区別される?テーブル名・カラム名のDB別扱い一覧【MySQL/PostgreSQL/Oracle/SQL Server/SQLite】

各データベースのテーブル名とカラム名の大文字/小文字の扱い

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_idorder_items)で統一しておくことです。DB の移植時はもちろん、ORM(Entity Framework や Dapper)とのマッピングでも迷いがなくなります。

Beginners!

Entity を書くときに気になったので調べてみました。

※ ORM まわりは Dapper入門|C#の軽量ORMの使い方(/archives/402)で詳しく解説しています。DB 設計を任される C#/.NET エンジニアの「適正時給」は、適正時給・単価 逆算ツール(無料・登録不要)で試算できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コスト最小で制作をしたいという意識強め(笑)

目次