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 。 |
修飾子文字は別個のトークンであり、関連付けられた識別子と隣接する必要はありません。たとえば、tbl_name.col_name
と tbl_name . col_name
は同等です。
複数部分名のコンポーネントを引用符で囲む必要がある場合、名前全体を引用符で囲むのではなく、各コンポーネントを個別に引用符で囲んでください。たとえば、`my-table.my-column`
ではなく、`my-table`.`my-column`
と記述します。
修飾名内でピリオドのあとに続く予約語は識別子である必要があるため、そのコンテキストでは引用符で囲む必要はありません。
参照があいまいでないかぎり、ステートメント内のカラム参照の前に tbl_name
や db_name.tbl_name
プリフィクスを付ける必要はありません。たとえば、テーブル t1
と t2
のそれぞれにカラム c
があり、t1
と t2
の両方を使用する SELECT
ステートメントで c
を取得するとします。この場合、c
はステートメント内で使用されるテーブルの中で一意でないため、あいまいになります。これを t1.c
または t2.c
としてテーブル名で修飾し、どちらのテーブルを指しているかを示す必要があります。同様に、同じステートメント内のデータベース db1
のテーブル t
とデータベース db2
のテーブル t
から取得するには、それぞれのテーブルのカラムを db1.t.
と col_name
db2.t.
として参照する必要があります。
col_name
構文
は、デフォルトデータベースのテーブル .tbl_name
tbl_name
を意味します。一部の ODBC プログラムではテーブル名の先頭に「.
」文字が付けられるため、ODBC 互換性を確保するためにこの構文が認められています。