MySQLで数値のみのデータベース名を作成する方法【バッククォートの使い方】
MySQLで数値名のデータベースは作成できるのか?
結論から言うと、そのままの記述では数値のみのデータベース名を作成することはできません。まず、失敗する例を見てみましょう。
エラーになる例
以下のように、バッククォートなしで数値名を指定してデータベースを作成しようとすると、構文エラーが発生します。
mysql> create database 1233;
この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 '1233' at line 1
これは、MySQLが「1233」を識別子(データベース名)としてではなく、不正なトークンとして解釈してしまうために起こる現象です。
バッククォートを使えば作成できる
数値のみのデータベース名を作成したい場合は、データベース名をバッククォート(`)で囲む必要があります。基本の構文は以下の通りです。
create database `yourDatabaseName`;
実際に実行してみる
それでは、上記の構文を使って実際に数値名のデータベースを作成してみましょう。
mysql> create database `1233`; Query OK, 1 row affected (0.20 sec)
「Query OK」と表示されれば、データベースの作成に成功しています。
作成したデータベースへの切り替え
作成したデータベースを使用する場合も、同様にバッククォートで囲んで指定します。
mysql> use `1233`; Database changed
「Database changed」と表示されれば、正常にデータベースが切り替わっています。
まとめ
- MySQLでは、数値のみのデータベース名をバッククォートなしで作成すると構文エラー(ERROR 1064)になる。
- バッククォート(`)でデータベース名を囲むことで、数値名のデータベースでも問題なく作成できる。
- USE文で切り替える際も、同様にバッククォートが必要。
なお、数値名のデータベースは管理上混乱を招くこともあるため、可能であれば英字から始まる分かりやすい名前を付けることをおすすめします。ただし、どうしても必要な場合は、今回紹介したバッククォートのテクニックを活用してください。
-
MySQL Workbenchで新しいデータベースを作成する方法
MySQL Workbenchを使って新しいデータベースを作成するには、まずMySQL Workbenchを起動する必要があります。以下は起動画面のスクリーンショットです。MySQLへの接続を確認する次に、MySQLとの接続をテストしてみましょう。以下の手順に従ってください。Database -> Connect to Database(Ctrl + U)すると、「Connect to Database(データベースに接続)」ダイアログボックスが表示されます。続行するにはパスワードを入力してください。その後、OKボタンを2回押すと接続が確立されます。データベースの作成手順接続が完了したら
-
MySQL 8で「rank」を列名として使える?予約語エラーの原因とバッククォートでの解決法
MySQLでは、RANKはバージョン8.0.2から定義されている予約語(reserved word)です。そのため、「rank」をそのまま列名として使用することはできず、SQL構文エラーが発生します。この問題を回避するには、列名をバッククォート(`)で囲む必要があります。本記事では、実際にエラーが発生する例と、バッククォートを使った正しいテーブル作成・データ操作の手順を解説します。1. 動作環境の確認まず、使用しているMySQLのバージョンを確認しましょう。ここではMySQL 8.0.12を使用しています。mysql> select version(); +-----------+ |