MySQLのデータベース名で特殊な文字を入力する

  • 2015年8月4日
MySQLのデータベース名で特殊な文字を入力する

MySQLのデータベース名などで特殊文字を使用したいときはありませんか?データベース名やテーブル名に特殊文字を使用したい場合、どのように記述すれば使用できるようになるのか

だめな例のご紹介

create database blog.96color.com character set utf8;

このSQLは実際に実行してもらうとわかりますが、以下のようなエラーがでます。

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near blog.96color.com character set utf8' at line 1

このエラーはシンタックスエラー、つまり構文エラーです。それではこのSQLのどこに構文エラーがあるのかというと「blog.96color.com」というデータベース名にあります。正確には「.(ドット)」です。この原因はSQLにおいてドットがエスケープ対象文字だからです。このように「.(ドット)」のようなエスケープ対象文字をどうしたら使用できるか。

エスケープシーケンス

答えは簡単です。「`(バッククォート、リバースシングルクォート)」でその項目を囲ってあげます。

create database `blog.96color.com` character set utf8;

このような感じで簡単ですね。

Macのキーボードで打つ場合

キーボードで打つ場合、USキーボードの場合は「〜」があるところ、JISキーボードの場合は、「Shiff」+「@」+(「Fn」)です。

Windowsのキーボードで打つ場合

Shiff」+「@」+(「Fn」)です。これはMacと同じですね。USキーボードの場合、最初から「`(バッククォート)」があるので、それで入力してください。