15.2.16 Заявление TABLE
Это оператор DML, который возвращает строки и столбцы указанной таблицы.
TABLE table_name
[ORDER BY column_name]
[LIMIT number [OFFSET number]]
[INTO OUTFILE 'file_name'
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name] ...]
Оператор TABLE в некотором смысле действует как SELECT. Учитывая существование таблицы с именем t, следующие два оператора производят идентичный вывод:
TABLE t;
SELECT * FROM t;
Вы можете упорядочить и ограничить количество возвращаемых строк оператором TABLE, используя соответственно предложения ORDER BY и LIMIT. Эти предложения работают идентично соответствующим предложениям, используемым с SELECT (включая необязательное предложение OFFSET с LIMIT), как показано здесь:
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не включает невидимые столбцы. См. Раздел 15.1.21.10, «Невидимые столбцы». TABLEне позволяет произвольно фильтровать строки; то есть,TABLEне поддерживает предложениеWHERE.
Для ограничения возвращаемых столбцов таблицы, фильтрации строк, которые не могут быть выполнены с помощью ORDER BY и LIMIT, или обоих, используйте SELECT.
TABLE может использоваться с временными таблицами.
TABLE также может использоваться вместо SELECT в ряде других конструкций, включая перечисленные здесь:
-
С операторами множеств, такими как
UNION, как показано здесь: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, показанный выше, эквивалентен следующему оператору: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или с обоими. См. Раздел 15.2.18, «Предложение UNION», Раздел 15.2.4, «Предложение EXCEPT» и Раздел 15.2.8, «Предложение INTERSECT» для получения дополнительной информации и примеров. См. также Раздел 15.2.14, «Операции над множествами с UNION, INTERSECT и EXCEPT». С
INTOдля заполнения пользовательских переменных и сINTO OUTFILEилиINTO DUMPFILEдля записи данных таблицы в файл. См. Раздел 15.2.13.1, «Оператор SELECT ... INTO» для получения более подробной информации и примеров.-
Во многих случаях, где вы можете использовать подзапросы. Учитывая любую таблицу
t1со столбцом с именемaи вторую таблицуt2, содержащую один столбец, возможны такие операторы, как следующие:SELECT * FROM t1 WHERE a IN (TABLE t2);
Предполагая, что единственный столбец таблицы
t1называетсяx, предыдущее эквивалентно каждому из показанных здесь операторов (и дает точно такой же результат в любом случае):SELECT * FROM t1 WHERE a IN (SELECT x FROM t2); SELECT * FROM t1 WHERE a IN (SELECT * FROM t2);
См. Раздел 15.2.15, «Подзапросы» для получения дополнительной информации.
С операторами
INSERTиREPLACE, где вы бы в противном случае использовалиSELECT *. См. Раздел 15.2.7.1, «Оператор INSERT ... SELECT» для получения дополнительной информации и примеров.TABLEтакже может использоваться во многих случаях вместоSELECTвCREATE TABLE ... SELECTилиCREATE VIEW ... SELECT. См. описания этих операторов для получения дополнительной информации и примеров.
© 2025 Oracle
Licensed under the GPLv2 License.