VALUES — 행 집합 계산
값 (표현[, ...] ) [, ...] [주문 방법정렬_표현[ ASC | 설명 | 사용연산자] [, ...] ] [ 제한개수| 모두 ] [ 오프셋시작[행 | 행 ] ] [ 먼저 가져오기 | 다음 [개수] 행 | 행 만 ]
값값 표현식으로 지정된 행 값 또는 행 값 집합을 계산합니다. 가장 일반적으로 다음을 생성하는 데 사용됩니다.“상수 테이블”더 큰 명령 내에서 사용할 수 있지만 자체적으로 사용할 수 있습니다.
하나 이상의 행이 지정되면 모든 행은 동일한 수의 요소를 가져야 합니다. 결과 테이블 열의 데이터 유형은 과 동일한 규칙을 사용하여 해당 열에 나타나는 표현식의 명시적 또는 추론 유형을 결합하여 결정됩니다.유니언(참조토토 커뮤니티 PostgreSQL : 문서 : 12 : 10.5. 연합, 사례 및 관련 구성).
더 큰 명령 내에서,값구문상 어디에서나 허용됩니다.선택입니다. a처럼 취급되기 때문에선택문법에 따라 다음을 사용할 수 있습니다.주문 기준, 한도(또는 동등하게먼저 가져오기) 및오프셋a가 포함된 절값명령.
표현결과 테이블(행 집합)의 지정된 위치에 계산하고 삽입하는 상수 또는 표현식입니다. 에서값an의 최상위 수준에 나타나는 목록삽입, an표현다음으로 대체 가능기본값대상 열의 기본값이 삽입되어야 함을 나타냅니다.기본값다음의 경우에는 사용할 수 없습니다.값다른 상황에서 나타납니다.
정렬_표현결과 행을 정렬하는 방법을 나타내는 표현식 또는 정수 상수. 이 표현식은의 열을 참조할 수 있습니다.값결과는 다음과 같습니다열1, 열2등. 자세한 내용은 참조주문 기준절.
연산자정렬 연산자. 자세한 내용은 참조주문 기준절.
개수반환할 최대 행 수입니다. 자세한 내용은 참조제한절.
시작행 반환을 시작하기 전에 건너뛸 행 수. 자세한 내용은 참조제한절.
값행 수가 매우 많은 목록은 메모리 부족 오류나 성능 저하가 발생할 수 있으므로 피해야 합니다.값내부에 나타남삽입은 특별한 경우입니다(원하는 열 유형이 다음에서 알려져 있기 때문입니다.삽입의 대상 테이블이며, 스캔을 통해 추론할 필요는 없습니다.값목록)이므로 다른 상황에서 실제적인 것보다 더 큰 목록을 처리할 수 있습니다.
맨몸값명령:
VALUES (1, '1'), (2, '2'), (3, '3');
이것은 2개의 열과 3개의 행으로 구성된 테이블을 반환합니다. 이는 다음과 사실상 동일합니다.
SELECT 1 AS 열1, '1' AS 열2 유니온 올 SELECT 2, '둘' 유니온 올 3, '3'을 선택하세요.
더 일반적으로는,값은 더 큰 SQL 명령 내에서 사용됩니다. 가장 일반적인 용도는 다음과 같습니다.삽입:
INSERT INTO 영화(코드, 제목, 했던 일, 날짜_제작, 종류)
VALUES ('T_601', '요짐보', 106, '1961-06-16', '드라마');
다음 맥락에서삽입, a 항목값목록은 다음과 같습니다.기본값여기에서는 값을 지정하는 대신 열 기본값을 사용해야 함을 나타냅니다.
영화 값에 삽입
('UA502', '바나나', 105, DEFAULT, '코미디', '82분'),
('T_601', '요짐보', 106, DEFAULT, '드라마', DEFAULT);
값하위-선택예를 들어 a로 작성될 수 있습니다.발신절:
선택 f.*
FROM 영화 f, (VALUES('MGM', 'Horror'), ('UA', 'Sci-Fi')) AS t(스튜디오, 종류)
여기서 f.studio = t.studio AND f.kind = t.kind;
UPDATE 직원 SET 급여 = 급여 * v.increase
FROM (VALUES(1, 200000, 1.2), (2, 400000, 1.4)) AS v (depno, 목표, 증가)
여기서 Employees.depno = v.depno AND Employees.sales = v.target;
참고하세요.AS다음 경우에 절이 필요합니다.값다음에서 사용됩니다.발신절, 마찬가지로선택. 반드시 필요한 것은 아닙니다.AS절은 모든 열의 이름을 지정하지만 그렇게 하는 것이 좋습니다. (기본 열 이름은값아르열1, 열2등윈 토토, 그러나 이 이름은 다른 데이터베이스 시스템에서는 다를 수 있습니다.)
언제값다음에서 사용됨삽입, 값은 모두 해당 대상 열의 데이터 유형으로 자동으로 강제 변환됩니다. 다른 컨텍스트에서 사용되는 경우 올바른 데이터 유형을 지정해야 할 수도 있습니다. 항목이 모두 인용된 리터럴 상수인 경우 첫 번째 항목을 강제 변환하면 모든 항목에 대해 가정된 유형을 결정하는 데 충분합니다.
SELECT * FROM 기계
WHERE ip_address IN (VALUES('192.168.0.1'::inet), ('192.168.0.10'), ('192.168.1.43'));
간단한 경우IN테스트에 의존하는 것이 더 좋습니다스칼라 목록형식IN글을 쓰는 것보다값위와 같이 쿼리합니다. 스칼라 목록 방법은 작성이 덜 필요하며 종종 더 효율적입니다.
값SQL 표준을 준수합니다.제한그리고오프셋아르윈 토토확장; 아래도 참조하세요선택.