2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MySQL 大文字と小文字について

Last updated at Posted at 2022-12-20

この記事はmiriwoお一人様 Advent Calendar 2022の20日目の記事です

概要

  • MySQLの大文字と小文字の扱いについて簡単にまとめる

内容

カラムの値のwhereによる絞り込み

下記カラムの値は絞り込み時、大文字小文字は考慮されない。(考慮される様にSQLを記載することはできる、バイナリ比較まで含めれば良いはず)

  • CHAR
  • VARCHAR
  • TEXT

下記カラムの値は絞り込み時、大文字小文字は考慮される。

  • BINARY
  • VARBINARY
  • BLOB

なので下記のようなusersテーブルのにselect * from users where name = 'test';というSQL句を実行した時に3レコードすべてがヒットする。(nameカラムはvarchar 255)

id name
1 test
2 TEST
3 TeSt

テーブル名やDB名

テーブル名やDB名の大文字小文字を考慮しないようにするにはmysqldの起動時にlower_case_table_namesの値で設定する事ができる。
lower_case_table_namesはMySQLサーバーの初期化時のみ設定できる。初期化後のlower_case_table_namesの値の設定変更は禁止されているらしいので注意すること。

状態 解説
lower_case_table_names=0 大文字と小文字が区別される
(Windows、Macでこの設定にしてはだめ)
lower_case_table_names=1 大文字と小文字が区別されない
各名前は小文字でディスクに保存される。なので show tableした時は大文字で作成したテーブルも小文字で表示される
lower_case_table_names=2 大文字と小文字が区別されない
大文字で作成したテーブル名は大文字で、小文字で作成したテーブル名は小文字でディスクに保存される。しかしshow tableした時はすべて小文字で表示される

ちなみにlower_case_table_namesの値は下記SQLを実行することで現在の設定値を確認する事ができる。

show variables where variable_name='lower_case_table_names';

参考文献

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?