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
との互換性を確保するためにこの構文が認められています。