MySQL的SQL語句 - 數據操做語句(14)- TABLE 語句

TABLE 語句

TABLE 是 MySQL 8.0.19 中引入的一個 DML 語句,它返回指定表的行和列。html

1. TABLE table_name [ORDER BY column_name] [LIMIT number [OFFSET number]]

TABLE 語句在某些方面相似於 SELECT。假設存在一個名爲 t 的表,如下兩個語句將產生相同的輸出:mysql

1. TABLE t;
2. 
3. SELECT * FROM t;

能夠分別使用 ORDER BY 和 LIMIT 子句對 TABLE 生成的行數進行排序和限制。當與 SELECT (包括帶 LIMIT 的可選 OFFSET 子句)一塊兒使用時,相同的子句也會有這些相同功能,以下所示:sql

1. mysql> TABLE t;
2. +----+----+
3. | a  | b  |
4. +----+----+
5. |  1 |  2 |
6. |  6 |  7 |
7. |  9 |  5 |
8. | 10 | -4 |
9. | 11 | -1 |
10. | 13 |  3 |
11. | 14 |  6 |
12. +----+----+
13. 7 rows in set (0.00 sec)
14. 
15. mysql> TABLE t ORDER BY b;
16. +----+----+
17. | a  | b  |
18. +----+----+
19. | 10 | -4 |
20. | 11 | -1 |
21. |  1 |  2 |
22. | 13 |  3 |
23. |  9 |  5 |
24. | 14 |  6 |
25. |  6 |  7 |
26. +----+----+
27.7 rows in set (0.00 sec)
28. 
29. mysql> TABLE t LIMIT 3;
30. +---+---+
31. | a | b |
32. +---+---+
33. | 1 | 2 |
34. | 6 | 7 |
35. | 9 | 5 |
36. +---+---+
37. 3 rows in set (0.00 sec)
38. 
39. mysql> TABLE t ORDER BY b LIMIT 3;
40. +----+----+
41. | a  | b  |
42. +----+----+
43. | 10 | -4 |
44. | 11 | -1 |
45. |  1 |  2 |
46. +----+----+
47. 3 rows in set (0.00 sec)
48. 
49. mysql> TABLE t ORDER BY b LIMIT 3 OFFSET 2;
50. +----+----+
51. | a  | b  |
52. +----+----+
53. |  1 |  2 |
54. | 13 |  3 |
55. |  9 |  5 |
56. +----+----+
57. 3 rows in set (0.00 sec)

TABLE 與 SELECT 在兩個主要的不一樣:ide

● TABLE 始終顯示錶的全部列。code

● TABLE 不容許任意篩選行;也就是說,TABLE 不支持任何 WHERE 子句。htm

要限制返回哪些表列,篩選超出使用 ORDER BY 和 LIMIT 能夠控制的行,請使用 SELECT 語句。排序

TABLE 能夠與臨時表一塊兒使用。get

在許多其餘結構中,TABLE 也能夠用來代替 SELECT,包括下面列出的那些:it

● 與 UNION 一塊兒使用,以下所示:table

1. mysql> TABLE t1;
2. +---+----+
3. | a | b  |
4. +---+----+
5. | 2 | 10 |
6. | 5 |  3 |
7. | 7 |  8 |
8. +---+----+
9. 3 rows in set (0.00 sec)
10. 
11. mysql> TABLE t2;
12. +---+---+
13. | a | b |
14. +---+---+
15. | 1 | 2 |
16. | 3 | 4 |
17. | 6 | 7 |
18. +---+---+
19. 3 rows in set (0.00 sec)
20. 
21. mysql> TABLE t1 UNION TABLE t2;
22. +---+----+
23. | a | b  |
24. +---+----+
25. | 2 | 10 |
26. | 5 |  3 |
27. | 7 |  8 |
28. | 1 |  2 |
29. | 3 |  4 |
30. | 6 |  7 |
31. +---+----+
32. 6 rows in set (0.00 sec)

以上顯示的 UNION 至關於如下語句:

1. mysql> SELECT * FROM t1 UNION SELECT * FROM t2;
2. +---+----+
3. | a | b  |
4. +---+----+
5. | 2 | 10 |
6. | 5 |  3 |
7. | 7 |  8 |
8. | 1 |  2 |
9.| 3 |  4 |
10. | 6 |  7 |
11. +---+----+
12. 6 rows in set (0.00 sec)

TABLE 也能夠與 SELECT 語句、VALUES 語句一塊兒使用。

● 與 INTO 一塊兒使用,填充用戶變量,與 INTO OUTFILE 或 INTO DUMPFILE 一塊兒使用,將表數據寫入文件。

● 在許多狀況下,能夠使用子查詢。若是表 t1 有一個列 a,而第二個表 t2 只有一個列,則能夠使用如下語句:

1. SELECT * FROM t1 WHERE a IN (TABLE t2);

假設表 ts 的惟一列名爲 x,則前面的語句等價於這裏顯示的每一個語句(在任何一種狀況下都會產生徹底相同的結果):

1. SELECT * FROM t1 WHERE a IN (SELECT x FROM t2);

2.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

相關文章
相關標籤/搜索