Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb


このページは機械翻訳したものです。

13.2.12 TABLE ステートメント

TABLE は、MySQL 8.0.19 で導入された DML ステートメントで、指定されたテーブルの行とカラムを返します。

Press CTRL+C to copy
TABLE table_name [ORDER BY column_name] [LIMIT number [OFFSET number]]

TABLE ステートメントは、いくつかの方法で SELECT のように動作します。 t という名前のテーブルが存在する場合、次の 2 つのステートメントによって同一の出力が生成されます:

Press CTRL+C to copy
TABLE t; SELECT * FROM t;

ORDER BY 句および LIMIT 句をそれぞれ使用して、TABLE によって生成される行数を順序付けおよび制限できます。 これらの関数は、次に示すように、SELECT で使用する場合と同じ句 (LIMIT でのオプションの OFFSET 句を含む) と同じように機能します:

Press CTRL+C to copy
mysql> 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 copy
    mysql> 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 copy
    mysql> 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 copy
    SELECT * FROM t1 WHERE a IN (TABLE t2);

    テーブル ts の単一カラムの名前が x であると仮定すると、前述のステートメントは次に示す各ステートメントと同等です (いずれの場合もまったく同じ結果が生成されます):

    Press CTRL+C to copy
    SELECT * 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 ... SELECTSELECT のかわりに使用することもできます。 詳細および例については、これらのステートメントの説明を参照してください。