データベースを作成する際に,
今回はデータベース名やテーブル,
検証環境
今回は,
git cloneしてきたディレクトリに入り,
$ docker-compose build $ docker-compose up -d $ docker-compose exec mysql /bin/sh # mysql -uroot -ppassword mysql>
mysqlクライアントが使用できる環境が,
公式のドキュメント
今回試した事はMySQL公式のドキュメント(9.
使用できる文字列の調査
今回試してみるのは以下の文字列になります。
- 英字
- 英数字
- 数字
- 記号
- 空白文字
- 絵文字
これらについて,
英字
とりあえずは基本的な英数字から確認してみようと思います。できるとわかっているところも一応やってみます。
データベースを作成してみましょう。
mysql> create database abcdeghijklmnopqrstuvwx; Query OK, 1 row affected (0.01 sec)
OKが帰ってきたのでできていそうです。SHOW DATABASE
構文で確認をしてみましょう。
mysql> show databases like 'abc%'; +-------------------------+ | Database (abc%) | +-------------------------+ | abcdeghijklmnopqrstuvwx | +-------------------------+ 1 row in set (0.00 sec)
問題なくできていることがわかります。続いてテーブルも確認してみましょう。
mysql> use abcdeghijklmnopqrstuvwx mysql> create table abcdeghijklmnopqrstuvwx (abcdeghijklmnopqrstuvwx int); mysql> create table abcdeghijklmnopqrstuvwx (abcdeghijklmnopqrstuvwx int); Query OK, 0 rows affected (0.02 sec) mysql> show tables; +-----------------------------------+ | Tables_in_abcdeghijklmnopqrstuvwx | +-----------------------------------+ | abcdeghijklmnopqrstuvwx | +-----------------------------------+ 1 row in set (0.00 sec) mysql> show create tables;
ということで,
英数字
英数字が問題なく作成できるかを試してみましょう。英数字の組み合わせで作成ができるかを検証してみます。
英字が先にくるパターンと後に来るパターンで違いが起こらないかも試してみます。まずは英字が先にくるパターンを試してみましょう。
mysql> create database a1; Query OK, 1 row affected (0.01 sec) mysql> show databases like 'a1'; +---------------+ | Database (a1) | +---------------+ | a1 | +---------------+ 1 row in set (0.00 sec)
データベースは問題なく作成できました。続いてテーブルも試してみましょう。
mysql> create table a1 (a1 int); Query OK, 0 rows affected (0.01 sec) mysql> show create table a1; +-------+----------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------------------------+ | a1 | CREATE TABLE `a1` ( `a1` int DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci | +-------+----------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
こちらは問題なく作成できました。続けて数字が先頭のパターンも試してみます。
mysql> create database 1a; Query OK, 1 row affected (0.01 sec) mysql> create table 1a (1a int); Query OK, 0 rows affected (0.02 sec)
こちらも問題なく作成できました。ということで,