暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的SQL语句 - 数据操作语句(14)- TABLE 语句

林员外聊编程 2020-10-04
538
TABLE 语句
 
TABLE 是 MySQL 8.0.19 中引入的一个 DML 语句,它返回指定表的行和列。
 
TABLE table_name [ORDER BY column_name] [LIMIT number [OFFSET number]]
 
TABLE 语句在某些方面类似于 SELECT。假设存在一个名为 t 的表,以下两个语句将产生相同的输出:
 
TABLE t;


SELECT * FROM t;
 
可以分别使用 ORDER BY 和 LIMIT 子句对 TABLE 生成的行数进行排序和限制。当与 SELECT (包括带 LIMIT 的可选 OFFSET 子句)一起使用时,相同的子句也会有这些相同功能,如下所示:
 
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 一起使用,如下所示:
 
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 语句一起使用。
 
●  INTO 一起使用,填充用户变量,与 INTO OUTFILE INTO DUMPFILE 一起使用,将表数据写入文件。
 
● 在许多情况下,可以使用子查询。如果表 t1 有一个列 a,而第二个表 t2 只有一个列,则可以使用以下语句:
 
SELECT * FROM t1 WHERE a IN (TABLE t2);
 
假设表 ts 的唯一列名为 x,则前面的语句等价于这里显示的每个语句(在任何一种情况下都会产生完全相同的结果):
 
SELECT * FROM t1 WHERE a IN (SELECT x FROM t2);


SELECT * FROM t1 WHERE a IN (SELECT * FROM t2);
 
● 用于 INSERT REPLACE 语句,也可以使用 SELECT *
 
● 在许多情况下,TABLE 也可以用来代替 CREATE TABLE ... SELECT CREATE VIEW ... SELECT 中的 SELECT
 
 
 
 
 
 
 
 
官方网址:
https://dev.mysql.com/doc/refman/8.0/en/table.html
 

文章转载自林员外聊编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论