Loading...
MySQL 9.5 Reference Manual 9.5의 15.2.16 TABLE Statement의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
TABLE은 (named table의) 행과 열을 반환하는 DML 문장입니다.
1TABLE table_name 2 [ORDER BY column_name] 3 [LIMIT number [OFFSET number]] 4 [INTO OUTFILE 'file_name' 5 [{FIELDS | COLUMNS} 6 [TERMINATED BY 'string'] 7 [[OPTIONALLY] ENCLOSED BY 'char'] 8 [ESCAPED BY 'char'] 9 ] 10 [LINES 11 [STARTING BY 'string'] 12 [TERMINATED BY 'string'] 13 ] 14 | INTO DUMPFILE 'file_name' 15 | INTO var_name [, var_name] ...]
TABLE 문장은 몇 가지 면에서 SELECT처럼 동작합니다. t라는 이름의 테이블이 존재한다고 할 때, 다음 두 문장은 동일한 출력 결과를 생성합니다:
1TABLE t; 2 3SELECT * FROM t;
TABLE에 ORDER BY 및
LIMIT 절을 사용하여 생성되는 행의 수를 정렬하고 제한할 수 있습니다. 이것들은 SELECT에서 사용할 때와 동일하게 동작합니다 (LIMIT에 선택적인
OFFSET 절을 포함하는 경우도 포함), 다음에서 볼 수 있듯이 그렇습니다:
1mysql> 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+----+----+ 137 rows in set (0.00 sec) 14 15mysql> 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+----+----+ 277 rows in set (0.00 sec) 28 29mysql> TABLE t LIMIT 3; 30+---+---+ 31| a | b | 32+---+---+ 33| 1 | 2 | 34| 6 | 7 | 35| 9 | 5 | 36+---+---+ 373 rows in set (0.00 sec) 38 39mysql> TABLE t ORDER BY b LIMIT 3; 40+----+----+ 41| a | b | 42+----+----+ 43| 10 | -4 | 44| 11 | -1 | 45| 1 | 2 | 46+----+----+ 473 rows in set (0.00 sec) 48 49mysql> TABLE t ORDER BY b LIMIT 3 OFFSET 2; 50+----+----+ 51| a | b | 52+----+----+ 53| 1 | 2 | 54| 13 | 3 | 55| 9 | 5 | 56+----+----+ 573 rows in set (0.00 sec)
TABLE은 SELECT와 두 가지 주요 측면에서 다릅니다:
TABLE은 항상 테이블의 모든 컬럼을 표시합니다.예외: TABLE의 출력에는 invisible 컬럼이 포함되지 않습니다. Section 15.1.24.10, “Invisible Columns”을 참조하십시오.
TABLE은 임의의 행 필터링을 허용하지 않습니다. 즉, TABLE은 어떤 WHERE 절도 지원하지 않습니다.반환되는 테이블 컬럼을 제한하거나, ORDER BY 및
LIMIT으로 할 수 있는 것 이상의 행을 필터링하거나, 또는 둘 다를 수행하려면 SELECT를 사용하십시오.
TABLE은 임시 테이블과 함께 사용할 수 있습니다.
TABLE은 또한 다음에 나열된 것들을 포함하여 여러 다른 구문 구성에서 SELECT 대신 사용할 수 있습니다:
UNION 같은 집합 연산자와 함께 사용하는 경우:1mysql> TABLE t1; 2+---+----+ 3| a | b | 4+---+----+ 5| 2 | 10 | 6| 5 | 3 | 7| 7 | 8 | 8+---+----+ 93 rows in set (0.00 sec) 10 11mysql> TABLE t2; 12+---+---+ 13| a | b | 14+---+---+ 15| 1 | 2 | 16| 3 | 4 | 17| 6 | 7 | 18+---+---+ 193 rows in set (0.00 sec) 20 21mysql> 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+---+----+ 326 rows in set (0.00 sec)
바로 앞의 UNION은 다음 문장과 동일합니다:
1mysql> 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+---+----+ 126 rows in set (0.00 sec)
TABLE은 또한 집합 연산에서 SELECT 문, VALUES 문 또는 둘 다와 함께 사용할 수 있습니다. 보다 많은 정보와 예시는 Section 15.2.18, “UNION Clause”, Section 15.2.4, “EXCEPT Clause”, Section 15.2.8, “INTERSECT Clause”를 참조하십시오. 또한 Section 15.2.14, “Set Operations with UNION, INTERSECT, and EXCEPT”도 참조하십시오.
사용자 변수를 채우기 위한 INTO와 함께, 그리고 테이블 데이터를 파일에 쓰기 위한 INTO OUTFILE 또는 INTO DUMPFILE과 함께 사용하는 경우. 보다 구체적인 정보와 예시는 Section 15.2.13.1, “SELECT ... INTO Statement”를 참조하십시오.
많은 경우에 서브쿼리를 사용할 수 있는 곳에서. 컬럼 이름이
a인 컬럼을 가진 테이블 t1과, 단일 컬럼을 가진 두 번째 테이블 t2가 있다고 하면, 다음과 같은 문장이 가능합니다:
1SELECT * FROM t1 WHERE a IN (TABLE t2);
테이블 t1의 단일 컬럼 이름이 x라고 가정하면, 앞의 문장은 여기 나타난 각 문장과 동등합니다 (어느 경우든 정확히 동일한 결과를 생성합니다):
1SELECT * FROM t1 WHERE a IN (SELECT x FROM t2); 2 3SELECT * FROM t1 WHERE a IN (SELECT * FROM t2);
자세한 내용은 Section 15.2.15, “Subqueries”를 참조하십시오.
INSERT 및
REPLACE 문장에서, 그렇지 않으면
SELECT *를 사용할 곳에 사용하는 경우. 보다 많은 정보와 예시는 Section 15.2.7.1, “INSERT ... SELECT Statement”를 참조하십시오.
CREATE TABLE ... SELECT 또는
CREATE VIEW ... SELECT에서 SELECT 대신 많은 경우에 TABLE을 사용할 수 있습니다. 보다 많은 정보와 예시는 이러한 문장의 설명을 참조하십시오.
15.2.15 Subqueries
15.2.17 UPDATE Statement