MySQLの識別子タイプ別 最大文字数の一覧まとめ
MySQLにおける識別子とは
MySQLでは、データベースやテーブルなど、オブジェクトに付けられる名前のことを識別子(identifier)と呼びます。識別子の対象となる主なオブジェクトは以下のとおりです。
- データベース
- テーブル
- インデックス
- カラム
- エイリアス(別名)
- ビュー
- ストアドプロシージャ・ストアドファンクション
- パーティション
- テーブルスペース
これらの識別子はすべて Unicode(UTF-8) として保存されます。そのため、日本語などのマルチバイト文字も識別子として使用できます。
識別子タイプ別の最大文字数一覧
各タイプの識別子に設定できる最大長(文字数)は、次の表のとおりです。
| No. | 識別子の種類 | 最大長(文字数) |
|---|---|---|
| 1 | データベース | 64 |
| 2 | テーブル | 64 |
| 3 | カラム | 64 |
| 4 | インデックス | 64 |
| 5 | 制約(CONSTRAINT) | 64 |
| 6 | ストアドプロシージャ/ストアドファンクション | 64 |
| 7 | トリガー | 64 |
| 8 | ビュー | 64 |
| 9 | イベント | 64 |
| 10 | テーブルスペース | 64 |
| 11 | ログファイルグループ | 64 |
| 12 | エイリアス(別名) | 256 |
| 13 | 複合ステートメントラベル | 16 |
識別子の最大長に関するポイント
- 多くの識別子(データベース名・テーブル名・カラム名など)の上限は64文字で統一されています。
- SELECT文などで使うエイリアスは最大256文字と、他より長く設定できます。
- ストアドプログラム内の複合ステートメントラベルは16文字と短いため、簡潔な命名を心がけましょう。
- 上限は「バイト数」ではなく「文字数」でカウントされるため、日本語などのマルチバイト文字を使った場合でも1文字として数えられます。
- 上限を超える名前を付けようとするとエラーになるため、長い名前を付ける場合は事前に文字数を確認しておくのが安全です。
-
MySQLでテーブルのカラム名(列名)を取得する構文とは?
MySQLでは、information_schema.columns テーブルを参照することで、指定したテーブルのカラム名(列名)を簡単に取得できます。データベースの構造を確認したい場合や、動的にカラム情報を取得したいアプリケーションを開発する際に非常に便利な方法です。カラム名を取得する基本構文テーブルのカラム名を取得するには、以下の構文を使用します。SELECT column_name FROM information_schema.columns WHERE table_schema = データベース名 AND table_name = テーブル名;table_schema にはデータベー
-
MySQLでテーブルの各グループごとに最大値を取得する方法
MySQLでテーブル内の各値(グループ)ごとの最大値を取得したい場合は、GROUP BY句とMAX()関数を組み合わせて使用します。GROUP BY句が指定したカラムの値ごとに行をグループ化し、MAX()関数がそのグループ内での最大値を返してくれます。ここでは、「国名」と「人口」を格納するサンプルテーブルを使って、具体的な手順を解説していきます。1. サンプルテーブルを作成するまず、CREATE TABLE文でテーブルを作成しましょう。mysql> create table DemoTable -> ( -> CountryName varchar(20),