Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

테이블 목록 없이 실행하는 MySQL 쿼리의 행과 열 개수 제한

MySQL에서 테이블 목록을 지정하지 않고 실행하는 쿼리에는 한 가지 중요한 제한이 있습니다. 바로 결과로 정확히 한 개의 행(row)만 반환할 수 있다는 점입니다. 다만 이 하나의 행 안에는 여러 개의 열(column)을 자유롭게 포함할 수 있습니다.

MySQL에서는 SELECT 문에서 FROM 절(테이블 목록)을 생략하는 것이 허용되기 때문에, 테이블과 무관하게 표현식을 평가하고 그 결과를 즉시 확인할 수 있습니다. 이때 산술 연산에 NULL이 포함되면 어떤 연산이든 결과는 항상 NULL이 됩니다.

예제

mysql> Select 65/NULL,65+NULL,65*NULL,65-NULL,65%NULL;
+------------+--------------+-------------+-------------+---------+
| 65/NULL    | 65+NULL      | 65*NULL     | 65-NULL     | 65%NULL |
+------------+--------------+-------------+-------------+---------+
|       NULL |         NULL |        NULL |        NULL |    NULL |
+------------+--------------+-------------+-------------+---------+
1 row in set (0.00 sec)

위 예제를 보면, 쿼리 문에 테이블 목록이 전혀 포함되어 있지 않음에도 불구하고 MySQL은 다섯 개의 표현식 계산 결과를 각각 담은 다섯 개의 열과, 단 하나의 행으로 구성된 결과 집합을 반환합니다. 출력 마지막의 "1 row in set"이라는 메시지에서 확인할 수 있듯이, 행의 개수는 항상 1개로 고정됩니다.

정리

  • 테이블 목록이 없는 쿼리는 결과 행이 반드시 1개여야 합니다.
  • 열의 개수에는 제한이 없으며, SELECT 절에 나열한 표현식의 수만큼 열이 생성됩니다.
  • NULL과의 모든 산술 연산(/, +, *, -, %)은 결과적으로 NULL을 반환합니다.