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_namedb2.t.として参照します。
col_name
修飾名でピリオドの後に続く語は識別子であるため、予約語であっても引用符で囲む必要はありません。
構文.tbl_nameはデフォルトデータベースのテーブルtbl_nameを意味します。この構文は
ODBC
との互換性を確保する目的で許容されています。これは、一部の
ODBC
プログラムでテーブル名の先頭に‘.’文字が付けられるためです。
