このページは機械翻訳したものです。
TABLE
は、MySQL 8.0.19 で導入された DML ステートメントで、指定されたテーブルの行とカラムを返します。
Press CTRL+C to copyTABLE table_name [ORDER BY column_name] [LIMIT number [OFFSET number]]
TABLE
ステートメントは、いくつかの方法で SELECT
のように動作します。 t
という名前のテーブルが存在する場合、次の 2 つのステートメントによって同一の出力が生成されます:
Press CTRL+C to copyTABLE t; SELECT * FROM t;
ORDER BY
句および LIMIT
句をそれぞれ使用して、TABLE
によって生成される行数を順序付けおよび制限できます。 これらの関数は、次に示すように、SELECT
で使用する場合と同じ句 (LIMIT
でのオプションの OFFSET
句を含む) と同じように機能します:
Press CTRL+C to copymysql> TABLE t; +----+----+ | a | b | +----+----+ | 1 | 2 | | 6 | 7 | | 9 | 5 | | 10 | -4 | | 11 | -1 | | 13 | 3 | | 14 | 6 | +----+----+ 7 rows in set (0.00 sec) mysql> TABLE t ORDER BY b; +----+----+ | a | b | +----+----+ | 10 | -4 | | 11 | -1 | | 1 | 2 | | 13 | 3 | | 9 | 5 | | 14 | 6 | | 6 | 7 | +----+----+ 7 rows in set (0.00 sec) mysql> TABLE t LIMIT 3; +---+---+ | a | b | +---+---+ | 1 | 2 | | 6 | 7 | | 9 | 5 | +---+---+ 3 rows in set (0.00 sec) mysql> TABLE t ORDER BY b LIMIT 3; +----+----+ | a | b | +----+----+ | 10 | -4 | | 11 | -1 | | 1 | 2 | +----+----+ 3 rows in set (0.00 sec) mysql> TABLE t ORDER BY b LIMIT 3 OFFSET 2; +----+----+ | a | b | +----+----+ | 1 | 2 | | 13 | 3 | | 9 | 5 | +----+----+ 3 rows in set (0.00 sec)
TABLE
は、主に次の点で SELECT
と異なります:
TABLE
では、常にテーブルのすべてのカラムが表示されます。TABLE
では、行の任意のフィルタリングは許可されません。つまり、TABLE
ではWHERE
句はサポートされません。
返されるテーブルのカラムを制限するには、ORDER BY
および LIMIT
(あるいはその両方) を使用して達成できる以上の行をフィルタリングし、SELECT
を使用します。
TABLE
は、一時テーブルとともに使用できます。
TABLE
は、SELECT
のかわりに、ここにリストされているものを含め、他の多くの構成要素で使用することもできます:
-
次に示すように、
UNION
を使用します:Press CTRL+C to copymysql> TABLE t1; +---+----+ | a | b | +---+----+ | 2 | 10 | | 5 | 3 | | 7 | 8 | +---+----+ 3 rows in set (0.00 sec) mysql> TABLE t2; +---+---+ | a | b | +---+---+ | 1 | 2 | | 3 | 4 | | 6 | 7 | +---+---+ 3 rows in set (0.00 sec) mysql> TABLE t1 UNION TABLE t2; +---+----+ | a | b | +---+----+ | 2 | 10 | | 5 | 3 | | 7 | 8 | | 1 | 2 | | 3 | 4 | | 6 | 7 | +---+----+ 6 rows in set (0.00 sec)
ここで示した
UNION
は、次のステートメントと同等です:Press CTRL+C to copymysql> SELECT * FROM t1 UNION SELECT * FROM t2; +---+----+ | a | b | +---+----+ | 2 | 10 | | 5 | 3 | | 7 | 8 | | 1 | 2 | | 3 | 4 | | 6 | 7 | +---+----+ 6 rows in set (0.00 sec)
TABLE
は、SELECT
ステートメントまたはVALUES
ステートメント (あるいはその両方) と組み合せて使用することもできます。 セクション13.2.10.3「UNION 句」を参照してください。 INTO
を使用してユーザー変数を移入し、INTO OUTFILE
またはINTO DUMPFILE
を使用してテーブルデータをファイルに書き込みます。 詳細および例は、セクション13.2.10.1「SELECT ... INTO ステートメント」 を参照してください。-
多くの場合、サブクエリーを使用できます。
a
という名前のカラムを持つ任意のテーブルt1
と、単一のカラムを持つ別のテーブルt2
がある場合、次のようなステートメントが可能です:Press CTRL+C to copySELECT * FROM t1 WHERE a IN (TABLE t2);
テーブル
ts
の単一カラムの名前がx
であると仮定すると、前述のステートメントは次に示す各ステートメントと同等です (いずれの場合もまったく同じ結果が生成されます):Press CTRL+C to copySELECT * FROM t1 WHERE a IN (SELECT x FROM t2); SELECT * FROM t1 WHERE a IN (SELECT * FROM t2);
詳しくはセクション13.2.11「サブクエリー」,をご覧ください。
INSERT
およびREPLACE
ステートメントを使用します。それ以外の場合は、SELECT *
を使用します。 詳細および例については、セクション13.2.6.1「INSERT ... SELECT ステートメント」を参照してください。TABLE
は、多くの場合、CREATE TABLE ... SELECT
またはCREATE VIEW ... SELECT
のSELECT
のかわりに使用することもできます。 詳細および例については、これらのステートメントの説明を参照してください。