MySQLでは、名前に単一識別子や複合識別子を使用することができます。構成が複数のパート名からなる場合、ピリオド(‘.
’)文字で分割されなければなりません。複数パート名の頭文字は識別子として働き、最後尾の識別子が実行されているコンテキストに影響を与えます。
MySQLでは、次の形式のいずれかを使用してカラムを参照することができます。
カラム参照 | 意味 |
col_name |
この名前のカラムが組み込まれたステートメントで使用されているテーブル内のカラムcol_name
|
tbl_name.col_name |
デフォルトデータベースのテーブルtbl_name 内のカラムcol_name
|
db_name.tbl_name.col_name |
データベースdb_name のテーブルtbl_name 内のカラムcol_name
|
複数のパート名からなる構成要素に引用符が必要な場合、名前全体を1つのものとして引用符で囲むのではなく、それぞれの名前を個別に引用符で囲んでください。例えば、`my-table.my-column`
ではなく、`my-table`.`my-column`
と記述してください。
対象となる参照があいまいな場合、ステートメント内のカラム参照の前にtbl_name
やdb_name.tbl_name
をつける必要があります。例えば、テーブルt1
とt2
のそれぞれに同名のカラムc
があり、t1
とt2
の両方を使用するSELECT
ステートメントでc
を読み取るとします。この場合c
は、ステートメントで使用されている
2
つのテーブル中で一意なカラムを表すものではなく、あいまいであるため、t1.c
またはt2.c
と記述することによって、どちらのテーブルが対象か指定する必要があります。同様に、データベースdb1
のテーブルt
とデータベースdb2
のテーブルt
に含まれているカラムを取り出す場合は、それぞれのテーブルのカラムをdb1.t.
とcol_name
db2.t.
として参照します。
col_name
修飾名でピリオドの後に続く語は識別子であるため、予約語であっても引用符で囲む必要はありません。
構文.tbl_name
はデフォルトデータベースのテーブルtbl_name
を意味します。この構文は
ODBC
との互換性を確保する目的で許容されています。これは、一部の
ODBC
プログラムでテーブル名の先頭に‘.
’文字が付けられるためです。