# データベーススキーマを作成します

__*lower_case_table_names*__

+ 構文 
  + `CREATE DATABASE [IF NOT EXISTS] {database_name} [{options}]`
  + `CREATE SCHEMA [IF NOT EXISTS] {schema_name} [{options}]`
+ データベース内のオブジェクトは、英字、数字、アンダースコアのみを使用して名前を付けることができます
  + この名前は64文字を超えることはできません
  + 以下の文字は使用できません：`ASCII(0)`、`ASCII(255)`、`/`、`\`、および `.`
  + このように翻訳できます：バッククォートで囲む限り、予約済みの単語や特殊文字を使用することができます
+ TiDBはオブジェクト名を大文字小文字を区別して保存しますが、比較は大文字小文字を区別せずに行います
+ データベースを削除する：`DROP DATABASE [IF EXISTS] {database_name}`
  + これは元に戻せない行動であることに注意します

```
tidb> SHOW VARIABLES LIKE 'lower_case_%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | 1     |
| ~!@lower_case_table_names@!~ | 2     |
+------------------------+-------+
```

------------------------------------------------------------
現在、TiDBは小文字表名値を2に設定するのにのみ対応しており、つまり、表名は大文字と小文字を区別して保存され、小文字で比較されます。

以下: `CREATE DATABASE`はデータベースを作成するために使用され、データベースのデフォルトのプロパティ（例：データベースのデフォルト文字セットと照合順序）を指定することができます。

```
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_specification] ...
```

```
create_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name
```

以下の通り日本語に翻訳します：データベースを作成する際に既に存在する場合、`IF NOT EXISTS`が指定されていないためエラーが報告されます。

`create_specification`オプションは、データベース固有の`CHARACTER SET`と`COLLATE`を指定します。文字セットと整列については、次のセクションで説明されます。

TiDBでオブジェクトを削除することは、GC設定によっては取り消すことができます。テーブルのフラッシュバック機能については後で説明します。 

