| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.3 : 부울 무지개 토토 | PostgreSQL : 문서 : 9.3 : 데이터 윈 토토 | 제8장. 데이터 와이즈 토토 | PostgreSQL : 문서 : 9.3 : 기하학적 토토 캔 | |
열거(enum) 유형은 정적, 순서가 지정된 값 집합입니다. 그들은 다음과 같습니다.열거형다양한 프로그래밍에서 지원되는 유형 언어. 열거형 유형의 예로는 주 또는 데이터 조각에 대한 상태 값 집합입니다.
Enum 유형은 다음을 사용하여 생성됩니다.와이즈 토토 생성명령, 예:
CREATE TYPE 기분 AS ENUM ('슬픔', '괜찮아', '행복');
생성되면 열거형 유형을 테이블과 함수에서 사용할 수 있습니다. 다른 유형과 매우 유사하게 정의됩니다.
CREATE TYPE 기분 AS ENUM ('슬픔', '괜찮아', '행복함');
테이블 만들기 사람(
이름 텍스트,
current_mood 기분
);
INSERT INTO person VALUES ('모에', '행복');
SELECT * FROM 사람 WHERE current_mood = '행복';
이름 | 현재_기분
-----+----------------
모에 | 행복하다
(1행)열거형 유형의 값 순서는 다음과 같습니다. 유형이 생성될 때 값이 나열되었습니다. 모든 표준 비교 연산자 및 관련 집계 함수가 지원됩니다. 열거형의 경우. 예를 들면:
INSERT INTO person VALUES ('래리', '슬픈');
INSERT INTO person VALUES ('Curly', 'ok');
SELECT * FROM 사람 WHERE current_mood '슬픔';
이름 | 현재_기분
------+---------------
모에 | 행복하다
곱슬 | 알았어
(2열)
SELECT * FROM 사람 WHERE current_mood 'sad' ORDER BY current_mood;
이름 | 현재_기분
------+---------------
곱슬 | 알았어
모에 | 행복하다
(2열)
이름 선택
사람에게서
WHERE current_mood = (SELECT MIN(current_mood) FROM 사람);
이름
-------
래리
(1행)열거된 각 데이터 유형은 별개이므로 비교할 수 없습니다. 다른 열거된 유형과 함께. 다음 예를 참조하세요.
CREATE TYPE 행복 AS ENUM ('행복함', '매우 행복함', '황홀함');
CREATE TABLE 휴일(
num_weeks 정수,
행복 행복
);
INSERT INTO holiday(num_weeks,happiness) VALUES (4, 'happy');
INSERT INTO holiday(num_weeks,happiness) VALUES (6, '매우 행복함');
INSERT INTO holiday(num_weeks,happiness) VALUES (8, 'ecstatic');
INSERT INTO holiday(num_weeks,happiness) VALUES (2, 'sad');
오류: 열거형 행복에 대한 잘못된 입력 값: "sad"
SELECT 사람.이름, 휴일.num_weeks FROM 사람, 휴일
어디에서 person.current_mood = holiday.happiness;
오류: 연산자가 존재하지 않습니다. 기분 = 행복
당신이 정말로 그런 일을 해야 한다면, 당신은 다음 중 하나를 할 수 있습니다 맞춤 연산자를 작성하거나 쿼리에 명시적 캐스트를 추가하세요.
사람, 휴일에서 사람.이름, 휴일.num_weeks 선택 어디에서 person.current_mood::text = holiday.happiness::text; 이름 | num_weeks -----+------------- 모에 | 4 (1행)
열거형 라벨은 대소문자를 구분하므로'행복해요'다음과 동일하지 않습니다'행복해요'. 공백 라벨도 중요합니다.
열거형 유형은 기본적으로 정적 세트를 위한 것이지만 값, 기존 열거형에 새 값을 추가하는 기능이 지원됩니다. 유형 및 값 이름 바꾸기(참조변경 와이즈 토토). 기존 값은 열거형 유형에서 제거되거나 해당 값의 정렬 순서도 변경될 수 없습니다. 열거형 유형을 삭제하고 다시 생성하지 않고도 변경될 수 있습니다.
열거형 값은 디스크에서 4바이트를 차지합니다. 열거형의 길이 값의 텍스트 레이블은에 의해 제한됩니다.NAMEDATALEN설정이 다음으로 컴파일됨포스트그레SQL; 표준 빌드에서 이는 다음을 의미합니다. 대부분은 63바이트입니다.
내부 열거형 값에서 텍스트 레이블로의 변환은 다음과 같습니다. 시스템 카탈로그에 보관됨pg_enum. 이 카탈로그를 직접 쿼리하는 것이 유용할 수 있습니다.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 부울 와이즈 토토 | PostgreSQL : 문서 : 9.3 : 데이터 윈 토토 | 기하학적 와이즈 토토 |